Skip to content

Releases: isaacphysics/equality-checker

v0.8.0

17 Oct 11:51
Compare
Choose a tag to compare

Changelog:

  • Change log(x) to be base 10 by default. Other bases can be specified using log(x, b) or the natural logarithm with ln(x).
  • Support for abbreviated inverse trig function names: asin(...) etc.
  • Add a "syntax_error" key to the result dictionary, if the input test string contains invalid syntax.
  • Better replacement of Unicode characters based on their names.
  • Fix an issue where 2l or 2L was interpreted as a numeric long, not as multiplication of a symbol.
  • Rename result keys to be consistently in snake_case.

v0.7.0

26 Jul 16:12
Compare
Choose a tag to compare

Changelog:

  • Use Gunicorn to serve requests in production, rather than relying on the builtin Flask server explicitly not intended for production use.
  • Fix an issue whereby derivatives were simplified despite an attempt at disabling this. There is now a global constant to enable/disable this, which needs refactoring as an argument to check(...).
  • Fix a bug when checking differential equations that contained multiple derivatives of different orders, where the inner lower-order derivatives were replaced too early.
  • Correctly parse relations (=, <, <= etc) rather than replace them using a regular expression.
  • Refactoring of unit tests to separate out functionality.
  • Update to use SymPy version 1.2 and newer versions of other dependencies.

v0.6.0

31 May 13:10
Compare
Choose a tag to compare

Changelog:

  • Ignore symbols prefixed with an underscore when processing provided custom symbols. This allows metasymbols to be included without having to remove them before passing to the checker.

v0.5.0

31 May 13:08
Compare
Choose a tag to compare

Changelog:

  • Allow numeric input to include decimal points without a number before them: e.g. .5 as well as 0.5.
  • Prevent attempts to parse empty strings.

v0.4.0

20 Feb 15:43
Compare
Choose a tag to compare

Changelog:

  • Improved support for custom symbols; functions and operators can be passed without breaking anything, and those which are not valid Python variables will be (silently) ignored. This allows functions and operators relevant to an expression/equation to be included without breaking anything.
  • Update dependencies, notably sympy from 1.0 to 1.1.1.
  • Fix an issue with complex infinity in numeric checking code.

v0.3.0

29 Jan 16:30
Compare
Choose a tag to compare

Changelog:

  • Much more effectively sanitise untrusted input, especially Unicode input and Python keywords.
  • Allow diff(...) syntax for derivatives.
  • Allow Mathematica style function names: Sin(...), Cos(...) etc.
  • Allow function exponentiation: cos**2(x) for cos(x)**2 for instance.

v0.2.0

10 Jul 15:29
Compare
Choose a tag to compare

Changelog:

  • Split out the parsing into another file and use a slightly modified version of the SymPy parsing code to prevent evaluation of function arguments. This allows the parser to distinguish cos(x) and cos(-x) for instance.
  • Remove support for factorials until better integration with numeric testing can be added.
  • Add clearer README and LICENSE files.
  • Deprecate Vagrant requirement, move directly to Docker.

v0.1.0

10 Jul 15:25
Compare
Choose a tag to compare

First production ready release, ran on live server from October 2016 to June 2017.

Supported Functions and Operations

Standard Operations

  • Addition (+)
  • Multiplication (*, implicitly xy, implicitly x y)
  • Exponentiation (**, ^)
  • Unary Negation (-)

Where division and subtraction are expressible in terms of the above

Numbers

  • Integers (0, 1, -1, ...)
  • Decimals (0.123, ...)
  • Rational Numbers (1/2, ...)

Trigonometic Functions

  • Standard trig functions (sin(), cos(), tan())
  • Inverse trig functions (arcsin(), arccos(), arctan())
  • Reciprocal trig functions (cosec(), sec(), cot())
  • Inverse reciprocal trig functions (arccosec(), arcsec(), arccot())
  • Hyperbolic trig functions (sinh(), cosh(), tanh())
  • Inverse hyperbolic trig functions (arcsinh(), arccosh(), arctanh())
  • Reciprocal hyperbolic trig functions (cosech(), sech(), coth())

No inverse reciprocal hyperbolic trig functions

Logarithms and Exponentials

  • Exponential function (exp())
  • Natural logarithm (ln(), log())
  • Logs to other bases (log(x, base))

Other Basic Functions

  • Square root (sqrt())
  • Modulus (abs())

Calculus

  • Derivatives (Derivative(y, x), Derivative(y, x, 2), Derivative(y, x, x), ...)

Equations and Inequalities

  • Equations (x == y)
  • Inequalities (x < y)