Skip to content

Releases: AdelKS/ZeCalculator

v0.11.1

05 Jan 03:47
10aad73
Compare
Choose a tag to compare

Overhaul the code structure to

  • Simplify end user experience: everything goes through DynMathObject and MathWorld now
  • Handle data
    • DynMathObject can hold a "column" of data, i.e. a 1D sequence of expressions
    • Expressions can be generic and use other objects from the MathWorld, instead of simple numbers.
  • Be able to rename DynMathObject instances while still keeping their data
    • The main issue was to be able to rename a DynMathObject with an invalid name while still retaining the data.
      Until the user puts a correct name

Full Changelog: v0.10.1...v0.11.1

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