Skip to content

A radical of a hyperbolic function of a logarithm is integrated on both sides of zero - #1752

Merged
Rafael-SOWNet merged 4 commits into
masterfrom
a-radical-of-a-hyperbolic-logarithm-holds-on-both-sides-of-zero
Oct 4, 2026
Merged

Rafael-SOWNet merged 4 commits into
masterfrom
a-radical-of-a-hyperbolic-logarithm-holds-on-both-sides-of-zero

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Member

Part of #718.

1/csch(2 ln(x))^(1/2) is answered on master through t = ln(x), provided x > 0, and its derivative is not the integrand for 0 < x < 1, where sinh(2 ln(x)) is negative and the integrand imaginary: the integral in t is reached through a step of Simplify that splits a power of a reciprocal, (1/q)^p = q^(-p), which holds only where q is positive (#1734). The integrand is ((x^2 - x^(-2))/2)^(1/2), and real on both sides of zero; 2.5.0 declined these:

integrand 2.5.0 master 287c69a7 this
1/csch(2 ln(x))^(1/2) declined provided x > 0, and not for 0 < x < 1 on both sides of zero, in 0.7 s
csch(2 ln(x))^(-3/2) declined provided x > 0, and not for 0 < x < 1 on both sides of zero, in 0.3 s
1/csch(2 ln(c x))^(1/2) declined provided c x > 0, and not for 0 < c x < 1 on both sides of zero, in 0.2 s
1/sech(2 ln(x))^(1/2) declined provided x > 0 on both sides of zero, in 0.05 s

Each answer is differentiated back with c = 1.3 and compared as a complex number at x = -2.7, -1.3, 0.4, 0.7, 1.3, 2.7; the times include that.

What changes. These are answered by folding their exponentials into powers of x -- e^(2 ln(x)) is x^2 -- before the substitution is reached, and two things kept the fold from them:

  • The fold wrote e^(-2 ln(x)) as x^(-2), and the rules for a root read a denominator below the bar: (1/((x^2 - x^(-2))/2))^(-3/2) is declined where (1/((x^2 - 1/x^2)/2))^(-3/2) is answered. A negative power in the base of a power that is not whole is written below the bar now. Only there: a whole power of a sum is expanded, and the power rule reads its terms as x^(-k) -- sinh(a + b ln(c x^n))^4 is answered in a second that way and was searched for six with them below the bar.
  • c/g^p was asked as g^(-p) one level down, where the rules scoped to the question asked do not answer, so 1/csch(2 ln(x))^(1/2), written 1/(...)^(1/2), reached the fold a level down and was declined there. Where p is not whole it is asked as the same question now, as the other constant multiples in the same rule are. A whole power is still asked one level down: asked at its own level, (c + d x)/(a + a tanh(e + f x))^3 and its coth twin ran past the budget, where they are answered in a fifth of a second.

The step of Simplify is #1734's, fixed separately; with it fixed and this not, the three csch rows search for fifty seconds to past two minutes, and one of them is answered.

Tests: LogarithmSubstitutionTest.ARadicalFunctionOfAWholePowerOfX is compared on both sides of zero and on both sides of 1, where sinh(2 ln(x)) changes sign, at ten points, and demands that every answer hold at all of them. On master four of its six rows fail: the three csch rows on (0, 1), and 1/sech(2 ln(x))^(1/2), which says nothing for a negative x.

Measured first on the 204 problems of Rubi's hyperbolic functions of a logarithm in 6.1.5 to 6.6.3, and 2.3's e^(ln((d + e x)^n)^2) (d + e x)^m, which the fold also reaches; the harness can state and check 125 of them. At the corpus's 5-second budget, against master cb8e133d, the branch's base, on the branch's last commit, 1bd4d7e9:

master this
solved 114 117
wrong 0 0
past the budget 8 7

The three are csch(2 ln(c x))^(1/2)/x^4, x^8/csch(2 ln(c x))^(3/2) and csch(2 ln(c x))^(3/2)/x^2. Master's answers to the first and the third check out only once Simplify has rewritten them, and the second runs past the budget.

Measured then on the Rubi corpus against master cb8e133d, on the branch's first commit, 7304b0af:

master this
family 0, independent suites (1814) 1772 1772
family 1, 40 a file (1381) 1305 1305
families 2 to 8, sampled (2410) 2279 2278

The harness counts no answer wrong in the pocket or the sample on either build. Of the 10 problems the two builds disagreed on, run again one build at a time, the branch on its last commit, master answers 5 and this 8: the three csch problems of the pocket, answered here in 0.1 to 0.4 seconds, where master's answers check out only after Simplify, at 2.2 and 5.8 seconds, or it runs past the budget. Two are the tanh and coth problems above, which the first commit ran past the budget and the last answers as master does, in a fifth of a second. The other five are at the edge of the harness's patience on both: three both answer at fifteen to twenty seconds and two both decline after twenty.

The suite passes on the merge with master 287c69a7, 537a1906, 14,822 tests with 13 skipped, and the allocation gate on the first commit. Every row of the first table is as it says on the merge.

🤖 Generated with Claude Code

https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura

Rafael-SOWNet and others added 4 commits October 4, 2026 13:35
…th sides of zero

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
…es that step

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
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 4, 2026
@Rafael-SOWNet
Rafael-SOWNet merged commit f18a7d2 into master Oct 4, 2026
34 checks passed
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