Skip to content

Integrate a power of x times an artanh whose derivative is a root, by parts - #1952

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
by-parts-against-an-artanh-whose-derivative-is-a-root
Oct 19, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
by-parts-against-an-artanh-whose-derivative-is-a-root

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #233.

x^m atanh(sqrt(e) x/sqrt(d + e x^2)) was declined or ran out of time for every power from x^6 to 1/x^9. The parser writes atanh(u) as ln((1 + u)/(1 - u))/2. For u = A x/sqrt(d + B x^2) with A^2 = B, that logarithm's derivative is 2 A/sqrt(d + B x^2), because 1 - u^2 = d/(d + B x^2) and u' = A d/(d + B x^2)^(3/2). By parts, what is left is x^(m + 1)/sqrt(d + B x^2). The new rule, SolveByPartsAgainstAnArtanhWhoseDerivativeIsARoot, takes it that way. Differentiated as written, the logarithm was a quotient of two sums with a root in each, and the search ran past its budget. The identity is algebraic, with no branch in it.

Measured against master 8a1ef454:

master this branch
Rubi 7.3, all 1,791 rows 1,752 1,765
moves, each re-run alone 13 (7.3.7:10-12, 15-24) unevaluated or timed out → solved, 0 wrong. A 14th, 3.5:37, is a timing artefact the rule does not touch
families 0 (whole) and 1 (40 a file), samples of 2–8 identical
performance gate passed
suite 15,602 passed, 0 failed

Rebased onto #1950 and #1951 without conflict. All 13 rows were declined by 2.5.0 too, and BREAKING-CHANGES.md has the entry.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

… parts

atanh(A x/sqrt(d + B x^2)) with A^2 = B is written ln((1 + u)/(1 - u))/2,
whose derivative is A/sqrt(d + B x^2): 1 - u^2 = d/(d + B x^2) and
u' = A d/(d + B x^2)^(3/2). So by parts what is left is
x^(m + 1)/sqrt(d + B x^2), which the radical rules answer. Differentiated as
written, the logarithm was a quotient of two sums with a root in each, and
the search on what was left ran past the budget.

Rubi's 7.3.7: 13 rows go from unevaluated or timed out to solved (7.3
1752 -> 1765 of 1791), 0 wrong. Families 0 and 1 and samples of 2-8
otherwise identical; gate and suite pass.

Part of #233.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
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