Skip to content

Write whole powers of a root as powers of its radicand before measuring where it holds - #2046

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
write-whole-powers-of-the-root-as-powers-of-the-radicand
Oct 22, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
write-whole-powers-of-the-root-as-powers-of-the-radicand

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #233.

  • Whole powers of a root written as powers of its radicand. Under u = sqrt(x), Rubi's 1.1.3.2 1/(x^(7/2) sqrt(a + b x^5)) came back with x^5 spelled ((x^(1/2))^5)^2, under provided x >= 0. The same happened to three like it, to 1.3.2's sqrt(a x^23)/sqrt(1 + x^5) and sqrt(a x^13)/sqrt(1 + x^5), and to 1.1.1.2's 1/(sqrt(x) sqrt(2 x - 3)).
  • Why the condition stayed. The integrand is real beyond -(a/b)^(1/5), as a product of two imaginary roots, and the answer holds there. But WhereTheDerivativeHoldsBeyondTheRadicand evaluates ((x^(1/2))^5)^2 at a negative x with a zero imaginary part, on the outer root's cut, and could not say so.
  • The change. WithWholePowersOfARootAsPowersOfItsRadicand flattens a whole power of a root and folds (B^(1/q))^n, where q divides n, into B^(n/q), which holds on every branch. It is applied to the substitution's back-substituted answer and at the start of ConditionedOnTheRadicand. The condition is gone, and the answers are shorter.
Rubi row master ef4150e this branch
1.1.3.2:1462 1/(x^(7/2) sqrt(a + b x^5)) 92 characters, for x >= 0 only 60 characters, both sides of 0
1.1.3.2:1463 1/(x^(17/2) sqrt(a + b x^5)) 134, for x >= 0 only 97
1.1.3.2:1469 1/(x^(7/2) sqrt(1 + x^5)) 82, for x >= 0 only 50
1.1.3.2:1470 1/(x^(17/2) sqrt(1 + x^5)) 112, for x >= 0 only 75
1.3.2:511 sqrt(a x^23)/sqrt(1 + x^5) 563, for x >= 0 only 426
1.3.2:512 sqrt(a x^13)/sqrt(1 + x^5) 388, for x >= 0 only 293
1.1.1.2:1791 1/(sqrt(x) sqrt(2 x - 3)) 183, for x >= 0 only 141

"For x >= 0 only" is the probe at -2.3 and -1.7: the answer has no value at 2 of 5 points where the integrand has one.

Chain against master 78cd31b:

The full unit suite ran locally with 16,552 passed and 1 failed. The failure was IntegralAnswerCacheTest.AnIntegralWithNoAnswerStillFinishesQuickly at a load of 17, and it passes alone in 2 s. The BREAKING-CHANGES lengths were measured on the branch. Rebased onto ef4150e.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

…ng where it holds

Rubi's 1.1.3.2 1/(x^(7/2) sqrt(a + b x^5)), three like it, and 1.3.2's
sqrt(a x^23)/sqrt(1 + x^5) and sqrt(a x^13)/sqrt(1 + x^5) were answered
provided x >= 0. The integrand is real beyond -(a/b)^(1/5) as a product of
two imaginary roots, and the answer holds there, but it spelled x^5 as
((x^(1/2))^5)^2: real at a negative x with a zero imaginary part, the outer
root on its cut, which the interval and decimal evaluations rightly refuse,
so WhereTheDerivativeHoldsBeyondTheRadicand could not read the answer there
and the condition stayed. Under u = B^(1/q), a whole power of u that is a
multiple of q is now written as the power of B it is on every branch,
(B^(1/q))^(k q) = B^k, nested whole powers flattened first, both in that
substitution's answer and in ConditionedOnTheRadicand, which every root
substitution's condition passes through: the measurement then shows the
answer holds everywhere, and the condition is not written. 1.1.1.2's
1/(sqrt(x) sqrt(2 x - 3)) had (x^(1/2))^2 on the same cut by another route.

Part of #233.

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 22, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit e30f63f into master Oct 22, 2026
34 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant