Skip to content

Releases: AdelKS/ZeCalculator

v0.10.1

02 Nov 23:05
cf673ca
Compare
Choose a tag to compare

Added initial implementation of caching for Sequence computation

Full Changelog: v0.9.1...v0.10.1

v0.9.1

14 Jul 23:41
7c6467c
Compare
Choose a tag to compare

Main addition is the support for unary minus and plus operators. The unary plus being a no op.

Full Changelog: v0.8.7...v0.9.1

v0.8.7

12 May 23:37
Compare
Choose a tag to compare
  • Reworked the user interface to a leaner one with assignments.
  • Improved the robustness of error propagation between objects

Full Changelog: v0.7.0...v0.8.7

v0.7.0

07 May 20:45
dccfa56
Compare
Choose a tag to compare

Various internal code simplifications and reworks.

In the API, Function class got reworked

  • Its arguments number is no longer templated, that did not bring any performance benefit
  • DynMathObject only contains a Function or Sequence alternative if it's in a valid state

Full Changelog: v0.6.0...v0.7.0

v0.6.0

01 Apr 18:40
41ec58d
Compare
Choose a tag to compare

Overhaul approach to equation-based math object definition. See readme for more information.

Full Changelog: v0.5.0...v0.6.0

v0.5.0

09 Oct 22:41
2233bb4
Compare
Choose a tag to compare

One more release !

One the menu:

  • No more name lookup during evaluation, math objects are directly bound in expressions. Which tremendously improved evaluation speed (now only twice slower than pure C++)
  • One single Error struct
  • Math objects know their name
  • Input variables (to functions) are treated separately from normal variables: during parsing, their name is replaced with their index.

Full Changelog: v0.4.0...v0.5.0

v0.4.0

01 Sep 20:06
de5d9b5
Compare
Choose a tag to compare
  • Tidy the header files into folders and subfolders
  • Use an Implementation / declaration approach on headers, this enables
    • Having a single header source code
    • "include loops" so classes A and B can call each others methods even though both are entirely defined in headers
  • Refactor the evaluation code
  • Move away from string views into the original expression string and use string copies and a stringview-like class SubstrInfo
    • Had many potential issues with dangling pointers.
  • Add the rpn namespace: create and evaluate every math object with the reverse polish notation / postfix representation.
    • This representation has faster evaluation but slower parsing (because it goes through an AST representation first)

Full Changelog: v0.3.0...v0.4.0

v0.3.0

25 Aug 22:45
6671e9b
Compare
Choose a tag to compare

This release introduces the Sequence class: can have an arbitrary expression involving other sequences and functions. A safeguard has been added: a recursion depth limit.

Full Changelog: v0.2.0...v0.3.0

v0.2.0

27 May 11:59
21490a8
Compare
Choose a tag to compare

Notable changes:

  • The class Expression and its alias GlobalVariable: which basically is a function without any input. When added to a MathWorld with a name, its expression can depend on other objects and see its value dynamically updated with respect to them.
  • Adding objects to MathWorld returns now an expected<object handle, error> so the method does not throw any longer if the name is already taken or it is of the wrong format.

Full Changelog: v0.1.0...v0.2.0

v0.1.0

22 Apr 22:58
d5e0bfe
Compare
Choose a tag to compare

This is the first tagged version of the library, the main branch won't see its history rewritten starting this point.

This release brings two building blocks of the library:

  • Functions
    • Can have an arbitrary number of input variables
    • Functions can call each other if in the same math world, although only with positional arguments.
  • Global constants, which can be used in functions' expression. Its value can be changed.

For more information, see the project's README.