Settings: the solver prints x + sin(x), not sin(x) + x
Caught by work/docsamples against 6a97c071, the 2.5.0 release commit: the page
was the only one of 84 wiki samples whose output no longer matched what the
library prints. The set is the same; the operand order in the printed sum
changed with the canonicalisation work in 2.5.0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
AllowNewton(false) no longer answers with the empty set
Since asc-community/AngouriMath#1046 an equation no solver settled is answered
with the equation as a set builder rather than with `{ }`. Turning Newton off is
exactly that case, so this page's output block was stale -- and it was stale in
the way the issue was about: `{ }` claims `x + sin(x) = 0` has no roots, and it
has one at 0.
The point the section makes is unchanged; the new output states it more plainly.
Caught by `work/docsamples`, which compiles and runs every sample on this wiki
against a build of the library.
Make every code sample true of 2.0, and checkable
The pages named APIs the library no longer has and printed outputs it no longer
produces. Measured against a 2.0.0 build, 23 of the 90 samples did not compile and
9 more printed something else.
What was wrong:
- Latexise is Latexize since 2.0, and the extensions live in AngouriMath.Extensions,
which no sample said.
- The whole F# page called a function `dy/dx` that has always been `d/dx`, and opened
Functions and Core by paths that do not resolve, so that sample had never compiled.
- Exceptions documented FutureReleaseException, which 2.0 removed; the gap it stood
for now raises NotSufficientlySupportedException, and the distinction from
AngouriBugException is what a reader needs.
- Compilation and Evaluation used Complex without System.Numerics, and printed it as
(9, 0) -- that type has formatted itself <9; 0> since .NET 8.
- An integral prints its constant of integration, and no page said so.
- Differentiating a set maps over its elements, so { 1, 2 } + sin(x) gives { cos(x) }
rather than an unevaluated derivative.
- Output blocks were tagged cs in fourteen places, so they rendered as C# and read as
code.
- Two samples declared the same variable twice to show equivalent lines, and several
printed a value another block had built.
Outputs are now what the library produces, including the two that are worse than they
should be: abs(-sqrt(6)) is not folded (#881) and a solution matrix is not simplified
entrywise (#882). Both are linked from the page rather than tidied away.
Every sample is now compiled and run against the library, and every stated output
compared: 86 samples, 0 compile errors, 0 output mismatches, 57 outputs verified.
Home.md says what the conventions are, since they are what keeps that working.
Updated 13. Settings (markdown)