Most of the math functions are now defined.
This commit is contained in:
parent
cc93721f32
commit
53ad5013a6
102
src/c/math.rs
102
src/c/math.rs
@ -1,29 +1,87 @@
|
||||
use binding::{CDouble, CInt};
|
||||
|
||||
use binding::{CFloat, CDouble, CInt};
|
||||
|
||||
|
||||
// Taken from: https://en.wikipedia.org/wiki/C_mathematical_functions
|
||||
#[link(name="m")]
|
||||
extern
|
||||
{
|
||||
pub fn acos(x: CDouble) -> CDouble;
|
||||
pub fn asin(x: CDouble) -> CDouble;
|
||||
pub fn atan(x: CDouble) -> CDouble;
|
||||
pub fn atan2(y: CDouble, x: CDouble) -> CDouble;
|
||||
pub fn cos(x: CDouble) -> CDouble;
|
||||
pub fn cosh(x: CDouble) -> CDouble;
|
||||
pub fn sin(x: CDouble) -> CDouble;
|
||||
pub fn sinh(x: CDouble) -> CDouble;
|
||||
pub fn tanh(x: CDouble) -> CDouble;
|
||||
pub fn exp(x: CDouble) -> CDouble;
|
||||
pub fn frexp(x: CDouble, exponent: *mut CInt) -> CDouble;
|
||||
pub fn ldexp(x: CDouble, exponent: CInt) -> CDouble;
|
||||
pub fn log(x: CDouble)-> CDouble;
|
||||
pub fn log10(x: CDouble)-> CDouble;
|
||||
pub fn modf(x: CDouble, integer: *mut CInt)-> CDouble;
|
||||
pub fn pow(x: CDouble, y: CDouble) -> CDouble;
|
||||
pub fn sqrt(x: CDouble) -> CDouble;
|
||||
pub fn ceil(x: CDouble) -> CDouble;
|
||||
pub fn fabs(x: CDouble) -> CDouble;
|
||||
pub fn floor(x: CDouble) -> CDouble;
|
||||
// Basic functions.
|
||||
pub fn fabs(arg: CDouble) -> CDouble;
|
||||
pub fn fmod(x: CDouble, y: CDouble) -> CDouble;
|
||||
pub fn fabsf(arg: CFloat) -> CFloat;
|
||||
pub fn fmodf(x: CFloat, y: CFloat) -> CFloat;
|
||||
|
||||
// Nearest integer floating point functions.
|
||||
pub fn ceil(arg: CDouble) -> CDouble;
|
||||
pub fn floor(arg: CDouble) -> CDouble;
|
||||
pub fn ceilf(arg: CFloat) -> CFloat;
|
||||
pub fn floorf(arg: CFloat) -> CFloat;
|
||||
|
||||
// Trigonometric functions.
|
||||
pub fn cos(arg: CDouble) -> CDouble;
|
||||
pub fn sin(arg: CDouble) -> CDouble;
|
||||
pub fn tan(arg: CDouble) -> CDouble;
|
||||
pub fn acos(arg: CDouble) -> CDouble;
|
||||
pub fn asin(arg: CDouble) -> CDouble;
|
||||
pub fn atan(arg: CDouble) -> CDouble;
|
||||
pub fn atan2(y: CDouble, x: CDouble) -> CDouble;
|
||||
pub fn cosf(arg: CFloat) -> CFloat;
|
||||
pub fn sinf(arg: CFloat) -> CFloat;
|
||||
pub fn tanf(arg: CFloat) -> CFloat;
|
||||
pub fn acosf(arg: CFloat) -> CFloat;
|
||||
pub fn asinf(arg: CFloat) -> CFloat;
|
||||
pub fn atanf(arg: CFloat) -> CFloat;
|
||||
pub fn atan2f(y: CFloat, x: CFloat) -> CFloat;
|
||||
|
||||
// Hyperbolic functions.
|
||||
pub fn cosh(arg: CDouble) -> CDouble;
|
||||
pub fn sinh(arg: CDouble) -> CDouble;
|
||||
pub fn tanh(arg: CDouble) -> CDouble;
|
||||
pub fn acosh(arg: CDouble) -> CDouble;
|
||||
pub fn asinh(arg: CDouble) -> CDouble;
|
||||
pub fn atanh(arg: CDouble) -> CDouble;
|
||||
pub fn coshf(arg: CFloat) -> CFloat;
|
||||
pub fn sinhf(arg: CFloat) -> CFloat;
|
||||
pub fn tanhf(arg: CFloat) -> CFloat;
|
||||
pub fn acoshf(arg: CFloat) -> CFloat;
|
||||
pub fn asinhf(arg: CFloat) -> CFloat;
|
||||
pub fn atanhf(arg: CFloat) -> CFloat;
|
||||
|
||||
// Exponential functions.
|
||||
pub fn exp(arg: CDouble) -> CDouble;
|
||||
pub fn exp2(arg: CDouble) -> CDouble;
|
||||
pub fn expm1(arg: CDouble) -> CDouble;
|
||||
pub fn log(arg: CDouble) -> CDouble;
|
||||
pub fn log2(arg: CDouble) -> CDouble;
|
||||
pub fn log10(arg: CDouble) -> CDouble;
|
||||
pub fn log1p(arg: CDouble) -> CDouble;
|
||||
pub fn logb(arg: CDouble) -> CDouble;
|
||||
pub fn ilogb(arg: CDouble) -> CInt;
|
||||
pub fn expf(arg: CFloat) -> CFloat;
|
||||
pub fn exp2f(arg: CFloat) -> CFloat;
|
||||
pub fn expm1f(arg: CFloat) -> CFloat;
|
||||
pub fn logf(arg: CFloat) -> CFloat;
|
||||
pub fn log2f(arg: CFloat) -> CFloat;
|
||||
pub fn log10f(arg: CFloat) -> CFloat;
|
||||
pub fn log1pf(arg: CFloat) -> CFloat;
|
||||
pub fn logbf(arg: CFloat) -> CFloat;
|
||||
pub fn ilogbf(arg: CFloat) -> CInt;
|
||||
|
||||
// Power functions.
|
||||
pub fn cbrt(arg: CDouble) -> CDouble;
|
||||
pub fn hypot(x: CDouble, y: CDouble) -> CDouble;
|
||||
pub fn pow(base: CDouble, exponent: CDouble) -> CDouble;
|
||||
pub fn sqrt(arg: CDouble) -> CDouble;
|
||||
pub fn cbrtf(arg: CFloat) -> CFloat;
|
||||
pub fn hypotf(x: CFloat, y: CFloat) -> CFloat;
|
||||
pub fn powf(base: CFloat, exponent: CFloat) -> CFloat;
|
||||
pub fn sqrtf(arg: CFloat) -> CFloat;
|
||||
|
||||
// Floating point manipulation functions.
|
||||
pub fn frexp(arg: CDouble, exp: *mut CInt) -> CDouble;
|
||||
pub fn ldexp(arg: CDouble, exp: CInt) -> CDouble;
|
||||
pub fn modf(arg: CDouble, integer: *mut CInt)-> CDouble;
|
||||
pub fn frexpf(arg: CFloat, exp: *mut CInt) -> CFloat;
|
||||
pub fn ldexpf(arg: CFloat, exp: CInt) -> CFloat;
|
||||
pub fn modff(arg: CFloat, integer: *mut CInt)-> CFloat;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user