Skip to content

Flatten a whole power of a constant times an exponential - #1942

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
flatten-a-whole-power-of-a-multiple-of-an-exponential
Oct 19, 2026
Merged

Rafael-SOWNet merged 1 commit into
masterfrom
flatten-a-whole-power-of-a-multiple-of-an-exponential

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

2.6.0 lost ∫ sinh(a + b x)^3 sinh(c + d x)^3 dx (Rubi 6.7.1, row 195), which 2.5.0 answered. Bisected to #1287. The expansion writes products such as (-e^(-b x))^2 (-e^(-d x))^2, and no route read (-e^(-b x))^2 as e^(-2 b x).

SolveByFlatteningAPowerOfAnExponential now also distributes a whole power over a constant times an exponential: (k E)^n = k^n E^n. This holds for every constant k when n is whole.

Measured

These runs compare against master da06bac. Each one is in a separate process.

master this branch
Rubi 6.7.1, all 792 rows 738 solved, 22 timeout 743 solved, 18 timeout, 0 wrong
families 0 and 1, and samples of families 2–8 (5,605 rows) — same verdicts, apart from the two rows below

Every row that moved was re-run alone:

  • Rows 6.7.1:195, 327, 347, 365 and 366 were unsolved or timed out on master. Each now answers in 80–210 ms.
  • Row 6.1.1:141 (c + d x)^3 (a + i a sinh(e + f x))^2 was solved on master. The harness now reports it as unverifiable, because the answer contains both e^(2fx) and e^(−2fx), so every sample point overflows 1e45. An exact check (pins a, c, d, e, f = 21/10, 19/10, 17/10, 13/10, 23/10 at x = 0.57, 1.29, −3, 7 and −20, to 2000 digits) agrees to the last digit. The answer is also shorter: master's answer carried 1/(1 - (E - 1)/(E + 1)) and ln(e^(…)).
  • Row 4.4.10:49 1/((c + d x)(a + i a cot(e + f x))^3) was unsolved on master and now answers. The harness cannot verify it, and the exact check at four points agrees to 2000 digits.

The performance gate passed. The unit suite passed: 15,583 tests, 0 failed.

The new test, AWholePowerOfAMultipleOfAnExponentialIntegralTest, checks five integrands by differentiating each answer back.

No BREAKING-CHANGES entry is needed: 2.5.0 answered row 195, and the other rows had no answer in 2.5.0.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

`(-e^(-b x))^2` is `e^(-2 b x)`, and nothing read it as one: the
expansion of `sinh(a + b x)^3 sinh(c + d x)^3` writes eight such products
and the integral stopped there, where 2.5.0 answered it by parts.
`SolveByFlatteningAPowerOfAnExponential` now distributes a whole power
over a constant times an exponential, `(k E)^n = k^n E^n`, which holds for
any constant k when n is whole.

Rubi 6.7.1 row 195 answers again, and rows 327, 347, 365 and 366, which
timed out, answer in 80-210 ms.

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 19, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit 2bec4ec into master Oct 19, 2026
34 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in AngouriMath Oct 19, 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