Skip to content

Integrate an inverse hyperbolic function by parts against its logarithm - #1969

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
by-parts-against-an-inverse-hyperbolic-function-as-its-logarithm
Oct 20, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
by-parts-against-an-inverse-hyperbolic-function-as-its-logarithm

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

The parser writes each inverse hyperbolic function as a logarithm, ln(A + sqrt(A^2 + k)) or ln((1 + u)/(1 - u)). Differentiated as written, that is a quotient with the root in both parts, which the search never brought down to the root alone. The rule writes the derivative as the algebraic function it is, A'/sqrt(A^2 + k) or 2 u'/(1 - u^2), and integrates P + Q L as ∫P + G L - ∫G L', with G the antiderivative of Q.

It declines where:

  • Q is a polynomial, which is already answered;
  • Q is not rational: beside a root, the rules for the inverse function answer, and the root's integral asked here first took their time;
  • G holds L itself;
  • the answer would hold on part of the line only;
  • a factor below Q's bar divides the function's own quadratic, as in atanh(a x)/(1 - a^2 x^2)^3, which the substitution under the function answers;
  • an artanh's argument is not linear.

Each limit came from a measured loss. Validated by chain four times, on 8a1ef454, branch against master:

  1. Early, unrestricted: 116 problems master answers timed out.
  2. With Q rational: one wrong answer, the master defect fixed in Take an interval's size without squaring, so a size past the doubles does not agree #1966, and two losses.
  3. With the quadratic exclusion: clean.
Run Problems Master Branch
Pocket: Rubi's 7.x, every third solved problem 1,502 1,384 solved 1,395 solved
Family 1, 40 a file 1,381 1,362 1,362
Family 0, whole 1,814 1,789 1,789
Families 2 to 8, sampled 2,410 2,362 2,362

Re-run alone on both builds, 10 problems go from timed out to answered: Rubi's 7.1.4:20, 7.2.4:621/629/630, 7.5.1:165, 7.5.2:14/15, 7.6.1:151/152 and 7.6.2:13. None of master's answers is lost, and no run had a wrong answer.

In that chain, five 7.3.7 problems that master declines in 1–11 s timed out instead, all atanh(x sqrt(e)/sqrt(d + e x^2))/x^n. The last limit, a linear argument for the artanh, was added for them after the chain. Probed on this rebased branch, those problems answer, through #1952's rule, and so do all ten gains and both earlier losses: 13 of 13.

A sweep of the 55 rows with one linear inverse hyperbolic function and a whole power of a quadratic below the bar: master answers 49, the branch 55.

ByPartsAgainstAnInverseHyperbolicFunctionAsItsLogarithmIntegralTest includes 7.6.1:130 and both losses. BREAKING-CHANGES.md has the entry.

Part of #233.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

The parser writes each inverse hyperbolic function as a logarithm,
ln(A + sqrt(A^2 + k)) or ln((1 + u)/(1 - u)). Differentiated as written, that is
a quotient with the root in both parts, which the search never brought down to
the root alone. Its derivative is now written as the algebraic function it is,
A'/sqrt(A^2 + k) or 2 u'/(1 - u^2), and P + Q L is integrated as
integral P + G L - integral G L', with G the antiderivative of Q. Rubi's
x (a + b acosh(c x))/(d + e x^2)^2, x^3 (a + b asech(c x))/(d + e x^2)^3,
asech(a + b x)/x^3 and acsch(a + b x)/x^3 were past the budget.

The rule declines where:
- Q is a polynomial, which is answered already, or not rational: beside a root,
  the rules for the inverse function answer, and the root's integral asked
  here took their time;
- G holds L itself;
- the answer holds on part of the line only;
- a factor below Q's bar divides the function's own quadratic, as in
  atanh(a x)/(1 - a^2 x^2)^3, which the substitution under the function answers;
- an artanh's argument is not linear.

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 20, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit 3d3a99b into master Oct 20, 2026
40 of 43 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 20, 2026
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