Skip to content

Commit 47ab958

Browse files
Integrate four inverse-hyperbolic shapes: over a half-odd power of an even quadratic, x^m arsech or arcsch of sqrt(x), a polynomial over a power of the linear of an artanh, and arcoth as artanh plus a constant (#2028)
- An inverse hyperbolic function over a half-odd power of an even quadratic, by parts against it. - A power of x times the arsech or arcsch of sqrt(x), by parts. - A polynomial over a power of the linear of an artanh, written in powers of the linear. - An arcoth of a linear as its artanh plus a constant, last of all, so that every arcoth answered as written keeps that answer. Chain against master f7f2a7a: pocket of 1,509 rows, 1,498 -> 1,501 solved, 0 wrong; samples unchanged; the 3 rows that moved, alone, 0 -> 3 solved: Rubi's 7.3.4:133 and 639 and 7.4.1:74. Where master answers the same integrands it writes them longer: atanh(a x)/(c + d x^2)^(3/2) is 4,645 characters there and 1,034 here, acosh(a x)/(c + d x^2)^(9/2) 9,652 and 2,409. No row's allocation grew past 1.3x. Part of #233. Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
1 parent 2e3078d commit 47ab958

7 files changed

Lines changed: 618 additions & 0 deletions

‎BREAKING-CHANGES.md‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,23 @@ since semantic versioning admits it.
129129
Measured on the suite: **7 of 8,525 tests** referenced the old reading — five boolean-solver inputs
130130
written `A | B`, and two that existed to record this spelling as at risk.
131131

132+
### An inverse hyperbolic function over a half-odd power of an even quadratic is integrated by parts against it
133+
134+
**Answers where there were none.** `atanh(a x)/(c + d x^2)^(3/2)` was declined, and so were its powers up to `^(9/2)`,
135+
`acosh(a x)` over the same powers, and `(a + b asinh(c x))` and `(a + b acosh(c x))` over `(d + k x^2)^(3/2)` to
136+
`^(7/2)`: Rubi's 7.1.4, 7.2.4, 7.2.5 and 7.3.4. By parts, the antiderivative of the power is `x` times powers of
137+
`(c + d x^2)^(-1/2)`, and the logarithm's derivative is even in `x`, so the remainder is `x` times a function of
138+
`x^2`; under `w = x^2` each of its terms is a power of `c + d w` over `1 - a^2 w` or over the root of a linear,
139+
answered at once. Not where the quadratic is the function's own, `1 - a^2 x^2` for the artanh, which the
140+
substitution under the hyperbolic function answers ([#233](https://github.com/asc-community/AngouriMath/issues/233)).
141+
142+
| Input | Was (2.5.0) | Now |
143+
|---|---|---|
144+
| `"atanh(a*x)/(c+d*x^2)^(3/2)".ToEntity().Integrate("x")` | `integral(...)` | 1,034 characters |
145+
| `"atanh(a*x)/(c+d*x^2)^(9/2)".ToEntity().Integrate("x")` | `integral(...)` | 7,136 characters |
146+
| `"acosh(a*x)/(c+d*x^2)^(9/2)".ToEntity().Integrate("x")` | `integral(...)` | 2,409 characters |
147+
| `"(a+b*asinh(c*x))/(d+k*x^2)^(7/2)".ToEntity().Integrate("x")` | `integral(...)` | 1,843 characters |
148+
132149
### A power of x times `atanh(sqrt(e) x/sqrt(d + e x^2))` is integrated by parts against the root
133150

134151
**Answers where there were none.** `x atanh(sqrt(e) x/sqrt(d + e x^2))` was declined, and so were twelve more of Rubi's
@@ -142,6 +159,21 @@ quotient of two sums with a root in each, which the search never brought down to
142159
| `"atanh(x*sqrt(k)/sqrt(d+k*x^2))".ToEntity().Integrate("x")` | `integral(...)` | `x atanh(...) - sqrt(d + k x^2)/sqrt(k)`, written in the logarithm |
143160
| `"atanh(x*sqrt(k)/sqrt(d+k*x^2))/x^5".ToEntity().Integrate("x")` | `integral(...)` | by parts onto `1/(x^4 sqrt(d + k x^2))` |
144161

162+
### A power of x times the arsech or arcsch of `sqrt(x)` is integrated by parts
163+
164+
**Answers where there were none.** Every power from `x^0` to `x^3` times `asech(sqrt(x))` or `acsch(sqrt(x))`, Rubi's
165+
7.5.2 and 7.6.2, was declined or ran past thirty seconds. By parts the remainder is `K/(2 (m + 1))` times the
166+
integral of `x^m/sqrt(1 - x)`, or of `x^m/sqrt(1 + x)` for the arcsch, where `K = sqrt(1 - x)/(sqrt(x) sqrt(1/x - 1))` is `1` for `x > 0` and `-1` for `x < 0`, and the arcsch's
167+
`K = sqrt(1 + x)/(sqrt(x) sqrt(1/x + 1))` is `-1` between `-1` and `0` and `1` elsewhere. `K` is written in the answer
168+
as it is defined, so the answer holds on the negative half-line too
169+
([#233](https://github.com/asc-community/AngouriMath/issues/233)).
170+
171+
| Input | Was (2.5.0) | Now |
172+
|---|---|---|
173+
| `"x^3*asech(sqrt(x))".ToEntity().Integrate("x")` | no answer in thirty seconds | 210 characters |
174+
| `"x*acsch(sqrt(x))".ToEntity().Integrate("x")` | `integral(...)` | 146 characters |
175+
| `"x^3*acsch(sqrt(x))".ToEntity().Integrate("x")` | no answer in thirty seconds | 205 characters |
176+
145177
### A power of x is taken out of a bracket to find the derivative of a product of powers
146178

147179
**Answers where there were none.** `x^(2n) (c + d x)^n (2 c x + 3 d x^2)`, Rubi's 1.3.1, was declined. A bracket that
@@ -298,6 +330,19 @@ the working digits, or `MathS.Settings.PrecisionErrorZeroRange` where a caller h
298330
still that integer, so `e^(-123.456)` is 0 as it was.
299331
[#1338](https://github.com/asc-community/AngouriMath/issues/1338).
300332

333+
### A polynomial over a power of the linear of an artanh is written in powers of the linear
334+
335+
**Answers where there were none.** `x (a + b atanh(c x))^2/(d + c d x)^3`, Rubi's 7.3.4, ran out of time. In powers of
336+
`d + c d x`, `x` is `((d + c d x) - d)/(c d)`, and the integrand is two terms, each a power of one of the logarithm's
337+
linears beside a function of it, which are answered under `t = (1 + c x)/(1 - c x)`. Where the polynomial's degree is
338+
at most the power less two, so that no term is over the linear alone, and the function is not the logarithm's first
339+
power, which by parts answers as before ([#233](https://github.com/asc-community/AngouriMath/issues/233)).
340+
341+
| Input | Was (2.5.0) | Now |
342+
|---|---|---|
343+
| `"x*(a+b*atanh(c*x))^2/(d+c*d*x)^3".ToEntity().Integrate("x")` | `integral(...)` | 731 characters |
344+
| `"x*(a+b*acoth(c*x))^2/(d+c*d*x)^3".ToEntity().Integrate("x")` | `integral(...)` | 756 characters |
345+
301346
### An arctangent over a power of `d (1 + i c x)` is integrated under the tangent
302347

303348
**Answers where there were none.** `(a + b atan(c x))^2/(d + i c d x)^2` ran out of time, and so did seven more of
@@ -312,6 +357,20 @@ becomes a polynomial in `u` times exponentials and trigonometric functions, and
312357
| `"(a+b*atan(c*x))^2/(1+i*c*x)^4".ToEntity().Integrate("x")` | `integral(...)` | 731 characters |
313358
| `"(a+b*atan(c*x))^3/(d+i*c*d*x)^4".ToEntity().Integrate("x")` | `integral(...)` | 1,202 characters |
314359

360+
### An arcoth of a linear is integrated as its artanh plus a constant
361+
362+
**Answers where there were none.** `acoth(x)^2/(1 - x^2)^2`, Rubi's 7.4.1, was declined, where
363+
`(atanh(x) + k)^2/(1 - x^2)^2` is answered. `acoth(L) - atanh(L)` is `i pi/2` where `|L| < 1` and `-i pi/2` where `|L| > 1`:
364+
constant on each interval, and not the same constant on each. Such an integrand is now asked with a symbol `K` for it,
365+
as one in `atanh(L) + K`, and the answer is written back with `K = acoth(L) - atanh(L)`, so that it holds on every
366+
interval without a case for each. Only where nothing else answers the integrand as written
367+
([#233](https://github.com/asc-community/AngouriMath/issues/233)).
368+
369+
| Input | Was (2.5.0) | Now |
370+
|---|---|---|
371+
| `"acoth(x)^2/(1-x^2)^2".ToEntity().Integrate("x")` | `integral(...)` | 1,304 characters, with `(ln((x + 1)/(x - 1)) - ln((1 + x)/(1 - x)))/2` for `K` |
372+
| `"acoth(c*x)^2/(1-c^2*x^2)^2".ToEntity().Integrate("x")` | `integral(...)` | 1,681 characters |
373+
315374
### A function of the hyperbolic tangent alone is integrated under `u = tanh`
316375

317376
**Answers where there were none.** `tanh(x)/sqrt(a + b tanh(x)^2 + c tanh(x)^4)` was declined, and so were 35 more of

0 commit comments

Comments
 (0)