diff --git a/src/content/_templates/bottom.html b/src/content/_templates/bottom.html index 9551cd5a5..2f44f9448 100644 --- a/src/content/_templates/bottom.html +++ b/src/content/_templates/bottom.html @@ -6,7 +6,7 @@











-Angouri © 2019-2023 · +Angouri © 2019-2026 · Project's repo · Site's repo · Octicons · diff --git a/src/content/index.html b/src/content/index.html index ab810744f..f9cad5b45 100644 --- a/src/content/index.html +++ b/src/content/index.html @@ -1,8 +1,4 @@  -

- NOTE: AngouriMath is deprecated; read more -

-

What is AngouriMath?


diff --git a/src/content/quickstart/index.html b/src/content/quickstart/index.html index 20319332f..4b6cbcda3 100644 --- a/src/content/quickstart/index.html +++ b/src/content/quickstart/index.html @@ -39,12 +39,15 @@

Install for F#

dotnet add package AngouriMath.FSharp

- The current release is 2.1.0, and both it and 2.0.0 change answers that earlier versions + The current release is 2.5.0, and every 2.x release changes answers that earlier versions got wrong. Whichever version you are coming from, read BREAKING-CHANGES.md first: it lists every input whose result is now different, with the old value and the new one, - under a heading per release. 2.1.0 is a drop-in replacement for 2.0.0 — the assembly version is - pinned at 2.0.0.0 for the whole of 2.x. + under a heading per release, and says whether the change is silent — the call still + succeeds and returns something else — or loud. The assembly version is pinned at + 2.0.0.0 for the whole of 2.x, so each release binds in place of the last; since + 2.0.0 only 2.2.0 renamed members, two of them, and no other release removes anything a caller + can hit. What each release did is on the What's new page.

The library targets netstandard2.0, net8.0 and net10.0. diff --git a/src/content/whatsnew/index.html b/src/content/whatsnew/index.html index 5ef8f61fe..33f23f361 100644 --- a/src/content/whatsnew/index.html +++ b/src/content/whatsnew/index.html @@ -34,7 +34,165 @@

What's new

--> -
2.1.0 +
2.5.0 +

+ Tier 2 of the Math OS roadmap — + the rewrite graph — is finished. An e-graph lives in the kernel rather than in a measurement + harness, every one of the thirty registered rule sets runs as data through a real e-matcher, and each + rule declares its own soundness tier and how much it grows what it matches. The honest result is the + part worth reading: Simplify still does not run on the graph, because the tier + asked for equality saturation to be evaluated against memory cost on real expressions and the + evaluation came back negative. A measurement that says "not by default" is the deliverable. + Every changed answer is in + BREAKING-CHANGES.md + under 2.5.0 — since 2.4.0 — seventy-six entries, twenty-nine of them silent + (the call still succeeds and quietly returns something else) and two loud, where input that + parsed now raises. The recorded public surface has 136 additions and no removals, and + AssemblyVersion stays 2.0.0.0: source- and binary-compatible with 2.4.0. +

+ Wrong answers fixed: +

+ The rewrite graph: + + Speed — each measured at the entry point and answer-identical: + + New notation: + + Closed forms: + + Documentation that is checked: + +

+
+ +
2.4.0 +

+ Tier 1 of the Math OS roadmap + is finished, and the thing that finished it kept finding wrong answers: writing a rewrite rule out + as data — a pattern and a replacement, rather than an arm of a switch — makes + the correspondence between the two something you have to state, and four times this cycle a rule + did not survive stating it. + Every changed answer is in + BREAKING-CHANGES.md + under 2.4.0 — since 2.3.0 — twenty-seven entries, more than half of them silent. + AssemblyVersion stays 2.0.0.0; the 130 recorded removals are + Stringize() and Latexize() ceasing to be abstract per node, + still public on Entity and inherited by every node, so nothing a caller can hit. +

+ Wrong answers fixed: +

+ Factorisation: + + The rule sets are data: + + Performance, honestly: + +

+
+ +
2.3.0 +

+ A correctness release, and the first whose claim to that is measured on an outside corpus: + against Rubi's integration suite — 1774 problems that each carry an antiderivative known to + exist — it answers 604 where 2.2.0-era master answered 536, and gets 0 wrong where that answered 7, + six of the seven being NaN, a definite claim that no value exists made about integrals + that have one. + Every changed answer is in + BREAKING-CHANGES.md + under 2.3.0 — since 2.2.0. This release removes and renames nothing — 103 additions + and 0 removals against the 2.2.0 public API — so it is a drop-in replacement in both the binding and + the source sense, which 2.2.0 was not. +

+ Wrong answers fixed: +

+ Interoperability and names: + + Performance: + +

+
+ +
2.2.0 +

+ An infrastructure release: a real polynomial layer, and a written specification of what + canonical form means here with both halves implemented. The corrected answers in it are mostly + consequences of those two. + Every changed answer is in + BREAKING-CHANGES.md + under 2.2.0 — since 2.1.0. AssemblyVersion stays 2.0.0.0; + see the rename at the bottom before dropping the DLL in without recompiling. +

+ A polynomial layer: +

+ Canonical form, specified and offered: + + Wrong answers fixed: + + One rename: + +

+
+ +
2.1.0

A correctness release. Almost everything below is a wrong answer becoming a right one, and most of it was found by harnesses rather than reported — boundary points where a rule's assumption fails,