Introduce inverse hyperbolic functions
#KT-4900 Improve accuracy of JS polyfills of hyperbolic functions and expm1/log1p
This commit is contained in:
@@ -140,6 +140,49 @@ public expect fun cosh(a: Double): Double
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun tanh(a: Double): Double
|
||||
|
||||
/**
|
||||
* Computes the inverse hyperbolic sine of the value [a].
|
||||
*
|
||||
* The returned value is `x` such that `sinh(x) == a`.
|
||||
*
|
||||
* Special cases:
|
||||
*
|
||||
* - `asinh(NaN)` is `NaN`
|
||||
* - `asinh(+Inf)` is `+Inf`
|
||||
* - `asinh(-Inf)` is `-Inf`
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun asinh(a: Double): Double
|
||||
|
||||
/**
|
||||
* Computes the inverse hyperbolic cosine of the value [a].
|
||||
*
|
||||
* The returned value is positive `x` such that `cosh(x) == a`.
|
||||
*
|
||||
* Special cases:
|
||||
*
|
||||
* - `acosh(NaN)` is `NaN`
|
||||
* - `acosh(x)` is `NaN` when `x < 1`
|
||||
* - `acosh(+Inf)` is `+Inf`
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun acosh(a: Double): Double
|
||||
|
||||
/**
|
||||
* Computes the inverse hyperbolic tangent of the value [a].
|
||||
*
|
||||
* The returned value is `x` such that `tanh(x) == a`.
|
||||
*
|
||||
* Special cases:
|
||||
*
|
||||
* - `tanh(NaN)` is `NaN`
|
||||
* - `tanh(x)` is `NaN` when `x > 1` or `x < -1`
|
||||
* - `tanh(1.0)` is `+Inf`
|
||||
* - `tanh(-1.0)` is `-Inf`
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun atanh(a: Double): Double
|
||||
|
||||
/**
|
||||
* Computes `sqrt(x^2 + y^2)` without intermediate overflow or underflow.
|
||||
*
|
||||
@@ -527,6 +570,49 @@ public expect fun cosh(a: Float): Float
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun tanh(a: Float): Float
|
||||
|
||||
/**
|
||||
* Computes the inverse hyperbolic sine of the value [a].
|
||||
*
|
||||
* The returned value is `x` such that `sinh(x) == a`.
|
||||
*
|
||||
* Special cases:
|
||||
*
|
||||
* - `asinh(NaN)` is `NaN`
|
||||
* - `asinh(+Inf)` is `+Inf`
|
||||
* - `asinh(-Inf)` is `-Inf`
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun asinh(a: Float): Float
|
||||
|
||||
/**
|
||||
* Computes the inverse hyperbolic cosine of the value [a].
|
||||
*
|
||||
* The returned value is positive `x` such that `cosh(x) == a`.
|
||||
*
|
||||
* Special cases:
|
||||
*
|
||||
* - `acosh(NaN)` is `NaN`
|
||||
* - `acosh(x)` is `NaN` when `x < 1`
|
||||
* - `acosh(+Inf)` is `+Inf`
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun acosh(a: Float): Float
|
||||
|
||||
/**
|
||||
* Computes the inverse hyperbolic tangent of the value [a].
|
||||
*
|
||||
* The returned value is `x` such that `tanh(x) == a`.
|
||||
*
|
||||
* Special cases:
|
||||
*
|
||||
* - `tanh(NaN)` is `NaN`
|
||||
* - `tanh(x)` is `NaN` when `x > 1` or `x < -1`
|
||||
* - `tanh(1.0)` is `+Inf`
|
||||
* - `tanh(-1.0)` is `-Inf`
|
||||
*/
|
||||
@SinceKotlin("1.2")
|
||||
public expect fun atanh(a: Float): Float
|
||||
|
||||
/**
|
||||
* Computes `sqrt(x^2 + y^2)` without intermediate overflow or underflow.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user