Skip to content

A rational function of e^y with a symbolic denominator is integrated by the hyperbolic half angle - #1466

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
hyperbolic-half-for-symbolic-denominators
Sep 22, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
hyperbolic-half-for-symbolic-denominators

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

csch(x)^2/(a + b sinh(x))^2 was a search past eighty seconds: under u = e^x its denominator is a symbolic quartic nothing factors. Under u = tanh(x/2) it is a rational function whose written factors the symbolic partial fractions answer — and SolveARationalFunctionOfTheHyperbolicTangent took that half only where every exponential was written with an even factor (coth(c + d x)'s e^(2(c + d x))). It is taken now for a root-free integrand of a plain e^y as well, where the denominator's shape depends on a symbol: read as a polynomial in v = e^y, a coefficient that is not a number times the first, and two distinct factors of v below the bar.

Both conditions come from measurements, and each cost a round:

  • The content test. tanh(x)^6/(a + a sech(x)) has a for its content and the rest factors over the rationals, so u = e^x answers it a page shorter. The first version took the half there and produced 12,502 characters against the 8,000 the suite pins (SymbolicFactorsPartialFractionsTest.TheCoefficientsAreInLowestTerms) — the corpus was green and the unit suite caught it.
  • Two factors. e^asinh(a + b x)/x^4 leaves e^u (e^u + e^-u)/(e^u - e^-u - 2a)^4 after the inverse hyperbolic substitution: root-free, symbolic, but a single quadratic in v to the fourth, whose roots the quadratic formula gives — one second under u = e^x against thirty under the half. Bare v is not counted, being where an odd power of it was gathered.
  • The order. With the half taken for a symbolic denominator, SolveByBiochesOddHyperbolicSubstitution (A rational function of the hyperbolic functions odd in the sine or the cosine is integrated by the other #1464) must come before this route: cosh(x)^7/(a + b cosh(x)^2) and sech(x)^3/(a + b sinh(x))^2 are half a second by u = cosh(x) and past the budget by the half, which makes a polynomial of twice the degree. Measured: without the reorder family 6 fell to 359, below master.

Measured (final build):

  • Family 6 (familycap.sh 6 20): 363 → 366/417, 0 wrong, timeouts 22 → 21; 6.1.5:116 and 6.6.3:112/157 gained, nothing lost.
  • Family 7: 215/270, 0 wrong, unchanged. 1774-problem suite: 1707, 0 wrong, 0 timeout, unchanged.
  • Unit suite: 12,619 tests, 0 failed. bench.sh: PASSED on all 19 gated benchmarks.

BREAKING-CHANGES.md carries the entry with the 2.5.0 column measured on a 2.5.0 build.

Part of #718.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

…by the hyperbolic half angle

`csch(x)^2/(a + b sinh(x))^2` was a search past eighty seconds: under
u = e^x its denominator is a symbolic quartic nothing factors. Under
u = tanh(x/2) it is a rational function whose written factors the
symbolic partial fractions answer, and the route took that half only
where every exponential was written with an even factor. It is taken now
for a root-free integrand of a plain e^y as well, where the denominator's
shape depends on a symbol: read as a polynomial in v = e^y, a coefficient
that is not a number times the first, and two distinct factors of v below
the bar.

Both conditions are measured, not supposed. `tanh(x)^6/(a + a sech(x))`
has `a` for its content and the rest factors over the rationals: it
answers a page shorter under u = e^x, and the suite's bound on the
length of that answer is what caught the first version. `e^asinh(a + b x)/x^4`
leaves `e^u (e^u + e^-u)/(e^u - e^-u - 2a)^4` -- one symbolic quadratic to
the fourth, whose roots the quadratic formula gives -- in a second under
u = e^x against thirty under the half; bare v is no factor, being where an
odd power of it was gathered.

And Bioche's hyperbolic rule goes before this route, not after: with the
half taken for a symbolic denominator, `cosh(x)^7/(a + b cosh(x)^2)` and
`sech(x)^3/(a + b sinh(x))^2` are half a second by u = cosh(x) and past
the budget by the half, which makes a polynomial of twice the degree.

Family 6 of the Rubi suite: 363 -> 366 of 417, 0 wrong; family 7 215/270
and the 1774-problem suite 1707 unchanged. Suite 12619 passed; allocation
gate passed on all 19 gated benchmarks.

Part of #718.

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 4770e4a into master Sep 22, 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