diff options
| author | alexv-smirnov <[email protected]> | 2023-03-15 19:59:12 +0300 | 
|---|---|---|
| committer | alexv-smirnov <[email protected]> | 2023-03-15 19:59:12 +0300 | 
| commit | 056bb284ccf8dd6793ec3a54ffa36c4fb2b9ad11 (patch) | |
| tree | 4740980126f32e3af7937ba0ca5f83e59baa4ab0 /contrib/tools/cython/Cython/Includes/numpy/math.pxd | |
| parent | 269126dcced1cc8b53eb4398b4a33e5142f10290 (diff) | |
add library/cpp/actors, ymake build to ydb oss export
Diffstat (limited to 'contrib/tools/cython/Cython/Includes/numpy/math.pxd')
| -rw-r--r-- | contrib/tools/cython/Cython/Includes/numpy/math.pxd | 133 | 
1 files changed, 133 insertions, 0 deletions
diff --git a/contrib/tools/cython/Cython/Includes/numpy/math.pxd b/contrib/tools/cython/Cython/Includes/numpy/math.pxd new file mode 100644 index 00000000000..c16df1c51a5 --- /dev/null +++ b/contrib/tools/cython/Cython/Includes/numpy/math.pxd @@ -0,0 +1,133 @@ +# NumPy math library +# +# This exports the functionality of the NumPy core math library, aka npymath, +# which provides implementations of C99 math functions and macros for system +# with a C89 library (such as MSVC). npymath is available with NumPy >=1.3, +# although some functions will require later versions. The spacing function is +# not in C99, but comes from Fortran. +# +# On the Cython side, the npymath functions are available without the "npy_" +# prefix that they have in C, to make this is a drop-in replacement for +# libc.math. The same is true for the constants, where possible. +# +# See the NumPy documentation for linking instructions. +# +# Complex number support and NumPy 2.0 half-precision functions are currently +# not exported. +# +# Author: Lars Buitinck + +cdef extern from "numpy/npy_math.h" nogil: +    # Floating-point classification +    long double NAN "NPY_NAN" +    long double INFINITY "NPY_INFINITY" +    long double PZERO "NPY_PZERO"        # positive zero +    long double NZERO "NPY_NZERO"        # negative zero + +    # These four are actually macros and work on any floating-point type. +    int isinf "npy_isinf"(long double)  # -1 / 0 / 1 +    bint isfinite "npy_isfinite"(long double) +    bint isnan "npy_isnan"(long double) +    bint signbit "npy_signbit"(long double) + +    # Math constants +    long double E "NPY_E" +    long double LOG2E "NPY_LOG2E"       # ln(e) / ln(2) +    long double LOG10E "NPY_LOG10E"     # ln(e) / ln(10) +    long double LOGE2 "NPY_LOGE2"       # ln(2) +    long double LOGE10 "NPY_LOGE10"     # ln(10) +    long double PI "NPY_PI" +    long double PI_2 "NPY_PI_2"         # pi / 2 +    long double PI_4 "NPY_PI_4"         # pi / 4 +    long double NPY_1_PI                # 1 / pi; NPY_ because of ident syntax +    long double NPY_2_PI                # 2 / pi +    long double EULER "NPY_EULER"       # Euler constant (gamma, 0.57721) + +    # Low-level floating point manipulation (NumPy >=1.4) +    float copysignf "npy_copysignf"(float, float) +    float nextafterf "npy_nextafterf"(float x, float y) +    float spacingf "npy_spacingf"(float x) +    double copysign "npy_copysign"(double, double) +    double nextafter "npy_nextafter"(double x, double y) +    double spacing "npy_spacing"(double x) +    long double copysignl "npy_copysignl"(long double, long double) +    long double nextafterl "npy_nextafterl"(long double x, long double y) +    long double spacingl "npy_spacingl"(long double x) + +    # Float C99 functions +    float sinf "npy_sinf"(float x) +    float cosf "npy_cosf"(float x) +    float tanf "npy_tanf"(float x) +    float sinhf "npy_sinhf"(float x) +    float coshf "npy_coshf"(float x) +    float tanhf "npy_tanhf"(float x) +    float fabsf "npy_fabsf"(float x) +    float floorf "npy_floorf"(float x) +    float ceilf "npy_ceilf"(float x) +    float rintf "npy_rintf"(float x) +    float sqrtf "npy_sqrtf"(float x) +    float log10f "npy_log10f"(float x) +    float logf "npy_logf"(float x) +    float expf "npy_expf"(float x) +    float expm1f "npy_expm1f"(float x) +    float asinf "npy_asinf"(float x) +    float acosf "npy_acosf"(float x) +    float atanf "npy_atanf"(float x) +    float asinhf "npy_asinhf"(float x) +    float acoshf "npy_acoshf"(float x) +    float atanhf "npy_atanhf"(float x) +    float log1pf "npy_log1pf"(float x) +    float exp2f "npy_exp2f"(float x) +    float log2f "npy_log2f"(float x) +    float atan2f "npy_atan2f"(float x, float y) +    float hypotf "npy_hypotf"(float x, float y) +    float powf "npy_powf"(float x, float y) +    float fmodf "npy_fmodf"(float x, float y) +    float modff "npy_modff"(float x, float* y) + +    # Long double C99 functions +    long double sinl "npy_sinl"(long double x) +    long double cosl "npy_cosl"(long double x) +    long double tanl "npy_tanl"(long double x) +    long double sinhl "npy_sinhl"(long double x) +    long double coshl "npy_coshl"(long double x) +    long double tanhl "npy_tanhl"(long double x) +    long double fabsl "npy_fabsl"(long double x) +    long double floorl "npy_floorl"(long double x) +    long double ceill "npy_ceill"(long double x) +    long double rintl "npy_rintl"(long double x) +    long double sqrtl "npy_sqrtl"(long double x) +    long double log10l "npy_log10l"(long double x) +    long double logl "npy_logl"(long double x) +    long double expl "npy_expl"(long double x) +    long double expm1l "npy_expm1l"(long double x) +    long double asinl "npy_asinl"(long double x) +    long double acosl "npy_acosl"(long double x) +    long double atanl "npy_atanl"(long double x) +    long double asinhl "npy_asinhl"(long double x) +    long double acoshl "npy_acoshl"(long double x) +    long double atanhl "npy_atanhl"(long double x) +    long double log1pl "npy_log1pl"(long double x) +    long double exp2l "npy_exp2l"(long double x) +    long double log2l "npy_log2l"(long double x) +    long double atan2l "npy_atan2l"(long double x, long double y) +    long double hypotl "npy_hypotl"(long double x, long double y) +    long double powl "npy_powl"(long double x, long double y) +    long double fmodl "npy_fmodl"(long double x, long double y) +    long double modfl "npy_modfl"(long double x, long double* y) + +    # NumPy extensions +    float deg2radf "npy_deg2radf"(float x) +    float rad2degf "npy_rad2degf"(float x) +    float logaddexpf "npy_logaddexpf"(float x, float y) +    float logaddexp2f "npy_logaddexp2f"(float x, float y) + +    double deg2rad "npy_deg2rad"(double x) +    double rad2deg "npy_rad2deg"(double x) +    double logaddexp "npy_logaddexp"(double x, double y) +    double logaddexp2 "npy_logaddexp2"(double x, double y) + +    long double deg2radl "npy_deg2radl"(long double x) +    long double rad2degl "npy_rad2degl"(long double x) +    long double logaddexpl "npy_logaddexpl"(long double x, long double y) +    long double logaddexp2l "npy_logaddexp2l"(long double x, long double y)  | 
