Crate spinoso_math
source ·Expand description
The Ruby Math module.
The Math module contains module functions for basic trigonometric and
transcendental functions. See class Float
for a list of constants that
define Ruby’s floating point accuracy.
This crate defines math operations as free functions. These functions differ
from those defined in Rust core
by returning a DomainError
when an
input is outside the domain of the function and results in NaN
.
spinoso-math
assumes the Ruby VM uses double precision f64
floats.
Examples
Compute the hypotenuse:
use spinoso_math as math;
assert_eq!(math::hypot(3.0, 4.0), 5.0);
Compute log with respect to the base 10 and handle domain errors:
use spinoso_math as math;
assert_eq!(math::log10(1.0), Ok(0.0));
assert_eq!(math::log10(10.0), Ok(1.0));
assert_eq!(math::log10(1e100), Ok(100.0));
assert_eq!(math::log10(0.0), Ok(f64::NEG_INFINITY));
assert!(math::log10(-0.1).is_err());
// A NaN return value is distinct from a `DomainError`.
assert!(matches!(math::log10(f64::NAN), Ok(result) if result.is_nan()));
Crate features
All features are enabled by default.
Structs
Error that indicates a math function evaluated to an out of range value.
A handle to the
Math
module.Error that indicates a
Math
module function is not implemented.Enums
Sum type of all errors possibly returned from
Math
functions.Constants
Functions
Computes the arccosine of the given value. Returns results in the range
(0..=PI)
.Computes the inverse hyperbolic cosine of the given value.
Computes the arcsine of the given value. Returns results in the range
(-PI/2..=PI/2)
.Computes the inverse hyperbolic sine of the given value.
Computes the arctangent of the given value. Returns results in the range
(-PI/2..=PI/2)
.Computes the four quadrant arctangent of
value
(y
) and other
(x
) in
radians.Computes the inverse hyperbolic tangent of the given value.
Returns the cube root of the given value.
Computes the cosine of the given value (expressed in radians). Returns
values in the range
-1.0..=1.0
.Computes the hyperbolic cosine of the given value (expressed in radians).
Calculates the error function of the given value.
Calculates the complementary error function of the given value.
Returns
e**x
.Returns a tuple array containing the normalized fraction (a Float) and
exponent (an Integer) of the given value.
Calculates the gamma function of the given value.
Returns
sqrt(x**2 + y**2)
, the hypotenuse of a right-angled triangle with
sides x and y.Returns the value of
fraction * (2**exponent)
.Calculates the logarithmic gamma of value and the sign of gamma of value.
Returns the logarithm of the number with respect to an arbitrary base.
Returns the base 2 logarithm of the number.
Returns the base 10 logarithm of the number.
Computes the sine of the given value (expressed in radians). Returns a Float
in the range
-1.0..=1.0
.Computes the hyperbolic sine of the given value (expressed in radians).
Returns the non-negative square root of the given value.
Computes the tangent of the given value (expressed in radians).
Computes the hyperbolic tangent of the given value (expressed in radians).