No description
  • C++ 50.2%
  • Shell 23.4%
  • Makefile 20%
  • M4 5.7%
  • Python 0.7%
Find a file
Daniel Baumann 47a342a1f7
Releasing fastforward version 0.20.0-7~ffwd13+u1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2026-02-07 21:56:48 +01:00
bin Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
debian Releasing fastforward version 0.20.0-7~ffwd13+u1. 2026-02-07 21:56:48 +01:00
doc Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
doc_example Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
include Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
m4 Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
misc Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
src Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
test Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
aclocal.m4 Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
AUTHORS Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
autogen.sh Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
ChangeLog Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
compile Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
config.guess Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
config.h.in Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
config.sub Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
configure Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
configure.ac Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
depcomp Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
install-sh Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
libixion.pc.in Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
LICENSE Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
ltmain.sh Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
Makefile.am Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
Makefile.in Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
missing Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
README.md Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00
test-driver Adding upstream version 0.20.0. 2025-08-22 19:14:03 +02:00

Ixion is a general purpose formula parser, interpreter, formula cell dependency tracker and spreadsheet document model backend all in one package.

Overview

The goal of this project is to create a library for calculating the results of formula expressions stored in multiple formula cells. The cells can be referenced by each other, and Ixion resolves their dependencies automatically upon calculation. The caller can run the calculation routine either in a single-threaded mode, or a multi-threaded mode. Ixion also supports re-calculations where the contents of one or more cells have been modified since the last calculation, and a partial calculation of only the affected cells need to be calculated.

Portability

This library is written with portability in mind; platform specific calls are avoided as much as possible. It makes use of modern C++ features and the boost library to achieve portability.

Performance

Achieving good performance is one of the goals of this project. As much care is taken as humanly possible, to attain reasonable performance.

Threaded calculation

Ixion can perform threaded calculation using arbitrary number of threads, for both full and partial calculation modes.

Supported features

  • Each calculation session is defined in a plain text file, which is parsed and interpreted by the Ixion parser.
  • Fully threaded calculation.
  • Name resolution using A1- and R1C1-style references.
  • Support 2D cell references and named expressions.
  • Support range references.
  • Support table references.
  • 3D cell and range references.
  • Dependency tracking during both full calculation and partial re-calculation.
  • Inline strings.
  • Inline arrays.
  • Volatile functions. The framework for volatile functions is implemented. We just need to implement more functions.
  • C++ API.
  • Python API.
  • Matrix support via grouped formulas.

Features known to be missing

  • More built-in functions.
  • Custom functions defined in the caller program.
  • External references.
  • Implicit intersection.

Documentation

Installation

Please refer to the CONTRIBUTING.md file for build and installation instructions.

Download source packages

Please refer to the Releases page. The source packages for the older versions are found here.