Skip to content

A power of the variable below the bar beside a root of a quadratic - #1476

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
reciprocal-beside-a-root
Sep 23, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
reciprocal-beside-a-root

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

1/(x^2 sqrt(4 + 3x + 2x^2)) was left as written while 1/(x sqrt(...)) came out — the single factor was read and the repeated one was not. The repeated one is exactly what a round of parts against arccos(a + b x)/x^4 leaves, so a family-5 row came with it.

Under x = 1/t the integrand is -sgn(t) t^(n - 1)/sqrt(q0 t^2 + q1 t + q2): a polynomial over the root of the quadratic read the other way round, which the rules for those already answer (0.3 s).

Three details that decided the implementation, each measured:

  • The radicand is assembled, not substituted into. Q(1/t) is R(t)/t^2, so the root is R^(p/2) |t|^(-p); writing the quotient inside the root leaves a nesting nothing downstream reduces — the same trap as in A root of a quadratic in the tangent is rotated until the quadratic has no linear term #1475.
  • The modulus is a sign in front. sqrt(R/t^2) is sqrt(R)/|t|, so an odd power leaves sgn(t), which at t = 1/x is sgn(x) — what the answers of this family carry anyway.
  • The reciprocal's own t != 0 had to be stripped. InnerSimplified attaches it as a Providedf, and a condition is not an integrand to the rules below: with it attached, 1/(x^2 sqrt(...)) declined while 1/(x^3 sqrt(...)) came out, which is what put me on to it.

SolveByReciprocalSubstitution is this substitution for a different shape — a palindromic quartic under the root, where the reciprocal maps the quartic to itself — and reads nothing here.

Measured (final build):

  • Family 5 (familycap.sh 5 15): 211 → 212/257, 0 wrong. Family 1 (familycap.sh 1 6): 155 → 156/228, 0 wrong. 1774-problem suite: 1707, 0 wrong, 0 timeout, unchanged.
  • Unit suite: 12,662 tests, 0 failed. bench.sh: PASSED on all 19 gated benchmarks.
  • Six forms verified by differentiating back at five points — numeric and symbolic coefficients, n from 2 to 4 — worst relative deviation 0 on every one.

Part of #718.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

`1/(x^2 sqrt(4 + 3x + 2x^2))` was left as written while
`1/(x sqrt(...))` came out: the single factor was read and the repeated
one was not, and the repeated one is what a round of parts against
`arccos(a + b x)/x^4` leaves.

Under `x = 1/t` the integrand is `-sgn(t) t^(n - 1)/sqrt(q0 t^2 + q1 t + q2)`,
a polynomial over the root of the quadratic read the other way round,
which the rules for those answer. The radicand is assembled rather than
substituted into -- `Q(1/t)` is `R(t)/t^2`, and writing the quotient
inside the root leaves a nesting nothing downstream reduces -- and the
modulus that leaves is a `sgn(t)` in front, which at `t = 1/x` is
`sgn(x)`. The reciprocal's own `t != 0` is stripped before the integrand
is handed on: it says what the integrand already says, and a condition is
not an integrand to the rules below, which declined it.

`SolveByReciprocalSubstitution` is this substitution for a different
shape, a palindromic quartic under the root, and reads nothing here.

Family 5 of the Rubi suite: 211 -> 212 of 257, family 1 155 -> 156 of 228,
0 wrong; the 1774-problem suite 1707 unchanged. Suite 12662 passed;
allocation gate passed on all 19 gated benchmarks. Six forms differentiate
back at five points, with and without symbols among the coefficients.

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 836ca93 into master Sep 23, 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