Skip to content

A quadratic's half-odd power beside a power of another quadratic is integrated - #1870

Merged
Rafael-SOWNet merged 5 commits into
masterfrom
two-quadratics-one-beside-the-root-of-the-other
Oct 13, 2026
Merged

Rafael-SOWNet merged 5 commits into
masterfrom
two-quadratics-one-beside-the-root-of-the-other

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #718.

Most of Rubi's 1.2.1.5 past the first powers was declined. That is a half-odd power of one quadratic B beside a whole power of another, A. There were two seams, one on each side of the bar:

  • The root above the bar. SolveAPolynomialOverAPowerOfAQuadraticBesideTheRootOfAnother read only P/(A^k sqrt(B)). B^(n/2) above the bar, for an odd n, is now read as B^((n + 1)/2) over sqrt(B), which is a polynomial over the root. That covers sqrt(B)/A^2 and B^(3/2)/A^3.
  • A power of the radicand below the bar. SolveARationalFunctionBesideTheRootOfAQuadratic splits the rational part over the written factors. TrySplitOverWrittenFactors declines a repeated quadratic with numbers in it, because over the rationals no rule reads a cubic over its square. Beside the root, though, each piece is a shape the rules read: a polynomial over the radicand's power is a polynomial times a half-odd power of the radicand, and one over the other quadratic's power goes to the reduction above. The root rule now says so through a new optional parameter, aRepeatedQuadraticIsRead. Every other caller is unchanged.

Sizes, measured on master 915f742, on 2.5.0 and on this branch:

Integrand 2.5.0 master 915f742 branch
sqrt(3-x+2*x^2)/(2+3*x+5*x^2)^2 unevaluated unevaluated 1,344 chars
sqrt(3-x+2*x^2)/(2+3*x+5*x^2)^3 unevaluated unevaluated 1,455 chars
(3-x+2*x^2)^(3/2)/(2+3*x+5*x^2)^3 unevaluated unevaluated 1,451 chars
1/((3-x+2*x^2)^(3/2)*(2+3*x+5*x^2)^2) unevaluated unevaluated 1,430 chars
1/((3-x+2*x^2)^(3/2)*(2+3*x+5*x^2)^3) unevaluated unevaluated 1,552 chars
1/((3-x+2*x^2)^(5/2)*(2+3*x+5*x^2)) unevaluated unevaluated 1,380 chars
1/((3-x+2*x^2)^(5/2)*(2+3*x+5*x^2)^2) unevaluated unevaluated 1,499 chars
1/((3-x+2*x^2)^(5/2)*(2+3*x+5*x^2)^3) unevaluated unevaluated 1,629 chars
(2+x)/((2+4*x-3*x^2)*(1+3*x-2*x^2)^(5/2)) (1.2.1.6) unevaluated unevaluated 804 chars
(2+x)/((2+4*x-3*x^2)*(1+3*x+2*x^2)^(5/2)) (1.2.1.6) unevaluated unevaluated 2,819 chars
(2+5*x+x^2)*sqrt(3+2*x+5*x^2)/(1+4*x-7*x^2)^3 (1.2.1.9) unevaluated unevaluated 5,242 chars
(a+b*x+c*x^2)^(1/2)/(d+e*x+f*x^2)^2 unevaluated unevaluated 50,758 chars

The symbolic one is large, but it matches what master already gives with the root below the bar: 1/((d+e*x+f*x^2)^2*sqrt(a+b*x+c*x^2)) is 38,378 characters there.

Each was checked exactly, derivative against integrand at 50, 300 and 2,000 digits. Every one agrees at every precision, once #1868's fix (#1869, merged in) stops a rational from keeping the precision it was first written out at.

Rubi corpus, compared with master a29f7ec:

  • Pocket of all of 1.2.1.4, 1.2.1.5 and 1.2.1.6: 847 → 858, with 0 wrong.
  • 1.2.1.5 alone: 106 → 115 of 118.
  • 13 problems moved. All 13 solve on this branch alone and 1 does on master alone. That one is 7.4.1:369, which takes 20–23 s on either arm against a 25 s timeout, so it is noise at the limit; it is the only difference in family 7's sample.
  • Family 1's sample: 1347 → 1352.
  • 0 wrong anywhere.

The allocation gate passed. The suite passed: 15,308 passed, 0 failed. Master 915f742 is merged in, and the build passes for every target framework.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Rafael-SOWNet and others added 5 commits October 13, 2026 06:50
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
…s reduced over the root

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
…ANGES

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 13, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit 683ab15 into master Oct 13, 2026
34 checks passed
@Rafael-SOWNet
Rafael-SOWNet deleted the two-quadratics-one-beside-the-root-of-the-other branch October 13, 2026 08:30
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