Skip to content

nagisa/math.rs

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Jan 8, 2016
Jan 8, 2016
Jan 21, 2015
# Software implementations of libm functions in Rust

This is supposed to be linked into Rust binaries on systems where libm is not available.

# TODO:

double      acosh(double);
float       acoshf(float);
double      asinh(double);
float       asinhf(float);
double      atan(double);
double      atan2(double, double);
float       atan2f(float, float);
float       atanf(float);
double      atanh(double);
float       atanhf(float);
double      cbrt(double);
float       cbrtf(float);
double      cosh(double);
float       coshf(float);
double      erf(double);
double      erfc(double);
float       erfcf(float);
float       erff(float);
double      exp2(double);
float       exp2f(float);
double      expm1(double);
float       expm1f(float);
double      frexp(double, int *);
float       frexpf(float, int *);
double      j0(double);
double      j1(double);
double      jn(int, double);
double      lgamma(double);
float       lgammaf(float);
double      log(double);
double      log10(double);
float       log10f(float);
double      log1p(double);
float       log1pf(float);
double      log2(double);
float       log2f(float);
float       logf(float);
double      pow(double, double);
float       powf(float, float);
double      remainder(double, double);
float       remainderf(float, float);
double      remquo(double, double, int *);
float       remquof(float, float, int *);
double      sinh(double);
float       sinhf(float);
double      tanh(double);
float       tanhf(float);
double      tgamma(double);
float       tgammaf(float);
double      y0(double);
double      y1(double);
double      yn(int, double);
extern int signgam;

# Not (going to be?) implemented

long double acoshl(long double);
long double acosl(long double);
long double asinhl(long double);
long double asinl(long double);
long double atan2l(long double, long double);
long double atanhl(long double);
long double atanl(long double);
long double cbrtl(long double);
long double ceill(long double);
long double copysignl(long double, long double);
long double coshl(long double);
long double cosl(long double);
long double erfcl(long double);
long double erfl(long double);
long double exp2l(long double);
long double expl(long double);
long double fmodl(long double, long double);
long double expm1l(long double);
long double fabsl(long double);
long double fdiml(long double, long double);
long double floorl(long double);
long double fmal(long double, long double, long double);
long double fmaxl(long double, long double);
long double fminl(long double, long double);
long double frexpl(long double, int *);
long double hypotl(long double, long double);
long double ldexpl(long double, int);
long double lgammal(long double);
long double log10l(long double);
long double log1pl(long double);
long double log2l(long double);
long double logbl(long double);
long double logl(long double);
long double modfl(long double, long double *);
long double nanl(const char *);
long double nearbyintl(long double);
long double nextafterl(long double, long double);
long double nexttowardl(long double, long double);
long double powl(long double, long double);
long double remainderl(long double, long double);
long double remquol(long double, long double, int *);
long double rintl(long double);
long double roundl(long double);
long double sinhl(long double);
long double sinl(long double);
long double sqrtl(long double);
long double tanhl(long double);
long double tanl(long double);
long double tgammal(long double);
long double truncl(long double);

long long   llrintl(long double);
long long   llroundl(long double);
long        lrintl(long double);
long        lroundl(long double);
double      nexttoward(double, long double);
float       nexttowardf(float, long double);
int         ilogbl(long double);

# UNDECIDED

Generally useless and needs pretty hard dependency on libc.

double      nan(const char *);
float       nanf(const char *);

About

Implementation of libm in rust

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages