Skip to content

Artanh ​

Generated from the engine's own definition: compute-engine's symbol, which we neither extend nor document by hand.

Inverse hyperbolic tangent (area hyperbolic tangent).

✓ checked against that system · ! checked, with disagreements (hover a chip)DLMF4.37.ii.p1FungrimAtanh!Fungrim entryWolfram LanguageArcTanh!
Artanh(complex | signed_infinity) -> numberas compute-engine declares it
SageMatharctanh(complex | signed_infinity)SymPyatanh(complex | signed_infinity)mpmathatanh(complex | signed_infinity)Juliaenumeratio_ball(_atanh, complex | signed_infinity)Rustatanh(complex | signed_infinity)
Artanh(complex | signed_infinity | ~oo) -> Indeterminate | number | signed_infinityInverse hyperbolic tangent (area hyperbolic tangent).
SageMatharctanh(complex | signed_infinity | ~oo)SymPyatanh(complex | signed_infinity | ~oo)mpmathatanh(complex | signed_infinity | ~oo)Juliaenumeratio_ball(_atanh, complex | signed_infinity | ~oo)Rustatanh(complex | signed_infinity | ~oo)
Typed signatures
TypePackageApplies
(complex | quantity | signed_infinity) -> numberanalyticreplaces compute-enginealways
(complex | quantity | signed_infinity) -> numbercompute-enginealways

Domain: Compute engine

Details
  • Differs from Wolfram: past its real domain a rational argument reduces to the exact principal value, on every inverse trigonometric and hyperbolic head alike (Arcsin, Arccos, Arcsec, Arccsc, Arcosh, Artanh, Arcoth, Arsech); Wolfram leaves the exact call unevaluated and gives the same number from N[...]. Checked against mpmath and wolframscript on a grid of rationals to double precision. A float and N(...) already took the same branch. Compiled code is separate: the JavaScript target is real-valued (NaN past the domain), the WGSL target returns a complex pair, and Arcsin and Arccos decline to compile. Principal branch, cuts on (−∞,−1](-\infty,-1] and [1,∞)[1,\infty): past 1 the value is the limit from below, 12ln⁡x+1x−1−iπ2\tfrac12\ln\frac{x+1}{x-1} - \tfrac{i\pi}{2} (mpmath atanh(2); Wolfram's ArcTanh[2.] agrees), and oddness gives the other cut.

Examples

Scope #

Fifty digits of artanh⁡(1/2)\operatorname{artanh}(1/2)

live ↗
InN(artanh(12),50)N(\mathrm{artanh}(\frac{1}{2}), 50)Out0.549 306 144 334 054 845 697 622 618 461 262 852 323 745 278 911 370.549\,306\,144\,334\,054\,845\,697\,622\,618\,461\,262\,852\,323\,745\,278\,911\,37

The limit at infinity is a purely imaginary constant, −iπ/2-i\pi/2

live ↗
Inartanh(∞)\mathrm{artanh}(∞)Out(−12i)π(-\frac{1}{2}i)π

Vanishes at the origin

live ↗
Inartanh(0)\mathrm{artanh}(0)Out00

Derivative is 1/(1−x2)1/(1-x^2)

live ↗
Indartanh(x)dx\frac{\mathrm{d}\mathrm{artanh}(x)}{\mathrm{d}x}Out11−x2\frac{1}{1-x^2}

The addition formula is not recognised; the tanh term stays

live ↗
InFullSimplify(tanh⁡(artanh(x)+artanh(y))−x+yxy+1)\mathrm{FullSimplify}(\tanh(\mathrm{artanh}(x)+\mathrm{artanh}(y))-\frac{x+y}{xy+1})Out−x−yxy+1+tanh⁡(artanh(x)+artanh(y))\frac{-x-y}{xy+1}+\tanh(\mathrm{artanh}(x)+\mathrm{artanh}(y))

No exponential rewrite is applied; artanh(z) is returned as is

live ↗
InTrigToExp(artanh(z))\mathrm{TrigToExp}(\mathrm{artanh}(z))Outartanh(z)\mathrm{artanh}(z)

Antiderivative xartanh⁡x+12ln⁡(1−x2)x\operatorname{artanh}x + \tfrac12\ln(1-x^2)

live ↗
In∫ ⁣artanh(x) dx\int\!\mathrm{artanh}(x)\, \mathrm{d}xOutxartanh(x)+12ln⁡(1−x2)x\mathrm{artanh}(x)+\frac{1}{2}\ln(1-x^2)

Past [−1,1][-1, 1] the value is 12ln⁡x+1x−1−iπ2\tfrac12\ln\frac{x+1}{x-1} - \tfrac{i\pi}{2}: artanh⁡(2)=12ln⁡3−iπ2\operatorname{artanh}(2) = \tfrac12\ln3 - \tfrac{i\pi}{2}

live ↗
Inartanh(2)\mathrm{artanh}(2)Outln⁡(3)2+(−12i)π\frac{\ln(3)}{2}+(-\frac{1}{2}i)π

Odd: artanh⁡(−2)\operatorname{artanh}(-2) is the negative of artanh⁡(2)\operatorname{artanh}(2)

live ↗
Inartanh(−2)\mathrm{artanh}(-2)Out12iπ−ln⁡(3)2\frac{1}{2}i π-\frac{\ln(3)}{2}
Possible issues #

Artanh(ComplexInfinity) is Indeterminate -- the sign of the boundary value ±iπ/2\pm i\pi/2 depends on which side of the branch cut z approaches from

live ↗

Known value · DLMF 4.37.24

About
Examples10
Checked againstWolfram Language 8 agree2 differSageMath 7 agree2 differ1 errorSymPy 8 agree1 differmpmath 5 agreeJulia 4 agree1 errorRust 2 agree2 error
CrosswalkDLMFFungrimFungrim entry ×7Wolfram LanguageSageMathSymPympmathJuliaRust

Implementation

mappedsympypackages/oracle/src/mappings.ts
mappedmpmathpackages/oracle/src/mappings.ts
mappedsagepackages/oracle/src/mappings.ts
mappedjuliapackages/oracle/src/mappings.ts
mappedrustpackages/oracle/src/mappings.ts