Skip to content

A half-odd power of a constant over a polynomial of either sign is integrated with its sign - #1757

Merged
Rafael-SOWNet merged 2 commits into
masterfrom
a-half-odd-power-of-a-reciprocal-is-written-apart-with-its-sign
Oct 4, 2026
Merged

Rafael-SOWNet merged 2 commits into
masterfrom
a-half-odd-power-of-a-reciprocal-is-written-apart-with-its-sign

Conversation

@Rafael-SOWNet

@Rafael-SOWNet Rafael-SOWNet commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

Part of #718.

sqrt(1/(1 - x^2)), the arcsine's derivative where it is real, is declined, with every half-odd power of a constant over a polynomial whose sign changes: the reading that writes a power of a quotient apart does so only where the denominator is positive for every real x. 2.5.0 declined them too:

integrand 2.5.0 master 9848e467 this
sqrt(1/(1 - x^2)) declined declined sgn(1 - x^2) arcsin(x), in 0.5 s
sqrt(1/(x^2 - 1)) declined declined in 0.1 s
(1 - x^2) sqrt(1/(2 - x^2)) declined declined in 0.1 s
(1/(1 - x^2))^(3/2) declined declined sgn(1 - x^2) x/sqrt(1 - x^2), in 0.05 s
(c/(a + b x^2))^(3/2) declined declined in 0.1 s
x^2 (c/(a + b x^2))^(3/2) declined declined in 0.1 s

Each answer is differentiated back with a = 2.3, b = -0.7, c = 1.3 and compared as a complex number at x = ±0.6, ±1.6, ±2.4; the times include that.

What changes. For a real Q other than zero, (A/Q)^r is (A/Q)^r Q^r times Q^(-r), and the first factor's derivative is zero wherever it has one; for a positive number A and r half an odd number it is A^r sgn(Q), the root of a negative being i times the root of its modulus on both sides of the bar. A half-odd power of a constant over a polynomial of degree four at most, not positive everywhere, among the factors of the integrand, is written so, the rest asked as the same question and the factor put in front of the answer. Late in the chain, after the substitutions, which answer some of these without the factor -- x sqrt(1/(4 - x^2)) is -(1/(4 - x^2))^(-1/2) on master, and still is.

Tests: HalfOddPowerOfAReciprocalIntegralTest, six rows differentiated back with b negative, so that a + b x^2 changes sign as well, at points on both sides of every denominator's zeros, compared as complex numbers where the integrand is imaginary; all six are declined on master.

Measured first on the 21 problems of the corpus with a fractional power of a constant over a sum, at the corpus's 5-second budget, against master cb8e133d, the branch's base:

master this
solved 15 21
wrong 0 0
past the budget 0 0

The fifteen master answers it answers the same way.

Measured then on the Rubi corpus against master cb8e133d:

master this
family 0, independent suites (1814) 1772 1772
family 1, 40 a file (1381) 1305 1305
families 2 to 8, sampled (2410) 2279 2285

The harness counts no answer wrong in the pocket or the sample on either build. Of the 21 problems the two builds disagreed on, pocket and sample together, run again one build at a time, master answers 7 and this 18. Six are the pocket's -- sqrt(1/(1 - x^2)), (c/(a + b x^2))^(3/2) and their kin -- answered here in a hundredth to six hundredths of a second. Six more are family 4's half-odd powers of a secant or a cotangent, sec(c + d x)^(3/2)/sqrt(1 + cos(c + d x)) among them, answered here in a tenth of a second to sixteen seconds where master declines them or runs past the budget. The one master answers alone, (A + B x + C x^2 + D x^3)/((a + b x)^4 sqrt(c + d x)), at twenty-two seconds, ran past the harness's patience here; run again, twice on each build, it runs past it on both. Two that master declines after eighteen and twenty-four seconds run past the budget here, and the other six both answer at fifteen to twenty-four seconds.

The suite passes on the commit measured, 2961a978, 14,781 tests with 13 skipped, and the allocation gate with it. On the merge with master 9848e467, be18b1d3, the 4,159 calculus and corpus tests that run pass, with 2 skipped. Every row of the first table is as it says on the merge. With master moved on to ce4d1a1f, the 4,165 calculus and corpus tests pass on that merge too.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Rafael-SOWNet and others added 2 commits October 4, 2026 13:54
…tegrated with its sign

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
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 4, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit 8a940c9 into master Oct 4, 2026
34 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