Differentiation, Simplification, Solvers: three outputs as master prints them
Caught by the documentation-samples harness against cd3b27b9. Each answer is the same
value in a different form. Two are factor order: since #1635 a product puts a letter or a
power of a letter before a sum, so the outputs are x * (cos(x) + a) and x ^ x * (1 + ln(x)).
The third is a union that now absorbs (sqrt(6) / 2; +oo) into (0; +oo), which contains it.
All 89 samples pass with these three changed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
Solvers: the concrete quadratic inequality no longer keeps an abs
#881 folded abs where the sign of its argument is known, released in #901, so
(2x^2 - 3 > 0) and (x > 0) now answers (sqrt(6) / 2; +oo) rather than
(abs(-sqrt(6)) / 2; +oo). The note calling the unfolded form a known wart goes with
it; what remains true is why the endpoint is written as an absolute value at all,
which is the symbolic-coefficient case.
Checked against a build rather than edited by hand: work/docsamples compiles and
runs every sample on this page and compares the printed output to what is written
here.
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 07. Solvers (markdown)