Esempio n. 1
0
 * Each tuple will hold (symbol_name, function_pointer).
 */


#include "_pymodule.h"
#include <numpy/npy_math.h>

struct npy_math_entry {
    const char* name;
    void* func;
};


#define NPYMATH_SYMBOL(name) { "numba.npymath." #name, (void*) npy_##name }
struct npy_math_entry exports[] = {
    NPYMATH_SYMBOL(sin),
    NPYMATH_SYMBOL(cos),
    NPYMATH_SYMBOL(tan),
    NPYMATH_SYMBOL(asin),
    NPYMATH_SYMBOL(acos),
    NPYMATH_SYMBOL(atan),

    NPYMATH_SYMBOL(sinh),
    NPYMATH_SYMBOL(cosh),
    NPYMATH_SYMBOL(tanh),
    NPYMATH_SYMBOL(asinh),
    NPYMATH_SYMBOL(acosh),
    NPYMATH_SYMBOL(atanh),

    NPYMATH_SYMBOL(exp),
    NPYMATH_SYMBOL(exp2),
    void* func;
};


#define NPYMATH_SYMBOL_EXPLICIT(name,function) \
    { "numba.npymath." #name, (void*) function }

#define NPYMATH_SYMBOL(name) \
    { "numba.npymath." #name, (void*) npy_##name }

#define NPYMATH_SYMBOL_WRAPPED(name) \
    { "numba.npymath." #name, (void*) npy_##name##_wrapped }

struct npy_math_entry exports[] = {
    /* double functions */
    NPYMATH_SYMBOL(sin),
    NPYMATH_SYMBOL(cos),
    NPYMATH_SYMBOL(tan),
    NPYMATH_SYMBOL(asin),
    NPYMATH_SYMBOL(acos),
    NPYMATH_SYMBOL(atan),

    NPYMATH_SYMBOL(sinh),
    NPYMATH_SYMBOL(cosh),
    NPYMATH_SYMBOL(tanh),
    NPYMATH_SYMBOL(asinh),
    NPYMATH_SYMBOL(acosh),
    NPYMATH_SYMBOL(atanh),
    NPYMATH_SYMBOL(hypot),

    NPYMATH_SYMBOL(exp),