diff --git a/quaddtype/numpy_quaddtype/src/ops.hpp b/quaddtype/numpy_quaddtype/src/ops.hpp index ae38dbe..159b3cb 100644 --- a/quaddtype/numpy_quaddtype/src/ops.hpp +++ b/quaddtype/numpy_quaddtype/src/ops.hpp @@ -151,6 +151,42 @@ quad_atan(const Sleef_quad *op) return Sleef_atanq1_u10(*op); } +static inline Sleef_quad +quad_sinh(const Sleef_quad *op) +{ + return Sleef_sinhq1_u10(*op); +} + +static inline Sleef_quad +quad_cosh(const Sleef_quad *op) +{ + return Sleef_coshq1_u10(*op); +} + +static inline Sleef_quad +quad_tanh(const Sleef_quad *op) +{ + return Sleef_tanhq1_u10(*op); +} + +static inline Sleef_quad +quad_asinh(const Sleef_quad *op) +{ + return Sleef_asinhq1_u10(*op); +} + +static inline Sleef_quad +quad_acosh(const Sleef_quad *op) +{ + return Sleef_acoshq1_u10(*op); +} + +static inline Sleef_quad +quad_atanh(const Sleef_quad *op) +{ + return Sleef_atanhq1_u10(*op); +} + // Unary long double operations typedef long double (*unary_op_longdouble_def)(const long double *); @@ -299,6 +335,42 @@ ld_atan(const long double *op) return atanl(*op); } +static inline long double +ld_sinh(const long double *op) +{ + return sinhl(*op); +} + +static inline long double +ld_cosh(const long double *op) +{ + return coshl(*op); +} + +static inline long double +ld_tanh(const long double *op) +{ + return tanhl(*op); +} + +static inline long double +ld_asinh(const long double *op) +{ + return asinhl(*op); +} + +static inline long double +ld_acosh(const long double *op) +{ + return acoshl(*op); +} + +static inline long double +ld_atanh(const long double *op) +{ + return atanhl(*op); +} + // Unary Quad properties typedef npy_bool (*unary_prop_quad_def)(const Sleef_quad *); diff --git a/quaddtype/numpy_quaddtype/src/umath/unary_ops.cpp b/quaddtype/numpy_quaddtype/src/umath/unary_ops.cpp index 09e45e9..d60591e 100644 --- a/quaddtype/numpy_quaddtype/src/umath/unary_ops.cpp +++ b/quaddtype/numpy_quaddtype/src/umath/unary_ops.cpp @@ -216,5 +216,23 @@ init_quad_unary_ops(PyObject *numpy) if (create_quad_unary_ufunc(numpy, "arctan") < 0) { return -1; } + if (create_quad_unary_ufunc(numpy, "sinh") < 0) { + return -1; + } + if (create_quad_unary_ufunc(numpy, "cosh") < 0) { + return -1; + } + if (create_quad_unary_ufunc(numpy, "tanh") < 0) { + return -1; + } + if (create_quad_unary_ufunc(numpy, "arcsinh") < 0) { + return -1; + } + if (create_quad_unary_ufunc(numpy, "arccosh") < 0) { + return -1; + } + if (create_quad_unary_ufunc(numpy, "arctanh") < 0) { + return -1; + } return 0; } \ No newline at end of file