diff options
author | Joseph Myers <joseph@codesourcery.com> | 2012-03-16 15:18:19 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2012-03-16 15:18:19 +0000 |
commit | 96cbe7f482fe89112de414da2bd8e90ffb0dcdbd (patch) | |
tree | 851af99e197ce93c65971607965aef7d3584d357 /sysdeps/ieee754 | |
parent | 8848d99dce1e57168a492d146f5e72195c7665a5 (diff) | |
download | glibc-96cbe7f482fe89112de414da2bd8e90ffb0dcdbd.tar.gz glibc-96cbe7f482fe89112de414da2bd8e90ffb0dcdbd.tar.xz glibc-96cbe7f482fe89112de414da2bd8e90ffb0dcdbd.zip |
Include program generating __sincosl_table in comment.
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r-- | sysdeps/ieee754/ldbl-96/t_sincosl.c | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/sysdeps/ieee754/ldbl-96/t_sincosl.c b/sysdeps/ieee754/ldbl-96/t_sincosl.c index 1ab9c2c61c..50dd84b948 100644 --- a/sysdeps/ieee754/ldbl-96/t_sincosl.c +++ b/sysdeps/ieee754/ldbl-96/t_sincosl.c @@ -22,8 +22,47 @@ bits and the same for sine. 0.1484375+82.0/128.0 is the smallest number among above defined numbers larger than pi/4. - Computed using MPFR. - */ + Computed using MPFR: + + #include <stdio.h> + #include <mpfr.h> + + int + main (void) + { + int j; + mpfr_t t, b, i, rs, rc, ts, tc, tsl, tcl; + mpfr_init2 (b, 64); + mpfr_init2 (i, 64); + mpfr_init2 (t, 64); + mpfr_set_str (b, "0.1484375", 0, MPFR_RNDN); + mpfr_set_str (i, "0x1p-7", 0, MPFR_RNDN); + mpfr_init2 (rs, 300); + mpfr_init2 (rc, 300); + mpfr_init2 (ts, 64); + mpfr_init2 (tc, 64); + mpfr_init2 (tsl, 64); + mpfr_init2 (tcl, 64); + for (j = 0; j <= 82; j++) + { + mpfr_mul_ui (t, i, j, MPFR_RNDN); + mpfr_add (t, t, b, MPFR_RNDN); + printf (" /" "* x = 0.1484375 + %d/128. *" "/\n", j); + mpfr_cos (rc, t, MPFR_RNDN); + mpfr_sin (rs, t, MPFR_RNDN); + mpfr_set (tc, rc, MPFR_RNDN); + mpfr_set (ts, rs, MPFR_RNDN); + mpfr_sub (tcl, rc, tc, MPFR_RNDN); + mpfr_sub (tsl, rs, ts, MPFR_RNDN); + mpfr_printf (" %.17RaL,\n", tc); + mpfr_printf (" %.17RaL,\n", tcl); + mpfr_printf (" %.17RaL,\n", ts); + mpfr_printf (" %.17RaL,\n", tsl); + } + return 0; + } + +*/ const long double __sincosl_table[] = { /* x = 0.1484375 + 0/128. */ |