Repository navigation
v2.0.0-preview.1
Pre-releaseThe first preview of 2.0, the release where AngouriMath changes answers it was getting wrong.
Please read BREAKING-CHANGES.md before upgrading. It lists every place the same input now gives a different result, with the value before and the value now, both measured on a build rather than taken from the diff.
Why a preview rather than 2.0.0
Most of 2.0 is a wrong answer becoming a right one. That is still a breaking change if you built on the wrong one — and a large share of these changes are silent: the call still succeeds and quietly returns something else. No compiler error, no exception, just a different value.
Those are the ones a preview exists to surface. If you depend on AngouriMath, this is the build to try before 2.0.0 is final.
The loud breaks — the compiler will find these for you
| was | is | |
|---|---|---|
| target frameworks | net7.0;netstandard2.0 |
netstandard2.0;net8.0;net10.0 |
| 28 members deprecated since 1.x | obsolete but present | removed |
Latexise, ILatexiseable, entity_latexise |
the British spelling | Latexize, ILatexizeable, entity_latexize |
MathS.Quantum.Factorise |
one letter from the unrelated Entity.Factorize |
MathS.Quantum.TensorFactorize |
MathS.Quantum.IsNormalised |
the British spelling | IsNormalized |
Minusf.Minuend / .Subtrahend |
named for the wrong operand | named for the right one |
AssemblyVersion is pinned at 2.0.0.0 for the whole of 2.x, so later 2.x releases are drop-in replacements for this one.
The silent ones — these are what to test against
A sample; the full list with worked examples is in BREAKING-CHANGES.md.
sqrt(x^2)andsqrt(-x)are left as written instead of being simplified toxandi*sqrt(x), which were wrong for negativex.Real%follows the sign of the divisor:-7 % 3is2, was-1.- Radicals are reduced everywhere:
sqrt(12)is now2 * sqrt(3). - Numbers below
1e-16are kept rather than rounded to0. - An identity equation solves to all of
CC, not{ }or{ 0 }. - Many limits that returned
NaNor stayed unevaluated now return a value. Stringizeoutput parses back for powers, lambdas, applications, piecewises and complex numbers with a fractional imaginary part. If you parse printed output, read that section.- Boolean expressions are minimised where that is shorter, rather than factored.
- Some integrals return closed forms that were not antiderivatives before — and two that were answered correctly are now unevaluated, a deliberate loss.
Reporting
If something you relied on changed and it is not in BREAKING-CHANGES.md, that is a bug in the notes as much as in the code — please open an issue either way. A silent change found now is one that does not arrive against 2.0.0 final.
Packages: AngouriMath, AngouriMath.FSharp, AngouriMath.Interactive, AngouriMath.Terminal.