You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit dc0463c
Browse filesBrowse the repository at this point in the historyBrowse files
Keep expansions and nested results across one outermost Simplify (#2015)
* Keep expansions and nested results across one outermost Simplify
Simplify expanded, factored and re-simplified the same trees over and over.
The polynomial pass in Simplificator.Alternate ran res.Expand() once per
variable; Patterns.SumOfFractions simplified the product of the denominators
afresh and the Expand and Factorize candidates were simplified again; and
PolynomialFactoring.TryGetRationalCoefficients expanded once more. For
t^4/((b t^2 + a + a t^2)^2 (1 + t^2)), the integrand Rubi's 4.1.7:136 hands
the homogeneous substitution, 11.0 of 12.09 GB was one 342-term product
expanded 72 times; 7.4.2:891 ran 2,145 factoring calls on 200 distinct
polynomials and 1,232 nested Simplify calls on 214 distinct trees.
The polynomial pass now expands each candidate once. Expansions and nested
Simplify(expr, level) results are kept in a thread-static table that lives
for the outermost Simplify only, keyed by the tree's value, each entry with
its own SettingsState snapshot and used only while it still holds; only
elementary trees are kept, and nothing while a RewriteRecording is open.
Answers are identical. Chain against master 08a3c49: pocket of 3,836 rows
(every 15th of each family, every 2nd of 4.1.7 and 7.4.2), allocation over
the 3,813 solved on both 648.4 -> 375.8 GB and time 1,012 -> 815 s; samples
of every family unchanged in verdicts, allocation down 19-70% per family
(family 4 133.5 -> 64.7 GB); no row's allocation grew past 1.3x. Alone,
1.3.2:599 and 3.3:246 timeout -> answered, 6.6.3:213 timeout -> declined.
Part of #233.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
* Record SimplifyHard's lower allocation in the kernel performance baseline
The gate reported IMPROVED: SimplifyHard allocates 157,895,384 B/op, 10.0%
below the 175,442,312 recorded at 7c0dce12 on 2026-09-28, where the baseline was last
taken. The file is the one this pull request's own Benchmark job wrote,
measured-CommonFunctionsInterVersion.json from its artifact, copied over the
baseline as version_performance_control.md describes. Every other gated row
is within its band: SimplifyEasy +0.8%, Derivate +0.8%, SolveHard -1.5%.
The run was on .NET 10.0.13 on a 4-core Ubuntu 24.04 runner, where the
previous baseline records .NET 10.0.10 on an 8-core Ubuntu 26.04 machine, so
the recorded times are the runner's; the gate fails on time only past 3x.
The ungated map and its reasons are carried over.
Part of #233.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
---------
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: Sources/Tests/DotnetBenchmark/performance-baseline.json
+38-38Lines changed: 38 additions & 38 deletions
Original file line number
Diff line number
Diff line change
@@ -1,94 +1,94 @@
1
1
{
2
2
"comment": "Allocated bytes and mean nanoseconds per operation for the popular use cases of https://github.com/asc-community/AngouriMath/issues/746. Checked by PerformanceGate.cs; see Sources/AngouriMath/Docs/WhatsNew/version_performance_control.md for when updating it is legitimate.",
0 commit comments