@@ -110,6 +110,49 @@ quad_exp2(Sleef_quad *op, Sleef_quad *out)
110
110
return 0 ;
111
111
}
112
112
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
+
113
156
// Unary long double operations
114
157
typedef int (*unary_op_longdouble_def)(long double *, long double *);
115
158
@@ -218,6 +261,48 @@ ld_exp2(long double *op, long double *out)
218
261
return 0 ;
219
262
}
220
263
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
+
221
306
// Binary Quad operations
222
307
typedef int (*binary_op_quad_def)(Sleef_quad *, Sleef_quad *, Sleef_quad *);
223
308
@@ -277,6 +362,13 @@ quad_maximum(Sleef_quad *out, Sleef_quad *in1, Sleef_quad *in2)
277
362
return 0 ;
278
363
}
279
364
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
+
280
372
// Binary long double operations
281
373
typedef int (*binary_op_longdouble_def)(long double *, long double *, long double *);
282
374
@@ -336,6 +428,13 @@ ld_maximum(long double *out, long double *in1, long double *in2)
336
428
return 0 ;
337
429
}
338
430
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
+
339
438
// comparison quad functions
340
439
typedef npy_bool (*cmp_quad_def)(const Sleef_quad *, const Sleef_quad *);
341
440
0 commit comments