Raymond Toy pushed to branch issue-425-correctly-rounded-math-functions at cmucl / cmucl
Commits:
-
f00d0070
by Raymond Toy at 2026-01-28T08:55:25-08:00
3 changed files:
Changes:
| ... | ... | @@ -214,9 +214,7 @@ |
| 214 | 214 | (y1 double-float :out))
|
| 215 | 215 | |
| 216 | 216 | (declaim (inline %%sincos))
|
| 217 | -(alien:def-alien-routine (#-core-math "lisp_sincos"
|
|
| 218 | - #+core-math "cr_sincos"
|
|
| 219 | - %%sincos)
|
|
| 217 | +(alien:def-alien-routine ("lisp_sincos" %%sincos)
|
|
| 220 | 218 | c-call:void
|
| 221 | 219 | (x double-float)
|
| 222 | 220 | (s double-float :out)
|
| ... | ... | @@ -31,6 +31,7 @@ extern double cr_pow(double, double); |
| 31 | 31 | extern double cr_hypot(double, double);
|
| 32 | 32 | extern double cr_log1p(double);
|
| 33 | 33 | extern double cr_expm1(double);
|
| 34 | +extern void cr_sincos(double, double *, double *);
|
|
| 34 | 35 | #endif
|
| 35 | 36 | |
| 36 | 37 | |
| ... | ... | @@ -243,3 +244,15 @@ lisp_scalbn(double x, int n) |
| 243 | 244 | {
|
| 244 | 245 | return fdlibm_scalbn(x, n);
|
| 245 | 246 | }
|
| 247 | + |
|
| 248 | +void
|
|
| 249 | +lisp_sincos (double x, double *s, double *c)
|
|
| 250 | +{
|
|
| 251 | +#ifdef FEATURE_CORE_MATH
|
|
| 252 | + cr_sincos(x, s, c);
|
|
| 253 | +#else
|
|
| 254 | + extern void cmucl_sincos(double, double*, double*);
|
|
| 255 | + |
|
| 256 | + cmucl_sincos(x, s, c);
|
|
| 257 | +#endif
|
|
| 258 | +} |
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | * reduction just once.
|
| 14 | 14 | */
|
| 15 | 15 | void
|
| 16 | -lisp_sincos (double x, double *s, double *c)
|
|
| 16 | +cmucl_sincos (double x, double *s, double *c)
|
|
| 17 | 17 | {
|
| 18 | 18 | int ix;
|
| 19 | 19 | union { int i[2]; double d; } ux;
|