Changelog:
0.16.1
fixed a build issue on 32-bit linux platforms, caused by slicing
of integer string ID values.
worked around floating point rounding errors which prevented
two theoretically-equal numeric values from being evaluated as
equal in test code.
0.16.0
documentation
added quickstart sections for using model_context and
document classes.
added code example for cell_access class.
C++ API
added new function to allow printing of single formula
tokens.
added method for setting cached results on formula cells
in model_context.
changed the model_context design to ensure that all sheets
are of the same size.
added an accessor method to formula_model_access interface
(and implicitly in model_context) that directly returns a
string value from cell.
added cell_access class for querying of cell states without
knowing its type ahead of time.
added document class which provides a layer on top of
model_context, to abstract away the handling of formula
calculations.
deprecated model_context::erase_cell() in favor of
empty_cell().
formula parser / interpreter
added support for 3D references - references that contain
multiple sheets.
added support for the exponent (^) and concatenation (&)
operators.
fixed incorrect handling of range references containing
whole columns such as A:A.
added support for unordered range references - range
references whose start row or column is greater than their
end position counterparts, such as A3:A1.
fixed a bug that prevented nested formula functions from
working properly.
implemented Calc A1 style reference resolver.
misc
formula results now directly store the string values when
the results are of string type. They previously stored
string ID values after interning the original strings.
removed build-time dependency on spdlog.
Changelog:
ixion 0.15.0
* fill_down_cells() method has been added to model_context, to fill duplicate
values downward from an arbitrary cell position. For now, it always
duplicate the value of the source cell; cell value enumerations are not
supported. Also, filling down of formula cells is not yet supported.
* cell iterator has been aded to model_context, for efficient horizontal and
vertical iterations of cell values in an arbitrary range within a sheet.
* improved the cmake-based build, with all test cases integrated.
* switched to spdlog for compile-time debug log outputs.
* improved performance by removing repeated fetching of each formula
cell prior to interpretation.
* reworked topological sorting of formula cells to avoid having to
unnecessarily build dependency relations twice; once during the
dirty cell determination and twice prior to interpretation of
formula cells. The new code performs topological sorting during the
dirty cell determination phase.
* reworked the cell reference tracker to use R-tree. This allows more
accurate tracking of references involving grouped formulas.
* fixed a resource leak with dynamic loading of compute engine modules.