math.pxd 2.61 KB
Newer Older
1
cdef extern from "<math.h>" nogil:
2
    double M_E
3
    double e "M_E"  # as in Python's math module
4 5 6 7 8
    double M_LOG2E
    double M_LOG10E
    double M_LN2
    double M_LN10
    double M_PI
9
    double pi "M_PI"  # as in Python's math module
10 11 12 13 14 15 16
    double M_PI_2
    double M_PI_4
    double M_1_PI
    double M_2_PI
    double M_2_SQRTPI
    double M_SQRT2
    double M_SQRT1_2
17

18 19 20
    # C99 constants
    float INFINITY
    float NAN
21
    # note: not providing "nan" and "inf" aliases here as nan() is a function in C
22 23 24 25
    double HUGE_VAL
    float HUGE_VALF
    long double HUGE_VALL

26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
    double acos(double x)
    double asin(double x)
    double atan(double x)
    double atan2(double y, double x)
    double cos(double x)
    double sin(double x)
    double tan(double x)

    double cosh(double x)
    double sinh(double x)
    double tanh(double x)
    double acosh(double x)
    double asinh(double x)
    double atanh(double x)

41 42
    double hypot(double x, double y)

43
    double exp(double x)
44 45
    double exp2(double x)
    double expm1(double x)
46
    double log(double x)
47 48
    double logb(double x)
    double log2(double x)
49
    double log10(double x)
50 51 52 53 54
    double log1p(double x)
    int ilogb(double x)

    double lgamma(double x)
    double tgamma(double x)
55

56 57
    double frexp(double x, int* exponent)
    double ldexp(double x, int exponent)
58 59 60 61 62

    double modf(double x, double* iptr)
    double fmod(double x, double y)
    double remainder(double x, double y)
    double remquo(double x, double y, int *quot)
63 64
    double pow(double x, double y)
    double sqrt(double x)
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
    double cbrt(double x)

    double fabs(double x)
    double ceil(double x)
    double floor(double x)
    double trunc(double x)
    double rint(double x)
    double round(double x)
    double nearbyint(double x)
    double nextafter(double, double)
    double nexttoward(double, long double)

    long long llrint(double)
    long lrint(double)
    long long llround(double)
    long lround(double)

    double copysign(double, double)
83 84 85
    float copysignf(float, float)
    long double copysignl(long double, long double)

86
    double erf(double)
87 88
    float erff(float)
    long double erfl(long double)
89
    double erfc(double)
90 91
    float erfcf(float)
    long double erfcl(long double)
92 93

    double fdim(double x, double y)
94
    double fma(double x, double y, double z)
95 96 97 98 99
    double fmax(double x, double y)
    double fmin(double x, double y)
    double scalbln(double x, long n)
    double scalbn(double x, int n)

100
    double nan(const char*)
Antony Lee's avatar
Antony Lee committed
101

102
    int isinf(long double)   # -1 / 0 / 1
103
    bint isfinite(long double)
Antony Lee's avatar
Antony Lee committed
104 105 106
    bint isnan(long double)
    bint isnormal(long double)
    bint signbit(long double)