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
@Rafael-SOWNet
Rafael-SOWNet deleted the write-whole-powers-of-the-root-as-powers-of-the-radicand branch October 29, 2026 00:44
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