Skip to content

v0.2.0

Compare
Choose a tag to compare
@eiis1000 eiis1000 released this 14 Jul 20:04
· 218 commits to master since this release
0c7066a

v0.2.0

Major Additions

  • Integer division (with //), modulo, lcm, and gcd operations
  • Floor, ceiling, rounding, and random operations
  • New abstract classes for new integer operations
  • Settings to enforce functions' domain and range when simplifying using inverse functions
  • Array indexing to retrieve values from methods like solve

Minor Additions

  • Make parsing errors more descriptive
  • Port parsing to use operation maps rather than operation lists
  • New test class for integer operations
  • Many new exceptions for improved error handling
  • Support for _ in evaluate (used as eval x^2 x=_ when _ is a Double)
  • Better handling of ArrayIndexOutOfBoundsExceptions in the keyword interface
  • err command to improve error reporting
  • version command
  • reset command

Changes

  • Restrict variable and function names to a regex of valid names to improve multi-character name support
  • Change equals to check if two functions are exactly equal and implement equalsSimplified to check if they are equal when simplified
  • Make substitute/sub more powerful in the keyword interface by allowing the substitution of multiple expressions simultaneously
  • Make def and sub in automatically perform a minimalSimplify
  • Move SettingsParser functionality directly to Settings
  • Rename SpecialFunction to EndpointFunction
  • Improve exit logic from all interfaces

Bugfixes

  • Fix toInteger error message using the wrong margin from Settings
  • Fix bad rounding in ParsingTools.toInteger and ParsingTools.isAlmostInteger
  • Fix the evaluation of several arctrig functions
  • Fix parsing of non-escaped expressions with spaces such as 1 + sin(x)
  • Fix defconstant not LaTeX-escaping constant names
  • Add an exception when user attempts to use nested quotes in keyword interface
  • Fix division by decimals such as 1/.2 not working properly