@@ -110,6 +110,49 @@ quad_exp2(Sleef_quad *op, Sleef_quad *out)
110110 return 0 ;
111111}
112112
113+ static inline int
114+ quad_sin (Sleef_quad *op, Sleef_quad *out)
115+ {
116+ *out = Sleef_sinq1_u10 (*op);
117+ return 0 ;
118+ }
119+
120+ static inline int
121+ quad_cos (Sleef_quad *op, Sleef_quad *out)
122+ {
123+ *out = Sleef_cosq1_u10 (*op);
124+ return 0 ;
125+ }
126+
127+ static inline int
128+ quad_tan (Sleef_quad *op, Sleef_quad *out)
129+ {
130+ *out = Sleef_tanq1_u10 (*op);
131+ return 0 ;
132+ }
133+
134+ static inline int
135+ quad_asin (Sleef_quad *op, Sleef_quad *out)
136+ {
137+ *out = Sleef_asinq1_u10 (*op);
138+ return 0 ;
139+ }
140+
141+ static inline int
142+ quad_acos (Sleef_quad *op, Sleef_quad *out)
143+ {
144+ *out = Sleef_acosq1_u10 (*op);
145+ return 0 ;
146+ }
147+
148+ static inline int
149+ quad_atan (Sleef_quad *op, Sleef_quad *out)
150+ {
151+ *out = Sleef_atanq1_u10 (*op);
152+ return 0 ;
153+ }
154+
155+
113156// Unary long double operations
114157typedef int (*unary_op_longdouble_def)(long double *, long double *);
115158
@@ -218,6 +261,48 @@ ld_exp2(long double *op, long double *out)
218261 return 0 ;
219262}
220263
264+ static inline int
265+ ld_sin (long double *op, long double *out)
266+ {
267+ *out = sinl (*op);
268+ return 0 ;
269+ }
270+
271+ static inline int
272+ ld_cos (long double *op, long double *out)
273+ {
274+ *out = cosl (*op);
275+ return 0 ;
276+ }
277+
278+ static inline int
279+ ld_tan (long double *op, long double *out)
280+ {
281+ *out = tanl (*op);
282+ return 0 ;
283+ }
284+
285+ static inline int
286+ ld_asin (long double *op, long double *out)
287+ {
288+ *out = asinl (*op);
289+ return 0 ;
290+ }
291+
292+ static inline int
293+ ld_acos (long double *op, long double *out)
294+ {
295+ *out = acosl (*op);
296+ return 0 ;
297+ }
298+
299+ static inline int
300+ ld_atan (long double *op, long double *out)
301+ {
302+ *out = atanl (*op);
303+ return 0 ;
304+ }
305+
221306// Binary Quad operations
222307typedef int (*binary_op_quad_def)(Sleef_quad *, Sleef_quad *, Sleef_quad *);
223308
@@ -277,6 +362,13 @@ quad_maximum(Sleef_quad *out, Sleef_quad *in1, Sleef_quad *in2)
277362 return 0 ;
278363}
279364
365+ static inline int
366+ quad_atan2 (Sleef_quad *out, Sleef_quad *in1, Sleef_quad *in2)
367+ {
368+ *out = Sleef_atan2q1_u10 (*in1, *in2);
369+ return 0 ;
370+ }
371+
280372// Binary long double operations
281373typedef int (*binary_op_longdouble_def)(long double *, long double *, long double *);
282374
@@ -336,6 +428,13 @@ ld_maximum(long double *out, long double *in1, long double *in2)
336428 return 0 ;
337429}
338430
431+ static inline int
432+ ld_atan2 (long double *out, long double *in1, long double *in2)
433+ {
434+ *out = atan2l (*in1, *in2);
435+ return 0 ;
436+ }
437+
339438// comparison quad functions
340439typedef npy_bool (*cmp_quad_def)(const Sleef_quad *, const Sleef_quad *);
341440
0 commit comments