Skip to content

A symbol a numerator sum's coefficients share comes out in front of the partial fractions - #1836

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
content-out-of-a-numerator-sum
Oct 10, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
content-out-of-a-numerator-sum

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #718.

(b d + 2c d x)^9/(a + b x + c x^2)^3 ran past a minute, where (b + 2c x)^9/(a + b x + c x^2)^3 is answered in two seconds. The shared d stood in every coefficient the partial fractions divide. SolveByPartialFractions now first takes a symbol that a numerator sum's coefficients share out in front of the integral. Left in the numerator as a constant factor, it was still slow for the same reason.

integrand 2.5.0 master 314fa885 this
(b d + 2c d x)^9/(a + b x + c x^2)^3 past a minute past a minute 76,249 characters, 4.2 s
(b d + 2c d x)^8/(a + b x + c x^2)^3 past a minute past a minute 65,236 characters, 2.0 s

The answers are as long as master's for the forms without d: 76,153 and 65,140 characters. That length is how the partial fractions answer an odd power of the denominator's derivative over a power of it, which u = a + b x + c x^2 would answer in a few lines. It is not this change, and is the next one.

Tests: ContentOutOfANumeratorSumIntegralTest, the second row, differentiated back and compared at six points.

Measured on 14,109 corpus problems, every one whose integrand is a rational function and every one with a secant or a cosecant in it, at the corpus's 5-second budget, against master 314fa885:

master this
solved 13926 13929
unevaluated 98 98
wrong 0 0
past the budget 72 69

Three problems are answered here and not on master, the two of 1.2.1.2 above and one of 1.2.2.4, and none the other way. On the 13,926 both answer the time is 2,100 seconds on master and 2,094 here.

master this
family 0, independent suites (1814) 1782 1782
family 1, 40 a file (1381) 1341 1342
families 2 to 8, sampled (2410) 2331 2331

The harness counts no answer wrong in either. The three problems the builds disagreed on, run again one build at a time: master answers none within the budget, this all three.

The suite passes: 15,191 passed, 13 skipped, none failed. The allocation gate passes: every gated benchmark allocates what the baseline says. The library builds for every target. The entry in BREAKING-CHANGES.md is measured on a build of 2.5.0.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

…he partial fractions

Part of #718.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet Rafael-SOWNet added this to the 2.6.0 milestone Oct 10, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit 492fba6 into master Oct 10, 2026
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant