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.

  • full - Enables implementations of math functions that do not have implementations in Rust core. Dropping this feature removes the libm dependency.

Structs§

DomainError
Error that indicates a math function evaluated to an out of range value.
Math
A handle to the Math module.
NotImplementedError
Error that indicates a Math module function is not implemented.

Enums§

Error
Sum type of all errors possibly returned from Math functions.

Constants§

E
Euler’s number (e)
PI
Archimedes’ constant (π)

Functions§

acos
Computes the arccosine of the given value. Returns results in the range (0..=PI).
acosh
Computes the inverse hyperbolic cosine of the given value.
asin
Computes the arcsine of the given value. Returns results in the range (-PI/2..=PI/2).
asinh
Computes the inverse hyperbolic sine of the given value.
atan
Computes the arctangent of the given value. Returns results in the range (-PI/2..=PI/2).
atan2
Computes the four quadrant arctangent of value (y) and other (x) in radians.
atanh
Computes the inverse hyperbolic tangent of the given value.
cbrt
Returns the cube root of the given value.
cos
Computes the cosine of the given value (expressed in radians). Returns values in the range -1.0..=1.0.
cosh
Computes the hyperbolic cosine of the given value (expressed in radians).
erf
Calculates the error function of the given value.
erfc
Calculates the complementary error function of the given value.
exp
Returns e**x.
frexp
Returns a tuple array containing the normalized fraction (a Float) and exponent (an Integer) of the given value.
gamma
Calculates the gamma function of the given value.
hypot
Returns sqrt(x**2 + y**2), the hypotenuse of a right-angled triangle with sides x and y.
ldexp
Returns the value of fraction * (2**exponent).
lgamma
Calculates the logarithmic gamma of value and the sign of gamma of value.
log
Returns the logarithm of the number with respect to an arbitrary base.
log2
Returns the base 2 logarithm of the number.
log10
Returns the base 10 logarithm of the number.
sin
Computes the sine of the given value (expressed in radians). Returns a Float in the range -1.0..=1.0.
sinh
Computes the hyperbolic sine of the given value (expressed in radians).
sqrt
Returns the non-negative square root of the given value.
tan
Computes the tangent of the given value (expressed in radians).
tanh
Computes the hyperbolic tangent of the given value (expressed in radians).