Skip to content

An exponential of a polynomial beside the polynomial's derivative is integrated under u = P - #1525

Merged
Rafael-SOWNet merged 2 commits into
masterfrom
the-exponent-as-the-variable
Sep 28, 2026
Merged

Rafael-SOWNet merged 2 commits into
masterfrom
the-exponent-as-the-variable

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #1501.

G^P k P' f(P), where P is a polynomial of degree two or more and P' is a factor of its own up to a constant, is now integrated under u = P, as k G^u f(u). Rubi's 2.3 has nine of these, e^(a + b x + c x^2) (b + 2 c x) (a + b x + c x^2)^(n/2). Beside the exponential, u^(n/2) is answered already, as F^(a + b x) x^(n/2) is.

The substitution search reads this u and does not reach it. For its own search it writes an exponential of a sum as a product of exponentials, so that e^(e^x) e^x becomes e^u du. But e^(a + b x + c x^2) then becomes e^a e^(b x) e^(c x^2), with no P left in it to replace. On master the search declines e^(a + b x + c x^2) (b + 2 c x) sqrt(a + b x + c x^2) after 24 s, where 2.5.0 declined it in under 2. The new rule answers it in 270 ms, from before the search.

Only a derivative written as a sum is taken, so x^2 e^(x^3) stays with the rules that answer it already.

integral master this PR
e^(a + b x + c x^2) (b + 2 c x) (a + b x + c x^2)^(n/2), n = 1, 3, 5, 7 unevaluated, 3 past 3 s answered, with erfi
the same over (a + b x + c x^2)^(n/2), n = 1, 3, 5, 7, 9 unevaluated answered, with erfi

Measured

Measured with the change on 12ee9809 (#1520), before the rebase onto #1521 and #1522. After the rebase, the library builds for every target, and the Gaussian, exponentials-of-quadratics and exponential-substitution test classes pass (175). The erf baseline is 22021b1c, one merge earlier, and the 29 problems #1520 gained are counted apart, by name.

  • Rubi's problems whose answer uses erf, erfc or erfi: 811 across families 0 to 7, at a 3 s budget. This PR solves 631, where 22021b1c solves 593 and An exponential of a quadratic in the reciprocal of a linear is integrated onto the Gaussian #1520 adds 29, with 0 wrong and nothing lost. The 9 this rule gains are the 9 of its shape, each answered in 3 to 8 ms, and 3 of them were timeouts, so timeouts go from 14 to 11. The total time goes from 574 s to 544 s.
  • The textbook suites (family 0) are unchanged: 1723/1778, 0 wrong, 0 timeouts.
  • The unit suite passes on net10.0: 12952 passed, 14 skipped, none failed, of 12966.
  • The allocation gate passes on all 19 gated benchmarks, with no allocation moved.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Rafael-SOWNet and others added 2 commits September 28, 2026 00:45
…integrated under u = P

G^P k P' f(P), with P a polynomial of degree two or more and P' a factor of
its own up to a constant, is k G^u f(u) under u = P. The substitution
search reads this u and does not reach it: it writes an exponential of a
sum as a product of exponentials for its own search, and
e^(a + b x + c x^2) is then e^a e^(b x) e^(c x^2), with no P in it to
replace; it took 24 s to decline. Rubi's 2.3,
e^(a + b x + c x^2) (b + 2 c x) (a + b x + c x^2)^(n/2).

Part of #1501.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
… one it follows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
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