Skip to content

A logarithm of a nested quotient is written over one bar under the exponential substitution - #1410

Merged
Rafael-SOWNet merged 2 commits into
masterfrom
logarithm-argument-over-one-bar
Sep 18, 2026
Merged

Rafael-SOWNet merged 2 commits into
masterfrom
logarithm-argument-over-one-bar

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

1/sqrt(atanh(tanh(a + b x))) was answered in 300 ms before the exponential substitution took a symbolic slope (#1377) and not after — the one known loss of that PR. atanh(tanh(a + b x)) reaches the chain as 1/2 ln((1 + (w - 1)/(w + 1))/(1 - (w - 1)/(w + 1))) in w = e^(2(a + b x)), and under u = w that logarithm is 1/2 ln(u); but SingleQuotient.Combine on the way in reaches the quotient the integrand is and not one inside a function, Simplify combines nothing (#1239 — (1 + (u - 1)/(u + 1))/(1 - (u - 1)/(u + 1)) simplifies to (8 - 8/(u + 1))(u + 1)/8), and the substitution search compared its candidates against the nested spelling and never saw the u.

Under the exponential substitution, every logarithm whose argument is a rational function of u with a quotient nested in it is now written over one bar in lowest terms (combine, polynomial gcd, and a Simplify of the small result), where that is smaller than what it replaces, before the question in u is asked. Nothing changes for Simplify itself.

row 2.5.0 master 84b0a9cf this branch
1/sqrt(atanh(tanh(a + b x))) unevaluated after 49 s unevaluated, 1.4 s 2 sqrt(1/2 ln(e^(2bx + 2a)))/(1/2)/(2b), 0.3 s
atanh(tanh(a + b x))^(1/2) unevaluated unevaluated answered, 50 ms

Measured, all detached and alone on the machine:

  • suite green locally (11526 passed, 6 m 49 s); three rows in ExponentialSubstitutionIntegralTest, differentiated back with the parameters pinned.
  • Independent Rubi suite: 1706/1774, 0 wrong, 0 timeouts — identical verdicts to master (0 changed).
  • Family 7 (inverse hyperbolic, 270): 152/270 from 150, 0 wrong: 1/sqrt(atanh(tanh(a+b x))) and x/atanh(tanh(a+b x))^(5/2) Unsolved → Solved, nothing lost. The run reports four "errors": the sample was run under an 8 GB virtual-memory cap, and (c - c/(a^2 x^2))^(9/2)/e^(3 acoth(a x)) reaches 8.4 GB in 30 s on master as well (/usr/bin/time -v, both builds), not observing the 5 s budget; under the cap it throws OutOfMemoryException and the three asech rows after it inherit the exhausted process (2–12 ms each; all three are unevaluated solo, on both builds). A pre-existing runaway, next on my list, not this branch's.
  • Family 6 (hyperbolic, 417): 316/417 from 315, 0 wrong: sech(c+d x)^3 (a + b tanh(c+d x)^2)^2 Timeout → Solved, nothing lost.

Part of #718.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Rafael-SOWNet and others added 2 commits September 18, 2026 12:03
…ponential substitution

1/sqrt(atanh(tanh(a + b x))) was answered in 300 ms before the
exponential substitution took a symbolic slope (#1377) and not after.
atanh(tanh(a + b x)) arrives at the chain as
1/2 ln((1 + (w - 1)/(w + 1))/(1 - (w - 1)/(w + 1))) in w = e^(2(a + b x)),
and under u = w that logarithm is 1/2 ln(u); but the combining on the
way in reaches the quotient the integrand is and not one inside a
function, the simplifier combines nothing (#1239), and the substitution
search compared its candidates against the nested spelling and never
saw the u. Every logarithm whose argument is a rational function of u
with a quotient nested in it is now written over one bar in lowest
terms where that is smaller, before the integrand in u is asked.

Part of #718.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
…ntial substitution

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
@Rafael-SOWNet
Rafael-SOWNet merged commit 06df32e into master Sep 18, 2026
31 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