Skip to content

Hyperbolic powers two apart whose coefficients kill the reduction's residual are integrated - #1467

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
hyperbolic-power-pairs
Sep 22, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
hyperbolic-power-pairs

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

cosh(x)^(5/2) - 3 sqrt(cosh(x))/5 was left as written, and neither of its terms has an elementary antiderivative — both are elliptic. Their combination has one, and that is the whole rule: from

int cosh^p = sinh cosh^(p - 1)/p + (p - 1)/p int cosh^(p - 2)

a sum of powers two apart is elementary exactly when the walk from the highest exponent down carries nothing past the lowest, and the answer is what the walk accumulated. The hyperbolic sine's reduction subtracts where the cosine's adds (cosh^2 = sinh^2 + 1 against sinh^2 = cosh^2 - 1), and a gap in the exponents is simply a term with coefficient zero — which is what lets the chain run several steps: Rubi's x/sech(x)^(7/2) - 5 x sqrt(sech(x))/21 closes over two, its coefficient being (5/7)(1/3).

Three things the measurements decided:

  • One linear factor in front is taken by parts inside the rulex F - int F, where F is the accumulated antiderivative and int F is the next power over p^2 a^2. A second power of x would need int f^p itself, which is elliptic, so it is declined.
  • Before the sum split. Registered after it, the csch rows took 55 s: the split hands each elliptic term to the whole chain and only then finds out. Before it, they are 1–20 s.
  • Each term is read over its own bar. 1/sech(y)^(5/2) arrives as (c^(-5/2))^(-1) or 1/(1/c)^(5/2) depending on what rewrote it, and both are c^(5/2); reading spellings instead of exponents is what made the first three versions decline the Rubi rows while answering the same integrand written as cosh^(5/2).

The gathering of a common linear factor of a sum is shared with a small new route that hands such a sum on as a product (x cosh(x)^(3/2) - x sqrt(cosh(x))/3x (…)), for the shapes where parts, not this rule, does the work.

Measured (final build):

  • Family 6 (familycap.sh 6 20): 366 → 375/417, 0 wrong, timeouts 21 → 17 — 6.1.1:124, 6.2.1:98/127, 6.5.1:24/25/26, 6.6.1:24/25/26; nothing lost.
  • Family 7: 215/270, 0 wrong, unchanged. 1774-problem suite: 1707, 0 wrong, 0 timeout, unchanged.
  • Unit suite: 12,627 tests, 0 failed. bench.sh: PASSED on all 19 gated benchmarks.
  • A combination whose coefficient does not kill the residual (cosh^(5/2) - cosh^(1/2)/2) is still declined, and the test pins that.

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

…esidual are integrated

`cosh(x)^(5/2) - 3 sqrt(cosh(x))/5` was left as written, and neither of
its terms has an elementary antiderivative -- both are elliptic. Their
combination has one. From the reduction
`int cosh^p = sinh cosh^(p - 1)/p + (p - 1)/p int cosh^(p - 2)`, a sum of
powers two apart is elementary exactly when the walk from the highest
exponent down carries nothing past the lowest, and the answer is what the
walk accumulated; the hyperbolic sine's reduction subtracts where the
cosine's adds, and a gap in the exponents is a term with coefficient zero.
The chain may be several steps long -- Rubi's
`x/sech(x)^(7/2) - 5 x sqrt(sech(x))/21` closes over two, its coefficient
being (5/7)(1/3).

One linear factor in front is taken by parts inside the rule, `x F - int F`
with `int F` the next power over `p^2 a^2`, since a second power of x would
need `int f^p` itself. The rule runs before the sum is split, which would
hand each elliptic term to the whole chain and spend a minute finding that
out, and it reads each term over its own bar, so that `1/sech(y)^(5/2)`,
`(c^(-5/2))^(-1)` and `c^(5/2)` are one exponent. The gathering of a common
linear factor of a sum is shared with the route that hands such a sum on as
a product.

Family 6 of the Rubi suite: 366 -> 375 of 417, 0 wrong; family 7 215/270
and the 1774-problem suite 1707 unchanged. Suite 12627 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 48d447c 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