- attempt to revive this project with upgraded tooling, for net8.0, net6.0, net48 and netstandard2.0
- Usability: Operators module now provides I, E and Pi (instead of pi) (breaking)
- Usability: VariableSets.Alphabet provides a-z variables that can be opened on demand
- Fixes issue where operators were generic where they should not have been
- Minor internal simplifications and streamlining
- Uses Math.NET Numerics v4.15.0 or newer
- Better support for decimal values
- Drop From prefix in Expression.FromInt32 et al (breaking)
- Fix evaluation for Csc ~Andrew Boyarshin
- Fully separated unary from N-ary functions, they now have a separate DU
- Distinct known function names: binary atan is now atan2, unary log (log-10) is now lg.
- Introducinig Enriched and Typed expressions, preparing for explicit argument nodes.
- LaTeX: render full-word symbols with mathrm and force cdot in products if necessary
- Infix/LaTeX: visual expressions can now be formatted also to a TextWriter
- Infix/LaTeX: approximations now always render with a decimal point (to clearly distinct from integers)
- Infix: parsing logic reworked to parse via visual expressions (no longer forcing auto-simplified full expressions)
- Approximations now reduce 0.0*x to 0.0 as a practical compromise.
- Polynomial and rational algorithms handle approximations better (especially 0.0).
- Support for compact powers of functions in visual expressions. Enabled by default for LaTeX.
- Simplified visual expression styles, no more customizable function mapping.
- Visual expressions can now be converted to full algebraic expressions.
- More convenient interop with primitive number types
- Uses Math.NET Numerics v4.9.1
- Build with .NET Core SDK 3.1.1
- Bind bessel, hankel functions to Math.NET Numerics special functions ~Jong Hyun Kim
- Bessel ratio functions ~Jong Hyun Kim
- Airy functions ~Jong Hyun Kim
- Docs/Website Improvements, Examples for more languages ~FoggyFinder
- Uses Math.NET Numerics v4.7
- Bessel and Hankel functions ~Jong Hyun Kim
- Uses Math.NET Numerics v4.6
- Supports .Net Standard 2.0
- Code Signing: SHA2 (256) instead of SHA1
- Calculus: fix derivatives of Asin, Acos, Atan ~Jong Hyun Kim
- Trigonometric: fix contraction of cos(a)*sin(b) ~Jong Hyun Kim
- Trigonometric: expansion and contraction of sinh/cosh ~Jong Hyun Kim
- Fix and improve arithmetic of infinity, closer to Mathematica ~Jong Hyun Kim
- Evaluate: powers with negative radix and non-integer exponent are lifted to complex numbers
- Binaries are now signed with a certificate
- Compile expressions to delegates ~Francesco Bertolaccini
- SymbolicExpression: OOP-friendly expression wrapper
- Multi-Arg functions: atan2, log ~Francesco Bertolaccini, FoggyFinder
- Trigonometric.substitute: handle cot, sec, csc correctly ~Francesco Bertolaccini
- Expression.root: apply automatic simplification
- VisualExpressions: introduce alternative visual (instead of semantic) expression structure
- Infix, LaTeX, MathML: formatting using visual expressions
- LaTeX: proper rendering of roots, improved parenthesis handling
- Infix: avoid parenthesis around floating-point approximations
- Drop obsolete print functions (use format instead)
- Infix: support parsing approximations in exponential notation ~FoggyFinder
- Functions: trigonometric functions sec, csc, cot ~FoggyFinder
- Infix/LaTeX: enforce culture invariant floating point format
- Infix/LaTeX: support for underscores in symbol names ~FoggyFinder
- Structure: collectApproximations
- Structure: collectSums, collectProducts, collectPowers
- Structure: collectAll, like collect but continues on accepted nodes
- Structure: collectPredicate, collectAllPredicate
- LaTeX: format symbols with a long name with braces
- Approximation: new concept to represent real (floating point) numbers
- Approximate: new module to partially evaluate/approximate expressions
- Expression: explicit NegativeInfinity DU case
- Evaluate: fix CLI method signature of the evaluate function (cross-language support).
- LaTeX: always emit braces around power operands
- LaTeX: formatter must not skip multiplication sign in some cases ~FoggyFinder
- Infix: parsing sqrt, pow ~FoggyFinder
- Infix: fix bug on parsing hyperbolic functions ~FoggyFinder
- Evaluate: better error message when a symbol is missing ~Cer Lewis
- Polynomial: generate from coefficients list ~Zaid-Ajaj
- Rational: expand to algebraically expand result if its denominator is a number
- MathML: basic strict MathML formatting and parsing support
- Infix/LaTeX: fix missing paranthesis when formatting denominator-free powers
- LaTeX: fix symbols when formatting arcsin, arccos or arctan
- Expression: refactoring; operators are now implemented in module instead of class
- Simplification: more consistent behavior on infinity and complex infinity
- Expression: new Constant expression leaf nodes (e, pi, I, real/floating-point)
- Expression: merge Positive/NegativeInfinity with Infinity
- Expression: Root, Sqrt, Sinh, Cosh, Tanh, ArcSin, ArcCos, ArcTan
- Functions: Sinh, Cosh, Tanh, ArcSin, ArcCos, ArcTan
- Operators: real, pi, infinity, complexInfinity, negativeInfinity
- Operators: log, root, sqrt, sinh, cosh, tanh, arcsin, arccos, arctan
- Numbers: compare/min/max can also handle the new constants
- Structure: collect, collectIdentifiers, collectNumbers, collectFunctions etc.
- Infix: decimal numbers are now parsed as real constant instead of interpreted as rational
- Infix: unicode symbols for infinity, complex infinity and pi
- Calculus: learnt to differentiate the new functions
- Revert FParsec dependency from 1.0.2 back to 1.0.1
- Updated package dependencies (no functional changes)
- NuGet package now lists the proper FSharp.Core package
- Polynomial: square-free factorization
- Polynomial: commonFactors, coefficientMonomial
- Rational: reduce to cancel common simple factors (part of expand)
- Numbers: integer gcd and lcm routines
- Algebraic: summands, factors, factorsInteger
- Expression: FromIntegerFraction
- Infix Parser: interpret decimal notation as exact rational numbers ("0.2" -> "1/5")
- Infix Parser: allow white space after number literal
- Calculus: modified argument order for
taylor
for better currying (breaking!) - Calculus: new
tangentLine
,normalLine
- Calculus: new
differentiateAt
as shortcut fordifferentiate >> substitute
- Calculus: add taylor expansion function
- Better Paket compatibility (and NuGet with -ExcludeVersion)
- Use MathNet.Numerics v3.3.0
- Use official FSharp.Core 3.1.1 NuGet package, drop alpha suffix
- Now using Paket internally to maintain NuGet dependencies
- Package fix to include explicit FSharp.Core reference
- First actual release
- Added and improved infix and latex expression printers and infix parsers
- C# compatibility work: more idiomatic when used in C# or other .Net languages
- Initial version