Skip to content

Integrate a polynomial beside a logarithm of a quotient of linears by its logarithmic derivative - #2005

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
integrate-by-the-logarithmic-derivative-of-a-quotient-power
Oct 21, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
integrate-by-the-logarithmic-derivative-of-a-quotient-power

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #233.

By parts, ∫ P F is S F - ∫ S F' with S = ∫ P. F' is now read with the power of the quotient written apart, B n (b/(a + b x) - d/(c + d x)), which is exact since (Q^n)'/Q^n = n Q'/Q. Taken whole, the derivative was two terms over (c + d x)^2 (a + b x), and each remainder was divided by that cubic with its coefficients simplified.

Over a power of a linear, the partial fraction at the pole the antiderivative was matched to is a zero over a constant, which the inner simplification writes 0 provided c != 0. The question in u = f + g x is now asked without that condition (the generic case). The substitution search used to spend seconds declining it.

Measured against master 20a4b39, then rebased onto a567c8b:

master this
pocket, 1,202 rows of Rubi's 3.x 1,171 solved, 23 timeouts 1,179 solved, 15 timeouts
wrong 0 0
samples of families 0–8 — unchanged, except 3.x 220 → 221

The ten rows that moved, re-run alone (time, allocation):

row master this
3.2.1:258 20.4 s, 46.9 GB 58 ms, 0.03 GB
3.2.1:48 17.4 s, 13.1 GB 2.8 s, 1.2 GB
3.2.1:76 15.1 s, 12.5 GB 259 ms, 0.1 GB
3.2.1:84, 287, 292; 3.2.2:140, 150, 151 timeout 43 ms – 2.6 s
3.2.2:288 22.8 s, 29.9 GB 20.3 s, 29.9 GB (not reached)

No row solved on both arms grew its allocation past 1.3×. ExponentialSubstitutionIntegralTest.ADilogarithmIsDeclinedAtOnce("x^2*sech(x)^2") failed once locally, at load 17, against its 20 s bound. It passed alone, and it allocates 0.999 GB on both master and this branch, so the change does not reach it.

The entry in BREAKING-CHANGES.md has 2.5.0's column measured.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

… its logarithmic derivative

By parts, the integral of P F is S F minus the integral of S F', and F' is now read with the
power of the quotient written apart, B n (b/(a + b x) - d/(c + d x)), since (Q^n)'/Q^n is
n Q'/Q. Taken whole, the derivative was two terms over a cubic, and each remainder was divided
by it with simplified coefficients. Over a power of a linear, the question in u = f + g x is
now asked without the `0 provided c != 0` the pole's own fraction carries, which the
substitution search spent seconds declining.

Pocket of 1,202 rows in Rubi's 3.x: 1,171 -> 1,179 solved, 23 -> 15 timeouts, 0 wrong on
either arm. Samples of every family unchanged, except 3.x 220 -> 221. The ten rows that
moved, re-run alone: 4/10 -> 10/10 solved; 3.2.1:258 20 s -> 58 ms (46.9 GB -> 0.03 GB),
3.2.1:48 17 s -> 2.8 s. No row's allocation grew past 1.3x.

Part of #233.

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 21, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit a4e7656 into master Oct 21, 2026
34 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 21, 2026
Rafael-SOWNet added a commit that referenced this pull request Oct 21, 2026
…ower of u

The rule that reads an exponential's exponent P as the variable, beside its
derivative, wrote P as u only where it stood as written. Taking the leading
coefficient's power out of a power below the bar hands on
e^P P'/(P/c)^k, where P/c is another polynomial, so
e^(a + b x + c x^2) (b + 2 c x)/(a + b x + c x^2)^3 went on to the ansatz
and ran out of time, where it is e^u/u^3. A polynomial equal to k P
coefficient by coefficient is now read as k u, and a whole power of one as
the power of k times the power of u.

Rubi's 2.3: the cube, past 60 s on master f7f2a7a, is answered in 27 ms
(197 characters); the square, 14.4 s and 9.9 GB there, takes 0.3 s and
7 MB (114 characters, carrying a factor that is 1). 2.5.0 declined both.

Of the other 21 rows the branch's chain moved against 4877ed2, 18 answer
identically on master f7f2a7a and here, and 3 are declined or past 20 s on
both: #2005 and #2012 have since written the other mechanisms this branch
had, and those are not part of it any more.

Part of #233.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
Rafael-SOWNet added a commit that referenced this pull request Oct 21, 2026
…ower of u

The rule that reads an exponential's exponent P as the variable, beside its
derivative, wrote P as u only where it stood as written. Taking the leading
coefficient's power out of a power below the bar hands on
e^P P'/(P/c)^k, where P/c is another polynomial, so
e^(a + b x + c x^2) (b + 2 c x)/(a + b x + c x^2)^3 went on to the ansatz
and ran out of time, where it is e^u/u^3. A polynomial equal to k P
coefficient by coefficient is now read as k u, and a whole power of one as
the power of k times the power of u.

Rubi's 2.3: the cube, past 60 s on master f7f2a7a, is answered in 27 ms
(197 characters); the square, 14.4 s and 9.9 GB there, takes 0.3 s and
7 MB (114 characters, carrying a factor that is 1). 2.5.0 declined both.

Of the other 21 rows the branch's chain moved against 4877ed2, 17 answer
identically on master f7f2a7a and here, and 4 are declined or past 20 s on
both: #2005 and #2012 have since written the other mechanisms this branch
had, and those are not part of it any more.

Part of #233.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
Rafael-SOWNet added a commit that referenced this pull request Oct 21, 2026
…ower of u (#2020)

The rule that reads an exponential's exponent P as the variable, beside its
derivative, wrote P as u only where it stood as written. Taking the leading
coefficient's power out of a power below the bar hands on
e^P P'/(P/c)^k, where P/c is another polynomial, so
e^(a + b x + c x^2) (b + 2 c x)/(a + b x + c x^2)^3 went on to the ansatz
and ran out of time, where it is e^u/u^3. A polynomial equal to k P
coefficient by coefficient is now read as k u, and a whole power of one as
the power of k times the power of u.

Rubi's 2.3: the cube, past 60 s on master f7f2a7a, is answered in 27 ms
(197 characters); the square, 14.4 s and 9.9 GB there, takes 0.3 s and
7 MB (114 characters, carrying a factor that is 1). 2.5.0 declined both.

Of the other 21 rows the branch's chain moved against 4877ed2, 17 answer
identically on master f7f2a7a and here, and 4 are declined or past 20 s on
both: #2005 and #2012 have since written the other mechanisms this branch
had, and those are not part of it any more.

Part of #233.


Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant