about summary refs log tree commit diff
path: root/REORG.TODO/sysdeps/ieee754
diff options
context:
space:
mode:
Diffstat (limited to 'REORG.TODO/sysdeps/ieee754')
-rw-r--r--REORG.TODO/sysdeps/ieee754/Makefile4
-rw-r--r--REORG.TODO/sysdeps/ieee754/bits/huge_val.h53
-rw-r--r--REORG.TODO/sysdeps/ieee754/bits/huge_valf.h51
-rw-r--r--REORG.TODO/sysdeps/ieee754/bits/inf.h29
-rw-r--r--REORG.TODO/sysdeps/ieee754/bits/nan.h52
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/Makefile6
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/MathLib.h100
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/asincos.tbl5168
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/atnat.h154
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/atnat2.h161
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/branred.c144
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/branred.h80
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/dbl2mpn.c107
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/dla.h183
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/doasin.c84
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/doasin.h63
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.c223
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.h80
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_acos.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_acosh.c69
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_asin.c647
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_atan2.c620
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_atanh.c74
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_cosh.c88
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_exp.c361
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_exp10.c50
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_exp2.c133
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_fmod.c173
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_gamma_r.c220
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_hypot.c161
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_ilogb.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_j0.c458
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_j1.c466
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_jn.c347
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_lgamma_r.c310
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_log.c262
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_log10.c88
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_log2.c133
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_pow.c481
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_rem_pio2.c193
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_remainder.c152
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_sinh.c90
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/e_sqrt.c139
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/gamma_product.c45
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/gamma_productf.c43
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/halfulp.c152
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/k_cos.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/k_rem_pio2.c362
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/k_sin.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/k_tan.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_neg.c383
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_product.c52
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpa-arch.h47
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpa.c906
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpa.h154
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.c116
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.h145
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpatan2.c67
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpexp.c163
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mplog.c65
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpn2dbl.c47
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.c111
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.h38
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mptan.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/mydefs.h35
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/powtwo.tbl31
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/root.tbl57
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_asinh.c72
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_atan.c328
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_cbrt.c76
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_ceil.c89
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_copysign.c39
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_cos.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_erf.c428
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_expm1.c262
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_fabs.c32
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_finite.c50
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_floor.c89
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_fma.c301
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_fmaf.c64
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_fpclassify.c43
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_frexp.c58
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp.c7
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp_main.c82
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfpx.c7
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_getpayload.c37
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_isinf.c36
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_isnan.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_issignaling.c47
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_llrint.c103
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_llround.c91
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_log1p.c195
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_logb.c52
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_lrint.c127
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_lround.c113
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_modf.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_nearbyint.c78
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_nexttoward.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_nextup.c58
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_remquo.c115
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_rint.c67
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_round.c83
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_roundeven.c106
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbln.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbn.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload_main.c69
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayloadsig.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_signbit.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_sin.c927
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_sincos.c113
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_tan.c848
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_tanh.c98
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_totalorder.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_totalordermag.c49
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_trunc.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfp.c7
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfpx.c7
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.c369
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.h81
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/sincostab.c914
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/slowexp.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/slowpow.c125
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/t_exp.c435
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/t_exp2.h585
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/uasncs.h69
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/uatan.tbl11134
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/uexp.h69
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/uexp.tbl1786
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/ulog.h187
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/ulog.tbl3326
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/upow.h76
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/upow.tbl10188
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/urem.h46
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/usncs.h48
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/utan.h265
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/utan.tbl1525
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/w_exp_compat.c38
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c67
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c84
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c105
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c87
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c128
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c42
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c74
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c69
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c33
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c33
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c39
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c43
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c82
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c48
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c89
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c66
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c66
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c114
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c68
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c72
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c53
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c50
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c47
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c57
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1.c75
-rw-r--r--REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1f.c32
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/Makeconfig3
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/Makefile3
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/Versions150
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_acosf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_acoshf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_asinf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_atan2f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_atanhf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_coshf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_exp10f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_expf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_fmodf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_gammaf128_r.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_hypotf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_ilogbf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_j0f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_j1f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_jnf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_lgammaf128_r.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_log10f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_log2f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_logf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_powf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_rem_pio2f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_remainderf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_scalbf128.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/e_sinhf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/float1282mpn.c20
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/float128_private.h326
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/gamma_productf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/ieee754_float128.h140
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/k_cosf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/k_sincosf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/k_sinf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/k_tanf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/lgamma_negf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/lgamma_productf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_asinhf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_atanf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_cbrtf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_ceilf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_copysignf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_cosf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_erff128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_expm1f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_fabsf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_finitef128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_floorf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_fmaf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_fpclassifyf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_frexpf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_fromfpf128.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_fromfpxf128.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_getpayloadf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_isinff128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_isnanf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_issignalingf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_llrintf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_llroundf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_log1pf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_logbf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_lrintf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_lroundf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_modff128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_nearbyintf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_nextafterf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_nexttowardf128.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_nextupf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_remquof128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_rintf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_roundevenf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_roundf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_scalblnf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_scalbnf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_setpayloadf128.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_setpayloadsigf128.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_signbitf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_significandf128.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_sincosf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_sinf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_tanf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_tanhf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_totalorderf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_totalordermagf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_truncf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_ufromfpf128.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/s_ufromfpxf128.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/strfromf128.c25
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/t_sincosf128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/float128/x2y2m1f128.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_acosf.c78
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_acoshf.c49
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_asinf.c104
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_atan2f.c94
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_atanhf.c74
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_coshf.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_exp2f.c132
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_expf.c133
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_fmodf.c102
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_gammaf_r.c212
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_hypotf.c45
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_ilogbf.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_j0f.c337
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_j1f.c347
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_jnf.c233
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_lgammaf_r.c246
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_log10f.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_log2f.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_logf.c85
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_powf.c258
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_rem_pio2f.c179
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_remainderf.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_sinhf.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/e_sqrtf.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/k_cosf.c55
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/k_rem_pio2f.c208
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/k_sinf.c50
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/k_tanf.c101
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/lgamma_negf.c280
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/lgamma_productf.c1
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/mpn2flt.c41
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_asinhf.c50
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_atanf.c101
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_cbrtf.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_ceilf.c48
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_copysignf.c37
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_cosf.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_erff.c230
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_expm1f.c130
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_fabsf.c30
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_finitef.c41
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_floorf.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_fpclassifyf.c42
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_frexpf.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf_main.c82
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpxf.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_getpayloadf.c33
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_isinff.c29
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_isnanf.c38
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_issignalingf.c43
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_llrintf.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_llroundf.c73
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_log1pf.c102
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_logbf.c41
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_lrintf.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_lroundf.c73
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_modff.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_nearbyintf.c59
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_nextafterf.c73
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_nextupf.c46
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_remquof.c110
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_rintf.c50
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_roundevenf.c68
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_roundf.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_scalblnf.c52
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_scalbnf.c52
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf_main.c53
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadsigf.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_signbitf.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_sincosf.c84
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_sinf.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_tanf.c49
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_tanhf.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_totalorderf.c46
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_totalordermagf.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_truncf.c53
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpf.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpxf.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/t_exp2f.h351
-rw-r--r--REORG.TODO/sysdeps/ieee754/flt-32/w_expf_compat.c34
-rw-r--r--REORG.TODO/sysdeps/ieee754/ieee754.h198
-rw-r--r--REORG.TODO/sysdeps/ieee754/k_standard.c943
-rw-r--r--REORG.TODO/sysdeps/ieee754/k_standardf.c31
-rw-r--r--REORG.TODO/sysdeps/ieee754/k_standardl.c107
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/Makefile1
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/bits/long-double.h20
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_acoshl.c61
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_acosl.c319
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_asinl.c258
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_atan2l.c122
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_atanhl.c74
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_coshl.c110
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_exp10l.c49
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_expl.c253
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_fmodl.c131
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_gammal_r.c218
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_hypotl.c140
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_ilogbl.c56
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_j0l.c937
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_j1l.c961
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_jnl.c419
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_lgammal_r.c1046
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_log10l.c259
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_log2l.c252
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_logl.c282
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_powl.c451
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c273
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_remainderl.c71
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/e_sinhl.c117
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/gamma_productl.c45
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/ieee754.h170
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/k_cosl.c131
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/k_sincosl.c170
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/k_sinl.c135
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/k_tanl.c168
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/ldbl2mpn.c140
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_negl.c551
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_productl.c52
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/math_ldbl.h120
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/mpn2ldbl.c52
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex.c25
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h104
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_asinhl.c79
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_atanl.c253
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_cbrtl.c135
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_ceill.c66
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_copysignl.c38
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_cosl.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_erfl.c948
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_expm1l.c166
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_fabsl.c34
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_finitel.c36
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_floorl.c67
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_fma.c55
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_fmal.c298
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_frexpl.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c90
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpxl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_getpayloadl.c57
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_isinfl.c29
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_isnanl.c38
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_issignalingl.c46
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_llrintl.c108
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_llroundl.c102
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_log1pl.c256
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_logbl.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_lrintl.c137
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_lroundl.c113
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_modfl.c79
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_nearbyintl.c67
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextafterl.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttoward.c89
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttowardf.c76
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextupl.c56
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_remquol.c112
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_rintl.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundevenl.c102
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundl.c80
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalblnl.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalbnl.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c69
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_signbitl.c27
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_sincosl.c73
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_sinl.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanhl.c100
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanl.c80
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalorderl.c54
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalordermagl.c48
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_truncl.c56
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h33
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/strtold_l.c37
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/t_expl.h970
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/t_sincosl.c696
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/w_expl_compat.c42
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128/x2y2m1l.c76
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/Makefile16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h41
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acosl.c316
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_asinl.c250
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atan2l.c122
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c71
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_coshl.c81
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c48
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_expl.c256
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c149
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c218
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c138
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c70
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j0l.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j1l.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_jnl.c421
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log10l.c261
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log2l.c254
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_logl.c300
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_powl.c415
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c279
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c81
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c79
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c102
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c42
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ieee754.h133
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/include/bits/iscanonical.h5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_cosl.c153
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c193
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sinl.c157
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_tanl.c166
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c197
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c532
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c38
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h290
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c161
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c139
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_atanl.c250
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ceill.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c41
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cosl.c88
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_erfl.c970
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c152
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_finitel.c49
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_floorl.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fmal.c257
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c97
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c148
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c147
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c34
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isinfl.c40
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isnanl.c46
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c49
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c140
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c120
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c249
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_logbl.c63
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c155
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c135
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_modfl.c96
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c21
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c160
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c90
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c79
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c78
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_remquol.c119
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_rintl.c129
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c69
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundl.c87
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c104
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c104
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c32
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c76
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sinl.c85
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c87
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanl.c79
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c64
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_truncl.c62
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h30
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtold_l.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c693
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c230
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c21
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c84
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c21
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c30
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c73
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c85
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c21
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c93
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/e_ilogbl.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_asinhl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_atanl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cbrtl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_ceill.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_copysignl.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cosl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_erfl.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_expm1l.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fabsl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_finitel.c17
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_floorl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fmal.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_frexpl.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isinfl.c16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isnanl.c16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llrintl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llroundl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_log1pl.c2
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_logbl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lrintl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lroundl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_modfl.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nextafterl.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttoward.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_remquol.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_rintl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_roundl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalblnl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalbnl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_signbitl.c11
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sincosl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sinl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanhl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_truncl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/strtold_l.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_scalblnl.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/Makefile21
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/bits/iscanonical.h34
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/bits/long-double.h20
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_acoshl.c61
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_asinl.c157
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_atanhl.c69
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_coshl.c87
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_gammal_r.c210
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_hypotl.c142
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_j0l.c531
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_j1l.c550
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_jnl.c404
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_lgammal_r.c439
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c236
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/e_sinhl.c87
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_product.c43
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_productl.c45
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/include/bits/iscanonical.h5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/k_cosl.c123
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/k_sinl.c130
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/k_tanl.c152
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/ldbl2mpn.c94
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_negl.c418
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_product.c37
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_productl.c52
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/math_ldbl.h120
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/mpn2ldbl.c46
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/printf_fphex.c95
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_asinhl.c65
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_cbrtl.c70
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_copysignl.c38
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_cosl.c88
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_erfl.c451
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_fma.c101
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_fmal.c296
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_frexpl.c61
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c84
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpxl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_getpayloadl.c32
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_iscanonicall.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_issignalingl.c44
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_llrintl.c91
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_llroundl.c89
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_lrintl.c126
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_lroundl.c111
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_modfl.c73
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttoward.c86
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttowardf.c74
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_nextupl.c84
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_remquol.c111
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundevenl.c124
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundl.c92
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_scalblnl.c60
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c68
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_signbitl.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_sincosl.c76
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_sinl.c88
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanhl.c90
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanl.c81
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalorderl.c57
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalordermagl.c51
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c4
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h30
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/strtold_l.c37
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/t_sincosl.c483
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c141
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c82
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/w_expl_compat.c34
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1.c39
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1l.c75
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/Makefile167
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/Versions100
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/bits/long-double.h24
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/configure39
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/configure.ac19
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h38
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h38
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c3
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h46
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acos.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acosh.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asin.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asinh.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c17
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf_chk.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan2.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atanh.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cabs.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacos.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-carg.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casin.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casinh.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catan.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catanh.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccos.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ceil.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cexp.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cimag.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog10.c11
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.c1085
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.h104
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-conj.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cos.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cosh.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cpow.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cproj.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-creal.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csin.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csinh.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctan.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf_chk.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erfc.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp10.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp2.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-expm1.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fabs.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fdim.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-finite.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-floor.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fma.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmax.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmin.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmod.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c17
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-frexp.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-gamma.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-hypot.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isinf.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isnan.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j0.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j1.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-jn.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llrint.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llround.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log10.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log2.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-logb.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lrint.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lround.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-modf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nan.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c27
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c14
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c12
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c27
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c13
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf_chk.c13
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf_chk.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow10.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf.c17
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c11
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c11
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remainder.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remquo.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-rint.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-round.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalb.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-signbit.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-significand.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sin.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sincos.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sinh.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c17
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c17
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c14
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c20
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c16
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog.c11
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c12
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tan.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tanh.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-trunc.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c26
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf_chk.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf_chk.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c14
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c10
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y0.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y1.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-yn.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_asinh.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_atan.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_cbrt.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ceil.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_clog10l.c31
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_copysign.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_erf.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_expm1.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fabs.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_finite.c18
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_floor.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fma.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fmal.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_frexp.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isinf.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isnan.c8
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexp.c30
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexpl.c31
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llrint.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llround.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_log1p.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_logb.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lrint.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lround.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_modf.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nearbyint.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nextafter.c12
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c81
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_remquo.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_rint.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_round.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbln.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbn.c9
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significand.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significandl.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sin.c15
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sincos.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tan.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tanh.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/s_trunc.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acos_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosh_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asin_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanh_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_cosh_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmod_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypot_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jn_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c6
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compat.c7
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c11
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_logl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_pow_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_powl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainder_compat.c7
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c7
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalb_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalbl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinh_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c5
-rw-r--r--REORG.TODO/sysdeps/ieee754/s_lib_version.c41
-rw-r--r--REORG.TODO/sysdeps/ieee754/s_matherr.c28
-rw-r--r--REORG.TODO/sysdeps/ieee754/s_signgam.c4
961 files changed, 105820 insertions, 0 deletions
diff --git a/REORG.TODO/sysdeps/ieee754/Makefile b/REORG.TODO/sysdeps/ieee754/Makefile
new file mode 100644
index 0000000000..5c7fc3fc52
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/Makefile
@@ -0,0 +1,4 @@
+ifeq ($(subdir),math)
+sysdep_headers += ieee754.h
+endif
+
diff --git a/REORG.TODO/sysdeps/ieee754/bits/huge_val.h b/REORG.TODO/sysdeps/ieee754/bits/huge_val.h
new file mode 100644
index 0000000000..fb3ba69c44
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/bits/huge_val.h
@@ -0,0 +1,53 @@
+/* `HUGE_VAL' constant for IEEE 754 machines (where it is infinity).
+   Used by <stdlib.h> and <math.h> functions for overflow.
+   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
+#endif
+
+/* IEEE positive infinity (-HUGE_VAL is negative infinity).  */
+
+#if __GNUC_PREREQ(3,3)
+# define HUGE_VAL	(__builtin_huge_val())
+#elif __GNUC_PREREQ(2,96)
+# define HUGE_VAL	(__extension__ 0x1.0p2047)
+#elif defined __GNUC__
+
+# define HUGE_VAL \
+  (__extension__							      \
+   ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; })   \
+    { __l: 0x7ff0000000000000ULL }).__d)
+
+#else /* not GCC */
+
+# include <endian.h>
+
+typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
+
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define __HUGE_VAL_bytes	{ 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 }
+# endif
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+#  define __HUGE_VAL_bytes	{ 0, 0, 0, 0, 0, 0, 0xf0, 0x7f }
+# endif
+
+static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
+# define HUGE_VAL	(__huge_val.__d)
+
+#endif	/* GCC.  */
diff --git a/REORG.TODO/sysdeps/ieee754/bits/huge_valf.h b/REORG.TODO/sysdeps/ieee754/bits/huge_valf.h
new file mode 100644
index 0000000000..f24bcf452f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/bits/huge_valf.h
@@ -0,0 +1,51 @@
+/* `HUGE_VALF' constant for IEEE 754 machines (where it is infinity).
+   Used by <stdlib.h> and <math.h> functions for overflow.
+   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/huge_valf.h> directly; include <math.h> instead."
+#endif
+
+/* IEEE positive infinity (-HUGE_VAL is negative infinity).  */
+
+#if __GNUC_PREREQ(3,3)
+# define HUGE_VALF	(__builtin_huge_valf())
+#elif __GNUC_PREREQ(2,96)
+# define HUGE_VALF	(__extension__ 0x1.0p255f)
+#elif defined __GNUC__
+
+#   define HUGE_VALF \
+  (__extension__							      \
+   ((union { unsigned __l __attribute__((__mode__(__SI__))); float __d; })    \
+    { __l: 0x7f800000UL }).__d)
+
+#else /* not GCC */
+
+typedef union { unsigned char __c[4]; float __f; } __huge_valf_t;
+
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define __HUGE_VALF_bytes	{ 0x7f, 0x80, 0, 0 }
+# endif
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+#  define __HUGE_VALF_bytes	{ 0, 0, 0x80, 0x7f }
+# endif
+
+static __huge_valf_t __huge_valf = { __HUGE_VALF_bytes };
+# define HUGE_VALF	(__huge_valf.__f)
+
+#endif	/* GCC.  */
diff --git a/REORG.TODO/sysdeps/ieee754/bits/inf.h b/REORG.TODO/sysdeps/ieee754/bits/inf.h
new file mode 100644
index 0000000000..eee0f2ea88
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/bits/inf.h
@@ -0,0 +1,29 @@
+/* `INFINITY' constant for IEEE 754 machines.
+   Copyright (C) 2004-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/inf.h> directly; include <math.h> instead."
+#endif
+
+/* IEEE positive infinity.  */
+
+#if __GNUC_PREREQ(3,3)
+# define INFINITY	(__builtin_inff())
+#else
+# define INFINITY	HUGE_VALF
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/bits/nan.h b/REORG.TODO/sysdeps/ieee754/bits/nan.h
new file mode 100644
index 0000000000..b6e14f5873
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/bits/nan.h
@@ -0,0 +1,52 @@
+/* `NAN' constant for IEEE 754 machines.
+   Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/nan.h> directly; include <math.h> instead."
+#endif
+
+
+/* IEEE Not A Number.  */
+
+#if __GNUC_PREREQ(3,3)
+
+# define NAN	(__builtin_nanf (""))
+
+#elif defined __GNUC__
+
+# define NAN \
+  (__extension__							      \
+   ((union { unsigned __l __attribute__ ((__mode__ (__SI__))); float __d; })  \
+    { __l: 0x7fc00000UL }).__d)
+
+#else
+
+# include <endian.h>
+
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define __qnan_bytes		{ 0x7f, 0xc0, 0, 0 }
+# endif
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+#  define __qnan_bytes		{ 0, 0, 0xc0, 0x7f }
+# endif
+
+static union { unsigned char __c[4]; float __d; } __qnan_union
+  __attribute__ ((__unused__)) = { __qnan_bytes };
+# define NAN	(__qnan_union.__d)
+
+#endif	/* GCC.  */
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/Makefile b/REORG.TODO/sysdeps/ieee754/dbl-64/Makefile
new file mode 100644
index 0000000000..5557c75b45
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/Makefile
@@ -0,0 +1,6 @@
+ifeq ($(subdir),math)
+# branred depends on precise IEEE double rounding
+CFLAGS-branred.c = $(config-cflags-nofma)
+CFLAGS-e_sqrt.c = $(config-cflags-nofma)
+CFLAGS-e_pow.c = $(config-cflags-nofma)
+endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/MathLib.h b/REORG.TODO/sysdeps/ieee754/dbl-64/MathLib.h
new file mode 100644
index 0000000000..ffda70a413
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/MathLib.h
@@ -0,0 +1,100 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/********************************************************************/
+/* Ultimate math functions. Each function computes the exact        */
+/* theoretical value of its argument rounded to nearest or even.    */
+/*                                                                  */
+/* Assumption: Machine arithmetic operations are performed in       */
+/* round nearest mode of IEEE 754 standard.                         */
+/********************************************************************/
+
+#ifndef UMATH_LIB
+#define UMATH_LIB
+/********************************************************************/
+/* Function changes the precision mode to IEEE 754 double precision */
+/* and the rounding mode to nearest or even.                        */
+/* It returns the original status of these modes.                   */
+/* See further explanations of usage in DPChange.h                  */
+/********************************************************************/
+unsigned short Init_Lib (void);
+
+/********************************************************************/
+/* Function that changes the precision and rounding modes to the    */
+/* specified by the argument received. See further explanations in  */
+/* DPChange.h                                                       */
+/********************************************************************/
+void Exit_Lib (unsigned short);
+
+
+/* The  asin() function calculates the arc sine of its argument.    */
+/* The  function returns the arc sine in radians                    */
+/* (between -PI/2 and PI/2).                                        */
+/* If the argument is greater than 1 or less than -1 it returns     */
+/* a NaN.                                                           */
+double uasin (double);
+
+
+/* The  acos() function calculates the arc cosine of its argument.  */
+/* The  function returns the arc cosine in radians                  */
+/* (between -PI/2 and PI/2).                                        */
+/* If the argument is greater than 1 or less than -1 it returns     */
+/* a NaN.                                                           */
+double uacos (double);
+
+/* The  atan() function calculates the arctanget of its argument.   */
+/* The  function returns the arc tangent in radians                 */
+/* (between -PI/2 and PI/2).                                        */
+double uatan (double);
+
+
+/* The uatan2() function calculates the arc tangent of the two arguments x   */
+/* and y (x is the right argument and y is the left one).The signs of both   */
+/* arguments are used to determine the quadrant of the result.               */
+/* The function returns the result in radians, which is between -PI and PI   */
+double uatan2 (double, double);
+
+/* Compute log(x). The base of log is e (natural logarithm)         */
+double ulog (double);
+
+/* Compute e raised to the power of argument x.                     */
+double uexp (double);
+
+/* Compute sin(x). The argument x is assumed to be given in radians.*/
+double usin (double);
+
+/* Compute cos(x). The argument x is assumed to be given in radians.*/
+double ucos (double);
+
+/* Compute tan(x). The argument x is assumed to be given in radians.*/
+double utan (double);
+
+/* Compute the square root of non-negative argument x.              */
+/* If x is negative the returned value is NaN.                      */
+double usqrt (double);
+
+/* Compute x raised to the power of y, where x is the left argument */
+/* and y is the right argument. The function returns a NaN if x<0.  */
+/* If x equals zero it returns -inf                                 */
+double upow (double, double);
+
+/* Computing x mod y, where x is the left argument and y is the     */
+/* right one.                                                       */
+double uremainder (double, double);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/asincos.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/asincos.tbl
new file mode 100644
index 0000000000..5e7670c3b1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/asincos.tbl
@@ -0,0 +1,5168 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/***************************************************************************/
+/* Table for  arcsin() and arccos()  FUNCTIONS                             */
+/***************************************************************************/
+
+#ifdef BIG_ENDI
+static const union {int4 i[5136];double x[2568];} asncs = { .i = {
+/**/                   0x3FC04000, 0x00000000,
+/**/                   0x3FF02169, 0x88994424,
+/**/                   0x3FB0A6A2, 0xB799B115,
+/**/                   0x3FC6EF15, 0xD57409A0,
+/**/                   0x3FAA141E, 0xAF52EAA0,
+/**/                   0x3FB75591, 0xABBBE261,
+/**/                   0x3FA72B51, 0xD206D88F,
+/**/                   0x3C96B595, 0x5BB33E7D,
+/**/                   0x3FC04B41, 0xA03E2700,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF7E9677, 0x66BBDC7C,
+/**/                   0x3FC0C000, 0x00000000,
+/**/                   0x3FF02386, 0xF9E23A56,
+/**/                   0x3FB1308C, 0x60FD0235,
+/**/                   0x3FC7099F, 0x14D16B02,
+/**/                   0x3FAAFED6, 0x27C01EE1,
+/**/                   0x3FB79C6F, 0xDBCD5F98,
+/**/                   0x3FA8144A, 0x4084DAAC,
+/**/                   0xBC87C092, 0x38D8505E,
+/**/                   0x3FC0CC55, 0x56C9F380,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF7C7906, 0x1DC5AA24,
+/**/                   0x3FC14000, 0x00000000,
+/**/                   0x3FF025B5, 0xB27141F6,
+/**/                   0x3FB1BB18, 0x04CE7400,
+/**/                   0x3FC72514, 0x72907342,
+/**/                   0x3FABEC60, 0x0BF4222C,
+/**/                   0x3FB7E610, 0x75B3736C,
+/**/                   0x3FA9024C, 0x5199C343,
+/**/                   0xBC8AE84C, 0x06B56F60,
+/**/                   0x3FC14D7A, 0x3DEFA070,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF7A4A4D, 0x8EBE0A5C,
+/**/                   0x3FC1C000, 0x00000000,
+/**/                   0x3FF027F5, 0xC6DE8F57,
+/**/                   0x3FB2464B, 0x345751E1,
+/**/                   0x3FC74178, 0xCF026805,
+/**/                   0x3FACDCD8, 0x40A9E0D6,
+/**/                   0x3FB83282, 0xEB1D9C38,
+/**/                   0x3FA9F590, 0xD7BE707B,
+/**/                   0xBCAB9768, 0x03A2A6D6,
+/**/                   0x3FC1CEB0, 0xE03B4870,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF780A39, 0x2170A943,
+/**/                   0x3FC24000, 0x00000000,
+/**/                   0x3FF02A47, 0x4C759796,
+/**/                   0x3FB2D22B, 0x92771935,
+/**/                   0x3FC75ECF, 0x26ABA06D,
+/**/                   0x3FADD05B, 0x486A1932,
+/**/                   0x3FB881D7, 0x5AF971D5,
+/**/                   0x3FAAEE52, 0x831AEE0C,
+/**/                   0x3CA13F57, 0xAD1B1BEF,
+/**/                   0x3FC24FF9, 0xC8E09330,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF75B8B3, 0x8A68699B,
+/**/                   0x3FC2C000, 0x00000000,
+/**/                   0x3FF02CAA, 0x59374E09,
+/**/                   0x3FB35EBE, 0xD44E8BEA,
+/**/                   0x3FC77D1A, 0x92E4BE8A,
+/**/                   0x3FAEC706, 0x4A6C34FD,
+/**/                   0x3FB8D41E, 0x972F6E07,
+/**/                   0x3FABECCD, 0xF9845F69,
+/**/                   0x3C8BA1FA, 0x945C4185,
+/**/                   0x3FC2D155, 0x83C058B0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF7355A6, 0xC8B1F774,
+/**/                   0x3FC34000, 0x00000000,
+/**/                   0x3FF02F1F, 0x03DC7745,
+/**/                   0x3FB3EC0A, 0xC1EE9F61,
+/**/                   0x3FC79C5E, 0x4A82E6D2,
+/**/                   0x3FAFC0F7, 0x19B1EF72,
+/**/                   0x3FB9296A, 0x2AA943E5,
+/**/                   0x3FACF141, 0xEF8B9DE7,
+/**/                   0xBC834081, 0x083C8716,
+/**/                   0x3FC352C4, 0x9D6E5610,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF70E0FC, 0x2388BB30,
+/**/                   0x3FC3C000, 0x00000000,
+/**/                   0x3FF031A5, 0x63D81251,
+/**/                   0x3FB47A15, 0x370B721F,
+/**/                   0x3FC7BC9D, 0xA28731E5,
+/**/                   0x3FB05F26, 0x1E305BE9,
+/**/                   0x3FB981CC, 0x5FA50FBD,
+/**/                   0x3FADFBEF, 0x42AC4083,
+/**/                   0x3CA20ACB, 0xA8E107C7,
+/**/                   0x3FC3D447, 0xA336F5E0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF6CB538, 0x4FDB5D5C,
+/**/                   0x3FC44000, 0x00000000,
+/**/                   0x3FF0343D, 0x9159D86F,
+/**/                   0x3FB508E4, 0x23B3747C,
+/**/                   0x3FC7DDDC, 0x0ED597CB,
+/**/                   0x3FB0DF92, 0x79ADF104,
+/**/                   0x3FB9DD58, 0x4658D945,
+/**/                   0x3FAF0D19, 0x14ACA06B,
+/**/                   0xBCA4E10D, 0xDF636EFE,
+/**/                   0x3FC455DF, 0x23252C00,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF6784DD, 0x4C4F221A,
+/**/                   0x3FC4C000, 0x00000000,
+/**/                   0x3FF036E7, 0xA550D410,
+/**/                   0x3FB5987D, 0x8D0AF1E7,
+/**/                   0x3FC8001D, 0x22F39726,
+/**/                   0x3FB161D0, 0xA1116D73,
+/**/                   0x3FBA3C21, 0xBBEA1528,
+/**/                   0x3FB01282, 0x74202FF6,
+/**/                   0x3CAA0611, 0xD10866E2,
+/**/                   0x3FC4D78B, 0xAC086560,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF6230B5, 0x5E57DF8A,
+/**/                   0x3FC54000, 0x00000000,
+/**/                   0x3FF039A3, 0xB96E0F8A,
+/**/                   0x3FB628E7, 0x8E0C29F6,
+/**/                   0x3FC82364, 0x92CEDE01,
+/**/                   0x3FB1E5F0, 0xFB7B5D84,
+/**/                   0x3FBA9E3D, 0x71BD08EE,
+/**/                   0x3FB0A1FD, 0x5F7FFAB4,
+/**/                   0xBC90F980, 0xEF04F6E7,
+/**/                   0x3FC5594D, 0xCD7A8DC0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF59711A, 0x47C1D879,
+/**/                   0x3FC5C000, 0x00000000,
+/**/                   0x3FF03C71, 0xE8275C12,
+/**/                   0x3FB6BA28, 0x584C2A23,
+/**/                   0x3FC847B6, 0x338C3D4B,
+/**/                   0x3FB26C04, 0x59A55DD8,
+/**/                   0x3FBB03C0, 0xF5202D6A,
+/**/                   0x3FB13522, 0x9C6466A4,
+/**/                   0x3C983C9A, 0x2A268973,
+/**/                   0x3FC5DB26, 0x17E62A20,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF4C70BE, 0xC51F7008,
+/**/                   0x3FC64000, 0x00000000,
+/**/                   0x3FF03F52, 0x4CBA31A9,
+/**/                   0x3FB74C46, 0x34C49ADE,
+/**/                   0x3FC86D15, 0xFC5F33CC,
+/**/                   0x3FB2F41B, 0xFA419D7C,
+/**/                   0x3FBB6CC2, 0xB757E82A,
+/**/                   0x3FB1CC18, 0xDA4D5C39,
+/**/                   0xBCA862D4, 0x2DFB224D,
+/**/                   0x3FC65D15, 0x1C8C8AF0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0xBF25B668, 0xB9CADBBF,
+/**/                   0x3FC6C000, 0x00000000,
+/**/                   0x3FF04245, 0x032EA88F,
+/**/                   0x3FB7DF47, 0x84A2B473,
+/**/                   0x3FC89388, 0x076A60F5,
+/**/                   0x3FB37E49, 0x8E8394C1,
+/**/                   0x3FBBD95A, 0x160F3472,
+/**/                   0x3FB26708, 0x39844810,
+/**/                   0x3C994228, 0x698BC8EA,
+/**/                   0x3FC6DF1B, 0x6D8C14A0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F422819, 0x754477AC,
+/**/                   0x3FC74000, 0x00000000,
+/**/                   0x3FF0454A, 0x285A8CEB,
+/**/                   0x3FB87332, 0xC21B9224,
+/**/                   0x3FC8BB10, 0x92A93402,
+/**/                   0x3FB40A9F, 0x3ED3F586,
+/**/                   0x3FBC499F, 0x643217C8,
+/**/                   0x3FB3061A, 0x5D29A16B,
+/**/                   0xBCA3B2DF, 0x3DF9F2D7,
+/**/                   0x3FC76139, 0x9DE6A160,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F5528A1, 0x6A33AB4B,
+/**/                   0x3FC7C000, 0x00000000,
+/**/                   0x3FF04861, 0xD9E48D58,
+/**/                   0x3FB9080E, 0x81461BF6,
+/**/                   0x3FC8E3B4, 0x00E32FFA,
+/**/                   0x3FB4992F, 0xAFB1F2A5,
+/**/                   0x3FBCBDAB, 0xF33705D5,
+/**/                   0x3FB3A97A, 0x7E23EE89,
+/**/                   0x3C7AAD12, 0xCCE44C41,
+/**/                   0x3FC7E370, 0x4187FAE0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F60C3B3, 0xC91AAF11,
+/**/                   0x3FC84000, 0x00000000,
+/**/                   0x3FF04B8C, 0x36478509,
+/**/                   0x3FB99DE1, 0x70FAC1B4,
+/**/                   0x3FC90D76, 0xDAA92166,
+/**/                   0x3FB52A0E, 0x06C416A6,
+/**/                   0x3FBD359A, 0x1CDCA344,
+/**/                   0x3FB45155, 0x7EFD4CA0,
+/**/                   0x3C396CA5, 0x35A8895D,
+/**/                   0x3FC865BF, 0xED4C6EF0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F67186C, 0x8F0A11A4,
+/**/                   0x3FC8C000, 0x00000000,
+/**/                   0x3FF04EC9, 0x5CD5E248,
+/**/                   0x3FBA34B2, 0x5BB94403,
+/**/                   0x3FC9385D, 0xCF5CA73A,
+/**/                   0x3FB5BD4D, 0xF01AFDBE,
+/**/                   0x3FBDB185, 0x4D61A7A9,
+/**/                   0x3FB4FDDA, 0x00BD47CF,
+/**/                   0xBC9D1119, 0x727E8B64,
+/**/                   0x3FC8E829, 0x37077E20,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F6D92B9, 0xABC490CB,
+/**/                   0x3FC94000, 0x00000000,
+/**/                   0x3FF05219, 0x6DBD2A10,
+/**/                   0x3FBACC88, 0x2894CAA1,
+/**/                   0x3FC9646D, 0xB6427516,
+/**/                   0x3FB65303, 0xA3A864D7,
+/**/                   0x3FBE318A, 0x0E3CF3D4,
+/**/                   0x3FB5AF38, 0x78CDA678,
+/**/                   0x3CA3841D, 0xDA9D51DF,
+/**/                   0x3FC96AAC, 0xB58AA660,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F72196D, 0xBD2A1052,
+/**/                   0x3FC9C000, 0x00000000,
+/**/                   0x3FF0557C, 0x8A099990,
+/**/                   0x3FBB6569, 0xDC268965,
+/**/                   0x3FC991AB, 0x8F9FBA21,
+/**/                   0x3FB6EB43, 0xEAED1E85,
+/**/                   0x3FBEB5C6, 0x115C4C63,
+/**/                   0x3FB665A3, 0x47F9AEFA,
+/**/                   0xBCA1F8FD, 0x03AB3673,
+/**/                   0x3FC9ED4B, 0x00AC4A60,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F757C8A, 0x0999905B,
+/**/                   0x3FCA4000, 0x00000000,
+/**/                   0x3FF058F2, 0xD3A9E674,
+/**/                   0x3FBBFF5E, 0x99873832,
+/**/                   0x3FC9C01C, 0x85E31CE9,
+/**/                   0x3FB78624, 0x26E09FF2,
+/**/                   0x3FBF3E58, 0x3CF0885C,
+/**/                   0x3FB7214E, 0xD2986239,
+/**/                   0x3C97E3E5, 0x3E594694,
+/**/                   0x3FCA7004, 0xB14EB5D0,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F78F2D3, 0xA9E6746B,
+/**/                   0x3FCAC000, 0x00000000,
+/**/                   0x3FF05C7C, 0x6D731ECB,
+/**/                   0x3FBC9A6D, 0xA34FA4B3,
+/**/                   0x3FC9EFC5, 0xEED9C253,
+/**/                   0x3FB823BA, 0x5614FAEB,
+/**/                   0x3FBFCB60, 0xB7CE698F,
+/**/                   0x3FB7E271, 0x99F3292F,
+/**/                   0xBC9842C6, 0x068D709C,
+/**/                   0x3FCAF2DA, 0x61674110,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F7C7C6D, 0x731ECAE2,
+/**/                   0x3FCB4000, 0x00000000,
+/**/                   0x3FF06019, 0x7B24A973,
+/**/                   0x3FBD369E, 0x5CA0A798,
+/**/                   0x3FCA20AD, 0x4CF0DB64,
+/**/                   0x3FB8C41D, 0x1B1A3F31,
+/**/                   0x3FC02E80, 0x7B35E049,
+/**/                   0x3FB8A944, 0x56FB8A97,
+/**/                   0xBCACBF9C, 0xD337B37C,
+/**/                   0x3FCB75CC, 0xAC059370,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF7FE684, 0xDB568D78,
+/**/                   0x3FCBC000, 0x00000000,
+/**/                   0x3FF063CA, 0x216C6801,
+/**/                   0x3FBDD3F8, 0x4A32C9FD,
+/**/                   0x3FCA52D8, 0x50843BC9,
+/**/                   0x3FB96763, 0xC324648A,
+/**/                   0x3FC079AD, 0xE4407899,
+/**/                   0x3FB97602, 0x1663A5DC,
+/**/                   0xBCA3ADC3, 0xC637289D,
+/**/                   0x3FCBF8DC, 0x2D5B06A0,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF7C35DE, 0x9397FEA6,
+/**/                   0x3FCC4000, 0x00000000,
+/**/                   0x3FF0678E, 0x85EAFB1F,
+/**/                   0x3FBE7283, 0x136DEAC6,
+/**/                   0x3FCA864C, 0xD93A817D,
+/**/                   0x3FBA0DA6, 0x4CF7089B,
+/**/                   0x3FC0C74A, 0xB3ABB322,
+/**/                   0x3FBA48E8, 0x562E6E1E,
+/**/                   0xBC951E3E, 0x7EB8FFF8,
+/**/                   0x3FCC7C09, 0x82C22B80,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF78717A, 0x1504E0D3,
+/**/                   0x3FCCC000, 0x00000000,
+/**/                   0x3FF06B66, 0xCF382A59,
+/**/                   0x3FBF1246, 0x838936FB,
+/**/                   0x3FCABB10, 0xF76F5C94,
+/**/                   0x3FBAB6FD, 0x701A77AE,
+/**/                   0x3FC11769, 0xC26702C6,
+/**/                   0x3FBB2237, 0x24CDF38E,
+/**/                   0xBC8DB69A, 0xE28307A9,
+/**/                   0x3FCCFF55, 0x4AC67190,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF749930, 0xC7D5A6B9,
+/**/                   0x3FCD4000, 0x00000000,
+/**/                   0x3FF06F53, 0x24E7707F,
+/**/                   0x3FBFB34A, 0x8AB3CBB2,
+/**/                   0x3FCAF12A, 0xEDAC8D74,
+/**/                   0x3FBB6382, 0xA45DA614,
+/**/                   0x3FC16A1E, 0xAD8E9F44,
+/**/                   0x3FBC0231, 0x41E7749D,
+/**/                   0x3C76CA27, 0x22DC16A2,
+/**/                   0x3FCD82C0, 0x252BF240,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF70ACDB, 0x188F814B,
+/**/                   0x3FCDC000, 0x00000000,
+/**/                   0x3FF07353, 0xAF8CADA0,
+/**/                   0x3FC02ACB, 0x9FA32DC9,
+/**/                   0x3FCB28A1, 0x32323718,
+/**/                   0x3FBC1350, 0x29A8F15E,
+/**/                   0x3FC1BF7D, 0xDEB270E1,
+/**/                   0x3FBCE91C, 0x40D67463,
+/**/                   0x3CA6E976, 0x104BAA08,
+/**/                   0x3FCE064A, 0xB2F76140,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF6958A0, 0xE6A4BFC9,
+/**/                   0x3FCE4000, 0x00000000,
+/**/                   0x3FF07768, 0x98C0FFD9,
+/**/                   0x3FC07C9A, 0x6F7F1AF0,
+/**/                   0x3FCB617A, 0x708F2AFB,
+/**/                   0x3FBCC681, 0x1025B50C,
+/**/                   0x3FC2179C, 0x9487453A,
+/**/                   0x3FBDD740, 0xAD09B3AB,
+/**/                   0xBC8D32DB, 0x189038C0,
+/**/                   0x3FCE89F5, 0x96762300,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF612ECE, 0x7E004D50,
+/**/                   0x3FCEC000, 0x00000000,
+/**/                   0x3FF07B92, 0x0B27C417,
+/**/                   0x3FC0CF15, 0xE821087A,
+/**/                   0x3FCB9BBD, 0x8B49DC8C,
+/**/                   0x3FBD7D31, 0x40BEF5C2,
+/**/                   0x3FC27290, 0xEC080575,
+/**/                   0x3FBECCEA, 0x3056A6A9,
+/**/                   0x3C9DE506, 0x0C9B27A2,
+/**/                   0x3FCF0DC1, 0x73468A50,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF51B7D3, 0x60EFA34D,
+/**/                   0x3FCF4000, 0x00000000,
+/**/                   0x3FF07FD0, 0x3273C018,
+/**/                   0x3FC12242, 0x51B87F08,
+/**/                   0x3FCBD771, 0x9D9AB2BC,
+/**/                   0x3FBE377D, 0x85FFA125,
+/**/                   0x3FC2D071, 0xEA0CFE55,
+/**/                   0x3FBFCA67, 0xBB61DDD3,
+/**/                   0xBCA25383, 0x88A645E7,
+/**/                   0x3FCF91AE, 0xEE603F40,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF07E6C6, 0x1FF422B6,
+/**/                   0x3FCFC000, 0x00000000,
+/**/                   0x3FF08423, 0x3B6C76F2,
+/**/                   0x3FC17624, 0x0A1DF897,
+/**/                   0x3FCC149D, 0xFD38779D,
+/**/                   0x3FBEF583, 0x95531ECD,
+/**/                   0x3FC33157, 0x855FA966,
+/**/                   0x3FC06805, 0xD81E6BAA,
+/**/                   0x3C86827E, 0x1B47FAEC,
+/**/                   0x3FD00ADF, 0x570E6798,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0x3F508CED, 0xB1DBC656,
+/**/                   0x3FD02000, 0x00000000,
+/**/                   0x3FF0888B, 0x53F3A97B,
+/**/                   0x3FC1CABF, 0x858525D6,
+/**/                   0x3FCC534A, 0x3C37AF90,
+/**/                   0x3FBFB762, 0x18AD312A,
+/**/                   0x3FC3955A, 0xB151CAAD,
+/**/                   0x3FC0EF16, 0x07ADE82D,
+/**/                   0x3CAEEF44, 0xFCDE8746,
+/**/                   0x3FD04CF8, 0xAD203480,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0x3F6116A7, 0xE752F5A1,
+/**/                   0x3FD06000, 0x00000000,
+/**/                   0x3FF08D08, 0xAB0B03F8,
+/**/                   0x3FC22019, 0x4F34EEE8,
+/**/                   0x3FCC937E, 0x2AFDABDE,
+/**/                   0x3FC03E9C, 0x5C4F35BA,
+/**/                   0x3FC3FC95, 0x68DF21A6,
+/**/                   0x3FC17A91, 0x53843C52,
+/**/                   0xBC9D6F54, 0xC2BB835A,
+/**/                   0x3FD08F23, 0xCE0162B8,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0x3F6A1156, 0x1607EF23,
+/**/                   0x3FD0A000, 0x00000000,
+/**/                   0x3FF0919B, 0x70D9FA87,
+/**/                   0x3FC27636, 0x0A456C09,
+/**/                   0x3FCCD541, 0xDA483778,
+/**/                   0x3FC0A394, 0x136D6630,
+/**/                   0x3FC46722, 0xBA615E9C,
+/**/                   0x3FC20AA6, 0xA2BC6F73,
+/**/                   0x3CA9D006, 0x7F1D9D86,
+/**/                   0x3FD0D161, 0x0F0C1EC8,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0x3F719B70, 0xD9FA8688,
+/**/                   0x3FD0E000, 0x00000000,
+/**/                   0x3FF09643, 0xD6B3D5D1,
+/**/                   0x3FC2CD1A, 0x72641546,
+/**/                   0x3FCD189D, 0x9D4AC7EC,
+/**/                   0x3FC10AA9, 0x149C2E66,
+/**/                   0x3FC4D51E, 0xD3DE8741,
+/**/                   0x3FC29F86, 0xF6DA4768,
+/**/                   0x3CAEA900, 0x828C2A81,
+/**/                   0x3FD113B0, 0xC65D88C8,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0x3F7643D6, 0xB3D5D119,
+/**/                   0x3FD12000, 0x00000000,
+/**/                   0x3FF09B02, 0x0F1DF195,
+/**/                   0x3FC324CB, 0x5C9E6B3F,
+/**/                   0x3FCD5D9A, 0x0BE228B7,
+/**/                   0x3FC173EC, 0xD29602B0,
+/**/                   0x3FC546A7, 0x0FFA7799,
+/**/                   0x3FC33965, 0x87BA569F,
+/**/                   0xBCAE3258, 0x9956F2C3,
+/**/                   0x3FD15613, 0x4ADA6FF0,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0x3F7B020F, 0x1DF1952F,
+/**/                   0x3FD16000, 0x00000000,
+/**/                   0x3FF09FD6, 0x4DD62EB0,
+/**/                   0x3FC37D4D, 0xB8335DE5,
+/**/                   0x3FCDA440, 0x04DFA3F1,
+/**/                   0x3FC1DF71, 0x55E59412,
+/**/                   0x3FC5BBDA, 0x0394B72E,
+/**/                   0x3FC3D877, 0xE1177398,
+/**/                   0x3CA8AC88, 0x3B5720A7,
+/**/                   0x3FD19888, 0xF43427A8,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0x3F7FD64D, 0xD62EAF85,
+/**/                   0x3FD1A000, 0x00000000,
+/**/                   0x3FF0A4C0, 0xC7D99A5F,
+/**/                   0x3FC3D6A6, 0x8F6BB942,
+/**/                   0x3FCDEC98, 0xB06CB8A9,
+/**/                   0x3FC24D49, 0x432C74B1,
+/**/                   0x3FC634D7, 0x8C1C6EC6,
+/**/                   0x3FC47CF6, 0x01BF2560,
+/**/                   0x3CA3EDE7, 0x476E25C7,
+/**/                   0x3FD1DB12, 0x1AED7720,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0xBF7B3F38, 0x2665A126,
+/**/                   0x3FD1E000, 0x00000000,
+/**/                   0x3FF0A9C1, 0xB36B4C8B,
+/**/                   0x3FC430DB, 0x0879E39B,
+/**/                   0x3FCE36AD, 0x82887D8B,
+/**/                   0x3FC2BD87, 0xE1B33C79,
+/**/                   0x3FC6B1C0, 0xDEA4E95E,
+/**/                   0x3FC5271A, 0x7C90504A,
+/**/                   0x3CAAFAD9, 0x8A6EBD08,
+/**/                   0x3FD21DAF, 0x185FA360,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0xBF763E4C, 0x94B3751C,
+/**/                   0x3FD22000, 0x00000000,
+/**/                   0x3FF0AED9, 0x481B7EED,
+/**/                   0x3FC48BF0, 0x66613BB3,
+/**/                   0x3FCE8288, 0x3D9FDD8F,
+/**/                   0x3FC33041, 0x22470BF2,
+/**/                   0x3FC732B8, 0x97C5B476,
+/**/                   0x3FC5D722, 0x9B614F73,
+/**/                   0x3CA96B82, 0x759745C8,
+/**/                   0x3FD26060, 0x46BF95B8,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0xBF7126B7, 0xE48112DC,
+/**/                   0x3FD26000, 0x00000000,
+/**/                   0x3FF0B407, 0xBECEDF0E,
+/**/                   0x3FC4E7EC, 0x09E5699A,
+/**/                   0x3FCED032, 0xF541EC2D,
+/**/                   0x3FC3A589, 0xA6688484,
+/**/                   0x3FC7B7E2, 0xCC5228BD,
+/**/                   0x3FC68D4E, 0x83ECAD1F,
+/**/                   0x3CA98586, 0x7CB79363,
+/**/                   0x3FD2A326, 0x01231EC8,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0xBF67F082, 0x6241E449,
+/**/                   0x3FD2A000, 0x00000000,
+/**/                   0x3FF0B94D, 0x51C61D1C,
+/**/                   0x3FC544D3, 0x7281F837,
+/**/                   0x3FCF1FB8, 0x10F19F89,
+/**/                   0x3FC41D76, 0xC7D08A44,
+/**/                   0x3FC84165, 0x1AF4E5E6,
+/**/                   0x3FC749E1, 0x5EE5D838,
+/**/                   0x3C8A2A36, 0xA1F9A890,
+/**/                   0x3FD2E600, 0xA3865760,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0xBF5ACAB8, 0xE78B8E2F,
+/**/                   0x3FD2E000, 0x00000000,
+/**/                   0x3FF0BEAA, 0x3CA5B9C1,
+/**/                   0x3FC5A2AC, 0x3F6A91D3,
+/**/                   0x3FCF7122, 0x4F1650DB,
+/**/                   0x3FC4981E, 0xA04F63E7,
+/**/                   0x3FC8CF66, 0xBEBC9B64,
+/**/                   0x3FC80D21, 0x81598BF7,
+/**/                   0xBC984143, 0x8E0FD320,
+/**/                   0x3FD328F0, 0x8AD12008,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0xBF355C35, 0xA463F3FD,
+/**/                   0x3FD32000, 0x00000000,
+/**/                   0x3FF0C41E, 0xBC7E151A,
+/**/                   0x3FC6017C, 0x30943E19,
+/**/                   0x3FCFC47C, 0xC80C760D,
+/**/                   0x3FC51598, 0x120B129D,
+/**/                   0x3FC96210, 0xA2A855B5,
+/**/                   0x3FC8D758, 0x9880230D,
+/**/                   0xBCA4D129, 0xBF178596,
+/**/                   0x3FD36BF6, 0x14DCC050,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0x3F507AF1, 0xF854661E,
+/**/                   0x3FD36000, 0x00000000,
+/**/                   0x3FF0C9AB, 0x0FD3C135,
+/**/                   0x3FC66149, 0x27C80482,
+/**/                   0x3FD00CE9, 0x78AC0DDD,
+/**/                   0x3FC595FA, 0xD02204B1,
+/**/                   0x3FC9F98D, 0x7642750D,
+/**/                   0x3FC9A8D3, 0xD82AC48A,
+/**/                   0x3C977587, 0x289B3951,
+/**/                   0x3FD3AF11, 0xA079A6D8,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0x3F63561F, 0xA7826A0D,
+/**/                   0x3FD3A000, 0x00000000,
+/**/                   0x3FF0CF4F, 0x76A81A69,
+/**/                   0x3FC6C219, 0x29BF5ACD,
+/**/                   0x3FD03898, 0x507D5DD4,
+/**/                   0x3FC6195F, 0x67B79439,
+/**/                   0x3FCA9609, 0xC35A709F,
+/**/                   0x3FCA81E4, 0x2BF7455C,
+/**/                   0x3CA03304, 0xF424551E,
+/**/                   0x3FD3F243, 0x8D754B40,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0x3F6E9EED, 0x5034D2A8,
+/**/                   0x3FD3E000, 0x00000000,
+/**/                   0x3FF0D50C, 0x3282280D,
+/**/                   0x3FC723F2, 0x5F4ACC23,
+/**/                   0x3FD06551, 0x08771131,
+/**/                   0x3FC69FDF, 0x4970163E,
+/**/                   0x3FCB37B4, 0x04EE9A0A,
+/**/                   0x3FCB62DE, 0x6B79BC18,
+/**/                   0x3CAECF25, 0x02A2F456,
+/**/                   0x3FD4358C, 0x3CA032E0,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0x3F750C32, 0x82280D28,
+/**/                   0x3FD42000, 0x00000000,
+/**/                   0x3FF0DAE1, 0x8677C82D,
+/**/                   0x3FC786DB, 0x16834ABE,
+/**/                   0x3FD09319, 0xF1631731,
+/**/                   0x3FC72994, 0xD36297AF,
+/**/                   0x3FCBDEBC, 0xBF583888,
+/**/                   0x3FCC4C1B, 0x918E2AE6,
+/**/                   0x3CA92F70, 0xF34A155C,
+/**/                   0x3FD478EC, 0x0FD419C8,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0x3F7AE186, 0x77C82D53,
+/**/                   0x3FD46000, 0x00000000,
+/**/                   0x3FF0E0CF, 0xB73728F8,
+/**/                   0x3FC7EAD9, 0xC406A36A,
+/**/                   0x3FD0C1F9, 0x91BDA616,
+/**/                   0x3FC7B69B, 0x5B86C42B,
+/**/                   0x3FCC8B56, 0x99CD8C9F,
+/**/                   0x3FCD3DF8, 0xF7084936,
+/**/                   0xBC923B74, 0x54942387,
+/**/                   0x3FD4BC63, 0x69FA40E8,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0xBF7F3048, 0xC8D707BB,
+/**/                   0x3FD4A000, 0x00000000,
+/**/                   0x3FF0E6D7, 0x0B1092B8,
+/**/                   0x3FC84FF5, 0x043F9011,
+/**/                   0x3FD0F1F6, 0xA7AFD6EB,
+/**/                   0x3FC8470F, 0x3AA5D7B9,
+/**/                   0x3FCD3DB6, 0x794E9CFD,
+/**/                   0x3FCE38D8, 0x90FB69FD,
+/**/                   0x3C9CFA2D, 0xC2327DC5,
+/**/                   0x3FD4FFF2, 0xAF11E2C0,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0xBF7928F4, 0xEF6D4848,
+/**/                   0x3FD4E000, 0x00000000,
+/**/                   0x3FF0ECF7, 0xCA008550,
+/**/                   0x3FC8B633, 0x9CB9ECA7,
+/**/                   0x3FD12318, 0x2B20AC3D,
+/**/                   0x3FC8DB0D, 0xD7D5E860,
+/**/                   0x3FCDF613, 0x9D1315AF,
+/**/                   0x3FCF3D21, 0x32D8BC6F,
+/**/                   0x3C9C6A36, 0x92E48EEE,
+/**/                   0x3FD5439A, 0x4436D008,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0xBF730835, 0xFF7AAF92,
+/**/                   0x3FD52000, 0x00000000,
+/**/                   0x3FF0F332, 0x3DBA2C62,
+/**/                   0x3FC91D9C, 0x7D83983C,
+/**/                   0x3FD15565, 0x4FDDA02E,
+/**/                   0x3FC972B5, 0xB48747C7,
+/**/                   0x3FCEB4A7, 0xBC9105F9,
+/**/                   0x3FD0259F, 0x6A535ECF,
+/**/                   0x3C87EB36, 0xF6EA55C1,
+/**/                   0x3FD5875A, 0x8FA83538,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0xBF699B84, 0x8BA73C6A,
+/**/                   0x3FD56000, 0x00000000,
+/**/                   0x3FF0F986, 0xB1B22D42,
+/**/                   0x3FC98636, 0xC29A92ED,
+/**/                   0x3FD188E5, 0x87DBE62D,
+/**/                   0x3FCA0E26, 0x792C37EB,
+/**/                   0x3FCF79AF, 0x2735E8CD,
+/**/                   0x3FD0B1D1, 0x6ECCD4C0,
+/**/                   0x3C9502B5, 0xBEAE0510,
+/**/                   0x3FD5CB33, 0xF8CF8AC0,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0xBF59E539, 0x374AF74C,
+/**/                   0x3FD5A000, 0x00000000,
+/**/                   0x3FF0FFF5, 0x7329D23A,
+/**/                   0x3FC9F009, 0xB568F082,
+/**/                   0x3FD1BDA0, 0x85939DB2,
+/**/                   0x3FCAAD81, 0x0283B18A,
+/**/                   0x3FD022B4, 0x72F69148,
+/**/                   0x3FD14362, 0x39AD0B79,
+/**/                   0xBCAD7968, 0x80828B86,
+/**/                   0x3FD60F26, 0xE847B130,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0xBEE519AC, 0x5B8BC081,
+/**/                   0x3FD5E000, 0x00000000,
+/**/                   0x3FF1067E, 0xD13A9687,
+/**/                   0x3FCA5B1C, 0xCE4F3F61,
+/**/                   0x3FD1F39E, 0x3E764545,
+/**/                   0x3FCB50E7, 0x6F90871B,
+/**/                   0x3FD08C0B, 0x6F487F97,
+/**/                   0x3FD1DA90, 0x67265C20,
+/**/                   0x3CAE5B02, 0x995723AD,
+/**/                   0x3FD65333, 0xC7E43AA0,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0x3F59FB44, 0xEA5A1D64,
+/**/                   0x3FD62000, 0x00000000,
+/**/                   0x3FF10D23, 0x1CE216D9,
+/**/                   0x3FCAC777, 0xB63E0B53,
+/**/                   0x3FD22AE6, 0xED81D055,
+/**/                   0x3FCBF87D, 0x3046C5AC,
+/**/                   0x3FD0F8FE, 0xFCB29FE4,
+/**/                   0x3FD2779D, 0xC99A404E,
+/**/                   0xBCA2AF1E, 0xC3202AE8,
+/**/                   0x3FD6975B, 0x02B8E378,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0x3F6A4639, 0xC42DB2AB,
+/**/                   0x3FD66000, 0x00000000,
+/**/                   0x3FF113E2, 0xA90E6A24,
+/**/                   0x3FCB3522, 0x485F2C6B,
+/**/                   0x3FD26383, 0x15F1D6CC,
+/**/                   0x3FCCA467, 0x14F9D555,
+/**/                   0x3FD169B3, 0x245E397E,
+/**/                   0x3FD31ACF, 0x99479CF7,
+/**/                   0xBC730D3F, 0x8992C228,
+/**/                   0x3FD6DB9D, 0x05213B28,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0x3F73E2A9, 0x0E6A2469,
+/**/                   0x3FD6A000, 0x00000000,
+/**/                   0x3FF11ABD, 0xCAAAE6D5,
+/**/                   0x3FCBA424, 0x93CF9B23,
+/**/                   0x3FD29D7B, 0x86106AD4,
+/**/                   0x3FCD54CB, 0x5E96870B,
+/**/                   0x3FD1DE4D, 0x9975D46D,
+/**/                   0x3FD3C46E, 0xA709F8A4,
+/**/                   0xBC9CB630, 0x457B6F5C,
+/**/                   0x3FD71FFA, 0x3CC87FC8,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0x3F7ABDCA, 0xAAE6D53D,
+/**/                   0x3FD6E000, 0x00000000,
+/**/                   0x3FF121B4, 0xD8AD589E,
+/**/                   0x3FCC1486, 0xDD6A8C89,
+/**/                   0x3FD2D8D9, 0x5A283891,
+/**/                   0x3FCE09D1, 0xCFB4F5A1,
+/**/                   0x3FD256F5, 0xCF594BB6,
+/**/                   0x3FD474C7, 0x92614C29,
+/**/                   0xBC88FB31, 0x533051E9,
+/**/                   0x3FD76473, 0x18B1AD28,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0xBF7E4B27, 0x52A761D6,
+/**/                   0x3FD72000, 0x00000000,
+/**/                   0x3FF128C8, 0x2C23AB4A,
+/**/                   0x3FCC8651, 0xA1A6A356,
+/**/                   0x3FD315A5, 0xFF99ABE3,
+/**/                   0x3FCEC3A3, 0xBE8EE4C2,
+/**/                   0x3FD2D3D5, 0x11207D5D,
+/**/                   0x3FD52C2B, 0x02FE6DF8,
+/**/                   0xBCA3F304, 0xFE4D8DF3,
+/**/                   0x3FD7A908, 0x093FC1F0,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0xBF7737D3, 0xDC54B622,
+/**/                   0x3FD76000, 0x00000000,
+/**/                   0x3FF12FF8, 0x20420F33,
+/**/                   0x3FCCF98D, 0x96860D89,
+/**/                   0x3FD353EB, 0x3814F292,
+/**/                   0x3FCF826C, 0x27E81BF7,
+/**/                   0x3FD35516, 0x9A827352,
+/**/                   0x3FD5EAED, 0xE614C6DF,
+/**/                   0x3C80AEDB, 0x36C1700C,
+/**/                   0x3FD7EDB9, 0x803E3C28,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0xBF7007DF, 0xBDF0CCC6,
+/**/                   0x3FD7A000, 0x00000000,
+/**/                   0x3FF13745, 0x12719C3A,
+/**/                   0x3FCD6E43, 0xAD9A717F,
+/**/                   0x3FD393B3, 0x1CFACD12,
+/**/                   0x3FD0232B, 0xE17B8F05,
+/**/                   0x3FD3DAE7, 0xB23873BC,
+/**/                   0x3FD6B169, 0xAFB712E5,
+/**/                   0x3C994C0C, 0x0BC74599,
+/**/                   0x3FD83287, 0xF0E9CF80,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0xBF6175DB, 0x1CC78CA5,
+/**/                   0x3FD7E000, 0x00000000,
+/**/                   0x3FF13EAF, 0x625F7844,
+/**/                   0x3FCDE47D, 0x161D9978,
+/**/                   0x3FD3D508, 0x22E63DCA,
+/**/                   0x3FD087CA, 0x8B2EC7EB,
+/**/                   0x3FD46577, 0xC5F619C8,
+/**/                   0x3FD77FFC, 0xA08A73DE,
+/**/                   0x3CA1DBDE, 0x6E7B547F,
+/**/                   0x3FD87773, 0xCFF956F8,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0xBF3509DA, 0x087BC752,
+/**/                   0x3FD82000, 0x00000000,
+/**/                   0x3FF14637, 0x720C869D,
+/**/                   0x3FCE5C43, 0x3F1FD940,
+/**/                   0x3FD417F5, 0x1D614654,
+/**/                   0x3FD0EF2A, 0x472052ED,
+/**/                   0x3FD4F4F8, 0x88116DA6,
+/**/                   0x3FD8570A, 0x102117B6,
+/**/                   0xBCAB6E89, 0x214A7328,
+/**/                   0x3FD8BC7D, 0x93A70458,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0x3F58DDC8, 0x321A7479,
+/**/                   0x3FD86000, 0x00000000,
+/**/                   0x3FF14DDD, 0xA5DDA5C4,
+/**/                   0x3FCED59F, 0xD9CD3739,
+/**/                   0x3FD45C85, 0x42C70412,
+/**/                   0x3FD15964, 0x49C983A8,
+/**/                   0x3FD5899E, 0x0EF7ED0B,
+/**/                   0x3FD936FA, 0xBC543499,
+/**/                   0x3CAFF50D, 0x7B29F22E,
+/**/                   0x3FD901A5, 0xB3B9CF50,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0x3F6BBB4B, 0xBB4B87E0,
+/**/                   0x3FD8A000, 0x00000000,
+/**/                   0x3FF155A2, 0x64AC8172,
+/**/                   0x3FCF509C, 0xDBCA7047,
+/**/                   0x3FD4A2C4, 0x3055A16F,
+/**/                   0x3FD1C692, 0xD25160C7,
+/**/                   0x3FD6239E, 0xF68F9906,
+/**/                   0x3FDA203D, 0x1DFC2EE2,
+/**/                   0x3CAD2019, 0x671EF39F,
+/**/                   0x3FD946EC, 0xA98F2718,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0x3F75A264, 0xAC8171A9,
+/**/                   0x3FD8E000, 0x00000000,
+/**/                   0x3FF15D86, 0x17D8FF02,
+/**/                   0x3FCFCD44, 0x81AAFD5E,
+/**/                   0x3FD4EABD, 0xEE72B776,
+/**/                   0x3FD236D1, 0x377F943F,
+/**/                   0x3FD6C334, 0x83A56DB7,
+/**/                   0x3FDB1345, 0xC36D6C50,
+/**/                   0xBC7841E5, 0x761537BB,
+/**/                   0x3FD98C52, 0xF024E808,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0x3F7D8617, 0xD8FF01DE,
+/**/                   0x3FD92000, 0x00000000,
+/**/                   0x3FF16589, 0x2B5B4A9A,
+/**/                   0x3FD025D0, 0xA8C0A8C6,
+/**/                   0x3FD5347E, 0xF524E4B6,
+/**/                   0x3FD2AA3B, 0xF565EDBD,
+/**/                   0x3FD7689A, 0xC98D2842,
+/**/                   0x3FDC108F, 0xB128B4DD,
+/**/                   0xBC8A5EEB, 0x4452A669,
+/**/                   0x3FD9D1D9, 0x04239878,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0xBF7A76D4, 0xA4B56661,
+/**/                   0x3FD96000, 0x00000000,
+/**/                   0x3FF16DAC, 0x0DD68BC8,
+/**/                   0x3FD065DF, 0x0EC54C3A,
+/**/                   0x3FD58014, 0x30C58A12,
+/**/                   0x3FD320F0, 0xBBCBCCEF,
+/**/                   0x3FD81410, 0xD218F380,
+/**/                   0x3FDD189C, 0xC9371D29,
+/**/                   0x3C58C3C1, 0x1D6E6EC7,
+/**/                   0x3FDA177F, 0x63E8EF18,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0xBF7253F2, 0x29743866,
+/**/                   0x3FD9A000, 0x00000000,
+/**/                   0x3FF175EF, 0x30AC48A8,
+/**/                   0x3FD0A6D3, 0x037BA7C0,
+/**/                   0x3FD5CD8B, 0x06EDCD18,
+/**/                   0x3FD39B0E, 0x7D679188,
+/**/                   0x3FD8C5D8, 0xC8128143,
+/**/                   0x3FDE2BF6, 0x39B3613A,
+/**/                   0xBC874080, 0xC70C9C76,
+/**/                   0x3FDA5D46, 0x8F92A560,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0xBF64219E, 0xA76EB06E,
+/**/                   0x3FD9E000, 0x00000000,
+/**/                   0x3FF17E53, 0x08107EEF,
+/**/                   0x3FD0E8B2, 0x40691386,
+/**/                   0x3FD61CF1, 0x5BA2319A,
+/**/                   0x3FD418B5, 0x7FF30656,
+/**/                   0x3FD97E38, 0x24624146,
+/**/                   0x3FDF4B2C, 0xF30D6589,
+/**/                   0xBC8D4AD9, 0x74DD0C9B,
+/**/                   0x3FDAA32F, 0x090998F8,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0xBF3ACF7E, 0xF81116BC,
+/**/                   0x3FDA2000, 0x00000000,
+/**/                   0x3FF186D8, 0x0B1E7A9D,
+/**/                   0x3FD12B82, 0xA98356F0,
+/**/                   0x3FD66E55, 0x96C051D8,
+/**/                   0x3FD49A07, 0x6D28A49D,
+/**/                   0x3FDA3D77, 0xDE14D616,
+/**/                   0x3FE03B6D, 0x13502F53,
+/**/                   0x3CA51700, 0x4AD59707,
+/**/                   0x3FDAE939, 0x540D3F08,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0x3F5B602C, 0x79EA752F,
+/**/                   0x3FDA6000, 0x00000000,
+/**/                   0x3FF18F7E, 0xB3EE7285,
+/**/                   0x3FD16F4A, 0x4EC4AF40,
+/**/                   0x3FD6C1C6, 0xA9B275FD,
+/**/                   0x3FD51F27, 0x64B886B9,
+/**/                   0x3FDB03E4, 0x9D72A144,
+/**/                   0x3FE0D7CF, 0xE7207DD5,
+/**/                   0xBCAACE1E, 0x8E77D1B2,
+/**/                   0x3FDB2F65, 0xF63F6C78,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0x3F6EFD67, 0xDCE509F5,
+/**/                   0x3FDAA000, 0x00000000,
+/**/                   0x3FF19847, 0x7FABF325,
+/**/                   0x3FD1B40F, 0x6DD15EDB,
+/**/                   0x3FD71754, 0x156D090D,
+/**/                   0x3FD5A83A, 0x0F44EE42,
+/**/                   0x3FDBD1CE, 0xF26149CC,
+/**/                   0x3FE17B14, 0x9EBB7D53,
+/**/                   0x3CA18867, 0x054C177A,
+/**/                   0x3FDB75B5, 0x773075F8,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0x3F78477F, 0xABF3257B,
+/**/                   0x3FDAE000, 0x00000000,
+/**/                   0x3FF1A132, 0xEEAD20E6,
+/**/                   0x3FD1F9D8, 0x73AFA8F4,
+/**/                   0x3FD76F0D, 0xF0BA2B44,
+/**/                   0x3FD63565, 0xB2776412,
+/**/                   0x3FDCA78B, 0x8E4B8181,
+/**/                   0x3FE22595, 0xDE92725A,
+/**/                   0xBCABDA45, 0x225EE470,
+/**/                   0x3FDBBC28, 0x606BABE0,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0xBF7ECD11, 0x52DF1A7E,
+/**/                   0x3FDB2000, 0x00000000,
+/**/                   0x3FF1AA41, 0x848ADB16,
+/**/                   0x3FD240AB, 0xFE932ABB,
+/**/                   0x3FD7C904, 0xEED7E85D,
+/**/                   0x3FD6C6D2, 0x4640B1B3,
+/**/                   0x3FDD8573, 0x81D01020,
+/**/                   0x3FE2D7B3, 0x9938B939,
+/**/                   0x3CA12ECB, 0x36D76E02,
+/**/                   0x3FDC02BF, 0x3D843430,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0xBF75BE7B, 0x7524EA70,
+/**/                   0x3FDB6000, 0x00000000,
+/**/                   0x3FF1B373, 0xC839C9AC,
+/**/                   0x3FD28890, 0xDFBC912D,
+/**/                   0x3FD8254A, 0x666DE3CA,
+/**/                   0x3FD75CA9, 0x8B57457C,
+/**/                   0x3FDE6BE4, 0x7E7E55FE,
+/**/                   0x3FE391D3, 0x68EC3777,
+/**/                   0xBC9F7EFE, 0x4D8A80A5,
+/**/                   0x3FDC497A, 0x9C2247A0,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0xBF69186F, 0x8C6CA8A7,
+/**/                   0x3FDBA000, 0x00000000,
+/**/                   0x3FF1BCCA, 0x44246029,
+/**/                   0x3FD2D18E, 0x1D6EB966,
+/**/                   0x3FD883F0, 0x58DF9E20,
+/**/                   0x3FD7F717, 0x2308FF84,
+/**/                   0x3FDF5B41, 0x1CEC1692,
+/**/                   0x3FE45460, 0xEFAE7F7E,
+/**/                   0xBCACA88A, 0xC247C281,
+/**/                   0x3FDC905B, 0x0C10D428,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0xBF49ADDE, 0xDCFEB6F6,
+/**/                   0x3FDBE000, 0x00000000,
+/**/                   0x3FF1C645, 0x8645E0A6,
+/**/                   0x3FD31BAA, 0xF4FA598C,
+/**/                   0x3FD8E509, 0x7A00CDBD,
+/**/                   0x3FD89648, 0xA876EFA4,
+/**/                   0x3FE029F8, 0x93BB3BA0,
+/**/                   0x3FE51FCE, 0x3E769492,
+/**/                   0xBC63BD0A, 0xDAC78BA6,
+/**/                   0x3FDCD761, 0x1F4B8A08,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0x3F591619, 0x178298DB,
+/**/                   0x3FDC2000, 0x00000000,
+/**/                   0x3FF1CFE6, 0x20466A93,
+/**/                   0x3FD366EE, 0xDCE16113,
+/**/                   0x3FD948A9, 0x3831A262,
+/**/                   0x3FD93A6D, 0xCB5336B7,
+/**/                   0x3FE0AB30, 0xF50362A5,
+/**/                   0x3FE5F494, 0x440F45E4,
+/**/                   0xBCA1B23F, 0x79A811B8,
+/**/                   0x3FDD1E8D, 0x6A0D56C8,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0x3F6FCC40, 0x8CD52690,
+/**/                   0x3FDC6000, 0x00000000,
+/**/                   0x3FF1D9AC, 0xA798215A,
+/**/                   0x3FD3B361, 0x87135170,
+/**/                   0x3FD9AEE3, 0xC4E92F90,
+/**/                   0x3FD9E3B8, 0x6C3B0A06,
+/**/                   0x3FE13183, 0x439D6983,
+/**/                   0x3FE6D333, 0x444347EE,
+/**/                   0x3C9E6687, 0x141D7ADE,
+/**/                   0x3FDD65E0, 0x82DF5278,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0x3F79ACA7, 0x98215A4D,
+/**/                   0x3FDCA000, 0x00000000,
+/**/                   0x3FF1E399, 0xB59577B1,
+/**/                   0x3FD4010A, 0xE343E389,
+/**/                   0x3FDA17CE, 0x1DB4A57B,
+/**/                   0x3FDA925C, 0xBAC8CA27,
+/**/                   0x3FE1BD2C, 0x29AC5009,
+/**/                   0x3FE7BC33, 0x5806ABBE,
+/**/                   0x3C89743A, 0xD953CBEA,
+/**/                   0x3FDDAD5B, 0x02A82420,
+/**/                   0x3FF20000, 0x00000000,
+/**/                   0xBF7C664A, 0x6A884EAF,
+/**/                   0x3FDCE000, 0x00000000,
+/**/                   0x3FF1EDAD, 0xE7A0AD1E,
+/**/                   0x3FD44FF3, 0x215D62D8,
+/**/                   0x3FDA837E, 0x15B2742E,
+/**/                   0x3FDB4691, 0x557C3A62,
+/**/                   0x3FE24E6B, 0x9ABECCA0,
+/**/                   0x3FE8B024, 0xF75D3619,
+/**/                   0xBC60A42B, 0x953C1F21,
+/**/                   0x3FDDF4FD, 0x84BBE168,
+/**/                   0x3FF20000, 0x00000000,
+/**/                   0xBF725218, 0x5F52E269,
+/**/                   0x3FDD2000, 0x00000000,
+/**/                   0x3FF1F7E9, 0xDF448BE1,
+/**/                   0x3FD4A022, 0xB4103D45,
+/**/                   0x3FDAF20A, 0x5F90F152,
+/**/                   0x3FDC008F, 0x6B992E26,
+/**/                   0x3FE2E585, 0x07C18F30,
+/**/                   0x3FE9AFA1, 0x8DCE89C2,
+/**/                   0xBC8B90A5, 0xE5B4E0DD,
+/**/                   0x3FDE3CC8, 0xA6EC6EF0,
+/**/                   0x3FF20000, 0x00000000,
+/**/                   0xBF602C41, 0x76E83DEE,
+/**/                   0x3FDD6000, 0x00000000,
+/**/                   0x3FF2024E, 0x42567651,
+/**/                   0x3FD4F1A2, 0x53815E48,
+/**/                   0x3FDB638A, 0x98189F26,
+/**/                   0x3FDCC092, 0xE11F7BB9,
+/**/                   0x3FE382BF, 0x968E1C3C,
+/**/                   0x3FEABB4C, 0x1A4C4551,
+/**/                   0xBCAC384D, 0xC65EE1E9,
+/**/                   0x3FDE84BD, 0x099A6620,
+/**/                   0x3FF20000, 0x00000000,
+/**/                   0x3F427212, 0xB3B2877E,
+/**/                   0x3FDDA000, 0x00000000,
+/**/                   0x3FF20CDB, 0xBB19D366,
+/**/                   0x3FD5447B, 0x00190520,
+/**/                   0x3FDBD817, 0x514AC3D7,
+/**/                   0x3FDD86DA, 0x7501B24E,
+/**/                   0x3FE42666, 0x5D5DCC91,
+/**/                   0x3FEBD3D1, 0xDB834BBA,
+/**/                   0xBCA62892, 0x64307FE4,
+/**/                   0x3FDECCDB, 0x4FC685E0,
+/**/                   0x3FF20000, 0x00000000,
+/**/                   0x3F69B776, 0x33A6CD00,
+/**/                   0x3FDDE000, 0x00000000,
+/**/                   0x3FF21792, 0xF864EB38,
+/**/                   0x3FD598B6, 0x0573E0CA,
+/**/                   0x3FDC4FCA, 0x1E1D9C05,
+/**/                   0x3FDE53A7, 0xE9C2FB44,
+/**/                   0x3FE4D0C8, 0xA26E99AF,
+/**/                   0x3FECF9EB, 0x09A8A359,
+/**/                   0xBCADF861, 0xD9AFA9E0,
+/**/                   0x3FDF1524, 0x1F23B3F8,
+/**/                   0x3FF20000, 0x00000000,
+/**/                   0x3F7792F8, 0x64EB3836,
+/**/                   0x3FDE2000, 0x00000000,
+/**/                   0x3FF22274, 0xADC744F8,
+/**/                   0x3FD5EE5C, 0xFD785957,
+/**/                   0x3FDCCABD, 0x9EE01B3A,
+/**/                   0x3FDF2740, 0x30A7B7B5,
+/**/                   0x3FE5823A, 0x202E0D0D,
+/**/                   0x3FEE2E5B, 0x9EEBE829,
+/**/                   0xBC93BB42, 0xE2EA9787,
+/**/                   0x3FDF5D98, 0x202994B8,
+/**/                   0x3FF24000, 0x00000000,
+/**/                   0xBF7D8B52, 0x38BB0864,
+/**/                   0x3FDE6000, 0x00000000,
+/**/                   0x3FF22D81, 0x93B1990A,
+/**/                   0x3FD64579, 0xD3920D0F,
+/**/                   0x3FDD490D, 0x8E4FE1FE,
+/**/                   0x3FE000F5, 0xCBD3ED59,
+/**/                   0x3FE63B13, 0x4E45F774,
+/**/                   0x3FEF71F4, 0x2FD578CE,
+/**/                   0x3CA8AD1C, 0xC0E1AC47,
+/**/                   0x3FDFA637, 0xFE27BF60,
+/**/                   0x3FF24000, 0x00000000,
+/**/                   0xBF727E6C, 0x4E66F5A1,
+/**/                   0x3FDEA000, 0x00000000,
+/**/                   0x3FF238BA, 0x679F6AE1,
+/**/                   0x3FD69E16, 0xC815A8F5,
+/**/                   0x3FDDCAD6, 0xCF6CD4C9,
+/**/                   0x3FE071FA, 0xFD2ADE38,
+/**/                   0x3FE6FBB1, 0xAFEE9630,
+/**/                   0x3FF062C9, 0x6A7ACB82,
+/**/                   0x3C7E3580, 0x35D3555B,
+/**/                   0x3FDFEF04, 0x67599588,
+/**/                   0x3FF24000, 0x00000000,
+/**/                   0xBF5D1661, 0x82547B6F,
+/**/                   0x3FDEE000, 0x00000000,
+/**/                   0x3FF2441F, 0xEC425F4B,
+/**/                   0x3FD6F83E, 0x73CF67B4,
+/**/                   0x3FDE5037, 0x7C1691BA,
+/**/                   0x3FE0E6D7, 0x7AF8190E,
+/**/                   0x3FE7C478, 0x27F29078,
+/**/                   0x3FF11512, 0x13B5FFDC,
+/**/                   0x3C6CC7A1, 0x5FEBA301,
+/**/                   0x3FE01BFF, 0x067D6224,
+/**/                   0x3FF24000, 0x00000000,
+/**/                   0x3F507FB1, 0x097D2BDC,
+/**/                   0x3FDF2000, 0x00000000,
+/**/                   0x3FF24FB2, 0xE9AF6533,
+/**/                   0x3FD753FB, 0xCBBEA804,
+/**/                   0x3FDED94E, 0xF480E731,
+/**/                   0x3FE15FB5, 0x106D90C6,
+/**/                   0x3FE895CF, 0x52DAD430,
+/**/                   0x3FF1D052, 0x28FAAE13,
+/**/                   0xBCA50976, 0xE849F35A,
+/**/                   0x3FE04092, 0xD1AE3B48,
+/**/                   0x3FF24000, 0x00000000,
+/**/                   0x3F6F65D3, 0x5ECA665D,
+/**/                   0x3FDF6000, 0x00000000,
+/**/                   0x3FF25B74, 0x2D8DC7FA,
+/**/                   0x3FD7B15A, 0x25013475,
+/**/                   0x3FDF663D, 0xEF8D6387,
+/**/                   0x3FE1DCBF, 0xA2DF4BFF,
+/**/                   0x3FE97025, 0xE7C2E4E5,
+/**/                   0x3FF29510, 0x1C2AE4AB,
+/**/                   0x3CA4C8DC, 0xB02A3D13,
+/**/                   0x3FE0653D, 0xF0FD9FD8,
+/**/                   0x3FF24000, 0x00000000,
+/**/                   0x3F7B742D, 0x8DC7FA40,
+/**/                   0x3FDFA000, 0x00000000,
+/**/                   0x3FF26764, 0x8B4843F2,
+/**/                   0x3FD81065, 0x38F10257,
+/**/                   0x3FDFF726, 0x8C1920B1,
+/**/                   0x3FE25E25, 0x5148D4E4,
+/**/                   0x3FEA53F1, 0x2061C3FE,
+/**/                   0x3FF363DB, 0x5B9300E5,
+/**/                   0xBCA47774, 0x624B8B97,
+/**/                   0x3FE08A00, 0xC1CAE338,
+/**/                   0x3FF28000, 0x00000000,
+/**/                   0xBF789B74, 0xB7BC0E50,
+/**/                   0x3FDFE000, 0x00000000,
+/**/                   0x3FF27384, 0xDC4036F2,
+/**/                   0x3FD87129, 0x29775C8F,
+/**/                   0x3FE04616, 0x31A78776,
+/**/                   0x3FE2E416, 0x95EE0C65,
+/**/                   0x3FEB41AD, 0x28E05161,
+/**/                   0x3FF43D4C, 0xFF1DF849,
+/**/                   0x3CA5941C, 0xBABBA919,
+/**/                   0x3FE0AEDB, 0xA3221C1C,
+/**/                   0x3FF28000, 0x00000000,
+/**/                   0xBF68F647, 0x7F921C27,
+/**/                   0x3FE01000, 0x00000000,
+/**/                   0x3FF27FD6, 0x00030888,
+/**/                   0x3FD8D3B2, 0x8598A1B5,
+/**/                   0x3FE092BA, 0x4E0BC755,
+/**/                   0x3FE36EC6, 0x6A428EEC,
+/**/                   0x3FEC39C0, 0x44F514C9,
+/**/                   0x3FF52205, 0x18C4EF3A,
+/**/                   0x4000C1D1, 0xA852F235,
+/**/                   0x3CA78082, 0xD00F64B8,
+/**/                   0x3FE0D3CE, 0xF5C846F8,
+/**/                   0x3FF28000, 0x00000000,
+/**/                   0xBF04FFFE, 0x7BBC39DF,
+/**/                   0x3FE03000, 0x00000000,
+/**/                   0x3FF28C58, 0xDC81E6D7,
+/**/                   0x3FD9380E, 0x4E3BF356,
+/**/                   0x3FE0E192, 0xFFC646A7,
+/**/                   0x3FE3FE6A, 0x6D34756D,
+/**/                   0x3FED3CEF, 0x139ABC91,
+/**/                   0x3FF612B8, 0xF80111C0,
+/**/                   0x4001A33C, 0x3467C688,
+/**/                   0xBC8A9954, 0x34F59445,
+/**/                   0x3FE0F8DB, 0x1C47D550,
+/**/                   0x3FF28000, 0x00000000,
+/**/                   0x3F68B1B9, 0x03CDAE3F,
+/**/                   0x3FE05000, 0x00000000,
+/**/                   0x3FF2990E, 0x5E4BF713,
+/**/                   0x3FD99E49, 0xFB326E9E,
+/**/                   0x3FE132B4, 0x8779391A,
+/**/                   0x3FE4933B, 0x0C2FE325,
+/**/                   0x3FEE4BB1, 0xAEAAE1D0,
+/**/                   0x3FF71020, 0x1F4377BD,
+/**/                   0x40029271, 0x1C886605,
+/**/                   0xBCA33AB1, 0x7130CE99,
+/**/                   0x3FE11E00, 0x7AFDAF10,
+/**/                   0x3FF28000, 0x00000000,
+/**/                   0x3F790E5E, 0x4BF712C7,
+/**/                   0x3FE07000, 0x00000000,
+/**/                   0x3FF2A5F7, 0x78CB1A3B,
+/**/                   0x3FDA0673, 0x8081C5D1,
+/**/                   0x3FE18634, 0x0D5E6499,
+/**/                   0x3FE52D73, 0xAEDD6BE6,
+/**/                   0x3FEF66A5, 0x1CF1AAA0,
+/**/                   0x3FF81B02, 0x4834E5A9,
+/**/                   0x40039066, 0xFCE48906,
+/**/                   0xBCA34E4F, 0x6BFB4C85,
+/**/                   0x3FE1433F, 0x7826AAD4,
+/**/                   0x3FF2C000, 0x00000000,
+/**/                   0xBF7A0887, 0x34E5C574,
+/**/                   0x3FE09000, 0x00000000,
+/**/                   0x3FF2B315, 0x268368DB,
+/**/                   0x3FDA7099, 0x53F655B7,
+/**/                   0x3FE1DC27, 0xAD9032EC,
+/**/                   0x3FE5CD52, 0xE5F88E23,
+/**/                   0x3FF04738, 0x0A68BDFC,
+/**/                   0x3FF93435, 0x2F057820,
+/**/                   0x40049E27, 0xDAE8A2FC,
+/**/                   0x3C86832C, 0xFAA44565,
+/**/                   0x3FE16898, 0x7BED8260,
+/**/                   0x3FF2C000, 0x00000000,
+/**/                   0xBF69D5B2, 0xF92E4A41,
+/**/                   0x3FE0B000, 0x00000000,
+/**/                   0x3FF2C068, 0x69558A9E,
+/**/                   0x3FDADCCA, 0x73011B64,
+/**/                   0x3FE234A6, 0x8511146A,
+/**/                   0x3FE6731A, 0x9D6CBF3C,
+/**/                   0x3FF0E1E1, 0xD575F00A,
+/**/                   0x3FFA5C9D, 0xADEA17E7,
+/**/                   0x4005BCD2, 0xD9123E7C,
+/**/                   0xBCA23E4F, 0xCC2AE1E4,
+/**/                   0x3FE18E0B, 0xF07948F0,
+/**/                   0x3FF2C000, 0x00000000,
+/**/                   0x3F1A1A55, 0x62A7614A,
+/**/                   0x3FE0D000, 0x00000000,
+/**/                   0x3FF2CDF2, 0x4AC410C6,
+/**/                   0x3FDB4B16, 0x68E63D97,
+/**/                   0x3FE28FC8, 0xBFA256B2,
+/**/                   0x3FE71F10, 0x51FDF05A,
+/**/                   0x3FF183AE, 0x0753C882,
+/**/                   0x3FFB9530, 0xF1921090,
+/**/                   0x4006ED9E, 0x14F942BC,
+/**/                   0x3CA27879, 0x89C77FA3,
+/**/                   0x3FE1B39A, 0x41FC691C,
+/**/                   0x3FF2C000, 0x00000000,
+/**/                   0x3F6BE495, 0x88218CD6,
+/**/                   0x3FE0F000, 0x00000000,
+/**/                   0x3FF2DBB3, 0xDC3BFD25,
+/**/                   0x3FDBBB8D, 0x55413207,
+/**/                   0x3FE2EDA7, 0xA6792BF1,
+/**/                   0x3FE7D17D, 0x4AC4E230,
+/**/                   0x3FF22D00, 0xAAE6CB05,
+/**/                   0x3FFCDEF5, 0xC9028E71,
+/**/                   0x400831D8, 0xB40C626C,
+/**/                   0x3C953FEF, 0x9873F484,
+/**/                   0x3FE1D943, 0xDEC430C0,
+/**/                   0x3FF2C000, 0x00000000,
+/**/                   0x3F7BB3DC, 0x3BFD24A1,
+/**/                   0x3FE11000, 0x00000000,
+/**/                   0x3FF2E9AE, 0x3760A19B,
+/**/                   0x3FDC2E3F, 0xF2E3E2EB,
+/**/                   0x3FE34E5D, 0xAFE1CD38,
+/**/                   0x3FE88AAE, 0xD6CE0B26,
+/**/                   0x3FF2DE44, 0x2C4B06C6,
+/**/                   0x3FFE3B06, 0x138813D2,
+/**/                   0x40098AED, 0x23FD5612,
+/**/                   0xBC91EC19, 0xB7AF0E54,
+/**/                   0x3FE1FF09, 0x3748F114,
+/**/                   0x3FF30000, 0x00000000,
+/**/                   0xBF7651C8, 0x9F5E657E,
+/**/                   0x3FE13000, 0x00000000,
+/**/                   0x3FF2F7E2, 0x7E5B072B,
+/**/                   0x3FDCA33F, 0x9F169C4D,
+/**/                   0x3FE3B206, 0x8FE1EB56,
+/**/                   0x3FE94AF6, 0x8F30E1B7,
+/**/                   0x3FF397E9, 0xCFCF9887,
+/**/                   0x3FFFAA90, 0x4FB7F25F,
+/**/                   0x400AFA63, 0x94745D90,
+/**/                   0x3C96955C, 0x2A139390,
+/**/                   0x3FE224EA, 0xBE3EBA20,
+/**/                   0x3FF30000, 0x00000000,
+/**/                   0xBF603B03, 0x49F1AA85,
+/**/                   0x3FE15000, 0x00000000,
+/**/                   0x3FF30651, 0xDC2D0E76,
+/**/                   0x3FDD1A9E, 0x613EF408,
+/**/                   0x3FE418BF, 0x49ED083D,
+/**/                   0x3FEA12AA, 0x9DFD1E23,
+/**/                   0x3FF45A6A, 0x32B75F76,
+/**/                   0x4000976C, 0xA7673F47,
+/**/                   0x400C81E4, 0xB046AC6A,
+/**/                   0x3C879FF7, 0x7D1BEB80,
+/**/                   0x3FE24AE8, 0xE8A6B8B0,
+/**/                   0x3FF30000, 0x00000000,
+/**/                   0x3F594770, 0xB439D90E,
+/**/                   0x3FE17000, 0x00000000,
+/**/                   0x3FF314FD, 0x85087ECD,
+/**/                   0x3FDD946E, 0xF2F45390,
+/**/                   0x3FE482A6, 0x43BEDA05,
+/**/                   0x3FEAE226, 0x0A640DD7,
+/**/                   0x3FF52645, 0xD6A3D695,
+/**/                   0x4001649F, 0x08098FE0,
+/**/                   0x400E233C, 0x9D2BADE7,
+/**/                   0x3C9E948C, 0x4E5F8348,
+/**/                   0x3FE27104, 0x2DE13E58,
+/**/                   0x3FF30000, 0x00000000,
+/**/                   0x3F74FD85, 0x087ECD1A,
+/**/                   0x3FE19000, 0x00000000,
+/**/                   0x3FF323E6, 0xB6AA3C67,
+/**/                   0x3FDE10C4, 0xC8894828,
+/**/                   0x3FE4EFDB, 0x59718389,
+/**/                   0x3FEBB9C9, 0x0A8D7622,
+/**/                   0x3FF5FC05, 0xB8A62B12,
+/**/                   0x40023D9A, 0xE4296831,
+/**/                   0x400FE05E, 0x49C0B830,
+/**/                   0x3CA19107, 0xC1189DE8,
+/**/                   0x3FE2973D, 0x07C07BCC,
+/**/                   0x3FF34000, 0x00000000,
+/**/                   0xBF7C1949, 0x55C3993D,
+/**/                   0x3FE1B000, 0x00000000,
+/**/                   0x3FF3330E, 0xB8B9E20B,
+/**/                   0x3FDE8FB4, 0x1A11468B,
+/**/                   0x3FE5607F, 0xF2E740E1,
+/**/                   0x3FEC99F9, 0x5B91DB14,
+/**/                   0x3FF6DC3B, 0xF50C5FAA,
+/**/                   0x4003232A, 0x0CFAC1C7,
+/**/                   0x4010DDB3, 0x894EFD30,
+/**/                   0xBCA7760F, 0x3783D916,
+/**/                   0x3FE2BD93, 0xF29BF5F0,
+/**/                   0x3FF34000, 0x00000000,
+/**/                   0xBF69E28E, 0x8C3BEA7F,
+/**/                   0x3FE1D000, 0x00000000,
+/**/                   0x3FF34276, 0xDD2DFE6D,
+/**/                   0x3FDF1151, 0xECEB226B,
+/**/                   0x3FE5D4B7, 0x1AA123CE,
+/**/                   0x3FED8322, 0xA01F65F8,
+/**/                   0x3FF7C784, 0x791CE583,
+/**/                   0x40041625, 0xC15A6B9C,
+/**/                   0x4011DB51, 0x64280FEB,
+/**/                   0x3CA10463, 0x28CA6DBB,
+/**/                   0x3FE2E409, 0x6D64BEAC,
+/**/                   0x3FF34000, 0x00000000,
+/**/                   0x3F43B6E9, 0x6FF364E1,
+/**/                   0x3FE1F000, 0x00000000,
+/**/                   0x3FF35220, 0x80B539C7,
+/**/                   0x3FDF95B4, 0x1DD91A82,
+/**/                   0x3FE64CA5, 0x961EA9CA,
+/**/                   0x3FEE75B6, 0xC65B3B2F,
+/**/                   0x3FF8BE85, 0xC412E59F,
+/**/                   0x40051778, 0x02462A51,
+/**/                   0x4012EA48, 0x109FC81B,
+/**/                   0x3C959E4C, 0x9F70CA98,
+/**/                   0x3FE30A9D, 0xF9BA7B3C,
+/**/                   0x3FF34000, 0x00000000,
+/**/                   0x3F722080, 0xB539C6A2,
+/**/                   0x3FE21000, 0x00000000,
+/**/                   0x3FF3620D, 0x0B24ACDA,
+/**/                   0x3FE00E78, 0xB5D803B6,
+/**/                   0x3FE6C871, 0xFFE457FB,
+/**/                   0x3FEF722E, 0x759EF386,
+/**/                   0x3FF9C1F1, 0xB8D0E874,
+/**/                   0x4006281D, 0x080FB06E,
+/**/                   0x40140BF2, 0xD1F69DF7,
+/**/                   0xBC8489EA, 0xCBFAF37F,
+/**/                   0x3FE33152, 0x1C0141BC,
+/**/                   0x3FF38000, 0x00000000,
+/**/                   0xBF7DF2F4, 0xDB532667,
+/**/                   0x3FE23000, 0x00000000,
+/**/                   0x3FF3723D, 0xEFEBB76D,
+/**/                   0x3FE05390, 0xC153FC4C,
+/**/                   0x3FE74844, 0xE34A2666,
+/**/                   0x3FF03C84, 0xC260A400,
+/**/                   0x3FFAD286, 0x81E70F01,
+/**/                   0x40074924, 0xDBC4A78E,
+/**/                   0x401541CB, 0x8BBCA2E0,
+/**/                   0x3C9C7528, 0x7BEA8472,
+/**/                   0x3FE35826, 0x5B7858F8,
+/**/                   0x3FF38000, 0x00000000,
+/**/                   0xBF6B8420, 0x28912510,
+/**/                   0x3FE25000, 0x00000000,
+/**/                   0x3FF382B4, 0xAE8DA9C7,
+/**/                   0x3FE09A2E, 0x842CABB9,
+/**/                   0x3FE7CC48, 0xDA356141,
+/**/                   0x3FF0C567, 0xBCD4FDB8,
+/**/                   0x3FFBF10F, 0x89B62C32,
+/**/                   0x40087BB5, 0x18ADC4B9,
+/**/                   0x40168D6D, 0xC516F6F1,
+/**/                   0xBC933A6B, 0x2E37D6A3,
+/**/                   0x3FE37F1B, 0x4251E5AC,
+/**/                   0x3FF38000, 0x00000000,
+/**/                   0x3F45A574, 0x6D4E3A7A,
+/**/                   0x3FE27000, 0x00000000,
+/**/                   0x3FF39372, 0xD3219A4C,
+/**/                   0x3FE0E25E, 0xD4394437,
+/**/                   0x3FE854AA, 0xACE4CC74,
+/**/                   0x3FF15408, 0x0981EE13,
+/**/                   0x3FFD1E66, 0x88AA5332,
+/**/                   0x4009C10A, 0xDA3BD18F,
+/**/                   0x4017F099, 0xFFE4AE21,
+/**/                   0xBCAED56B, 0x7B588ABE,
+/**/                   0x3FE3A631, 0x5DCB911C,
+/**/                   0x3FF38000, 0x00000000,
+/**/                   0x3F7372D3, 0x219A4BA9,
+/**/                   0x3FE29000, 0x00000000,
+/**/                   0x3FF3A479, 0xF6D8C6BC,
+/**/                   0x3FE12C2F, 0x11197A32,
+/**/                   0x3FE8E199, 0x73F949D5,
+/**/                   0x3FF1E8B1, 0xEE7A481D,
+/**/                   0x3FFE5B74, 0xABBE8828,
+/**/                   0x400B1A7C, 0xDB3D83BC,
+/**/                   0x40196D39, 0x6DC46100,
+/**/                   0x3CA7798C, 0xACD8F69C,
+/**/                   0x3FE3CD69, 0x3E4835E8,
+/**/                   0x3FF3C000, 0x00000000,
+/**/                   0xBF7B8609, 0x27394391,
+/**/                   0x3FE2B000, 0x00000000,
+/**/                   0x3FF3B5CB, 0xC08BE738,
+/**/                   0x3FE177AD, 0x2B5CB6B7,
+/**/                   0x3FE97346, 0xBCE90EB1,
+/**/                   0x3FF283B6, 0x68EC7F04,
+/**/                   0x3FFFA933, 0xD5B8ED04,
+/**/                   0x400C897D, 0xCBCDFF9A,
+/**/                   0x401B0562, 0x0E4ABF55,
+/**/                   0x3C881FF6, 0x1EE42043,
+/**/                   0x3FE3F4C3, 0x776AA08C,
+/**/                   0x3FF3C000, 0x00000000,
+/**/                   0xBF64687E, 0xE8319086,
+/**/                   0x3FE2D000, 0x00000000,
+/**/                   0x3FF3C769, 0xE54FE05E,
+/**/                   0x3FE1C4E7, 0xAC1A81A0,
+/**/                   0x3FEA09E6, 0xB10FA326,
+/**/                   0x3FF3256B, 0x840F679B,
+/**/                   0x40008457, 0xFEE9EF1A,
+/**/                   0x400E0F9E, 0xE4146343,
+/**/                   0x401CBB5B, 0x433496A9,
+/**/                   0xBCA57A4C, 0x59F087C0,
+/**/                   0x3FE41C40, 0xA03171A8,
+/**/                   0x3FF3C000, 0x00000000,
+/**/                   0x3F5DA795, 0x3F81773D,
+/**/                   0x3FE2F000, 0x00000000,
+/**/                   0x3FF3D956, 0x291249DC,
+/**/                   0x3FE213ED, 0xBD044AC9,
+/**/                   0x3FEAA5B0, 0x3F917FA8,
+/**/                   0x3FF3CE2C, 0xB7380A79,
+/**/                   0x40013D84, 0x576AFAE8,
+/**/                   0x400FAE92, 0xBAAB74F3,
+/**/                   0x401E91A2, 0xE9129E4A,
+/**/                   0x3C905671, 0x0CEC83F7,
+/**/                   0x3FE443E1, 0x53143194,
+/**/                   0x3FF3C000, 0x00000000,
+/**/                   0x3F795629, 0x1249DBC4,
+/**/                   0x3FE31000, 0x00000000,
+/**/                   0x3FF3EB92, 0x5F3E4715,
+/**/                   0x3FE264CF, 0x30F965D1,
+/**/                   0x3FEB46DD, 0x4A4F2FB2,
+/**/                   0x3FF47E5B, 0x4BC2E94F,
+/**/                   0x400200B9, 0x54F8F9EB,
+/**/                   0x4010B418, 0x33305D9F,
+/**/                   0x40204579, 0x826EF167,
+/**/                   0xBC9737A0, 0xE06EBCAE,
+/**/                   0x3FE46BA6, 0x2E21A53C,
+/**/                   0x3FF40000, 0x00000000,
+/**/                   0xBF746DA0, 0xC1B8EB04,
+/**/                   0x3FE33000, 0x00000000,
+/**/                   0x3FF3FE20, 0x6B6A38D5,
+/**/                   0x3FE2B79C, 0x8D26C7A0,
+/**/                   0x3FEBEDAA, 0xD62978F8,
+/**/                   0x3FF5365E, 0xCB8CC6D1,
+/**/                   0x4002CE9C, 0xD894AF54,
+/**/                   0x40119F3B, 0x79F7C63E,
+/**/                   0x40215524, 0x0C8E7B9E,
+/**/                   0x3CA485D0, 0x13DC9A80,
+/**/                   0x3FE4938F, 0xD31F754C,
+/**/                   0x3FF40000, 0x00000000,
+/**/                   0xBF3DF949, 0x5C72B1E7,
+/**/                   0x3FE35000, 0x00000000,
+/**/                   0x3FF41102, 0x420ED8E7,
+/**/                   0x3FE30C67, 0x12BCE2B2,
+/**/                   0x3FEC9A59, 0x3EDE345E,
+/**/                   0x3FF5F6A5, 0x78CAB466,
+/**/                   0x4003A7E1, 0x3EAD62EE,
+/**/                   0x401299C8, 0x9CB9A228,
+/**/                   0x40227974, 0x1BE749B0,
+/**/                   0x3CAFE28F, 0xC6A9831F,
+/**/                   0x3FE4BB9E, 0xE7AB3A40,
+/**/                   0x3FF40000, 0x00000000,
+/**/                   0x3F710242, 0x0ED8E776,
+/**/                   0x3FE37000, 0x00000000,
+/**/                   0x3FF42439, 0xE9485B43,
+/**/                   0x3FE36340, 0xC946E033,
+/**/                   0x3FED4D2C, 0x6ECC5A7E,
+/**/                   0x3FF6BFA4, 0xD027255A,
+/**/                   0x40048D46, 0x72504BE1,
+/**/                   0x4013A4ED, 0x09445BD5,
+/**/                   0x4023B435, 0x749E19F9,
+/**/                   0xBC40E7E5, 0xEAAAF53E,
+/**/                   0x3FE4E3D4, 0x155D0070,
+/**/                   0x3FF44000, 0x00000000,
+/**/                   0xBF7BC616, 0xB7A4BD36,
+/**/                   0x3FE39000, 0x00000000,
+/**/                   0x3FF437C9, 0x79A23C23,
+/**/                   0x3FE3BC3C, 0x89AF6A9D,
+/**/                   0x3FEE066C, 0x1AF553BA,
+/**/                   0x3FF791DA, 0x1622569A,
+/**/                   0x40057F9B, 0x1B18AE2B,
+/**/                   0x4014C1F0, 0x88BFF240,
+/**/                   0x40250761, 0x019A4522,
+/**/                   0x3CA4C238, 0xFDFCCB13,
+/**/                   0x3FE50C30, 0x09EB58F8,
+/**/                   0x3FF44000, 0x00000000,
+/**/                   0xBF606D0C, 0xBB87B9E1,
+/**/                   0x3FE3B000, 0x00000000,
+/**/                   0x3FF44BB3, 0x1EEE6F35,
+/**/                   0x3FE4176E, 0x0A004D1D,
+/**/                   0x3FEEC664, 0x0399FA54,
+/**/                   0x3FF86DCA, 0xF0CFD106,
+/**/                   0x40067FBD, 0xE8C80E97,
+/**/                   0x4015F237, 0xD9CD2D79,
+/**/                   0x40267521, 0xC8076345,
+/**/                   0x3CAEC756, 0xB089F7AF,
+/**/                   0x3FE534B3, 0x77510D94,
+/**/                   0x3FF44000, 0x00000000,
+/**/                   0x3F67663D, 0xDCDE698F,
+/**/                   0x3FE3D000, 0x00000000,
+/**/                   0x3FF45FF9, 0x1928B1BE,
+/**/                   0x3FE474E9, 0xE9EB53E9,
+/**/                   0x3FEF8D64, 0x39DB03B6,
+/**/                   0x3FF95406, 0x0F298B87,
+/**/                   0x40078E9E, 0xFFC72AB6,
+/**/                   0x40173747, 0x941456E7,
+/**/                   0x4027FFDA, 0x74A71E71,
+/**/                   0xBCAEED93, 0xFE7483B3,
+/**/                   0x3FE55D5F, 0x13F48EC0,
+/**/                   0x3FF44000, 0x00000000,
+/**/                   0x3F7FF919, 0x28B1BDFF,
+/**/                   0x3FE3F000, 0x00000000,
+/**/                   0x3FF4749D, 0xBD66D0C4,
+/**/                   0x3FE4D4C5, 0xC02C2013,
+/**/                   0x3FF02DE0, 0xB56768CC,
+/**/                   0x3FFA4523, 0xDF53A7BD,
+/**/                   0x4008AD41, 0x8A357386,
+/**/                   0x401892C7, 0x5E392799,
+/**/                   0x4029AA2B, 0x97746ACD,
+/**/                   0x3C924F0A, 0xB4A71E44,
+/**/                   0x3FE58633, 0x9AD13548,
+/**/                   0x3FF48000, 0x00000000,
+/**/                   0xBF66C485, 0x325E775E,
+/**/                   0x3FE41000, 0x00000000,
+/**/                   0x3FF489A3, 0x76D6C491,
+/**/                   0x3FE53718, 0x28D40829,
+/**/                   0x3FF098EA, 0x98450D83,
+/**/                   0x3FFB41C7, 0x55526E3B,
+/**/                   0x4009DCBD, 0x719F540E,
+/**/                   0x401A0685, 0x805D08D1,
+/**/                   0x402B76FA, 0xA5142633,
+/**/                   0x3C2AD9A7, 0xF1FF56FC,
+/**/                   0x3FE5AF31, 0xCBA27244,
+/**/                   0x3FF48000, 0x00000000,
+/**/                   0x3F6346ED, 0xAD892100,
+/**/                   0x3FE43000, 0x00000000,
+/**/                   0x3FF49F0C, 0xC7CB94CC,
+/**/                   0x3FE59BF8, 0xD492AA1E,
+/**/                   0x3FF107FF, 0x34D2CA82,
+/**/                   0x3FFC4A9E, 0xC3DF9E51,
+/**/                   0x400B1E41, 0x45F5874E,
+/**/                   0x401B947A, 0xDEB92648,
+/**/                   0x402D6979, 0xD903D532,
+/**/                   0x3CA43231, 0x04C67F5E,
+/**/                   0x3FE5D85A, 0x6B1109A4,
+/**/                   0x3FF48000, 0x00000000,
+/**/                   0x3F7F0CC7, 0xCB94CC1A,
+/**/                   0x3FE45000, 0x00000000,
+/**/                   0x3FF4B4DC, 0x4ADA0BF0,
+/**/                   0x3FE60380, 0x990F861F,
+/**/                   0x3FF17B50, 0xCBEC7542,
+/**/                   0x3FFD6064, 0xC93CFE8F,
+/**/                   0x400C7314, 0x56F36FE3,
+/**/                   0x401D3ECF, 0x696E5374,
+/**/                   0x402F8531, 0x1778AF1D,
+/**/                   0x3C7A53BF, 0x31EBDA84,
+/**/                   0x3FE601AE, 0x42E27660,
+/**/                   0x3FF4C000, 0x00000000,
+/**/                   0xBF66476A, 0x4BE81F81,
+/**/                   0x3FE47000, 0x00000000,
+/**/                   0x3FF4CB14, 0xB4065600,
+/**/                   0x3FE66DC9, 0x826ADA4F,
+/**/                   0x3FF1F314, 0xA3298D4D,
+/**/                   0x3FFE83E1, 0x52191CB4,
+/**/                   0x400DDC99, 0x05CA69AF,
+/**/                   0x401F07DF, 0x1079C46A,
+/**/                   0x4030E703, 0xF9440EB0,
+/**/                   0x3CA495E1, 0x5817D0DD,
+/**/                   0x3FE62B2E, 0x222A98A0,
+/**/                   0x3FF4C000, 0x00000000,
+/**/                   0x3F662968, 0x0CAC00D4,
+/**/                   0x3FE49000, 0x00000000,
+/**/                   0x3FF4E1B8, 0xD203BDC9,
+/**/                   0x3FE6DAEE, 0xE5FE0976,
+/**/                   0x3FF26F83, 0x3C44F71E,
+/**/                   0x3FFFB5EA, 0xB4D92F91,
+/**/                   0x400F5C4F, 0x55A779C8,
+/**/                   0x4020791F, 0xA66A7536,
+/**/                   0x40322428, 0x7DCE5D75,
+/**/                   0x3CADE7E8, 0x964F770B,
+/**/                   0x3FE654DA, 0xDD7FD12C,
+/**/                   0x3FF50000, 0x00000000,
+/**/                   0xBF7E472D, 0xFC42374B,
+/**/                   0x3FE4B000, 0x00000000,
+/**/                   0x3FF4F8CB, 0x8F87D541,
+/**/                   0x3FE74B0D, 0x767620C4,
+/**/                   0x3FF2F0D8, 0x9126F083,
+/**/                   0x40007BB3, 0x73F08794,
+/**/                   0x401079EB, 0xE1419117,
+/**/                   0x40218062, 0xA917F81E,
+/**/                   0x40337C6B, 0x48444DEE,
+/**/                   0x3C907A41, 0xF4061E08,
+/**/                   0x3FE67EB5, 0x4F31AF70,
+/**/                   0x3FF50000, 0x00000000,
+/**/                   0xBF5CD1C1, 0xE0AAFA85,
+/**/                   0x3FE4D000, 0x00000000,
+/**/                   0x3FF5104F, 0xF4B2718C,
+/**/                   0x3FE7BE43, 0x59659939,
+/**/                   0x3FF37754, 0x5502EAE6,
+/**/                   0x400124A6, 0x6AE0AC51,
+/**/                   0x4011527B, 0x33524D17,
+/**/                   0x40229B46, 0x7FBF7A2D,
+/**/                   0x4034F274, 0xAD716768,
+/**/                   0xBC9C610F, 0x7C204EA8,
+/**/                   0x3FE6A8BE, 0x57825A6C,
+/**/                   0x3FF50000, 0x00000000,
+/**/                   0x3F704FF4, 0xB2718C01,
+/**/                   0x3FE4F000, 0x00000000,
+/**/                   0x3FF52849, 0x288C017D,
+/**/                   0x3FE834B0, 0x3E6D3F7F,
+/**/                   0x3FF4033A, 0x3B0747CB,
+/**/                   0x4001D652, 0xE946B196,
+/**/                   0x401238CB, 0x3C2F8CB4,
+/**/                   0x4023CB80, 0x53E520C1,
+/**/                   0x40368938, 0x607BC0F6,
+/**/                   0xBC84274C, 0xCC053597,
+/**/                   0x3FE6D2F6, 0xDCE2DFB8,
+/**/                   0x3FF54000, 0x00000000,
+/**/                   0xBF77B6D7, 0x73FE8364,
+/**/                   0x3FE51000, 0x00000000,
+/**/                   0x3FF540BA, 0x729BE713,
+/**/                   0x3FE8AE75, 0x781F49A2,
+/**/                   0x3FF494D2, 0x432AC103,
+/**/                   0x40029147, 0x9B0015B6,
+/**/                   0x40132DE7, 0x156B74E9,
+/**/                   0x402512F0, 0xE8362EC8,
+/**/                   0x403843FE, 0xC8D2E0F8,
+/**/                   0xBC8F55DB, 0xBB3ACC53,
+/**/                   0x3FE6FD5F, 0xCC3296F0,
+/**/                   0x3FF54000, 0x00000000,
+/**/                   0x3F274E53, 0x7CE2565E,
+/**/                   0x3FE53000, 0x00000000,
+/**/                   0x3FF559A7, 0x3C98A101,
+/**/                   0x3FE92BB6, 0x16C3163D,
+/**/                   0x3FF52C69, 0x0DB2C44D,
+/**/                   0x4003561E, 0x0F4546B8,
+/**/                   0x401432F1, 0x7F099A82,
+/**/                   0x402673A9, 0x831E227A,
+/**/                   0x403A266F, 0xA02BBCD5,
+/**/                   0x3CA279A8, 0xAEA9CB9D,
+/**/                   0x3FE727FA, 0x1901CB44,
+/**/                   0x3FF54000, 0x00000000,
+/**/                   0x3F79A73C, 0x98A10084,
+/**/                   0x3FE55000, 0x00000000,
+/**/                   0x3FF57313, 0x1433B9BD,
+/**/                   0x3FE9AC97, 0x0523E7B2,
+/**/                   0x3FF5CA50, 0x361F7393,
+/**/                   0x4004257B, 0xB0F40825,
+/**/                   0x40154927, 0x46286025,
+/**/                   0x4027EFF1, 0x781495B4,
+/**/                   0x403C349E, 0x0A1139F1,
+/**/                   0xBC5D2C66, 0x8B6015DA,
+/**/                   0x3FE752C6, 0xBDD7E0E0,
+/**/                   0x3FF58000, 0x00000000,
+/**/                   0xBF69D9D7, 0x988C865F,
+/**/                   0x3FE57000, 0x00000000,
+/**/                   0x3FF58D01, 0xAD039E07,
+/**/                   0x3FEA313F, 0x279933CD,
+/**/                   0x3FF66EDE, 0xB63D93A6,
+/**/                   0x40050012, 0xD836441A,
+/**/                   0x401671E1, 0xF23D152C,
+/**/                   0x40298A4C, 0x65D3A1DD,
+/**/                   0x403E7316, 0x5EBDBF39,
+/**/                   0xBCAE5B6C, 0x7AAA4996,
+/**/                   0x3FE77DC6, 0xBC7D2FA0,
+/**/                   0x3FF58000, 0x00000000,
+/**/                   0x3F6A035A, 0x073C0E86,
+/**/                   0x3FE59000, 0x00000000,
+/**/                   0x3FF5A776, 0xE28DADB6,
+/**/                   0x3FEAB9D7, 0x7D7BE2B5,
+/**/                   0x3FF71A71, 0x5234C8A9,
+/**/                   0x4005E6A3, 0xF873554C,
+/**/                   0x4017AE9A, 0xC1F33F9B,
+/**/                   0x402B4581, 0x4310046E,
+/**/                   0x40407376, 0xF64B03E7,
+/**/                   0xBCA3F39B, 0xB3AB0542,
+/**/                   0x3FE7A8FB, 0x1E48D158,
+/**/                   0x3FF5C000, 0x00000000,
+/**/                   0xBF78891D, 0x725249CA,
+/**/                   0x3FE5B000, 0x00000000,
+/**/                   0x3FF5C276, 0xBA730F9B,
+/**/                   0x3FEB468B, 0x454127C3,
+/**/                   0x3FF7CD6B, 0x0E816ADB,
+/**/                   0x4006D9FE, 0xEDDAC837,
+/**/                   0x401900EE, 0x0209E3B7,
+/**/                   0x402D24A2, 0x57489C7E,
+/**/                   0x4041CAEA, 0x7F810E14,
+/**/                   0xBC84F20E, 0x24F9675B,
+/**/                   0x3FE7D464, 0xF472A690,
+/**/                   0x3FF5C000, 0x00000000,
+/**/                   0x3F43B5D3, 0x987CD623,
+/**/                   0x3FE5D000, 0x00000000,
+/**/                   0x3FF5DE05, 0x66C30CDC,
+/**/                   0x3FEBD788, 0x23798D1A,
+/**/                   0x3FF88835, 0xB0E567D8,
+/**/                   0x4007DB04, 0x6E46660A,
+/**/                   0x401A6A9E, 0xCA07CAA5,
+/**/                   0x402F2B16, 0x41ECEF64,
+/**/                   0x40434315, 0xC36F367B,
+/**/                   0xBCA08CA1, 0x542594A6,
+/**/                   0x3FE80005, 0x5869D9E8,
+/**/                   0x3FF5C000, 0x00000000,
+/**/                   0x3F7E0566, 0xC30CDBD9,
+/**/                   0x3FE5F000, 0x00000000,
+/**/                   0x3FF5FA27, 0x4875FA03,
+/**/                   0x3FEC6CFE, 0x4CF96D63,
+/**/                   0x3FF94B42, 0x4D7B8313,
+/**/                   0x4008EAA7, 0xA1B04592,
+/**/                   0x401BED9B, 0x2C5A9D87,
+/**/                   0x4030AE51, 0x1BC92F68,
+/**/                   0x4044DF8C, 0x685FBD64,
+/**/                   0xBCAC07A8, 0x30FE6378,
+/**/                   0x3FE82BDD, 0x6C30303C,
+/**/                   0x3FF60000, 0x00000000,
+/**/                   0xBF5762DE, 0x2817F40C,
+/**/                   0x3FE61000, 0x00000000,
+/**/                   0x3FF616E0, 0xF213FCD6,
+/**/                   0x3FED0720, 0xB47784FF,
+/**/                   0x3FFA1709, 0xE13C6707,
+/**/                   0x400A09EF, 0xE70B2E72,
+/**/                   0x401D8C00, 0xE976AAD9,
+/**/                   0x4031DEBA, 0xD1AE1EA8,
+/**/                   0x4046A453, 0x6424341F,
+/**/                   0x3CA13E53, 0xA65D40B1,
+/**/                   0x3FE857EE, 0x5ABA79E8,
+/**/                   0x3FF60000, 0x00000000,
+/**/                   0x3F76E0F2, 0x13FCD614,
+/**/                   0x3FE63000, 0x00000000,
+/**/                   0x3FF63437, 0x2A8B4ED8,
+/**/                   0x3FEDA625, 0x3BF69915,
+/**/                   0x3FFAEC0D, 0xFB6DF86F,
+/**/                   0x400B39FA, 0xCAF2D64B,
+/**/                   0x401F4822, 0xB7E2DC06,
+/**/                   0x4033291B, 0xB12537E3,
+/**/                   0x404895F0, 0xAF3EF0D1,
+/**/                   0x3CAEA588, 0x71E7ED76,
+/**/                   0x3FE88439, 0x5856807C,
+/**/                   0x3FF64000, 0x00000000,
+/**/                   0xBF6791AA, 0xE9624F1C,
+/**/                   0x3FE65000, 0x00000000,
+/**/                   0x3FF6522E, 0xF039F5E3,
+/**/                   0x3FEE4A44, 0xEA588E54,
+/**/                   0x3FFBCAD9, 0x77A3F8A4,
+/**/                   0x400C7BFE, 0x3669F2F2,
+/**/                   0x40209247, 0x1AEA54A4,
+/**/                   0x4034900A, 0x6B866959,
+/**/                   0x404AB97D, 0x620634CF,
+/**/                   0x3C948649, 0xDA91B0FD,
+/**/                   0x3FE8B0BF, 0xA316D3A0,
+/**/                   0x3FF64000, 0x00000000,
+/**/                   0x3F722EF0, 0x39F5E2AD,
+/**/                   0x3FE67000, 0x00000000,
+/**/                   0x3FF670CD, 0x7C2F4FC3,
+/**/                   0x3FEEF3BC, 0x2583CF60,
+/**/                   0x3FFCB401, 0x4A2E1684,
+/**/                   0x400DD14A, 0xDCB9F8FB,
+/**/                   0x40219209, 0x4E164373,
+/**/                   0x40361669, 0x8FC171BC,
+/**/                   0x404D14BA, 0xA46B7BE1,
+/**/                   0xBCABAC31, 0xBBDFE65A,
+/**/                   0x3FE8DD82, 0x8344E08C,
+/**/                   0x3FF68000, 0x00000000,
+/**/                   0xBF6E6507, 0xA1607A77,
+/**/                   0x3FE69000, 0x00000000,
+/**/                   0x3FF69018, 0x45AA3C85,
+/**/                   0x3FEFA2CA, 0xF18FBD18,
+/**/                   0x3FFDA825, 0x610C140E,
+/**/                   0x400F3B4E, 0xF08895E1,
+/**/                   0x4022A4E4, 0x272CD203,
+/**/                   0x4037BF71, 0x60C4A0EE,
+/**/                   0x404FAE29, 0xEC79351D,
+/**/                   0x3C6BF5BB, 0x3E22FB0A,
+/**/                   0x3FE90A83, 0x4BD9C858,
+/**/                   0x3FF68000, 0x00000000,
+/**/                   0x3F701845, 0xAA3C8533,
+/**/                   0x3FE6B000, 0x00000000,
+/**/                   0x3FF6B015, 0x05D92E4E,
+/**/                   0x3FF02BDA, 0x9ABD20D8,
+/**/                   0x3FFEA7F1, 0x9BC5CC13,
+/**/                   0x40105DCC, 0x94AFB2BB,
+/**/                   0x4023CC8C, 0xB382B54A,
+/**/                   0x40398EBB, 0x19C28EAE,
+/**/                   0x40514694, 0x8F7609B5,
+/**/                   0x3C9CD223, 0xF66137E5,
+/**/                   0x3FE937C3, 0x5AFE73AC,
+/**/                   0x3FF6C000, 0x00000000,
+/**/                   0xBF6FD5F4, 0x4DA36334,
+/**/                   0x3FE6D000, 0x00000000,
+/**/                   0x3FF6D0C9, 0xBBE1EF2B,
+/**/                   0x3FF08961, 0x82FBDD29,
+/**/                   0x3FFFB41E, 0xDCD403EC,
+/**/                   0x401129EE, 0x121D0023,
+/**/                   0x40250AE5, 0xB34159B2,
+/**/                   0x403B884D, 0xDB5CEAC4,
+/**/                   0x4052DD09, 0xA0B334B0,
+/**/                   0xBC96BF1D, 0xD8F14BF9,
+/**/                   0x3FE96544, 0x1A936D24,
+/**/                   0x3FF6C000, 0x00000000,
+/**/                   0x3F70C9BB, 0xE1EF2AEE,
+/**/                   0x3FE6F000, 0x00000000,
+/**/                   0x3FF6F23C, 0xB13786CF,
+/**/                   0x3FF0EA20, 0x7B7FC134,
+/**/                   0x400066BA, 0x1BD0D518,
+/**/                   0x401202F9, 0x159EC945,
+/**/                   0x40266205, 0x16FF868A,
+/**/                   0x403DB0AD, 0x87398014,
+/**/                   0x40549F33, 0x47D58711,
+/**/                   0x3C8D858F, 0x54B11A28,
+/**/                   0x3FE99307, 0x00C1184C,
+/**/                   0x3FF70000, 0x00000000,
+/**/                   0xBF6B869D, 0x90F2626A,
+/**/                   0x3FE71000, 0x00000000,
+/**/                   0x3FF71474, 0x7E455603,
+/**/                   0x3FF14E40, 0x3A65655F,
+/**/                   0x4000FA64, 0x1F4AA7A1,
+/**/                   0x4012E9F0, 0xB946C70A,
+/**/                   0x4027D43A, 0x3CC53936,
+/**/                   0x40400675, 0xEE087279,
+/**/                   0x40569278, 0x77313CEF,
+/**/                   0xBCAB1BA1, 0x772D6E62,
+/**/                   0x3FE9C10D, 0x9090E874,
+/**/                   0x3FF70000, 0x00000000,
+/**/                   0x3F74747E, 0x455602D3,
+/**/                   0x3FE73000, 0x00000000,
+/**/                   0x3FF73778, 0x0F773DEC,
+/**/                   0x3FF1B5EC, 0x1288B243,
+/**/                   0x40019581, 0x3A853FA5,
+/**/                   0x4013DFF0, 0x6D2743E5,
+/**/                   0x40296415, 0x09B4B924,
+/**/                   0x4041515E, 0x19A59D1F,
+/**/                   0x4058BD01, 0xF3E53877,
+/**/                   0x3C962269, 0xFC348BAE,
+/**/                   0x3FE9EF59, 0x5A90493C,
+/**/                   0x3FF74000, 0x00000000,
+/**/                   0xBF610FE1, 0x11842743,
+/**/                   0x3FE75000, 0x00000000,
+/**/                   0x3FF75B4E, 0xAAA78140,
+/**/                   0x3FF22152, 0x28B49576,
+/**/                   0x4002388E, 0x74D66746,
+/**/                   0x4014E62E, 0xA43083A8,
+/**/                   0x402B146E, 0x02885ED7,
+/**/                   0x4042BC45, 0x29A3BC2C,
+/**/                   0x405B25D8, 0xCDAFE7E5,
+/**/                   0x3CA8862D, 0xF03F8A74,
+/**/                   0x3FEA1DEB, 0xFD7DFBD8,
+/**/                   0x3FF74000, 0x00000000,
+/**/                   0x3F7B4EAA, 0xA7813FBA,
+/**/                   0x3FE77000, 0x00000000,
+/**/                   0x3FF77FFF, 0xF4FC0008,
+/**/                   0x3FF290A3, 0xADE499E4,
+/**/                   0x4002E412, 0xFF22FE11,
+/**/                   0x4015FDFF, 0xD7A17943,
+/**/                   0x402CE86F, 0x8AF79AEF,
+/**/                   0x40444ACA, 0x6F8EDF86,
+/**/                   0x405DD50A, 0x29CF9F92,
+/**/                   0x3CA49DB0, 0xC5865233,
+/**/                   0x3FEA4CC7, 0x2702BD90,
+/**/                   0x3FF78000, 0x00000000,
+/**/                   0xBE6607FF, 0xF08268E1,
+/**/                   0x3FE79000, 0x00000000,
+/**/                   0x3FF7A593, 0xF93D7FBC,
+/**/                   0x3FF30415, 0x1F293A81,
+/**/                   0x400398A1, 0x31649EA4,
+/**/                   0x401728D9, 0xED75DA1E,
+/**/                   0x402EE3A0, 0x7B1736CA,
+/**/                   0x40460106, 0x036EC9D4,
+/**/                   0x406069E8, 0xB3E5A09F,
+/**/                   0xBCA79BBD, 0x4E8EB882,
+/**/                   0x3FEA7BEC, 0x94762100,
+/**/                   0x3FF7C000, 0x00000000,
+/**/                   0xBF7A6C06, 0xC280445C,
+/**/                   0x3FE7B000, 0x00000000,
+/**/                   0x3FF7CC13, 0x2EB4E536,
+/**/                   0x3FF37BDE, 0x8BD25D7D,
+/**/                   0x400456D7, 0xA51DF797,
+/**/                   0x40186858, 0x103AF33E,
+/**/                   0x403084F8, 0x21121C2E,
+/**/                   0x4047E39A, 0x9D7C6DE3,
+/**/                   0x40621664, 0xEF4C9A12,
+/**/                   0x3C804D2D, 0x39DB72FF,
+/**/                   0x3FEAAB5E, 0x13B099B0,
+/**/                   0x3FF7C000, 0x00000000,
+/**/                   0x3F68265D, 0x69CA6C2F,
+/**/                   0x3FE7D000, 0x00000000,
+/**/                   0x3FF7F386, 0x809BA1CD,
+/**/                   0x3FF3F83B, 0xE298B2EB,
+/**/                   0x40051F62, 0x708A6ABE,
+/**/                   0x4019BE3F, 0x090F77AB,
+/**/                   0x4031AFE2, 0x6C13BF38,
+/**/                   0x4049F7CA, 0x65FF02A8,
+/**/                   0x4063F614, 0xDA840FE0,
+/**/                   0xBCA7BDE9, 0xAB5D1A54,
+/**/                   0x3FEADB1D, 0x83EBD320,
+/**/                   0x3FF80000, 0x00000000,
+/**/                   0xBF68F2FE, 0xC8BC6562,
+/**/                   0x3FE7F000, 0x00000000,
+/**/                   0x3FF81BF7, 0x562E1E24,
+/**/                   0x3FF4796D, 0x469724DB,
+/**/                   0x4005F2FC, 0x86E67917,
+/**/                   0x401B2C82, 0x2F5AE582,
+/**/                   0x4032F505, 0x65EE1919,
+/**/                   0x404C438F, 0x4744D220,
+/**/                   0x40661003, 0xD66309FD,
+/**/                   0x3C8470C8, 0xFC828894,
+/**/                   0x3FEB0B2C, 0xD6B287DC,
+/**/                   0x3FF80000, 0x00000000,
+/**/                   0x3F7BF756, 0x2E1E23E5,
+/**/                   0x3FE81000, 0x00000000,
+/**/                   0x3FF8456F, 0x9B70AB1D,
+/**/                   0x3FF4FFB7, 0x6D01A674,
+/**/                   0x4006D271, 0x42D7B667,
+/**/                   0x401CB549, 0x05DD4055,
+/**/                   0x40345723, 0xE490CA9B,
+/**/                   0x404ECD17, 0x47C5589B,
+/**/                   0x40686C46, 0x3D6DB036,
+/**/                   0x4084044D, 0xECF23C2E,
+/**/                   0xBC7F0990, 0x0D173A5F,
+/**/                   0x3FEB3B8E, 0x10E12D3C,
+/**/                   0x3FF84000, 0x00000000,
+/**/                   0x3F55BE6D, 0xC2AC733C,
+/**/                   0x3FE83000, 0x00000000,
+/**/                   0x3FF86FF9, 0xCAB97B9D,
+/**/                   0x3FF58B64, 0x04A71B42,
+/**/                   0x4007BE9E, 0x20C0FB6E,
+/**/                   0x401E5AF5, 0x9B426297,
+/**/                   0x4035D958, 0x013C40EE,
+/**/                   0x4050CEA9, 0x2215E48C,
+/**/                   0x406B146B, 0xB8C0669A,
+/**/                   0x40868C96, 0xFB8EB0FE,
+/**/                   0x3CA55848, 0x1FCCBAD4,
+/**/                   0x3FEB6C43, 0x4BB8EA98,
+/**/                   0x3FF88000, 0x00000000,
+/**/                   0xBF700635, 0x46846319,
+/**/                   0x3FE85000, 0x00000000,
+/**/                   0x3FF89BA0, 0xF71469BF,
+/**/                   0x3FF61CC2, 0x28717EFA,
+/**/                   0x4008B874, 0xAFB7BAF7,
+/**/                   0x40201015, 0xEC7286DB,
+/**/                   0x40377F1F, 0x8329A469,
+/**/                   0x40525E49, 0x2927F0DD,
+/**/                   0x406E135C, 0x5AE80CD9,
+/**/                   0x40897364, 0x40DF64FD,
+/**/                   0x3C89F53B, 0x1ED91B03,
+/**/                   0x3FEB9D4E, 0xB6067ABC,
+/**/                   0x3FF88000, 0x00000000,
+/**/                   0x3F7BA0F7, 0x1469BF33,
+/**/                   0x3FE87000, 0x00000000,
+/**/                   0x3FF8C870, 0xD797DABF,
+/**/                   0x3FF6B426, 0xDE42D55F,
+/**/                   0x4009C0FC, 0xC0E06552,
+/**/                   0x402103EC, 0xEB059907,
+/**/                   0x40394C6A, 0x49A75AA7,
+/**/                   0x40541A81, 0xB2A496D0,
+/**/                   0x4070BAEE, 0x209CB693,
+/**/                   0x408CC860, 0x285808C5,
+/**/                   0xBCAE6D8C, 0x9B0DC6F3,
+/**/                   0x3FEBCEB2, 0x955EC1C4,
+/**/                   0x3FF8C000, 0x00000000,
+/**/                   0x3F60E1AF, 0x2FB57EE7,
+/**/                   0x3FE89000, 0x00000000,
+/**/                   0x3FF8F675, 0xD3C502F4,
+/**/                   0x3FF751ED, 0xA3BFB2E4,
+/**/                   0x400AD956, 0xDE3987BC,
+/**/                   0x40220AA0, 0xB30AAD0A,
+/**/                   0x403B45AB, 0x16220014,
+/**/                   0x40560929, 0xEC84429C,
+/**/                   0x4072A569, 0x0D747939,
+/**/                   0x40904F10, 0x5407F41E,
+/**/                   0xBC675CEB, 0xFC269962,
+/**/                   0x3FEC0071, 0x4773138C,
+/**/                   0x3FF90000, 0x00000000,
+/**/                   0xBF631458, 0x75FA1750,
+/**/                   0x3FE8B000, 0x00000000,
+/**/                   0x3FF925BD, 0x111125DF,
+/**/                   0x3FF7F679, 0x0AD2B4C2,
+/**/                   0x400C02BF, 0x1359A3C8,
+/**/                   0x40232601, 0x88857C21,
+/**/                   0x403D6FEB, 0x2515D90E,
+/**/                   0x405830FA, 0xD421145E,
+/**/                   0x4074D1D6, 0xFD789544,
+/**/                   0x40928561, 0x4B30EBF1,
+/**/                   0x3CA13E7B, 0x7876F9D2,
+/**/                   0x3FEC328D, 0x437F5E74,
+/**/                   0x3FF94000, 0x00000000,
+/**/                   0xBF7A42EE, 0xEEDA20A4,
+/**/                   0x3FE8D000, 0x00000000,
+/**/                   0x3FF95654, 0x81B9477B,
+/**/                   0x3FF8A233, 0x67F87779,
+/**/                   0x400D3E90, 0x14665EA0,
+/**/                   0x40245815, 0x5A415747,
+/**/                   0x403FD0E1, 0x1D7511C0,
+/**/                   0x405A99B6, 0x01EC30FB,
+/**/                   0x40774A72, 0xDD7EE7A1,
+/**/                   0x40951454, 0x5C2F1724,
+/**/                   0x3C8185B3, 0x774A5205,
+/**/                   0x3FEC6509, 0x1BD4AD0C,
+/**/                   0x3FF94000, 0x00000000,
+/**/                   0x3F765481, 0xB9477AC0,
+/**/                   0x3FE8F000, 0x00000000,
+/**/                   0x3FF9884A, 0xF50630B5,
+/**/                   0x3FF9558F, 0x94B35A8D,
+/**/                   0x400E8E46, 0xD1A32B1D,
+/**/                   0x4025A31F, 0x0AEC68DB,
+/**/                   0x40413785, 0xFD21A759,
+/**/                   0x405D4C53, 0xF56DFCA6,
+/**/                   0x407A1B45, 0xF89C0F5F,
+/**/                   0x40980BB3, 0xC92C8CF3,
+/**/                   0xBC8696E8, 0xFEB6A05E,
+/**/                   0x3FEC97E7, 0x7F82B8CC,
+/**/                   0x3FF98000, 0x00000000,
+/**/                   0x3F6095EA, 0x0C6169C6,
+/**/                   0x3FE91000, 0x00000000,
+/**/                   0x3FF9BBB0, 0x292BC29F,
+/**/                   0x3FFA1109, 0xC8E3D76B,
+/**/                   0x400FF386, 0x8873C480,
+/**/                   0x402709A6, 0xDE619C77,
+/**/                   0x4042A8E9, 0x5A9417B9,
+/**/                   0x4060299D, 0xBFE20B57,
+/**/                   0x407D5283, 0xE1225431,
+/**/                   0x409B7E74, 0xC225406C,
+/**/                   0xBC879431, 0x74F396DB,
+/**/                   0x3FECCB2B, 0x3C239888,
+/**/                   0x3FF9C000, 0x00000000,
+/**/                   0xBF513F5B, 0x50F5839F,
+/**/                   0x3FE93000, 0x00000000,
+/**/                   0x3FF9F094, 0xDEF4783D,
+/**/                   0x3FFAD528, 0x8E300736,
+/**/                   0x4010B80E, 0xB2D4D4EE,
+/**/                   0x40288E84, 0x3F3D0057,
+/**/                   0x404440D4, 0xD20263C0,
+/**/                   0x4061DD42, 0x26E14927,
+/**/                   0x4080807D, 0x5EF13D09,
+/**/                   0x409F836C, 0xFE9E94BE,
+/**/                   0xBC813C84, 0xE5FD9D2D,
+/**/                   0x3FECFED7, 0x3FCCF104,
+/**/                   0x3FFA0000, 0x00000000,
+/**/                   0xBF6ED642, 0x170F854B,
+/**/                   0x3FE95000, 0x00000000,
+/**/                   0x3FFA270A, 0xEF70C9F9,
+/**/                   0x3FFBA27D, 0xD12662D9,
+/**/                   0x40118304, 0xE8433B59,
+/**/                   0x402A34E9, 0x1B4DD8D9,
+/**/                   0x4046041F, 0x58AA354C,
+/**/                   0x4063C823, 0x87EB035B,
+/**/                   0x40829D4E, 0x7F89A6B6,
+/**/                   0x40A21B1A, 0xB4BED54D,
+/**/                   0x3C855D66, 0xFD8283D4,
+/**/                   0x3FED32EE, 0x9B2A7684,
+/**/                   0x3FFA4000, 0x00000000,
+/**/                   0xBF78F510, 0x8F3606B9,
+/**/                   0x3FE97000, 0x00000000,
+/**/                   0x3FFA5F25, 0x63EA127F,
+/**/                   0x3FFC79A8, 0x1460C218,
+/**/                   0x40125BC0, 0x3D14975C,
+/**/                   0x402C006F, 0x2249DB66,
+/**/                   0x4047F856, 0xED0AEFCD,
+/**/                   0x4065F27F, 0x2E2028D0,
+/**/                   0x40850B95, 0x6CE59595,
+/**/                   0x40A4DC23, 0x18C497E2,
+/**/                   0x3C8BDFAE, 0x76BA54CA,
+/**/                   0x3FED6774, 0x83C60554,
+/**/                   0x3FFA4000, 0x00000000,
+/**/                   0x3F7F2563, 0xEA127F53,
+/**/                   0x3FE99000, 0x00000000,
+/**/                   0x3FFA98F8, 0x9061CEFE,
+/**/                   0x3FFD5B53, 0xCAA1F466,
+/**/                   0x40134379, 0xA92630E8,
+/**/                   0x402DF527, 0x41E37357,
+/**/                   0x404A23DF, 0xD7DE2305,
+/**/                   0x406865FE, 0x1911C50F,
+/**/                   0x4087D981, 0xD5CE543D,
+/**/                   0x40A8192E, 0x2134A322,
+/**/                   0xBC915CF9, 0x4FE6DAC8,
+/**/                   0x3FED9C6C, 0x56821F74,
+/**/                   0x3FFA8000, 0x00000000,
+/**/                   0x3F78F890, 0x61CEFDBB,
+/**/                   0x3FE9B000, 0x00000000,
+/**/                   0x3FFAD49A, 0x30F0DACC,
+/**/                   0x3FFE483C, 0xDDBFEE70,
+/**/                   0x40143B8C, 0xC4418459,
+/**/                   0x40300BD5, 0xE6E7E816,
+/**/                   0x404C8E1A, 0x02EE200E,
+/**/                   0x406B2DFC, 0x83038A03,
+/**/                   0x408B1814, 0xD987E3D9,
+/**/                   0x40ABEB1E, 0x8827CEFA,
+/**/                   0x3CA8829A, 0xE22AFCE0,
+/**/                   0x3FEDD1D9, 0x9A4C39D0,
+/**/                   0x3FFAC000, 0x00000000,
+/**/                   0x3F749A30, 0xF0DACB86,
+/**/                   0x3FE9D000, 0x00000000,
+/**/                   0x3FFB1221, 0x8A66E40D,
+/**/                   0x3FFF4130, 0x692DC10A,
+/**/                   0x4015457C, 0x64621A80,
+/**/                   0x4031369A, 0xED2A1AB4,
+/**/                   0x404F3F8D, 0xBC003A70,
+/**/                   0x406E57E1, 0x462E99D6,
+/**/                   0x408EDBC2, 0xC53F5717,
+/**/                   0x40B0383D, 0x0A71E453,
+/**/                   0x3C90AF9F, 0xBEDD86A9,
+/**/                   0x3FEE07C0, 0x030CF708,
+/**/                   0x3FFB0000, 0x00000000,
+/**/                   0x3F72218A, 0x66E40CBE,
+/**/                   0x3FE9F000, 0x00000000,
+/**/                   0x3FFB51A7, 0x8E9927E5,
+/**/                   0x40002387, 0x581637B3,
+/**/                   0x401662F7, 0xF5B2C17E,
+/**/                   0x40327DDB, 0x36EAC07E,
+/**/                   0x40512110, 0xC70D9C43,
+/**/                   0x4070F9C4, 0x88C52943,
+/**/                   0x40919E9E, 0xB1AB4848,
+/**/                   0x40B2E76B, 0xB1EC7695,
+/**/                   0x3CAA2400, 0x5E9F6FD9,
+/**/                   0x3FEE3E23, 0x74DD3C64,
+/**/                   0x3FFB4000, 0x00000000,
+/**/                   0x3F71A78E, 0x9927E571,
+/**/                   0x3FEA1000, 0x00000000,
+/**/                   0x3FFB9347, 0x04E0F95F,
+/**/                   0x4000AD66, 0xAC8DC27B,
+/**/                   0x401795E1, 0xAE05A580,
+/**/                   0x4033E4FA, 0x299AA0A0,
+/**/                   0x4052D0AD, 0xA33AB75C,
+/**/                   0x407309E5, 0x39D64C89,
+/**/                   0x40942D39, 0x154C34C4,
+/**/                   0x40B61A59, 0x59D15B1D,
+/**/                   0xBCAFC899, 0x114BE565,
+/**/                   0x3FEE7508, 0x0787FD30,
+/**/                   0x3FFB8000, 0x00000000,
+/**/                   0x3F734704, 0xE0F95E8B,
+/**/                   0x3FEA3000, 0x00000000,
+/**/                   0x3FFBD71C, 0xB75F37A1,
+/**/                   0x40013EBC, 0xFC9006E1,
+/**/                   0x4018E055, 0xC48D2C09,
+/**/                   0x40356FD7, 0xC2C8C9CD,
+/**/                   0x4054B557, 0x6198B971,
+/**/                   0x4075678C, 0x9680F9AF,
+/**/                   0x40972BE5, 0x8AF946DD,
+/**/                   0x40B9EDE4, 0xE1B531F9,
+/**/                   0xBC447F69, 0xE4527544,
+/**/                   0x3FEEAC72, 0x0A61AD1C,
+/**/                   0x3FFBC000, 0x00000000,
+/**/                   0x3F771CB7, 0x5F37A0DF,
+/**/                   0x3FEA5000, 0x00000000,
+/**/                   0x3FFC1D47, 0xA5B24F80,
+/**/                   0x4001D81E, 0x7EB9F789,
+/**/                   0x401A44B2, 0xDF42B6B7,
+/**/                   0x403722E5, 0xB4766752,
+/**/                   0x4056D6EE, 0xECFADFF0,
+/**/                   0x40782028, 0x8B1EB8D5,
+/**/                   0x409AB0E2, 0xCA840144,
+/**/                   0x40BE8614, 0xE2126BBF,
+/**/                   0xBC8D9A93, 0x2CC624E2,
+/**/                   0x3FEEE466, 0x087F8D20,
+/**/                   0x3FFC0000, 0x00000000,
+/**/                   0x3F7D47A5, 0xB24F8064,
+/**/                   0x3FEA7000, 0x00000000,
+/**/                   0x3FFC65E9, 0x3DE98207,
+/**/                   0x40027A2E, 0x811F641B,
+/**/                   0x401BC5A3, 0xF223266D,
+/**/                   0x40390340, 0xA6ECBE29,
+/**/                   0x40593EB6, 0xC3D499AF,
+/**/                   0x407B43D9, 0xAD8CC2F1,
+/**/                   0x409ED77C, 0xA519B816,
+/**/                   0x40C2080A, 0x5B3B703B,
+/**/                   0x3C7B187D, 0xE993C3DD,
+/**/                   0x3FEF1CE8, 0xCD5A7CE8,
+/**/                   0x3FFC8000, 0x00000000,
+/**/                   0xBF7A16C2, 0x167DF937,
+/**/                   0x3FEA9000, 0x00000000,
+/**/                   0x3FFCB125, 0x9CA2F05E,
+/**/                   0x400325A1, 0x54FC4C95,
+/**/                   0x401D662B, 0xD9C5FF75,
+/**/                   0x403B16CE, 0x8E93577D,
+/**/                   0x405BF79A, 0xE0E3029E,
+/**/                   0x407EE612, 0x04BCDF91,
+/**/                   0x40A1E0AC, 0x31EFE3F1,
+/**/                   0x40C56267, 0x85DF051C,
+/**/                   0xBCAD6122, 0x2D0BC06E,
+/**/                   0x3FEF55FF, 0x69EAB2F0,
+/**/                   0x3FFCC000, 0x00000000,
+/**/                   0xBF6DB4C6, 0xBA1F43E4,
+/**/                   0x3FEAB000, 0x00000000,
+/**/                   0x3FFCFF23, 0xD56B9F55,
+/**/                   0x4003DB3E, 0x86149A3B,
+/**/                   0x401F29B3, 0x0B8D0DAD,
+/**/                   0x403D6463, 0x40E9D1A7,
+/**/                   0x405F0E89, 0x619D6679,
+/**/                   0x40818F2E, 0x92CF3FBC,
+/**/                   0x40A4CC10, 0x844E51BD,
+/**/                   0x40C9762D, 0xF3A9EB60,
+/**/                   0x3CA20E79, 0xEF4B1E02,
+/**/                   0x3FEF8FAF, 0x3A4BC01C,
+/**/                   0x3FFD0000, 0x00000000,
+/**/                   0xBF2B8552, 0x8C156248,
+/**/                   0x3FEAD000, 0x00000000,
+/**/                   0x3FFD500E, 0x44AAD4F2,
+/**/                   0x40049BE3, 0x6B85DB68,
+/**/                   0x40208A0B, 0xE558F351,
+/**/                   0x403FF3EC, 0xC1BCC632,
+/**/                   0x40614970, 0x2A555E45,
+/**/                   0x408404AE, 0xDD057F33,
+/**/                   0x40A847D9, 0x22610A18,
+/**/                   0x40CE7146, 0x3C7AA2B4,
+/**/                   0xBC9571D0, 0x53CA14EC,
+/**/                   0x3FEFC9FD, 0xEBFAA348,
+/**/                   0x3FFD4000, 0x00000000,
+/**/                   0x3F700E44, 0xAAD4F267,
+/**/                   0x3FEAF000, 0x00000000,
+/**/                   0x3FFDA412, 0xEC9EDC5A,
+/**/                   0x40056886, 0x22B6D908,
+/**/                   0x402194E0, 0xB605B3B4,
+/**/                   0x40416754, 0x9338560C,
+/**/                   0x40634B7B, 0x34B16169,
+/**/                   0x4086E508, 0x3B1BAF9C,
+/**/                   0x40AC7475, 0xFB9DFBF5,
+/**/                   0x40D2473E, 0xF4B4BB01,
+/**/                   0x3CA82B31, 0xE9F06EFC,
+/**/                   0x3FF00278, 0xC2613F02,
+/**/                   0x3FFDC000, 0x00000000,
+/**/                   0xBF7BED13, 0x6123A5D1,
+/**/                   0x3FEB1000, 0x00000000,
+/**/                   0x3FFDFB63, 0xDF3AE0DB,
+/**/                   0x40064239, 0x08AD38CF,
+/**/                   0x4022B7DB, 0xAA166573,
+/**/                   0x4042FFB4, 0x38210D3E,
+/**/                   0x40659862, 0xFB634456,
+/**/                   0x408A45B4, 0xEE8F3E34,
+/**/                   0x40B0BD59, 0xD39A6C6F,
+/**/                   0x40D60CCD, 0x2B4867E8,
+/**/                   0xBCA6097F, 0x1CBB85B3,
+/**/                   0x3FF02048, 0x3537E800,
+/**/                   0x3FFE0000, 0x00000000,
+/**/                   0xBF527083, 0x147C93ED,
+/**/                   0x3FEB3000, 0x00000000,
+/**/                   0x3FFE5637, 0xB70F5F72,
+/**/                   0x40072A2E, 0xCA935102,
+/**/                   0x4023F5DE, 0x43559218,
+/**/                   0x4044C96E, 0xB4E19CA3,
+/**/                   0x40683D62, 0x1272DDA3,
+/**/                   0x408E4135, 0xC6BFAAED,
+/**/                   0x40B3C717, 0x099FB249,
+/**/                   0x40DABA6D, 0xD5294F7D,
+/**/                   0x3CA488B1, 0xC91FFA21,
+/**/                   0x3FF03E70, 0xB5B309E0,
+/**/                   0x3FFE4000, 0x00000000,
+/**/                   0x3F7637B7, 0x0F5F723E,
+/**/                   0x3FEB5000, 0x00000000,
+/**/                   0x3FFEB4CA, 0x21D4B842,
+/**/                   0x400821BF, 0x2BE08FC5,
+/**/                   0x40255238, 0x6A6A3BD0,
+/**/                   0x4046CC00, 0xBAC907E2,
+/**/                   0x406B4A78, 0x94202458,
+/**/                   0x40917C35, 0xFE065CA6,
+/**/                   0x40B77848, 0xE8D5B845,
+/**/                   0x40E04820, 0x0CD72D76,
+/**/                   0x3CA54B6E, 0x9CBE508B,
+/**/                   0x3FF05CF5, 0xE41C2ACE,
+/**/                   0x3FFEC000, 0x00000000,
+/**/                   0xBF666BBC, 0x568F7C18,
+/**/                   0x3FEB7000, 0x00000000,
+/**/                   0x3FFF175C, 0x7FB6EB26,
+/**/                   0x40092A6C, 0xA7BA9C35,
+/**/                   0x4026D0BC, 0x80F5BA9F,
+/**/                   0x40491048, 0x33BD74FB,
+/**/                   0x406ED319, 0x61FCE21F,
+/**/                   0x40944A2E, 0x60DF5AED,
+/**/                   0x40BBFAFC, 0x1AC97175,
+/**/                   0x40E3F145, 0xC3A8BC22,
+/**/                   0xBC994B5D, 0xA70A42D9,
+/**/                   0x3FF07BDB, 0x9F358760,
+/**/                   0x3FFF0000, 0x00000000,
+/**/                   0x3F775C7F, 0xB6EB2582,
+/**/                   0x3FEB9000, 0x00000000,
+/**/                   0x3FFF7E36, 0x9B29492C,
+/**/                   0x400A45EB, 0x1C35AD8A,
+/**/                   0x402875D7, 0xC8373BB1,
+/**/                   0x404BA0D1, 0x885E6AE6,
+/**/                   0x40717784, 0x0831631E,
+/**/                   0x4097A441, 0x7F51DA78,
+/**/                   0x40C0C2B2, 0x6D7642FB,
+/**/                   0x40E89073, 0x594961FB,
+/**/                   0xBCA5DECE, 0x96CDC181,
+/**/                   0x3FF09B26, 0x0A46374E,
+/**/                   0x3FFF8000, 0x00000000,
+/**/                   0xBF3C964D, 0x6B6D3D05,
+/**/                   0x3FEBB000, 0x00000000,
+/**/                   0x3FFFE9A7, 0x7DD9B1CF,
+/**/                   0x400B7627, 0xB9AE77AF,
+/**/                   0x402A46B0, 0x3338306D,
+/**/                   0x404E8A38, 0xA0CAACE9,
+/**/                   0x4073DDBB, 0x864F53A2,
+/**/                   0x409BAAF0, 0xD6C97F8D,
+/**/                   0x40C42EEF, 0xDFAE5A98,
+/**/                   0x40EE701A, 0xE19501DA,
+/**/                   0x3C9CC4F4, 0xC7D3D675,
+/**/                   0x3FF0BAD9, 0x93EC49AE,
+/**/                   0x40000000, 0x00000000,
+/**/                   0xBF765882, 0x264E310D,
+/**/                   0x3FEBD000, 0x00000000,
+/**/                   0x40002D03, 0x34302F3B,
+/**/                   0x400CBD52, 0x7F5AAF0D,
+/**/                   0x402C4949, 0x0C635C0A,
+/**/                   0x4050EDD1, 0xB6BB1732,
+/**/                   0x4076AE3D, 0x9691A9F4,
+/**/                   0x40A043C7, 0x61482FC6,
+/**/                   0x40C87037, 0xF81EB6E0,
+/**/                   0x40F2FA30, 0xE84FE55E,
+/**/                   0xBC9820F1, 0x228FC41D,
+/**/                   0x3FF0DAFA, 0xFDD4AE68,
+/**/                   0x40002000, 0x00000000,
+/**/                   0x3F7A0668, 0x605E76B0,
+/**/                   0x3FEBF000, 0x00000000,
+/**/                   0x400067D9, 0xF9C947A3,
+/**/                   0x400E1DE9, 0xA1722882,
+/**/                   0x402E84B0, 0x41FE0247,
+/**/                   0x4052D3AE, 0xDBD1D676,
+/**/                   0x4079FF78, 0xE088BEF5,
+/**/                   0x40A33780, 0x64D9A484,
+/**/                   0x40CDC32D, 0x1974F9B5,
+/**/                   0x40F7D295, 0xCE268611,
+/**/                   0xBCA5A192, 0xD437D23F,
+/**/                   0x3FF0FB8F, 0x657EFDCA,
+/**/                   0x40006000, 0x00000000,
+/**/                   0x3F6F67E7, 0x251E8CF3,
+/**/                   0x3FEC1000, 0x00000000,
+/**/                   0x4000A58D, 0xB1FFFA6D,
+/**/                   0x400F9AC7, 0x4E7307C3,
+/**/                   0x4030809B, 0x5EA15962,
+/**/                   0x405501D0, 0x5418E1B6,
+/**/                   0x407DED80, 0xB476D79F,
+/**/                   0x40A6D2BF, 0x37F33D5F,
+/**/                   0x40D23C31, 0xA43F6C6F,
+/**/                   0x40FE1E46, 0xDB17BBAA,
+/**/                   0xBCA7EB62, 0x41D8AD56,
+/**/                   0x3FF11C9C, 0x4E3ADE0A,
+/**/                   0x4000A000, 0x00000000,
+/**/                   0x3F6636C7, 0xFFE9B457,
+/**/                   0x3FEC3000, 0x00000000,
+/**/                   0x4000E65A, 0x1D1BDCC6,
+/**/                   0x40109B99, 0x3503CCCE,
+/**/                   0x4031E45B, 0x7580EC24,
+/**/                   0x405785CA, 0x1803E176,
+/**/                   0x40814DDB, 0x8458A77D,
+/**/                   0x40AB41D9, 0x6C115AB7,
+/**/                   0x40D67DF0, 0xD7BCE584,
+/**/                   0x41032EF5, 0xF5487646,
+/**/                   0xBC9C4040, 0xF3631254,
+/**/                   0x3FF13E27, 0xAC964DA8,
+/**/                   0x4000E000, 0x00000000,
+/**/                   0x3F696874, 0x6F731770,
+/**/                   0x3FEC5000, 0x00000000,
+/**/                   0x40012A82, 0x068FBCB4,
+/**/                   0x40117B79, 0x7FE89A5F,
+/**/                   0x40337376, 0xD37F3897,
+/**/                   0x405A704E, 0xDF3B47A2,
+/**/                   0x40841B83, 0xEB114449,
+/**/                   0x40B05F75, 0x8D323120,
+/**/                   0x40DBEFEC, 0x8AE65DDD,
+/**/                   0x4108A2A2, 0xD1814341,
+/**/                   0x3CA3E83D, 0xFB25EC76,
+/**/                   0x3FF16037, 0xF37FFEDA,
+/**/                   0x40012000, 0x00000000,
+/**/                   0x3F75040D, 0x1F796787,
+/**/                   0x3FEC7000, 0x00000000,
+/**/                   0x40017250, 0x5F8F574B,
+/**/                   0x40126F35, 0xB566493D,
+/**/                   0x403534F5, 0x95186E3D,
+/**/                   0x405DD60B, 0x947D5EA5,
+/**/                   0x40877C77, 0x568C5D73,
+/**/                   0x40B3CB66, 0xA26261F0,
+/**/                   0x40E17B06, 0xBF32194D,
+/**/                   0x410FE921, 0x11490E42,
+/**/                   0xBCA34428, 0x5376CB61,
+/**/                   0x3FF182D4, 0x236FE314,
+/**/                   0x40018000, 0x00000000,
+/**/                   0xBF7B5F40, 0xE15169A9,
+/**/                   0x3FEC9000, 0x00000000,
+/**/                   0x4001BE19, 0x91B4C8D8,
+/**/                   0x4013795B, 0xBE69BAE6,
+/**/                   0x40373151, 0xCD6F8B02,
+/**/                   0x4060E864, 0xD86A7BFF,
+/**/                   0x408B95CC, 0x515F5BD6,
+/**/                   0x40B8180C, 0xD070B4A1,
+/**/                   0x40E60D2C, 0xC9B24D80,
+/**/                   0x4114DBF6, 0xAA392CAF,
+/**/                   0xBCA89BD0, 0xF5844C55,
+/**/                   0x3FF1A603, 0xDBFAF236,
+/**/                   0x4001C000, 0x00000000,
+/**/                   0xBF4E66E4, 0xB37285FC,
+/**/                   0x3FECB000, 0x00000000,
+/**/                   0x40020E3D, 0x1757F6B1,
+/**/                   0x40149CE9, 0xAE890640,
+/**/                   0x403972D4, 0xD6174F60,
+/**/                   0x40634079, 0x8C82DF92,
+/**/                   0x40904BE6, 0xACAB5569,
+/**/                   0x40BD8A99, 0xB362E75A,
+/**/                   0x40EC0ED7, 0x389374DC,
+/**/                   0x411B8ADF, 0xCA5E9653,
+/**/                   0xBC80CBC7, 0x4A1E3E49,
+/**/                   0x3FF1C9CF, 0x704F5D26,
+/**/                   0x40020000, 0x00000000,
+/**/                   0x3F7C7A2E, 0xAFED62A2,
+/**/                   0x3FECD000, 0x00000000,
+/**/                   0x40026327, 0x6B3395AA,
+/**/                   0x4015DD66, 0x33FB1467,
+/**/                   0x403C0610, 0xDCF3437C,
+/**/                   0x406607CE, 0xC9D7C47A,
+/**/                   0x409360FB, 0xA330DC5C,
+/**/                   0x40C240B4, 0x38A3194B,
+/**/                   0x40F20437, 0xBAA6A879,
+/**/                   0x41226106, 0x04D6F19C,
+/**/                   0x3CABCCF5, 0x15E5252C,
+/**/                   0x3FF1EE3F, 0xFF35681A,
+/**/                   0x40026000, 0x00000000,
+/**/                   0x3F593B59, 0x9CAD4CE9,
+/**/                   0x3FECF000, 0x00000000,
+/**/                   0x4002BD54, 0x664A8350,
+/**/                   0x40173EFF, 0x945190A0,
+/**/                   0x403EFA80, 0xC7CC5224,
+/**/                   0x406958AA, 0x896F1658,
+/**/                   0x40973450, 0x4FD54E04,
+/**/                   0x40C6BF55, 0x4CD60C4A,
+/**/                   0x40F75EBE, 0x3EFFD07C,
+/**/                   0x4128D03C, 0x9E2E6981,
+/**/                   0xBC987CEE, 0xC8A488FF,
+/**/                   0x3FF2135F, 0x8F597306,
+/**/                   0x4002C000, 0x00000000,
+/**/                   0xBF555CCD, 0xABE583FE,
+/**/                   0x3FED1000, 0x00000000,
+/**/                   0x40031D52, 0x2A40EA5C,
+/**/                   0x4018C6B3, 0x52B4947D,
+/**/                   0x404131AE, 0x5D01146E,
+/**/                   0x406D54FB, 0x0163E71C,
+/**/                   0x409BFE8A, 0xEF3ED15B,
+/**/                   0x40CC9C28, 0xA33A6B00,
+/**/                   0x40FEA523, 0x1456E1A6,
+/**/                   0x4130F60F, 0xFC8790DB,
+/**/                   0x3CAC104F, 0x6FABCA41,
+/**/                   0x3FF23939, 0x30D87C68,
+/**/                   0x40032000, 0x00000000,
+/**/                   0xBF556EAD, 0xF8AD1CF9,
+/**/                   0x3FED3000, 0x00000000,
+/**/                   0x400383C4, 0xC053C623,
+/**/                   0x401A7A81, 0x6ADBFF2C,
+/**/                   0x40432C5B, 0xE219A24E,
+/**/                   0x40711484, 0x30F4B8D8,
+/**/                   0x40A10659, 0xBC59423E,
+/**/                   0x40D22C09, 0x3D537AE5,
+/**/                   0x410454A2, 0xA4B7D930,
+/**/                   0x41378151, 0xC151F3C3,
+/**/                   0xBCA2F226, 0x779E9951,
+/**/                   0x3FF25FD9, 0x254E3F9C,
+/**/                   0x40038000, 0x00000000,
+/**/                   0x3F5E2602, 0x9E311A8B,
+/**/                   0x3FED5000, 0x00000000,
+/**/                   0x4003F16A, 0xA2F65F8C,
+/**/                   0x401C61AF, 0x36C0308E,
+/**/                   0x40457C82, 0x5337FF7D,
+/**/                   0x407407A3, 0x7FB84BA9,
+/**/                   0x40A4E476, 0x4C74DEA7,
+/**/                   0x40D75638, 0xDF1C2124,
+/**/                   0x410B5320, 0xA2556E94,
+/**/                   0x414087CD, 0x7D68ABBE,
+/**/                   0xBCACD58C, 0x73A87AB9,
+/**/                   0x3FF2874D, 0x10017B06,
+/**/                   0x40040000, 0x00000000,
+/**/                   0xBF7D2ABA, 0x1340E849,
+/**/                   0x3FED7000, 0x00000000,
+/**/                   0x40046722, 0x7BA9A810,
+/**/                   0x401E851F, 0xCBC74735,
+/**/                   0x40483596, 0xF3879985,
+/**/                   0x4077AAEB, 0xCD297F00,
+/**/                   0x40A9E3C8, 0x31669F50,
+/**/                   0x40DE5420, 0xB7CBB664,
+/**/                   0x41129F7B, 0xB75100A0,
+/**/                   0x4147A1C1, 0x51D127BF,
+/**/                   0x3CAC647E, 0x46D9C78F,
+/**/                   0x3FF2AFA4, 0x304962AE,
+/**/                   0x40046000, 0x00000000,
+/**/                   0x3F6C89EE, 0xA6A041C9,
+/**/                   0x3FED9000, 0x00000000,
+/**/                   0x4004E5F2, 0x7A99A835,
+/**/                   0x402077E5, 0x15B0232D,
+/**/                   0x404B70C1, 0xEE468866,
+/**/                   0x407C334A, 0x43A041C3,
+/**/                   0x40B036D1, 0x53D2C164,
+/**/                   0x40E3F7B1, 0x10CCEDBE,
+/**/                   0x4119C160, 0xF6C2E560,
+/**/                   0x415131DD, 0x6D21D20F,
+/**/                   0x41878683, 0x2EC50766,
+/**/                   0xBCA95596, 0xD1134ECC,
+/**/                   0x3FF2D8EF, 0xA8F4B028,
+/**/                   0x4004E000, 0x00000000,
+/**/                   0x3F67C9EA, 0x66A0D2C7,
+/**/                   0x3FEDB000, 0x00000000,
+/**/                   0x40056F11, 0xD6373B90,
+/**/                   0x4021D7AC, 0xC3747DF3,
+/**/                   0x404F4EF3, 0x6A014D6F,
+/**/                   0x4080F4C4, 0x505C454B,
+/**/                   0x40B48D16, 0x214975C5,
+/**/                   0x40EAACFD, 0xF57BFAC6,
+/**/                   0x41222235, 0x5225A6ED,
+/**/                   0x41598643, 0xACBA67AB,
+/**/                   0x419267B9, 0xDE5D19B9,
+/**/                   0xBCAEF63C, 0x42C92439,
+/**/                   0x3FF30342, 0xD86BED76,
+/**/                   0x40056000, 0x00000000,
+/**/                   0x3F7E23AC, 0x6E771F48,
+/**/                   0x3FEDD000, 0x00000000,
+/**/                   0x400603F5, 0x3D2D8CF1,
+/**/                   0x40236A84, 0xEF4A10FA,
+/**/                   0x4051FDF3, 0x4EA265AF,
+/**/                   0x408499B5, 0xD944F636,
+/**/                   0x40BA64B8, 0x37F73BAC,
+/**/                   0x40F21B9F, 0x259B27FC,
+/**/                   0x412A0669, 0x265D5B9F,
+/**/                   0x41635D8E, 0x3DC806E2,
+/**/                   0x419D8657, 0x36AD8B00,
+/**/                   0x3CA4CEEB, 0x3FFCDCA3,
+/**/                   0x3FF32EB3, 0xC69D2D10,
+/**/                   0x40060000, 0x00000000,
+/**/                   0x3F5FA9E9, 0x6C678625,
+/**/                   0x3FEDF000, 0x00000000,
+/**/                   0x4006A65F, 0x5FCDF915,
+/**/                   0x40253B6E, 0x68321BDA,
+/**/                   0x4054D949, 0x706E8DA9,
+/**/                   0x408950EF, 0x4A70D2D7,
+/**/                   0x40C13319, 0x1F15E14E,
+/**/                   0x40F907B1, 0x846A9BD5,
+/**/                   0x4133139C, 0x17C39016,
+/**/                   0x416E1DA3, 0xBC86F11B,
+/**/                   0x41A8597F, 0xD9F86F3B,
+/**/                   0x3C32D4F8, 0x7D0D5190,
+/**/                   0x3FF35B5B, 0xAFA88354,
+/**/                   0x4006A000, 0x00000000,
+/**/                   0x3F697D7F, 0x37E455FD,
+/**/                   0x3FEE1000, 0x00000000,
+/**/                   0x40075877, 0x41D1DBF9,
+/**/                   0x402758A8, 0xF5852184,
+/**/                   0x405861EE, 0x65C0F467,
+/**/                   0x408F83C0, 0xD2D91276,
+/**/                   0x40C6CA7C, 0x43EC3B0E,
+/**/                   0x4101A722, 0x718322C8,
+/**/                   0x413CA4C6, 0x9533D806,
+/**/                   0x417812B7, 0xE9899583,
+/**/                   0x41B4B875, 0x85EE8B86,
+/**/                   0xBC99DEFB, 0xD1AEEED1,
+/**/                   0x3FF38957, 0xB510476E,
+/**/                   0x40076000, 0x00000000,
+/**/                   0xBF6E22F8, 0xB8901BF9,
+/**/                   0x3FEE3000, 0x00000000,
+/**/                   0x40081CE6, 0xE1C37E57,
+/**/                   0x4029D4F3, 0xD3DC9910,
+/**/                   0x405CD074, 0xE3095065,
+/**/                   0x4093E764, 0xC5C38224,
+/**/                   0x40CEC5AE, 0x3CAE1F31,
+/**/                   0x41097A50, 0xC0645F38,
+/**/                   0x41461866, 0xD8A7F25E,
+/**/                   0x4183DAF5, 0x8C2F04A3,
+/**/                   0x41C2450E, 0xA9143C1F,
+/**/                   0x3C7D25BE, 0x9FD995BC,
+/**/                   0x3FF3B8C9, 0xC35D33E6,
+/**/                   0x40082000, 0x00000000,
+/**/                   0xBF58C8F1, 0xE40D49E0,
+/**/                   0x3FEE5000, 0x00000000,
+/**/                   0x4008F706, 0x285640BB,
+/**/                   0x402CC96B, 0x3B2B7CD1,
+/**/                   0x40613ADF, 0xC5341328,
+/**/                   0x4099908D, 0x16E928A9,
+/**/                   0x40D53986, 0x7CC08A3C,
+/**/                   0x4112DFC5, 0x31DD3E45,
+/**/                   0x41519499, 0xE2A13787,
+/**/                   0x4190F943, 0xF94424AD,
+/**/                   0x41D0C6BC, 0xCDCD49BE,
+/**/                   0xBC9E2458, 0x6D41701D,
+/**/                   0x3FF3E9D9, 0xC088BD28,
+/**/                   0x40090000, 0x00000000,
+/**/                   0xBF71F3AF, 0x537E8A00,
+/**/                   0x3FEE7000, 0x00000000,
+/**/                   0x4009EB18, 0x6562D1E0,
+/**/                   0x40302C31, 0x75651223,
+/**/                   0x4064E431, 0x336E41C7,
+/**/                   0x40A0BCA6, 0xA065DA69,
+/**/                   0x40DE034D, 0x917AF357,
+/**/                   0x411CD2C1, 0x4168FB0F,
+/**/                   0x415CFEB6, 0x15BB794D,
+/**/                   0x419E3EE1, 0x6EFFD5E5,
+/**/                   0x41E024E7, 0x1ACB4D9C,
+/**/                   0xBC9C29C8, 0xD93F153F,
+/**/                   0x3FF41CB7, 0x2183E810,
+/**/                   0x4009E000, 0x00000000,
+/**/                   0x3F7630CA, 0xC5A3C038,
+/**/                   0x3FEE9000, 0x00000000,
+/**/                   0x400AFEA6, 0xA364196F,
+/**/                   0x403258F3, 0x0B19A2EB,
+/**/                   0x4069BDA5, 0x2520AC75,
+/**/                   0x40A669BC, 0x8F67EDEA,
+/**/                   0x40E5D78C, 0xC026C9F8,
+/**/                   0x4126CCB4, 0x1E3B36C2,
+/**/                   0x4168EDE4, 0xBF45C805,
+/**/                   0x41AC2F6A, 0x8AC89E76,
+/**/                   0x41F0675E, 0x4CA9EB55,
+/**/                   0x42336AC1, 0x0D13E3DF,
+/**/                   0x3C9B1D74, 0xF2DE93A6,
+/**/                   0x3FF4519B, 0x155FB22E,
+/**/                   0x400B0000, 0x00000000,
+/**/                   0xBF4595C9, 0xBE690E67,
+/**/                   0x3FEEB000, 0x00000000,
+/**/                   0x400C3908, 0x4BD1C065,
+/**/                   0x40350D88, 0x26C39FFD,
+/**/                   0x4070296B, 0x69D3E79E,
+/**/                   0x40AED279, 0xD7FEEA5D,
+/**/                   0x40F072A8, 0xFD5BD547,
+/**/                   0x4132CDB9, 0x4A08BB38,
+/**/                   0x41768482, 0x536BED06,
+/**/                   0x41BBE1FF, 0x2F10E88D,
+/**/                   0x4201C966, 0xABDBBDAC,
+/**/                   0x42471011, 0x02E62DDA,
+/**/                   0xBCA0855D, 0x3E907E71,
+/**/                   0x3FF488CB, 0x8FA73920,
+/**/                   0x400C4000, 0x00000000,
+/**/                   0xBF6BDED0, 0xB8FE6DDF,
+/**/                   0x3FEED000, 0x00000000,
+/**/                   0x400DA439, 0x12AAF9A9,
+/**/                   0x40387D46, 0x62F25109,
+/**/                   0x4074C339, 0x3F133A3F,
+/**/                   0x40B5E143, 0x662036F9,
+/**/                   0x40F9CF04, 0x74467831,
+/**/                   0x41404E10, 0x576C6FA8,
+/**/                   0x41859489, 0xFF4F8E88,
+/**/                   0x41CD88D2, 0xB44962A9,
+/**/                   0x4214D838, 0x97A288F3,
+/**/                   0x425DE10B, 0x6CF738B3,
+/**/                   0xBC8E9EA7, 0x5F7263CC,
+/**/                   0x3FF4C29F, 0xAA786F36,
+/**/                   0x400DA000, 0x00000000,
+/**/                   0x3F60E44A, 0xABE6A2AD,
+/**/                   0x3FEEF000, 0x00000000,
+/**/                   0x400F4E35, 0xC169B52F,
+/**/                   0x403CF773, 0x29E8699C,
+/**/                   0x407B6D37, 0xFC1818D6,
+/**/                   0x40C02655, 0x1386790A,
+/**/                   0x41054A1F, 0x4FF79D1E,
+/**/                   0x414E104A, 0x7DB0265A,
+/**/                   0x41963C39, 0xE5C8114B,
+/**/                   0x41E10156, 0xF52A87DB,
+/**/                   0x422ADD76, 0x2E9E7ABE,
+/**/                   0x427586AB, 0x6EC81361,
+/**/                   0x3C935690, 0xE395EEA6,
+/**/                   0x3FF4FF86, 0x2E5965A2,
+/**/                   0x400F4000, 0x00000000,
+/**/                   0x3F7C6B82, 0xD36A5E70 } };
+
+#else
+#ifdef LITTLE_ENDI
+static const union {int4 i[5136];double x[2568];} asncs = { .i = {
+/**/                   0x00000000, 0x3FC04000,
+/**/                   0x88994424, 0x3FF02169,
+/**/                   0xB799B115, 0x3FB0A6A2,
+/**/                   0xD57409A0, 0x3FC6EF15,
+/**/                   0xAF52EAA0, 0x3FAA141E,
+/**/                   0xABBBE261, 0x3FB75591,
+/**/                   0xD206D88F, 0x3FA72B51,
+/**/                   0x5BB33E7D, 0x3C96B595,
+/**/                   0xA03E2700, 0x3FC04B41,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x66BBDC7C, 0xBF7E9677,
+/**/                   0x00000000, 0x3FC0C000,
+/**/                   0xF9E23A56, 0x3FF02386,
+/**/                   0x60FD0235, 0x3FB1308C,
+/**/                   0x14D16B02, 0x3FC7099F,
+/**/                   0x27C01EE1, 0x3FAAFED6,
+/**/                   0xDBCD5F98, 0x3FB79C6F,
+/**/                   0x4084DAAC, 0x3FA8144A,
+/**/                   0x38D8505E, 0xBC87C092,
+/**/                   0x56C9F380, 0x3FC0CC55,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x1DC5AA24, 0xBF7C7906,
+/**/                   0x00000000, 0x3FC14000,
+/**/                   0xB27141F6, 0x3FF025B5,
+/**/                   0x04CE7400, 0x3FB1BB18,
+/**/                   0x72907342, 0x3FC72514,
+/**/                   0x0BF4222C, 0x3FABEC60,
+/**/                   0x75B3736C, 0x3FB7E610,
+/**/                   0x5199C343, 0x3FA9024C,
+/**/                   0x06B56F60, 0xBC8AE84C,
+/**/                   0x3DEFA070, 0x3FC14D7A,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x8EBE0A5C, 0xBF7A4A4D,
+/**/                   0x00000000, 0x3FC1C000,
+/**/                   0xC6DE8F57, 0x3FF027F5,
+/**/                   0x345751E1, 0x3FB2464B,
+/**/                   0xCF026805, 0x3FC74178,
+/**/                   0x40A9E0D6, 0x3FACDCD8,
+/**/                   0xEB1D9C38, 0x3FB83282,
+/**/                   0xD7BE707B, 0x3FA9F590,
+/**/                   0x03A2A6D6, 0xBCAB9768,
+/**/                   0xE03B4870, 0x3FC1CEB0,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x2170A943, 0xBF780A39,
+/**/                   0x00000000, 0x3FC24000,
+/**/                   0x4C759796, 0x3FF02A47,
+/**/                   0x92771935, 0x3FB2D22B,
+/**/                   0x26ABA06D, 0x3FC75ECF,
+/**/                   0x486A1932, 0x3FADD05B,
+/**/                   0x5AF971D5, 0x3FB881D7,
+/**/                   0x831AEE0C, 0x3FAAEE52,
+/**/                   0xAD1B1BEF, 0x3CA13F57,
+/**/                   0xC8E09330, 0x3FC24FF9,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x8A68699B, 0xBF75B8B3,
+/**/                   0x00000000, 0x3FC2C000,
+/**/                   0x59374E09, 0x3FF02CAA,
+/**/                   0xD44E8BEA, 0x3FB35EBE,
+/**/                   0x92E4BE8A, 0x3FC77D1A,
+/**/                   0x4A6C34FD, 0x3FAEC706,
+/**/                   0x972F6E07, 0x3FB8D41E,
+/**/                   0xF9845F69, 0x3FABECCD,
+/**/                   0x945C4185, 0x3C8BA1FA,
+/**/                   0x83C058B0, 0x3FC2D155,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0xC8B1F774, 0xBF7355A6,
+/**/                   0x00000000, 0x3FC34000,
+/**/                   0x03DC7745, 0x3FF02F1F,
+/**/                   0xC1EE9F61, 0x3FB3EC0A,
+/**/                   0x4A82E6D2, 0x3FC79C5E,
+/**/                   0x19B1EF72, 0x3FAFC0F7,
+/**/                   0x2AA943E5, 0x3FB9296A,
+/**/                   0xEF8B9DE7, 0x3FACF141,
+/**/                   0x083C8716, 0xBC834081,
+/**/                   0x9D6E5610, 0x3FC352C4,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x2388BB30, 0xBF70E0FC,
+/**/                   0x00000000, 0x3FC3C000,
+/**/                   0x63D81251, 0x3FF031A5,
+/**/                   0x370B721F, 0x3FB47A15,
+/**/                   0xA28731E5, 0x3FC7BC9D,
+/**/                   0x1E305BE9, 0x3FB05F26,
+/**/                   0x5FA50FBD, 0x3FB981CC,
+/**/                   0x42AC4083, 0x3FADFBEF,
+/**/                   0xA8E107C7, 0x3CA20ACB,
+/**/                   0xA336F5E0, 0x3FC3D447,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x4FDB5D5C, 0xBF6CB538,
+/**/                   0x00000000, 0x3FC44000,
+/**/                   0x9159D86F, 0x3FF0343D,
+/**/                   0x23B3747C, 0x3FB508E4,
+/**/                   0x0ED597CB, 0x3FC7DDDC,
+/**/                   0x79ADF104, 0x3FB0DF92,
+/**/                   0x4658D945, 0x3FB9DD58,
+/**/                   0x14ACA06B, 0x3FAF0D19,
+/**/                   0xDF636EFE, 0xBCA4E10D,
+/**/                   0x23252C00, 0x3FC455DF,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x4C4F221A, 0xBF6784DD,
+/**/                   0x00000000, 0x3FC4C000,
+/**/                   0xA550D410, 0x3FF036E7,
+/**/                   0x8D0AF1E7, 0x3FB5987D,
+/**/                   0x22F39726, 0x3FC8001D,
+/**/                   0xA1116D73, 0x3FB161D0,
+/**/                   0xBBEA1528, 0x3FBA3C21,
+/**/                   0x74202FF6, 0x3FB01282,
+/**/                   0xD10866E2, 0x3CAA0611,
+/**/                   0xAC086560, 0x3FC4D78B,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x5E57DF8A, 0xBF6230B5,
+/**/                   0x00000000, 0x3FC54000,
+/**/                   0xB96E0F8A, 0x3FF039A3,
+/**/                   0x8E0C29F6, 0x3FB628E7,
+/**/                   0x92CEDE01, 0x3FC82364,
+/**/                   0xFB7B5D84, 0x3FB1E5F0,
+/**/                   0x71BD08EE, 0x3FBA9E3D,
+/**/                   0x5F7FFAB4, 0x3FB0A1FD,
+/**/                   0xEF04F6E7, 0xBC90F980,
+/**/                   0xCD7A8DC0, 0x3FC5594D,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x47C1D879, 0xBF59711A,
+/**/                   0x00000000, 0x3FC5C000,
+/**/                   0xE8275C12, 0x3FF03C71,
+/**/                   0x584C2A23, 0x3FB6BA28,
+/**/                   0x338C3D4B, 0x3FC847B6,
+/**/                   0x59A55DD8, 0x3FB26C04,
+/**/                   0xF5202D6A, 0x3FBB03C0,
+/**/                   0x9C6466A4, 0x3FB13522,
+/**/                   0x2A268973, 0x3C983C9A,
+/**/                   0x17E62A20, 0x3FC5DB26,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0xC51F7008, 0xBF4C70BE,
+/**/                   0x00000000, 0x3FC64000,
+/**/                   0x4CBA31A9, 0x3FF03F52,
+/**/                   0x34C49ADE, 0x3FB74C46,
+/**/                   0xFC5F33CC, 0x3FC86D15,
+/**/                   0xFA419D7C, 0x3FB2F41B,
+/**/                   0xB757E82A, 0x3FBB6CC2,
+/**/                   0xDA4D5C39, 0x3FB1CC18,
+/**/                   0x2DFB224D, 0xBCA862D4,
+/**/                   0x1C8C8AF0, 0x3FC65D15,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0xB9CADBBF, 0xBF25B668,
+/**/                   0x00000000, 0x3FC6C000,
+/**/                   0x032EA88F, 0x3FF04245,
+/**/                   0x84A2B473, 0x3FB7DF47,
+/**/                   0x076A60F5, 0x3FC89388,
+/**/                   0x8E8394C1, 0x3FB37E49,
+/**/                   0x160F3472, 0x3FBBD95A,
+/**/                   0x39844810, 0x3FB26708,
+/**/                   0x698BC8EA, 0x3C994228,
+/**/                   0x6D8C14A0, 0x3FC6DF1B,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x754477AC, 0x3F422819,
+/**/                   0x00000000, 0x3FC74000,
+/**/                   0x285A8CEB, 0x3FF0454A,
+/**/                   0xC21B9224, 0x3FB87332,
+/**/                   0x92A93402, 0x3FC8BB10,
+/**/                   0x3ED3F586, 0x3FB40A9F,
+/**/                   0x643217C8, 0x3FBC499F,
+/**/                   0x5D29A16B, 0x3FB3061A,
+/**/                   0x3DF9F2D7, 0xBCA3B2DF,
+/**/                   0x9DE6A160, 0x3FC76139,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x6A33AB4B, 0x3F5528A1,
+/**/                   0x00000000, 0x3FC7C000,
+/**/                   0xD9E48D58, 0x3FF04861,
+/**/                   0x81461BF6, 0x3FB9080E,
+/**/                   0x00E32FFA, 0x3FC8E3B4,
+/**/                   0xAFB1F2A5, 0x3FB4992F,
+/**/                   0xF33705D5, 0x3FBCBDAB,
+/**/                   0x7E23EE89, 0x3FB3A97A,
+/**/                   0xCCE44C41, 0x3C7AAD12,
+/**/                   0x4187FAE0, 0x3FC7E370,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0xC91AAF11, 0x3F60C3B3,
+/**/                   0x00000000, 0x3FC84000,
+/**/                   0x36478509, 0x3FF04B8C,
+/**/                   0x70FAC1B4, 0x3FB99DE1,
+/**/                   0xDAA92166, 0x3FC90D76,
+/**/                   0x06C416A6, 0x3FB52A0E,
+/**/                   0x1CDCA344, 0x3FBD359A,
+/**/                   0x7EFD4CA0, 0x3FB45155,
+/**/                   0x35A8895D, 0x3C396CA5,
+/**/                   0xED4C6EF0, 0x3FC865BF,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x8F0A11A4, 0x3F67186C,
+/**/                   0x00000000, 0x3FC8C000,
+/**/                   0x5CD5E248, 0x3FF04EC9,
+/**/                   0x5BB94403, 0x3FBA34B2,
+/**/                   0xCF5CA73A, 0x3FC9385D,
+/**/                   0xF01AFDBE, 0x3FB5BD4D,
+/**/                   0x4D61A7A9, 0x3FBDB185,
+/**/                   0x00BD47CF, 0x3FB4FDDA,
+/**/                   0x727E8B64, 0xBC9D1119,
+/**/                   0x37077E20, 0x3FC8E829,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0xABC490CB, 0x3F6D92B9,
+/**/                   0x00000000, 0x3FC94000,
+/**/                   0x6DBD2A10, 0x3FF05219,
+/**/                   0x2894CAA1, 0x3FBACC88,
+/**/                   0xB6427516, 0x3FC9646D,
+/**/                   0xA3A864D7, 0x3FB65303,
+/**/                   0x0E3CF3D4, 0x3FBE318A,
+/**/                   0x78CDA678, 0x3FB5AF38,
+/**/                   0xDA9D51DF, 0x3CA3841D,
+/**/                   0xB58AA660, 0x3FC96AAC,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0xBD2A1052, 0x3F72196D,
+/**/                   0x00000000, 0x3FC9C000,
+/**/                   0x8A099990, 0x3FF0557C,
+/**/                   0xDC268965, 0x3FBB6569,
+/**/                   0x8F9FBA21, 0x3FC991AB,
+/**/                   0xEAED1E85, 0x3FB6EB43,
+/**/                   0x115C4C63, 0x3FBEB5C6,
+/**/                   0x47F9AEFA, 0x3FB665A3,
+/**/                   0x03AB3673, 0xBCA1F8FD,
+/**/                   0x00AC4A60, 0x3FC9ED4B,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x0999905B, 0x3F757C8A,
+/**/                   0x00000000, 0x3FCA4000,
+/**/                   0xD3A9E674, 0x3FF058F2,
+/**/                   0x99873832, 0x3FBBFF5E,
+/**/                   0x85E31CE9, 0x3FC9C01C,
+/**/                   0x26E09FF2, 0x3FB78624,
+/**/                   0x3CF0885C, 0x3FBF3E58,
+/**/                   0xD2986239, 0x3FB7214E,
+/**/                   0x3E594694, 0x3C97E3E5,
+/**/                   0xB14EB5D0, 0x3FCA7004,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0xA9E6746B, 0x3F78F2D3,
+/**/                   0x00000000, 0x3FCAC000,
+/**/                   0x6D731ECB, 0x3FF05C7C,
+/**/                   0xA34FA4B3, 0x3FBC9A6D,
+/**/                   0xEED9C253, 0x3FC9EFC5,
+/**/                   0x5614FAEB, 0x3FB823BA,
+/**/                   0xB7CE698F, 0x3FBFCB60,
+/**/                   0x99F3292F, 0x3FB7E271,
+/**/                   0x068D709C, 0xBC9842C6,
+/**/                   0x61674110, 0x3FCAF2DA,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x731ECAE2, 0x3F7C7C6D,
+/**/                   0x00000000, 0x3FCB4000,
+/**/                   0x7B24A973, 0x3FF06019,
+/**/                   0x5CA0A798, 0x3FBD369E,
+/**/                   0x4CF0DB64, 0x3FCA20AD,
+/**/                   0x1B1A3F31, 0x3FB8C41D,
+/**/                   0x7B35E049, 0x3FC02E80,
+/**/                   0x56FB8A97, 0x3FB8A944,
+/**/                   0xD337B37C, 0xBCACBF9C,
+/**/                   0xAC059370, 0x3FCB75CC,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xDB568D78, 0xBF7FE684,
+/**/                   0x00000000, 0x3FCBC000,
+/**/                   0x216C6801, 0x3FF063CA,
+/**/                   0x4A32C9FD, 0x3FBDD3F8,
+/**/                   0x50843BC9, 0x3FCA52D8,
+/**/                   0xC324648A, 0x3FB96763,
+/**/                   0xE4407899, 0x3FC079AD,
+/**/                   0x1663A5DC, 0x3FB97602,
+/**/                   0xC637289D, 0xBCA3ADC3,
+/**/                   0x2D5B06A0, 0x3FCBF8DC,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x9397FEA6, 0xBF7C35DE,
+/**/                   0x00000000, 0x3FCC4000,
+/**/                   0x85EAFB1F, 0x3FF0678E,
+/**/                   0x136DEAC6, 0x3FBE7283,
+/**/                   0xD93A817D, 0x3FCA864C,
+/**/                   0x4CF7089B, 0x3FBA0DA6,
+/**/                   0xB3ABB322, 0x3FC0C74A,
+/**/                   0x562E6E1E, 0x3FBA48E8,
+/**/                   0x7EB8FFF8, 0xBC951E3E,
+/**/                   0x82C22B80, 0x3FCC7C09,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x1504E0D3, 0xBF78717A,
+/**/                   0x00000000, 0x3FCCC000,
+/**/                   0xCF382A59, 0x3FF06B66,
+/**/                   0x838936FB, 0x3FBF1246,
+/**/                   0xF76F5C94, 0x3FCABB10,
+/**/                   0x701A77AE, 0x3FBAB6FD,
+/**/                   0xC26702C6, 0x3FC11769,
+/**/                   0x24CDF38E, 0x3FBB2237,
+/**/                   0xE28307A9, 0xBC8DB69A,
+/**/                   0x4AC67190, 0x3FCCFF55,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xC7D5A6B9, 0xBF749930,
+/**/                   0x00000000, 0x3FCD4000,
+/**/                   0x24E7707F, 0x3FF06F53,
+/**/                   0x8AB3CBB2, 0x3FBFB34A,
+/**/                   0xEDAC8D74, 0x3FCAF12A,
+/**/                   0xA45DA614, 0x3FBB6382,
+/**/                   0xAD8E9F44, 0x3FC16A1E,
+/**/                   0x41E7749D, 0x3FBC0231,
+/**/                   0x22DC16A2, 0x3C76CA27,
+/**/                   0x252BF240, 0x3FCD82C0,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x188F814B, 0xBF70ACDB,
+/**/                   0x00000000, 0x3FCDC000,
+/**/                   0xAF8CADA0, 0x3FF07353,
+/**/                   0x9FA32DC9, 0x3FC02ACB,
+/**/                   0x32323718, 0x3FCB28A1,
+/**/                   0x29A8F15E, 0x3FBC1350,
+/**/                   0xDEB270E1, 0x3FC1BF7D,
+/**/                   0x40D67463, 0x3FBCE91C,
+/**/                   0x104BAA08, 0x3CA6E976,
+/**/                   0xB2F76140, 0x3FCE064A,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xE6A4BFC9, 0xBF6958A0,
+/**/                   0x00000000, 0x3FCE4000,
+/**/                   0x98C0FFD9, 0x3FF07768,
+/**/                   0x6F7F1AF0, 0x3FC07C9A,
+/**/                   0x708F2AFB, 0x3FCB617A,
+/**/                   0x1025B50C, 0x3FBCC681,
+/**/                   0x9487453A, 0x3FC2179C,
+/**/                   0xAD09B3AB, 0x3FBDD740,
+/**/                   0x189038C0, 0xBC8D32DB,
+/**/                   0x96762300, 0x3FCE89F5,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x7E004D50, 0xBF612ECE,
+/**/                   0x00000000, 0x3FCEC000,
+/**/                   0x0B27C417, 0x3FF07B92,
+/**/                   0xE821087A, 0x3FC0CF15,
+/**/                   0x8B49DC8C, 0x3FCB9BBD,
+/**/                   0x40BEF5C2, 0x3FBD7D31,
+/**/                   0xEC080575, 0x3FC27290,
+/**/                   0x3056A6A9, 0x3FBECCEA,
+/**/                   0x0C9B27A2, 0x3C9DE506,
+/**/                   0x73468A50, 0x3FCF0DC1,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x60EFA34D, 0xBF51B7D3,
+/**/                   0x00000000, 0x3FCF4000,
+/**/                   0x3273C018, 0x3FF07FD0,
+/**/                   0x51B87F08, 0x3FC12242,
+/**/                   0x9D9AB2BC, 0x3FCBD771,
+/**/                   0x85FFA125, 0x3FBE377D,
+/**/                   0xEA0CFE55, 0x3FC2D071,
+/**/                   0xBB61DDD3, 0x3FBFCA67,
+/**/                   0x88A645E7, 0xBCA25383,
+/**/                   0xEE603F40, 0x3FCF91AE,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x1FF422B6, 0xBF07E6C6,
+/**/                   0x00000000, 0x3FCFC000,
+/**/                   0x3B6C76F2, 0x3FF08423,
+/**/                   0x0A1DF897, 0x3FC17624,
+/**/                   0xFD38779D, 0x3FCC149D,
+/**/                   0x95531ECD, 0x3FBEF583,
+/**/                   0x855FA966, 0x3FC33157,
+/**/                   0xD81E6BAA, 0x3FC06805,
+/**/                   0x1B47FAEC, 0x3C86827E,
+/**/                   0x570E6798, 0x3FD00ADF,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xB1DBC656, 0x3F508CED,
+/**/                   0x00000000, 0x3FD02000,
+/**/                   0x53F3A97B, 0x3FF0888B,
+/**/                   0x858525D6, 0x3FC1CABF,
+/**/                   0x3C37AF90, 0x3FCC534A,
+/**/                   0x18AD312A, 0x3FBFB762,
+/**/                   0xB151CAAD, 0x3FC3955A,
+/**/                   0x07ADE82D, 0x3FC0EF16,
+/**/                   0xFCDE8746, 0x3CAEEF44,
+/**/                   0xAD203480, 0x3FD04CF8,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xE752F5A1, 0x3F6116A7,
+/**/                   0x00000000, 0x3FD06000,
+/**/                   0xAB0B03F8, 0x3FF08D08,
+/**/                   0x4F34EEE8, 0x3FC22019,
+/**/                   0x2AFDABDE, 0x3FCC937E,
+/**/                   0x5C4F35BA, 0x3FC03E9C,
+/**/                   0x68DF21A6, 0x3FC3FC95,
+/**/                   0x53843C52, 0x3FC17A91,
+/**/                   0xC2BB835A, 0xBC9D6F54,
+/**/                   0xCE0162B8, 0x3FD08F23,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x1607EF23, 0x3F6A1156,
+/**/                   0x00000000, 0x3FD0A000,
+/**/                   0x70D9FA87, 0x3FF0919B,
+/**/                   0x0A456C09, 0x3FC27636,
+/**/                   0xDA483778, 0x3FCCD541,
+/**/                   0x136D6630, 0x3FC0A394,
+/**/                   0xBA615E9C, 0x3FC46722,
+/**/                   0xA2BC6F73, 0x3FC20AA6,
+/**/                   0x7F1D9D86, 0x3CA9D006,
+/**/                   0x0F0C1EC8, 0x3FD0D161,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xD9FA8688, 0x3F719B70,
+/**/                   0x00000000, 0x3FD0E000,
+/**/                   0xD6B3D5D1, 0x3FF09643,
+/**/                   0x72641546, 0x3FC2CD1A,
+/**/                   0x9D4AC7EC, 0x3FCD189D,
+/**/                   0x149C2E66, 0x3FC10AA9,
+/**/                   0xD3DE8741, 0x3FC4D51E,
+/**/                   0xF6DA4768, 0x3FC29F86,
+/**/                   0x828C2A81, 0x3CAEA900,
+/**/                   0xC65D88C8, 0x3FD113B0,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xB3D5D119, 0x3F7643D6,
+/**/                   0x00000000, 0x3FD12000,
+/**/                   0x0F1DF195, 0x3FF09B02,
+/**/                   0x5C9E6B3F, 0x3FC324CB,
+/**/                   0x0BE228B7, 0x3FCD5D9A,
+/**/                   0xD29602B0, 0x3FC173EC,
+/**/                   0x0FFA7799, 0x3FC546A7,
+/**/                   0x87BA569F, 0x3FC33965,
+/**/                   0x9956F2C3, 0xBCAE3258,
+/**/                   0x4ADA6FF0, 0x3FD15613,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x1DF1952F, 0x3F7B020F,
+/**/                   0x00000000, 0x3FD16000,
+/**/                   0x4DD62EB0, 0x3FF09FD6,
+/**/                   0xB8335DE5, 0x3FC37D4D,
+/**/                   0x04DFA3F1, 0x3FCDA440,
+/**/                   0x55E59412, 0x3FC1DF71,
+/**/                   0x0394B72E, 0x3FC5BBDA,
+/**/                   0xE1177398, 0x3FC3D877,
+/**/                   0x3B5720A7, 0x3CA8AC88,
+/**/                   0xF43427A8, 0x3FD19888,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0xD62EAF85, 0x3F7FD64D,
+/**/                   0x00000000, 0x3FD1A000,
+/**/                   0xC7D99A5F, 0x3FF0A4C0,
+/**/                   0x8F6BB942, 0x3FC3D6A6,
+/**/                   0xB06CB8A9, 0x3FCDEC98,
+/**/                   0x432C74B1, 0x3FC24D49,
+/**/                   0x8C1C6EC6, 0x3FC634D7,
+/**/                   0x01BF2560, 0x3FC47CF6,
+/**/                   0x476E25C7, 0x3CA3EDE7,
+/**/                   0x1AED7720, 0x3FD1DB12,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0x2665A126, 0xBF7B3F38,
+/**/                   0x00000000, 0x3FD1E000,
+/**/                   0xB36B4C8B, 0x3FF0A9C1,
+/**/                   0x0879E39B, 0x3FC430DB,
+/**/                   0x82887D8B, 0x3FCE36AD,
+/**/                   0xE1B33C79, 0x3FC2BD87,
+/**/                   0xDEA4E95E, 0x3FC6B1C0,
+/**/                   0x7C90504A, 0x3FC5271A,
+/**/                   0x8A6EBD08, 0x3CAAFAD9,
+/**/                   0x185FA360, 0x3FD21DAF,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0x94B3751C, 0xBF763E4C,
+/**/                   0x00000000, 0x3FD22000,
+/**/                   0x481B7EED, 0x3FF0AED9,
+/**/                   0x66613BB3, 0x3FC48BF0,
+/**/                   0x3D9FDD8F, 0x3FCE8288,
+/**/                   0x22470BF2, 0x3FC33041,
+/**/                   0x97C5B476, 0x3FC732B8,
+/**/                   0x9B614F73, 0x3FC5D722,
+/**/                   0x759745C8, 0x3CA96B82,
+/**/                   0x46BF95B8, 0x3FD26060,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0xE48112DC, 0xBF7126B7,
+/**/                   0x00000000, 0x3FD26000,
+/**/                   0xBECEDF0E, 0x3FF0B407,
+/**/                   0x09E5699A, 0x3FC4E7EC,
+/**/                   0xF541EC2D, 0x3FCED032,
+/**/                   0xA6688484, 0x3FC3A589,
+/**/                   0xCC5228BD, 0x3FC7B7E2,
+/**/                   0x83ECAD1F, 0x3FC68D4E,
+/**/                   0x7CB79363, 0x3CA98586,
+/**/                   0x01231EC8, 0x3FD2A326,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0x6241E449, 0xBF67F082,
+/**/                   0x00000000, 0x3FD2A000,
+/**/                   0x51C61D1C, 0x3FF0B94D,
+/**/                   0x7281F837, 0x3FC544D3,
+/**/                   0x10F19F89, 0x3FCF1FB8,
+/**/                   0xC7D08A44, 0x3FC41D76,
+/**/                   0x1AF4E5E6, 0x3FC84165,
+/**/                   0x5EE5D838, 0x3FC749E1,
+/**/                   0xA1F9A890, 0x3C8A2A36,
+/**/                   0xA3865760, 0x3FD2E600,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0xE78B8E2F, 0xBF5ACAB8,
+/**/                   0x00000000, 0x3FD2E000,
+/**/                   0x3CA5B9C1, 0x3FF0BEAA,
+/**/                   0x3F6A91D3, 0x3FC5A2AC,
+/**/                   0x4F1650DB, 0x3FCF7122,
+/**/                   0xA04F63E7, 0x3FC4981E,
+/**/                   0xBEBC9B64, 0x3FC8CF66,
+/**/                   0x81598BF7, 0x3FC80D21,
+/**/                   0x8E0FD320, 0xBC984143,
+/**/                   0x8AD12008, 0x3FD328F0,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0xA463F3FD, 0xBF355C35,
+/**/                   0x00000000, 0x3FD32000,
+/**/                   0xBC7E151A, 0x3FF0C41E,
+/**/                   0x30943E19, 0x3FC6017C,
+/**/                   0xC80C760D, 0x3FCFC47C,
+/**/                   0x120B129D, 0x3FC51598,
+/**/                   0xA2A855B5, 0x3FC96210,
+/**/                   0x9880230D, 0x3FC8D758,
+/**/                   0xBF178596, 0xBCA4D129,
+/**/                   0x14DCC050, 0x3FD36BF6,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0xF854661E, 0x3F507AF1,
+/**/                   0x00000000, 0x3FD36000,
+/**/                   0x0FD3C135, 0x3FF0C9AB,
+/**/                   0x27C80482, 0x3FC66149,
+/**/                   0x78AC0DDD, 0x3FD00CE9,
+/**/                   0xD02204B1, 0x3FC595FA,
+/**/                   0x7642750D, 0x3FC9F98D,
+/**/                   0xD82AC48A, 0x3FC9A8D3,
+/**/                   0x289B3951, 0x3C977587,
+/**/                   0xA079A6D8, 0x3FD3AF11,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0xA7826A0D, 0x3F63561F,
+/**/                   0x00000000, 0x3FD3A000,
+/**/                   0x76A81A69, 0x3FF0CF4F,
+/**/                   0x29BF5ACD, 0x3FC6C219,
+/**/                   0x507D5DD4, 0x3FD03898,
+/**/                   0x67B79439, 0x3FC6195F,
+/**/                   0xC35A709F, 0x3FCA9609,
+/**/                   0x2BF7455C, 0x3FCA81E4,
+/**/                   0xF424551E, 0x3CA03304,
+/**/                   0x8D754B40, 0x3FD3F243,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0x5034D2A8, 0x3F6E9EED,
+/**/                   0x00000000, 0x3FD3E000,
+/**/                   0x3282280D, 0x3FF0D50C,
+/**/                   0x5F4ACC23, 0x3FC723F2,
+/**/                   0x08771131, 0x3FD06551,
+/**/                   0x4970163E, 0x3FC69FDF,
+/**/                   0x04EE9A0A, 0x3FCB37B4,
+/**/                   0x6B79BC18, 0x3FCB62DE,
+/**/                   0x02A2F456, 0x3CAECF25,
+/**/                   0x3CA032E0, 0x3FD4358C,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0x82280D28, 0x3F750C32,
+/**/                   0x00000000, 0x3FD42000,
+/**/                   0x8677C82D, 0x3FF0DAE1,
+/**/                   0x16834ABE, 0x3FC786DB,
+/**/                   0xF1631731, 0x3FD09319,
+/**/                   0xD36297AF, 0x3FC72994,
+/**/                   0xBF583888, 0x3FCBDEBC,
+/**/                   0x918E2AE6, 0x3FCC4C1B,
+/**/                   0xF34A155C, 0x3CA92F70,
+/**/                   0x0FD419C8, 0x3FD478EC,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0x77C82D53, 0x3F7AE186,
+/**/                   0x00000000, 0x3FD46000,
+/**/                   0xB73728F8, 0x3FF0E0CF,
+/**/                   0xC406A36A, 0x3FC7EAD9,
+/**/                   0x91BDA616, 0x3FD0C1F9,
+/**/                   0x5B86C42B, 0x3FC7B69B,
+/**/                   0x99CD8C9F, 0x3FCC8B56,
+/**/                   0xF7084936, 0x3FCD3DF8,
+/**/                   0x54942387, 0xBC923B74,
+/**/                   0x69FA40E8, 0x3FD4BC63,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0xC8D707BB, 0xBF7F3048,
+/**/                   0x00000000, 0x3FD4A000,
+/**/                   0x0B1092B8, 0x3FF0E6D7,
+/**/                   0x043F9011, 0x3FC84FF5,
+/**/                   0xA7AFD6EB, 0x3FD0F1F6,
+/**/                   0x3AA5D7B9, 0x3FC8470F,
+/**/                   0x794E9CFD, 0x3FCD3DB6,
+/**/                   0x90FB69FD, 0x3FCE38D8,
+/**/                   0xC2327DC5, 0x3C9CFA2D,
+/**/                   0xAF11E2C0, 0x3FD4FFF2,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0xEF6D4848, 0xBF7928F4,
+/**/                   0x00000000, 0x3FD4E000,
+/**/                   0xCA008550, 0x3FF0ECF7,
+/**/                   0x9CB9ECA7, 0x3FC8B633,
+/**/                   0x2B20AC3D, 0x3FD12318,
+/**/                   0xD7D5E860, 0x3FC8DB0D,
+/**/                   0x9D1315AF, 0x3FCDF613,
+/**/                   0x32D8BC6F, 0x3FCF3D21,
+/**/                   0x92E48EEE, 0x3C9C6A36,
+/**/                   0x4436D008, 0x3FD5439A,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0xFF7AAF92, 0xBF730835,
+/**/                   0x00000000, 0x3FD52000,
+/**/                   0x3DBA2C62, 0x3FF0F332,
+/**/                   0x7D83983C, 0x3FC91D9C,
+/**/                   0x4FDDA02E, 0x3FD15565,
+/**/                   0xB48747C7, 0x3FC972B5,
+/**/                   0xBC9105F9, 0x3FCEB4A7,
+/**/                   0x6A535ECF, 0x3FD0259F,
+/**/                   0xF6EA55C1, 0x3C87EB36,
+/**/                   0x8FA83538, 0x3FD5875A,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0x8BA73C6A, 0xBF699B84,
+/**/                   0x00000000, 0x3FD56000,
+/**/                   0xB1B22D42, 0x3FF0F986,
+/**/                   0xC29A92ED, 0x3FC98636,
+/**/                   0x87DBE62D, 0x3FD188E5,
+/**/                   0x792C37EB, 0x3FCA0E26,
+/**/                   0x2735E8CD, 0x3FCF79AF,
+/**/                   0x6ECCD4C0, 0x3FD0B1D1,
+/**/                   0xBEAE0510, 0x3C9502B5,
+/**/                   0xF8CF8AC0, 0x3FD5CB33,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0x374AF74C, 0xBF59E539,
+/**/                   0x00000000, 0x3FD5A000,
+/**/                   0x7329D23A, 0x3FF0FFF5,
+/**/                   0xB568F082, 0x3FC9F009,
+/**/                   0x85939DB2, 0x3FD1BDA0,
+/**/                   0x0283B18A, 0x3FCAAD81,
+/**/                   0x72F69148, 0x3FD022B4,
+/**/                   0x39AD0B79, 0x3FD14362,
+/**/                   0x80828B86, 0xBCAD7968,
+/**/                   0xE847B130, 0x3FD60F26,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0x5B8BC081, 0xBEE519AC,
+/**/                   0x00000000, 0x3FD5E000,
+/**/                   0xD13A9687, 0x3FF1067E,
+/**/                   0xCE4F3F61, 0x3FCA5B1C,
+/**/                   0x3E764545, 0x3FD1F39E,
+/**/                   0x6F90871B, 0x3FCB50E7,
+/**/                   0x6F487F97, 0x3FD08C0B,
+/**/                   0x67265C20, 0x3FD1DA90,
+/**/                   0x995723AD, 0x3CAE5B02,
+/**/                   0xC7E43AA0, 0x3FD65333,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0xEA5A1D64, 0x3F59FB44,
+/**/                   0x00000000, 0x3FD62000,
+/**/                   0x1CE216D9, 0x3FF10D23,
+/**/                   0xB63E0B53, 0x3FCAC777,
+/**/                   0xED81D055, 0x3FD22AE6,
+/**/                   0x3046C5AC, 0x3FCBF87D,
+/**/                   0xFCB29FE4, 0x3FD0F8FE,
+/**/                   0xC99A404E, 0x3FD2779D,
+/**/                   0xC3202AE8, 0xBCA2AF1E,
+/**/                   0x02B8E378, 0x3FD6975B,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0xC42DB2AB, 0x3F6A4639,
+/**/                   0x00000000, 0x3FD66000,
+/**/                   0xA90E6A24, 0x3FF113E2,
+/**/                   0x485F2C6B, 0x3FCB3522,
+/**/                   0x15F1D6CC, 0x3FD26383,
+/**/                   0x14F9D555, 0x3FCCA467,
+/**/                   0x245E397E, 0x3FD169B3,
+/**/                   0x99479CF7, 0x3FD31ACF,
+/**/                   0x8992C228, 0xBC730D3F,
+/**/                   0x05213B28, 0x3FD6DB9D,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0x0E6A2469, 0x3F73E2A9,
+/**/                   0x00000000, 0x3FD6A000,
+/**/                   0xCAAAE6D5, 0x3FF11ABD,
+/**/                   0x93CF9B23, 0x3FCBA424,
+/**/                   0x86106AD4, 0x3FD29D7B,
+/**/                   0x5E96870B, 0x3FCD54CB,
+/**/                   0x9975D46D, 0x3FD1DE4D,
+/**/                   0xA709F8A4, 0x3FD3C46E,
+/**/                   0x457B6F5C, 0xBC9CB630,
+/**/                   0x3CC87FC8, 0x3FD71FFA,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0xAAE6D53D, 0x3F7ABDCA,
+/**/                   0x00000000, 0x3FD6E000,
+/**/                   0xD8AD589E, 0x3FF121B4,
+/**/                   0xDD6A8C89, 0x3FCC1486,
+/**/                   0x5A283891, 0x3FD2D8D9,
+/**/                   0xCFB4F5A1, 0x3FCE09D1,
+/**/                   0xCF594BB6, 0x3FD256F5,
+/**/                   0x92614C29, 0x3FD474C7,
+/**/                   0x533051E9, 0xBC88FB31,
+/**/                   0x18B1AD28, 0x3FD76473,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0x52A761D6, 0xBF7E4B27,
+/**/                   0x00000000, 0x3FD72000,
+/**/                   0x2C23AB4A, 0x3FF128C8,
+/**/                   0xA1A6A356, 0x3FCC8651,
+/**/                   0xFF99ABE3, 0x3FD315A5,
+/**/                   0xBE8EE4C2, 0x3FCEC3A3,
+/**/                   0x11207D5D, 0x3FD2D3D5,
+/**/                   0x02FE6DF8, 0x3FD52C2B,
+/**/                   0xFE4D8DF3, 0xBCA3F304,
+/**/                   0x093FC1F0, 0x3FD7A908,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0xDC54B622, 0xBF7737D3,
+/**/                   0x00000000, 0x3FD76000,
+/**/                   0x20420F33, 0x3FF12FF8,
+/**/                   0x96860D89, 0x3FCCF98D,
+/**/                   0x3814F292, 0x3FD353EB,
+/**/                   0x27E81BF7, 0x3FCF826C,
+/**/                   0x9A827352, 0x3FD35516,
+/**/                   0xE614C6DF, 0x3FD5EAED,
+/**/                   0x36C1700C, 0x3C80AEDB,
+/**/                   0x803E3C28, 0x3FD7EDB9,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0xBDF0CCC6, 0xBF7007DF,
+/**/                   0x00000000, 0x3FD7A000,
+/**/                   0x12719C3A, 0x3FF13745,
+/**/                   0xAD9A717F, 0x3FCD6E43,
+/**/                   0x1CFACD12, 0x3FD393B3,
+/**/                   0xE17B8F05, 0x3FD0232B,
+/**/                   0xB23873BC, 0x3FD3DAE7,
+/**/                   0xAFB712E5, 0x3FD6B169,
+/**/                   0x0BC74599, 0x3C994C0C,
+/**/                   0xF0E9CF80, 0x3FD83287,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0x1CC78CA5, 0xBF6175DB,
+/**/                   0x00000000, 0x3FD7E000,
+/**/                   0x625F7844, 0x3FF13EAF,
+/**/                   0x161D9978, 0x3FCDE47D,
+/**/                   0x22E63DCA, 0x3FD3D508,
+/**/                   0x8B2EC7EB, 0x3FD087CA,
+/**/                   0xC5F619C8, 0x3FD46577,
+/**/                   0xA08A73DE, 0x3FD77FFC,
+/**/                   0x6E7B547F, 0x3CA1DBDE,
+/**/                   0xCFF956F8, 0x3FD87773,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0x087BC752, 0xBF3509DA,
+/**/                   0x00000000, 0x3FD82000,
+/**/                   0x720C869D, 0x3FF14637,
+/**/                   0x3F1FD940, 0x3FCE5C43,
+/**/                   0x1D614654, 0x3FD417F5,
+/**/                   0x472052ED, 0x3FD0EF2A,
+/**/                   0x88116DA6, 0x3FD4F4F8,
+/**/                   0x102117B6, 0x3FD8570A,
+/**/                   0x214A7328, 0xBCAB6E89,
+/**/                   0x93A70458, 0x3FD8BC7D,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0x321A7479, 0x3F58DDC8,
+/**/                   0x00000000, 0x3FD86000,
+/**/                   0xA5DDA5C4, 0x3FF14DDD,
+/**/                   0xD9CD3739, 0x3FCED59F,
+/**/                   0x42C70412, 0x3FD45C85,
+/**/                   0x49C983A8, 0x3FD15964,
+/**/                   0x0EF7ED0B, 0x3FD5899E,
+/**/                   0xBC543499, 0x3FD936FA,
+/**/                   0x7B29F22E, 0x3CAFF50D,
+/**/                   0xB3B9CF50, 0x3FD901A5,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0xBB4B87E0, 0x3F6BBB4B,
+/**/                   0x00000000, 0x3FD8A000,
+/**/                   0x64AC8172, 0x3FF155A2,
+/**/                   0xDBCA7047, 0x3FCF509C,
+/**/                   0x3055A16F, 0x3FD4A2C4,
+/**/                   0xD25160C7, 0x3FD1C692,
+/**/                   0xF68F9906, 0x3FD6239E,
+/**/                   0x1DFC2EE2, 0x3FDA203D,
+/**/                   0x671EF39F, 0x3CAD2019,
+/**/                   0xA98F2718, 0x3FD946EC,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0xAC8171A9, 0x3F75A264,
+/**/                   0x00000000, 0x3FD8E000,
+/**/                   0x17D8FF02, 0x3FF15D86,
+/**/                   0x81AAFD5E, 0x3FCFCD44,
+/**/                   0xEE72B776, 0x3FD4EABD,
+/**/                   0x377F943F, 0x3FD236D1,
+/**/                   0x83A56DB7, 0x3FD6C334,
+/**/                   0xC36D6C50, 0x3FDB1345,
+/**/                   0x761537BB, 0xBC7841E5,
+/**/                   0xF024E808, 0x3FD98C52,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0xD8FF01DE, 0x3F7D8617,
+/**/                   0x00000000, 0x3FD92000,
+/**/                   0x2B5B4A9A, 0x3FF16589,
+/**/                   0xA8C0A8C6, 0x3FD025D0,
+/**/                   0xF524E4B6, 0x3FD5347E,
+/**/                   0xF565EDBD, 0x3FD2AA3B,
+/**/                   0xC98D2842, 0x3FD7689A,
+/**/                   0xB128B4DD, 0x3FDC108F,
+/**/                   0x4452A669, 0xBC8A5EEB,
+/**/                   0x04239878, 0x3FD9D1D9,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0xA4B56661, 0xBF7A76D4,
+/**/                   0x00000000, 0x3FD96000,
+/**/                   0x0DD68BC8, 0x3FF16DAC,
+/**/                   0x0EC54C3A, 0x3FD065DF,
+/**/                   0x30C58A12, 0x3FD58014,
+/**/                   0xBBCBCCEF, 0x3FD320F0,
+/**/                   0xD218F380, 0x3FD81410,
+/**/                   0xC9371D29, 0x3FDD189C,
+/**/                   0x1D6E6EC7, 0x3C58C3C1,
+/**/                   0x63E8EF18, 0x3FDA177F,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0x29743866, 0xBF7253F2,
+/**/                   0x00000000, 0x3FD9A000,
+/**/                   0x30AC48A8, 0x3FF175EF,
+/**/                   0x037BA7C0, 0x3FD0A6D3,
+/**/                   0x06EDCD18, 0x3FD5CD8B,
+/**/                   0x7D679188, 0x3FD39B0E,
+/**/                   0xC8128143, 0x3FD8C5D8,
+/**/                   0x39B3613A, 0x3FDE2BF6,
+/**/                   0xC70C9C76, 0xBC874080,
+/**/                   0x8F92A560, 0x3FDA5D46,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0xA76EB06E, 0xBF64219E,
+/**/                   0x00000000, 0x3FD9E000,
+/**/                   0x08107EEF, 0x3FF17E53,
+/**/                   0x40691386, 0x3FD0E8B2,
+/**/                   0x5BA2319A, 0x3FD61CF1,
+/**/                   0x7FF30656, 0x3FD418B5,
+/**/                   0x24624146, 0x3FD97E38,
+/**/                   0xF30D6589, 0x3FDF4B2C,
+/**/                   0x74DD0C9B, 0xBC8D4AD9,
+/**/                   0x090998F8, 0x3FDAA32F,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0xF81116BC, 0xBF3ACF7E,
+/**/                   0x00000000, 0x3FDA2000,
+/**/                   0x0B1E7A9D, 0x3FF186D8,
+/**/                   0xA98356F0, 0x3FD12B82,
+/**/                   0x96C051D8, 0x3FD66E55,
+/**/                   0x6D28A49D, 0x3FD49A07,
+/**/                   0xDE14D616, 0x3FDA3D77,
+/**/                   0x13502F53, 0x3FE03B6D,
+/**/                   0x4AD59707, 0x3CA51700,
+/**/                   0x540D3F08, 0x3FDAE939,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0x79EA752F, 0x3F5B602C,
+/**/                   0x00000000, 0x3FDA6000,
+/**/                   0xB3EE7285, 0x3FF18F7E,
+/**/                   0x4EC4AF40, 0x3FD16F4A,
+/**/                   0xA9B275FD, 0x3FD6C1C6,
+/**/                   0x64B886B9, 0x3FD51F27,
+/**/                   0x9D72A144, 0x3FDB03E4,
+/**/                   0xE7207DD5, 0x3FE0D7CF,
+/**/                   0x8E77D1B2, 0xBCAACE1E,
+/**/                   0xF63F6C78, 0x3FDB2F65,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0xDCE509F5, 0x3F6EFD67,
+/**/                   0x00000000, 0x3FDAA000,
+/**/                   0x7FABF325, 0x3FF19847,
+/**/                   0x6DD15EDB, 0x3FD1B40F,
+/**/                   0x156D090D, 0x3FD71754,
+/**/                   0x0F44EE42, 0x3FD5A83A,
+/**/                   0xF26149CC, 0x3FDBD1CE,
+/**/                   0x9EBB7D53, 0x3FE17B14,
+/**/                   0x054C177A, 0x3CA18867,
+/**/                   0x773075F8, 0x3FDB75B5,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0xABF3257B, 0x3F78477F,
+/**/                   0x00000000, 0x3FDAE000,
+/**/                   0xEEAD20E6, 0x3FF1A132,
+/**/                   0x73AFA8F4, 0x3FD1F9D8,
+/**/                   0xF0BA2B44, 0x3FD76F0D,
+/**/                   0xB2776412, 0x3FD63565,
+/**/                   0x8E4B8181, 0x3FDCA78B,
+/**/                   0xDE92725A, 0x3FE22595,
+/**/                   0x225EE470, 0xBCABDA45,
+/**/                   0x606BABE0, 0x3FDBBC28,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0x52DF1A7E, 0xBF7ECD11,
+/**/                   0x00000000, 0x3FDB2000,
+/**/                   0x848ADB16, 0x3FF1AA41,
+/**/                   0xFE932ABB, 0x3FD240AB,
+/**/                   0xEED7E85D, 0x3FD7C904,
+/**/                   0x4640B1B3, 0x3FD6C6D2,
+/**/                   0x81D01020, 0x3FDD8573,
+/**/                   0x9938B939, 0x3FE2D7B3,
+/**/                   0x36D76E02, 0x3CA12ECB,
+/**/                   0x3D843430, 0x3FDC02BF,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0x7524EA70, 0xBF75BE7B,
+/**/                   0x00000000, 0x3FDB6000,
+/**/                   0xC839C9AC, 0x3FF1B373,
+/**/                   0xDFBC912D, 0x3FD28890,
+/**/                   0x666DE3CA, 0x3FD8254A,
+/**/                   0x8B57457C, 0x3FD75CA9,
+/**/                   0x7E7E55FE, 0x3FDE6BE4,
+/**/                   0x68EC3777, 0x3FE391D3,
+/**/                   0x4D8A80A5, 0xBC9F7EFE,
+/**/                   0x9C2247A0, 0x3FDC497A,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0x8C6CA8A7, 0xBF69186F,
+/**/                   0x00000000, 0x3FDBA000,
+/**/                   0x44246029, 0x3FF1BCCA,
+/**/                   0x1D6EB966, 0x3FD2D18E,
+/**/                   0x58DF9E20, 0x3FD883F0,
+/**/                   0x2308FF84, 0x3FD7F717,
+/**/                   0x1CEC1692, 0x3FDF5B41,
+/**/                   0xEFAE7F7E, 0x3FE45460,
+/**/                   0xC247C281, 0xBCACA88A,
+/**/                   0x0C10D428, 0x3FDC905B,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0xDCFEB6F6, 0xBF49ADDE,
+/**/                   0x00000000, 0x3FDBE000,
+/**/                   0x8645E0A6, 0x3FF1C645,
+/**/                   0xF4FA598C, 0x3FD31BAA,
+/**/                   0x7A00CDBD, 0x3FD8E509,
+/**/                   0xA876EFA4, 0x3FD89648,
+/**/                   0x93BB3BA0, 0x3FE029F8,
+/**/                   0x3E769492, 0x3FE51FCE,
+/**/                   0xDAC78BA6, 0xBC63BD0A,
+/**/                   0x1F4B8A08, 0x3FDCD761,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0x178298DB, 0x3F591619,
+/**/                   0x00000000, 0x3FDC2000,
+/**/                   0x20466A93, 0x3FF1CFE6,
+/**/                   0xDCE16113, 0x3FD366EE,
+/**/                   0x3831A262, 0x3FD948A9,
+/**/                   0xCB5336B7, 0x3FD93A6D,
+/**/                   0xF50362A5, 0x3FE0AB30,
+/**/                   0x440F45E4, 0x3FE5F494,
+/**/                   0x79A811B8, 0xBCA1B23F,
+/**/                   0x6A0D56C8, 0x3FDD1E8D,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0x8CD52690, 0x3F6FCC40,
+/**/                   0x00000000, 0x3FDC6000,
+/**/                   0xA798215A, 0x3FF1D9AC,
+/**/                   0x87135170, 0x3FD3B361,
+/**/                   0xC4E92F90, 0x3FD9AEE3,
+/**/                   0x6C3B0A06, 0x3FD9E3B8,
+/**/                   0x439D6983, 0x3FE13183,
+/**/                   0x444347EE, 0x3FE6D333,
+/**/                   0x141D7ADE, 0x3C9E6687,
+/**/                   0x82DF5278, 0x3FDD65E0,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0x98215A4D, 0x3F79ACA7,
+/**/                   0x00000000, 0x3FDCA000,
+/**/                   0xB59577B1, 0x3FF1E399,
+/**/                   0xE343E389, 0x3FD4010A,
+/**/                   0x1DB4A57B, 0x3FDA17CE,
+/**/                   0xBAC8CA27, 0x3FDA925C,
+/**/                   0x29AC5009, 0x3FE1BD2C,
+/**/                   0x5806ABBE, 0x3FE7BC33,
+/**/                   0xD953CBEA, 0x3C89743A,
+/**/                   0x02A82420, 0x3FDDAD5B,
+/**/                   0x00000000, 0x3FF20000,
+/**/                   0x6A884EAF, 0xBF7C664A,
+/**/                   0x00000000, 0x3FDCE000,
+/**/                   0xE7A0AD1E, 0x3FF1EDAD,
+/**/                   0x215D62D8, 0x3FD44FF3,
+/**/                   0x15B2742E, 0x3FDA837E,
+/**/                   0x557C3A62, 0x3FDB4691,
+/**/                   0x9ABECCA0, 0x3FE24E6B,
+/**/                   0xF75D3619, 0x3FE8B024,
+/**/                   0x953C1F21, 0xBC60A42B,
+/**/                   0x84BBE168, 0x3FDDF4FD,
+/**/                   0x00000000, 0x3FF20000,
+/**/                   0x5F52E269, 0xBF725218,
+/**/                   0x00000000, 0x3FDD2000,
+/**/                   0xDF448BE1, 0x3FF1F7E9,
+/**/                   0xB4103D45, 0x3FD4A022,
+/**/                   0x5F90F152, 0x3FDAF20A,
+/**/                   0x6B992E26, 0x3FDC008F,
+/**/                   0x07C18F30, 0x3FE2E585,
+/**/                   0x8DCE89C2, 0x3FE9AFA1,
+/**/                   0xE5B4E0DD, 0xBC8B90A5,
+/**/                   0xA6EC6EF0, 0x3FDE3CC8,
+/**/                   0x00000000, 0x3FF20000,
+/**/                   0x76E83DEE, 0xBF602C41,
+/**/                   0x00000000, 0x3FDD6000,
+/**/                   0x42567651, 0x3FF2024E,
+/**/                   0x53815E48, 0x3FD4F1A2,
+/**/                   0x98189F26, 0x3FDB638A,
+/**/                   0xE11F7BB9, 0x3FDCC092,
+/**/                   0x968E1C3C, 0x3FE382BF,
+/**/                   0x1A4C4551, 0x3FEABB4C,
+/**/                   0xC65EE1E9, 0xBCAC384D,
+/**/                   0x099A6620, 0x3FDE84BD,
+/**/                   0x00000000, 0x3FF20000,
+/**/                   0xB3B2877E, 0x3F427212,
+/**/                   0x00000000, 0x3FDDA000,
+/**/                   0xBB19D366, 0x3FF20CDB,
+/**/                   0x00190520, 0x3FD5447B,
+/**/                   0x514AC3D7, 0x3FDBD817,
+/**/                   0x7501B24E, 0x3FDD86DA,
+/**/                   0x5D5DCC91, 0x3FE42666,
+/**/                   0xDB834BBA, 0x3FEBD3D1,
+/**/                   0x64307FE4, 0xBCA62892,
+/**/                   0x4FC685E0, 0x3FDECCDB,
+/**/                   0x00000000, 0x3FF20000,
+/**/                   0x33A6CD00, 0x3F69B776,
+/**/                   0x00000000, 0x3FDDE000,
+/**/                   0xF864EB38, 0x3FF21792,
+/**/                   0x0573E0CA, 0x3FD598B6,
+/**/                   0x1E1D9C05, 0x3FDC4FCA,
+/**/                   0xE9C2FB44, 0x3FDE53A7,
+/**/                   0xA26E99AF, 0x3FE4D0C8,
+/**/                   0x09A8A359, 0x3FECF9EB,
+/**/                   0xD9AFA9E0, 0xBCADF861,
+/**/                   0x1F23B3F8, 0x3FDF1524,
+/**/                   0x00000000, 0x3FF20000,
+/**/                   0x64EB3836, 0x3F7792F8,
+/**/                   0x00000000, 0x3FDE2000,
+/**/                   0xADC744F8, 0x3FF22274,
+/**/                   0xFD785957, 0x3FD5EE5C,
+/**/                   0x9EE01B3A, 0x3FDCCABD,
+/**/                   0x30A7B7B5, 0x3FDF2740,
+/**/                   0x202E0D0D, 0x3FE5823A,
+/**/                   0x9EEBE829, 0x3FEE2E5B,
+/**/                   0xE2EA9787, 0xBC93BB42,
+/**/                   0x202994B8, 0x3FDF5D98,
+/**/                   0x00000000, 0x3FF24000,
+/**/                   0x38BB0864, 0xBF7D8B52,
+/**/                   0x00000000, 0x3FDE6000,
+/**/                   0x93B1990A, 0x3FF22D81,
+/**/                   0xD3920D0F, 0x3FD64579,
+/**/                   0x8E4FE1FE, 0x3FDD490D,
+/**/                   0xCBD3ED59, 0x3FE000F5,
+/**/                   0x4E45F774, 0x3FE63B13,
+/**/                   0x2FD578CE, 0x3FEF71F4,
+/**/                   0xC0E1AC47, 0x3CA8AD1C,
+/**/                   0xFE27BF60, 0x3FDFA637,
+/**/                   0x00000000, 0x3FF24000,
+/**/                   0x4E66F5A1, 0xBF727E6C,
+/**/                   0x00000000, 0x3FDEA000,
+/**/                   0x679F6AE1, 0x3FF238BA,
+/**/                   0xC815A8F5, 0x3FD69E16,
+/**/                   0xCF6CD4C9, 0x3FDDCAD6,
+/**/                   0xFD2ADE38, 0x3FE071FA,
+/**/                   0xAFEE9630, 0x3FE6FBB1,
+/**/                   0x6A7ACB82, 0x3FF062C9,
+/**/                   0x35D3555B, 0x3C7E3580,
+/**/                   0x67599588, 0x3FDFEF04,
+/**/                   0x00000000, 0x3FF24000,
+/**/                   0x82547B6F, 0xBF5D1661,
+/**/                   0x00000000, 0x3FDEE000,
+/**/                   0xEC425F4B, 0x3FF2441F,
+/**/                   0x73CF67B4, 0x3FD6F83E,
+/**/                   0x7C1691BA, 0x3FDE5037,
+/**/                   0x7AF8190E, 0x3FE0E6D7,
+/**/                   0x27F29078, 0x3FE7C478,
+/**/                   0x13B5FFDC, 0x3FF11512,
+/**/                   0x5FEBA301, 0x3C6CC7A1,
+/**/                   0x067D6224, 0x3FE01BFF,
+/**/                   0x00000000, 0x3FF24000,
+/**/                   0x097D2BDC, 0x3F507FB1,
+/**/                   0x00000000, 0x3FDF2000,
+/**/                   0xE9AF6533, 0x3FF24FB2,
+/**/                   0xCBBEA804, 0x3FD753FB,
+/**/                   0xF480E731, 0x3FDED94E,
+/**/                   0x106D90C6, 0x3FE15FB5,
+/**/                   0x52DAD430, 0x3FE895CF,
+/**/                   0x28FAAE13, 0x3FF1D052,
+/**/                   0xE849F35A, 0xBCA50976,
+/**/                   0xD1AE3B48, 0x3FE04092,
+/**/                   0x00000000, 0x3FF24000,
+/**/                   0x5ECA665D, 0x3F6F65D3,
+/**/                   0x00000000, 0x3FDF6000,
+/**/                   0x2D8DC7FA, 0x3FF25B74,
+/**/                   0x25013475, 0x3FD7B15A,
+/**/                   0xEF8D6387, 0x3FDF663D,
+/**/                   0xA2DF4BFF, 0x3FE1DCBF,
+/**/                   0xE7C2E4E5, 0x3FE97025,
+/**/                   0x1C2AE4AB, 0x3FF29510,
+/**/                   0xB02A3D13, 0x3CA4C8DC,
+/**/                   0xF0FD9FD8, 0x3FE0653D,
+/**/                   0x00000000, 0x3FF24000,
+/**/                   0x8DC7FA40, 0x3F7B742D,
+/**/                   0x00000000, 0x3FDFA000,
+/**/                   0x8B4843F2, 0x3FF26764,
+/**/                   0x38F10257, 0x3FD81065,
+/**/                   0x8C1920B1, 0x3FDFF726,
+/**/                   0x5148D4E4, 0x3FE25E25,
+/**/                   0x2061C3FE, 0x3FEA53F1,
+/**/                   0x5B9300E5, 0x3FF363DB,
+/**/                   0x624B8B97, 0xBCA47774,
+/**/                   0xC1CAE338, 0x3FE08A00,
+/**/                   0x00000000, 0x3FF28000,
+/**/                   0xB7BC0E50, 0xBF789B74,
+/**/                   0x00000000, 0x3FDFE000,
+/**/                   0xDC4036F2, 0x3FF27384,
+/**/                   0x29775C8F, 0x3FD87129,
+/**/                   0x31A78776, 0x3FE04616,
+/**/                   0x95EE0C65, 0x3FE2E416,
+/**/                   0x28E05161, 0x3FEB41AD,
+/**/                   0xFF1DF849, 0x3FF43D4C,
+/**/                   0xBABBA919, 0x3CA5941C,
+/**/                   0xA3221C1C, 0x3FE0AEDB,
+/**/                   0x00000000, 0x3FF28000,
+/**/                   0x7F921C27, 0xBF68F647,
+/**/                   0x00000000, 0x3FE01000,
+/**/                   0x00030888, 0x3FF27FD6,
+/**/                   0x8598A1B5, 0x3FD8D3B2,
+/**/                   0x4E0BC755, 0x3FE092BA,
+/**/                   0x6A428EEC, 0x3FE36EC6,
+/**/                   0x44F514C9, 0x3FEC39C0,
+/**/                   0x18C4EF3A, 0x3FF52205,
+/**/                   0xA852F235, 0x4000C1D1,
+/**/                   0xD00F64B8, 0x3CA78082,
+/**/                   0xF5C846F8, 0x3FE0D3CE,
+/**/                   0x00000000, 0x3FF28000,
+/**/                   0x7BBC39DF, 0xBF04FFFE,
+/**/                   0x00000000, 0x3FE03000,
+/**/                   0xDC81E6D7, 0x3FF28C58,
+/**/                   0x4E3BF356, 0x3FD9380E,
+/**/                   0xFFC646A7, 0x3FE0E192,
+/**/                   0x6D34756D, 0x3FE3FE6A,
+/**/                   0x139ABC91, 0x3FED3CEF,
+/**/                   0xF80111C0, 0x3FF612B8,
+/**/                   0x3467C688, 0x4001A33C,
+/**/                   0x34F59445, 0xBC8A9954,
+/**/                   0x1C47D550, 0x3FE0F8DB,
+/**/                   0x00000000, 0x3FF28000,
+/**/                   0x03CDAE3F, 0x3F68B1B9,
+/**/                   0x00000000, 0x3FE05000,
+/**/                   0x5E4BF713, 0x3FF2990E,
+/**/                   0xFB326E9E, 0x3FD99E49,
+/**/                   0x8779391A, 0x3FE132B4,
+/**/                   0x0C2FE325, 0x3FE4933B,
+/**/                   0xAEAAE1D0, 0x3FEE4BB1,
+/**/                   0x1F4377BD, 0x3FF71020,
+/**/                   0x1C886605, 0x40029271,
+/**/                   0x7130CE99, 0xBCA33AB1,
+/**/                   0x7AFDAF10, 0x3FE11E00,
+/**/                   0x00000000, 0x3FF28000,
+/**/                   0x4BF712C7, 0x3F790E5E,
+/**/                   0x00000000, 0x3FE07000,
+/**/                   0x78CB1A3B, 0x3FF2A5F7,
+/**/                   0x8081C5D1, 0x3FDA0673,
+/**/                   0x0D5E6499, 0x3FE18634,
+/**/                   0xAEDD6BE6, 0x3FE52D73,
+/**/                   0x1CF1AAA0, 0x3FEF66A5,
+/**/                   0x4834E5A9, 0x3FF81B02,
+/**/                   0xFCE48906, 0x40039066,
+/**/                   0x6BFB4C85, 0xBCA34E4F,
+/**/                   0x7826AAD4, 0x3FE1433F,
+/**/                   0x00000000, 0x3FF2C000,
+/**/                   0x34E5C574, 0xBF7A0887,
+/**/                   0x00000000, 0x3FE09000,
+/**/                   0x268368DB, 0x3FF2B315,
+/**/                   0x53F655B7, 0x3FDA7099,
+/**/                   0xAD9032EC, 0x3FE1DC27,
+/**/                   0xE5F88E23, 0x3FE5CD52,
+/**/                   0x0A68BDFC, 0x3FF04738,
+/**/                   0x2F057820, 0x3FF93435,
+/**/                   0xDAE8A2FC, 0x40049E27,
+/**/                   0xFAA44565, 0x3C86832C,
+/**/                   0x7BED8260, 0x3FE16898,
+/**/                   0x00000000, 0x3FF2C000,
+/**/                   0xF92E4A41, 0xBF69D5B2,
+/**/                   0x00000000, 0x3FE0B000,
+/**/                   0x69558A9E, 0x3FF2C068,
+/**/                   0x73011B64, 0x3FDADCCA,
+/**/                   0x8511146A, 0x3FE234A6,
+/**/                   0x9D6CBF3C, 0x3FE6731A,
+/**/                   0xD575F00A, 0x3FF0E1E1,
+/**/                   0xADEA17E7, 0x3FFA5C9D,
+/**/                   0xD9123E7C, 0x4005BCD2,
+/**/                   0xCC2AE1E4, 0xBCA23E4F,
+/**/                   0xF07948F0, 0x3FE18E0B,
+/**/                   0x00000000, 0x3FF2C000,
+/**/                   0x62A7614A, 0x3F1A1A55,
+/**/                   0x00000000, 0x3FE0D000,
+/**/                   0x4AC410C6, 0x3FF2CDF2,
+/**/                   0x68E63D97, 0x3FDB4B16,
+/**/                   0xBFA256B2, 0x3FE28FC8,
+/**/                   0x51FDF05A, 0x3FE71F10,
+/**/                   0x0753C882, 0x3FF183AE,
+/**/                   0xF1921090, 0x3FFB9530,
+/**/                   0x14F942BC, 0x4006ED9E,
+/**/                   0x89C77FA3, 0x3CA27879,
+/**/                   0x41FC691C, 0x3FE1B39A,
+/**/                   0x00000000, 0x3FF2C000,
+/**/                   0x88218CD6, 0x3F6BE495,
+/**/                   0x00000000, 0x3FE0F000,
+/**/                   0xDC3BFD25, 0x3FF2DBB3,
+/**/                   0x55413207, 0x3FDBBB8D,
+/**/                   0xA6792BF1, 0x3FE2EDA7,
+/**/                   0x4AC4E230, 0x3FE7D17D,
+/**/                   0xAAE6CB05, 0x3FF22D00,
+/**/                   0xC9028E71, 0x3FFCDEF5,
+/**/                   0xB40C626C, 0x400831D8,
+/**/                   0x9873F484, 0x3C953FEF,
+/**/                   0xDEC430C0, 0x3FE1D943,
+/**/                   0x00000000, 0x3FF2C000,
+/**/                   0x3BFD24A1, 0x3F7BB3DC,
+/**/                   0x00000000, 0x3FE11000,
+/**/                   0x3760A19B, 0x3FF2E9AE,
+/**/                   0xF2E3E2EB, 0x3FDC2E3F,
+/**/                   0xAFE1CD38, 0x3FE34E5D,
+/**/                   0xD6CE0B26, 0x3FE88AAE,
+/**/                   0x2C4B06C6, 0x3FF2DE44,
+/**/                   0x138813D2, 0x3FFE3B06,
+/**/                   0x23FD5612, 0x40098AED,
+/**/                   0xB7AF0E54, 0xBC91EC19,
+/**/                   0x3748F114, 0x3FE1FF09,
+/**/                   0x00000000, 0x3FF30000,
+/**/                   0x9F5E657E, 0xBF7651C8,
+/**/                   0x00000000, 0x3FE13000,
+/**/                   0x7E5B072B, 0x3FF2F7E2,
+/**/                   0x9F169C4D, 0x3FDCA33F,
+/**/                   0x8FE1EB56, 0x3FE3B206,
+/**/                   0x8F30E1B7, 0x3FE94AF6,
+/**/                   0xCFCF9887, 0x3FF397E9,
+/**/                   0x4FB7F25F, 0x3FFFAA90,
+/**/                   0x94745D90, 0x400AFA63,
+/**/                   0x2A139390, 0x3C96955C,
+/**/                   0xBE3EBA20, 0x3FE224EA,
+/**/                   0x00000000, 0x3FF30000,
+/**/                   0x49F1AA85, 0xBF603B03,
+/**/                   0x00000000, 0x3FE15000,
+/**/                   0xDC2D0E76, 0x3FF30651,
+/**/                   0x613EF408, 0x3FDD1A9E,
+/**/                   0x49ED083D, 0x3FE418BF,
+/**/                   0x9DFD1E23, 0x3FEA12AA,
+/**/                   0x32B75F76, 0x3FF45A6A,
+/**/                   0xA7673F47, 0x4000976C,
+/**/                   0xB046AC6A, 0x400C81E4,
+/**/                   0x7D1BEB80, 0x3C879FF7,
+/**/                   0xE8A6B8B0, 0x3FE24AE8,
+/**/                   0x00000000, 0x3FF30000,
+/**/                   0xB439D90E, 0x3F594770,
+/**/                   0x00000000, 0x3FE17000,
+/**/                   0x85087ECD, 0x3FF314FD,
+/**/                   0xF2F45390, 0x3FDD946E,
+/**/                   0x43BEDA05, 0x3FE482A6,
+/**/                   0x0A640DD7, 0x3FEAE226,
+/**/                   0xD6A3D695, 0x3FF52645,
+/**/                   0x08098FE0, 0x4001649F,
+/**/                   0x9D2BADE7, 0x400E233C,
+/**/                   0x4E5F8348, 0x3C9E948C,
+/**/                   0x2DE13E58, 0x3FE27104,
+/**/                   0x00000000, 0x3FF30000,
+/**/                   0x087ECD1A, 0x3F74FD85,
+/**/                   0x00000000, 0x3FE19000,
+/**/                   0xB6AA3C67, 0x3FF323E6,
+/**/                   0xC8894828, 0x3FDE10C4,
+/**/                   0x59718389, 0x3FE4EFDB,
+/**/                   0x0A8D7622, 0x3FEBB9C9,
+/**/                   0xB8A62B12, 0x3FF5FC05,
+/**/                   0xE4296831, 0x40023D9A,
+/**/                   0x49C0B830, 0x400FE05E,
+/**/                   0xC1189DE8, 0x3CA19107,
+/**/                   0x07C07BCC, 0x3FE2973D,
+/**/                   0x00000000, 0x3FF34000,
+/**/                   0x55C3993D, 0xBF7C1949,
+/**/                   0x00000000, 0x3FE1B000,
+/**/                   0xB8B9E20B, 0x3FF3330E,
+/**/                   0x1A11468B, 0x3FDE8FB4,
+/**/                   0xF2E740E1, 0x3FE5607F,
+/**/                   0x5B91DB14, 0x3FEC99F9,
+/**/                   0xF50C5FAA, 0x3FF6DC3B,
+/**/                   0x0CFAC1C7, 0x4003232A,
+/**/                   0x894EFD30, 0x4010DDB3,
+/**/                   0x3783D916, 0xBCA7760F,
+/**/                   0xF29BF5F0, 0x3FE2BD93,
+/**/                   0x00000000, 0x3FF34000,
+/**/                   0x8C3BEA7F, 0xBF69E28E,
+/**/                   0x00000000, 0x3FE1D000,
+/**/                   0xDD2DFE6D, 0x3FF34276,
+/**/                   0xECEB226B, 0x3FDF1151,
+/**/                   0x1AA123CE, 0x3FE5D4B7,
+/**/                   0xA01F65F8, 0x3FED8322,
+/**/                   0x791CE583, 0x3FF7C784,
+/**/                   0xC15A6B9C, 0x40041625,
+/**/                   0x64280FEB, 0x4011DB51,
+/**/                   0x28CA6DBB, 0x3CA10463,
+/**/                   0x6D64BEAC, 0x3FE2E409,
+/**/                   0x00000000, 0x3FF34000,
+/**/                   0x6FF364E1, 0x3F43B6E9,
+/**/                   0x00000000, 0x3FE1F000,
+/**/                   0x80B539C7, 0x3FF35220,
+/**/                   0x1DD91A82, 0x3FDF95B4,
+/**/                   0x961EA9CA, 0x3FE64CA5,
+/**/                   0xC65B3B2F, 0x3FEE75B6,
+/**/                   0xC412E59F, 0x3FF8BE85,
+/**/                   0x02462A51, 0x40051778,
+/**/                   0x109FC81B, 0x4012EA48,
+/**/                   0x9F70CA98, 0x3C959E4C,
+/**/                   0xF9BA7B3C, 0x3FE30A9D,
+/**/                   0x00000000, 0x3FF34000,
+/**/                   0xB539C6A2, 0x3F722080,
+/**/                   0x00000000, 0x3FE21000,
+/**/                   0x0B24ACDA, 0x3FF3620D,
+/**/                   0xB5D803B6, 0x3FE00E78,
+/**/                   0xFFE457FB, 0x3FE6C871,
+/**/                   0x759EF386, 0x3FEF722E,
+/**/                   0xB8D0E874, 0x3FF9C1F1,
+/**/                   0x080FB06E, 0x4006281D,
+/**/                   0xD1F69DF7, 0x40140BF2,
+/**/                   0xCBFAF37F, 0xBC8489EA,
+/**/                   0x1C0141BC, 0x3FE33152,
+/**/                   0x00000000, 0x3FF38000,
+/**/                   0xDB532667, 0xBF7DF2F4,
+/**/                   0x00000000, 0x3FE23000,
+/**/                   0xEFEBB76D, 0x3FF3723D,
+/**/                   0xC153FC4C, 0x3FE05390,
+/**/                   0xE34A2666, 0x3FE74844,
+/**/                   0xC260A400, 0x3FF03C84,
+/**/                   0x81E70F01, 0x3FFAD286,
+/**/                   0xDBC4A78E, 0x40074924,
+/**/                   0x8BBCA2E0, 0x401541CB,
+/**/                   0x7BEA8472, 0x3C9C7528,
+/**/                   0x5B7858F8, 0x3FE35826,
+/**/                   0x00000000, 0x3FF38000,
+/**/                   0x28912510, 0xBF6B8420,
+/**/                   0x00000000, 0x3FE25000,
+/**/                   0xAE8DA9C7, 0x3FF382B4,
+/**/                   0x842CABB9, 0x3FE09A2E,
+/**/                   0xDA356141, 0x3FE7CC48,
+/**/                   0xBCD4FDB8, 0x3FF0C567,
+/**/                   0x89B62C32, 0x3FFBF10F,
+/**/                   0x18ADC4B9, 0x40087BB5,
+/**/                   0xC516F6F1, 0x40168D6D,
+/**/                   0x2E37D6A3, 0xBC933A6B,
+/**/                   0x4251E5AC, 0x3FE37F1B,
+/**/                   0x00000000, 0x3FF38000,
+/**/                   0x6D4E3A7A, 0x3F45A574,
+/**/                   0x00000000, 0x3FE27000,
+/**/                   0xD3219A4C, 0x3FF39372,
+/**/                   0xD4394437, 0x3FE0E25E,
+/**/                   0xACE4CC74, 0x3FE854AA,
+/**/                   0x0981EE13, 0x3FF15408,
+/**/                   0x88AA5332, 0x3FFD1E66,
+/**/                   0xDA3BD18F, 0x4009C10A,
+/**/                   0xFFE4AE21, 0x4017F099,
+/**/                   0x7B588ABE, 0xBCAED56B,
+/**/                   0x5DCB911C, 0x3FE3A631,
+/**/                   0x00000000, 0x3FF38000,
+/**/                   0x219A4BA9, 0x3F7372D3,
+/**/                   0x00000000, 0x3FE29000,
+/**/                   0xF6D8C6BC, 0x3FF3A479,
+/**/                   0x11197A32, 0x3FE12C2F,
+/**/                   0x73F949D5, 0x3FE8E199,
+/**/                   0xEE7A481D, 0x3FF1E8B1,
+/**/                   0xABBE8828, 0x3FFE5B74,
+/**/                   0xDB3D83BC, 0x400B1A7C,
+/**/                   0x6DC46100, 0x40196D39,
+/**/                   0xACD8F69C, 0x3CA7798C,
+/**/                   0x3E4835E8, 0x3FE3CD69,
+/**/                   0x00000000, 0x3FF3C000,
+/**/                   0x27394391, 0xBF7B8609,
+/**/                   0x00000000, 0x3FE2B000,
+/**/                   0xC08BE738, 0x3FF3B5CB,
+/**/                   0x2B5CB6B7, 0x3FE177AD,
+/**/                   0xBCE90EB1, 0x3FE97346,
+/**/                   0x68EC7F04, 0x3FF283B6,
+/**/                   0xD5B8ED04, 0x3FFFA933,
+/**/                   0xCBCDFF9A, 0x400C897D,
+/**/                   0x0E4ABF55, 0x401B0562,
+/**/                   0x1EE42043, 0x3C881FF6,
+/**/                   0x776AA08C, 0x3FE3F4C3,
+/**/                   0x00000000, 0x3FF3C000,
+/**/                   0xE8319086, 0xBF64687E,
+/**/                   0x00000000, 0x3FE2D000,
+/**/                   0xE54FE05E, 0x3FF3C769,
+/**/                   0xAC1A81A0, 0x3FE1C4E7,
+/**/                   0xB10FA326, 0x3FEA09E6,
+/**/                   0x840F679B, 0x3FF3256B,
+/**/                   0xFEE9EF1A, 0x40008457,
+/**/                   0xE4146343, 0x400E0F9E,
+/**/                   0x433496A9, 0x401CBB5B,
+/**/                   0x59F087C0, 0xBCA57A4C,
+/**/                   0xA03171A8, 0x3FE41C40,
+/**/                   0x00000000, 0x3FF3C000,
+/**/                   0x3F81773D, 0x3F5DA795,
+/**/                   0x00000000, 0x3FE2F000,
+/**/                   0x291249DC, 0x3FF3D956,
+/**/                   0xBD044AC9, 0x3FE213ED,
+/**/                   0x3F917FA8, 0x3FEAA5B0,
+/**/                   0xB7380A79, 0x3FF3CE2C,
+/**/                   0x576AFAE8, 0x40013D84,
+/**/                   0xBAAB74F3, 0x400FAE92,
+/**/                   0xE9129E4A, 0x401E91A2,
+/**/                   0x0CEC83F7, 0x3C905671,
+/**/                   0x53143194, 0x3FE443E1,
+/**/                   0x00000000, 0x3FF3C000,
+/**/                   0x1249DBC4, 0x3F795629,
+/**/                   0x00000000, 0x3FE31000,
+/**/                   0x5F3E4715, 0x3FF3EB92,
+/**/                   0x30F965D1, 0x3FE264CF,
+/**/                   0x4A4F2FB2, 0x3FEB46DD,
+/**/                   0x4BC2E94F, 0x3FF47E5B,
+/**/                   0x54F8F9EB, 0x400200B9,
+/**/                   0x33305D9F, 0x4010B418,
+/**/                   0x826EF167, 0x40204579,
+/**/                   0xE06EBCAE, 0xBC9737A0,
+/**/                   0x2E21A53C, 0x3FE46BA6,
+/**/                   0x00000000, 0x3FF40000,
+/**/                   0xC1B8EB04, 0xBF746DA0,
+/**/                   0x00000000, 0x3FE33000,
+/**/                   0x6B6A38D5, 0x3FF3FE20,
+/**/                   0x8D26C7A0, 0x3FE2B79C,
+/**/                   0xD62978F8, 0x3FEBEDAA,
+/**/                   0xCB8CC6D1, 0x3FF5365E,
+/**/                   0xD894AF54, 0x4002CE9C,
+/**/                   0x79F7C63E, 0x40119F3B,
+/**/                   0x0C8E7B9E, 0x40215524,
+/**/                   0x13DC9A80, 0x3CA485D0,
+/**/                   0xD31F754C, 0x3FE4938F,
+/**/                   0x00000000, 0x3FF40000,
+/**/                   0x5C72B1E7, 0xBF3DF949,
+/**/                   0x00000000, 0x3FE35000,
+/**/                   0x420ED8E7, 0x3FF41102,
+/**/                   0x12BCE2B2, 0x3FE30C67,
+/**/                   0x3EDE345E, 0x3FEC9A59,
+/**/                   0x78CAB466, 0x3FF5F6A5,
+/**/                   0x3EAD62EE, 0x4003A7E1,
+/**/                   0x9CB9A228, 0x401299C8,
+/**/                   0x1BE749B0, 0x40227974,
+/**/                   0xC6A9831F, 0x3CAFE28F,
+/**/                   0xE7AB3A40, 0x3FE4BB9E,
+/**/                   0x00000000, 0x3FF40000,
+/**/                   0x0ED8E776, 0x3F710242,
+/**/                   0x00000000, 0x3FE37000,
+/**/                   0xE9485B43, 0x3FF42439,
+/**/                   0xC946E033, 0x3FE36340,
+/**/                   0x6ECC5A7E, 0x3FED4D2C,
+/**/                   0xD027255A, 0x3FF6BFA4,
+/**/                   0x72504BE1, 0x40048D46,
+/**/                   0x09445BD5, 0x4013A4ED,
+/**/                   0x749E19F9, 0x4023B435,
+/**/                   0xEAAAF53E, 0xBC40E7E5,
+/**/                   0x155D0070, 0x3FE4E3D4,
+/**/                   0x00000000, 0x3FF44000,
+/**/                   0xB7A4BD36, 0xBF7BC616,
+/**/                   0x00000000, 0x3FE39000,
+/**/                   0x79A23C23, 0x3FF437C9,
+/**/                   0x89AF6A9D, 0x3FE3BC3C,
+/**/                   0x1AF553BA, 0x3FEE066C,
+/**/                   0x1622569A, 0x3FF791DA,
+/**/                   0x1B18AE2B, 0x40057F9B,
+/**/                   0x88BFF240, 0x4014C1F0,
+/**/                   0x019A4522, 0x40250761,
+/**/                   0xFDFCCB13, 0x3CA4C238,
+/**/                   0x09EB58F8, 0x3FE50C30,
+/**/                   0x00000000, 0x3FF44000,
+/**/                   0xBB87B9E1, 0xBF606D0C,
+/**/                   0x00000000, 0x3FE3B000,
+/**/                   0x1EEE6F35, 0x3FF44BB3,
+/**/                   0x0A004D1D, 0x3FE4176E,
+/**/                   0x0399FA54, 0x3FEEC664,
+/**/                   0xF0CFD106, 0x3FF86DCA,
+/**/                   0xE8C80E97, 0x40067FBD,
+/**/                   0xD9CD2D79, 0x4015F237,
+/**/                   0xC8076345, 0x40267521,
+/**/                   0xB089F7AF, 0x3CAEC756,
+/**/                   0x77510D94, 0x3FE534B3,
+/**/                   0x00000000, 0x3FF44000,
+/**/                   0xDCDE698F, 0x3F67663D,
+/**/                   0x00000000, 0x3FE3D000,
+/**/                   0x1928B1BE, 0x3FF45FF9,
+/**/                   0xE9EB53E9, 0x3FE474E9,
+/**/                   0x39DB03B6, 0x3FEF8D64,
+/**/                   0x0F298B87, 0x3FF95406,
+/**/                   0xFFC72AB6, 0x40078E9E,
+/**/                   0x941456E7, 0x40173747,
+/**/                   0x74A71E71, 0x4027FFDA,
+/**/                   0xFE7483B3, 0xBCAEED93,
+/**/                   0x13F48EC0, 0x3FE55D5F,
+/**/                   0x00000000, 0x3FF44000,
+/**/                   0x28B1BDFF, 0x3F7FF919,
+/**/                   0x00000000, 0x3FE3F000,
+/**/                   0xBD66D0C4, 0x3FF4749D,
+/**/                   0xC02C2013, 0x3FE4D4C5,
+/**/                   0xB56768CC, 0x3FF02DE0,
+/**/                   0xDF53A7BD, 0x3FFA4523,
+/**/                   0x8A357386, 0x4008AD41,
+/**/                   0x5E392799, 0x401892C7,
+/**/                   0x97746ACD, 0x4029AA2B,
+/**/                   0xB4A71E44, 0x3C924F0A,
+/**/                   0x9AD13548, 0x3FE58633,
+/**/                   0x00000000, 0x3FF48000,
+/**/                   0x325E775E, 0xBF66C485,
+/**/                   0x00000000, 0x3FE41000,
+/**/                   0x76D6C491, 0x3FF489A3,
+/**/                   0x28D40829, 0x3FE53718,
+/**/                   0x98450D83, 0x3FF098EA,
+/**/                   0x55526E3B, 0x3FFB41C7,
+/**/                   0x719F540E, 0x4009DCBD,
+/**/                   0x805D08D1, 0x401A0685,
+/**/                   0xA5142633, 0x402B76FA,
+/**/                   0xF1FF56FC, 0x3C2AD9A7,
+/**/                   0xCBA27244, 0x3FE5AF31,
+/**/                   0x00000000, 0x3FF48000,
+/**/                   0xAD892100, 0x3F6346ED,
+/**/                   0x00000000, 0x3FE43000,
+/**/                   0xC7CB94CC, 0x3FF49F0C,
+/**/                   0xD492AA1E, 0x3FE59BF8,
+/**/                   0x34D2CA82, 0x3FF107FF,
+/**/                   0xC3DF9E51, 0x3FFC4A9E,
+/**/                   0x45F5874E, 0x400B1E41,
+/**/                   0xDEB92648, 0x401B947A,
+/**/                   0xD903D532, 0x402D6979,
+/**/                   0x04C67F5E, 0x3CA43231,
+/**/                   0x6B1109A4, 0x3FE5D85A,
+/**/                   0x00000000, 0x3FF48000,
+/**/                   0xCB94CC1A, 0x3F7F0CC7,
+/**/                   0x00000000, 0x3FE45000,
+/**/                   0x4ADA0BF0, 0x3FF4B4DC,
+/**/                   0x990F861F, 0x3FE60380,
+/**/                   0xCBEC7542, 0x3FF17B50,
+/**/                   0xC93CFE8F, 0x3FFD6064,
+/**/                   0x56F36FE3, 0x400C7314,
+/**/                   0x696E5374, 0x401D3ECF,
+/**/                   0x1778AF1D, 0x402F8531,
+/**/                   0x31EBDA84, 0x3C7A53BF,
+/**/                   0x42E27660, 0x3FE601AE,
+/**/                   0x00000000, 0x3FF4C000,
+/**/                   0x4BE81F81, 0xBF66476A,
+/**/                   0x00000000, 0x3FE47000,
+/**/                   0xB4065600, 0x3FF4CB14,
+/**/                   0x826ADA4F, 0x3FE66DC9,
+/**/                   0xA3298D4D, 0x3FF1F314,
+/**/                   0x52191CB4, 0x3FFE83E1,
+/**/                   0x05CA69AF, 0x400DDC99,
+/**/                   0x1079C46A, 0x401F07DF,
+/**/                   0xF9440EB0, 0x4030E703,
+/**/                   0x5817D0DD, 0x3CA495E1,
+/**/                   0x222A98A0, 0x3FE62B2E,
+/**/                   0x00000000, 0x3FF4C000,
+/**/                   0x0CAC00D4, 0x3F662968,
+/**/                   0x00000000, 0x3FE49000,
+/**/                   0xD203BDC9, 0x3FF4E1B8,
+/**/                   0xE5FE0976, 0x3FE6DAEE,
+/**/                   0x3C44F71E, 0x3FF26F83,
+/**/                   0xB4D92F91, 0x3FFFB5EA,
+/**/                   0x55A779C8, 0x400F5C4F,
+/**/                   0xA66A7536, 0x4020791F,
+/**/                   0x7DCE5D75, 0x40322428,
+/**/                   0x964F770B, 0x3CADE7E8,
+/**/                   0xDD7FD12C, 0x3FE654DA,
+/**/                   0x00000000, 0x3FF50000,
+/**/                   0xFC42374B, 0xBF7E472D,
+/**/                   0x00000000, 0x3FE4B000,
+/**/                   0x8F87D541, 0x3FF4F8CB,
+/**/                   0x767620C4, 0x3FE74B0D,
+/**/                   0x9126F083, 0x3FF2F0D8,
+/**/                   0x73F08794, 0x40007BB3,
+/**/                   0xE1419117, 0x401079EB,
+/**/                   0xA917F81E, 0x40218062,
+/**/                   0x48444DEE, 0x40337C6B,
+/**/                   0xF4061E08, 0x3C907A41,
+/**/                   0x4F31AF70, 0x3FE67EB5,
+/**/                   0x00000000, 0x3FF50000,
+/**/                   0xE0AAFA85, 0xBF5CD1C1,
+/**/                   0x00000000, 0x3FE4D000,
+/**/                   0xF4B2718C, 0x3FF5104F,
+/**/                   0x59659939, 0x3FE7BE43,
+/**/                   0x5502EAE6, 0x3FF37754,
+/**/                   0x6AE0AC51, 0x400124A6,
+/**/                   0x33524D17, 0x4011527B,
+/**/                   0x7FBF7A2D, 0x40229B46,
+/**/                   0xAD716768, 0x4034F274,
+/**/                   0x7C204EA8, 0xBC9C610F,
+/**/                   0x57825A6C, 0x3FE6A8BE,
+/**/                   0x00000000, 0x3FF50000,
+/**/                   0xB2718C01, 0x3F704FF4,
+/**/                   0x00000000, 0x3FE4F000,
+/**/                   0x288C017D, 0x3FF52849,
+/**/                   0x3E6D3F7F, 0x3FE834B0,
+/**/                   0x3B0747CB, 0x3FF4033A,
+/**/                   0xE946B196, 0x4001D652,
+/**/                   0x3C2F8CB4, 0x401238CB,
+/**/                   0x53E520C1, 0x4023CB80,
+/**/                   0x607BC0F6, 0x40368938,
+/**/                   0xCC053597, 0xBC84274C,
+/**/                   0xDCE2DFB8, 0x3FE6D2F6,
+/**/                   0x00000000, 0x3FF54000,
+/**/                   0x73FE8364, 0xBF77B6D7,
+/**/                   0x00000000, 0x3FE51000,
+/**/                   0x729BE713, 0x3FF540BA,
+/**/                   0x781F49A2, 0x3FE8AE75,
+/**/                   0x432AC103, 0x3FF494D2,
+/**/                   0x9B0015B6, 0x40029147,
+/**/                   0x156B74E9, 0x40132DE7,
+/**/                   0xE8362EC8, 0x402512F0,
+/**/                   0xC8D2E0F8, 0x403843FE,
+/**/                   0xBB3ACC53, 0xBC8F55DB,
+/**/                   0xCC3296F0, 0x3FE6FD5F,
+/**/                   0x00000000, 0x3FF54000,
+/**/                   0x7CE2565E, 0x3F274E53,
+/**/                   0x00000000, 0x3FE53000,
+/**/                   0x3C98A101, 0x3FF559A7,
+/**/                   0x16C3163D, 0x3FE92BB6,
+/**/                   0x0DB2C44D, 0x3FF52C69,
+/**/                   0x0F4546B8, 0x4003561E,
+/**/                   0x7F099A82, 0x401432F1,
+/**/                   0x831E227A, 0x402673A9,
+/**/                   0xA02BBCD5, 0x403A266F,
+/**/                   0xAEA9CB9D, 0x3CA279A8,
+/**/                   0x1901CB44, 0x3FE727FA,
+/**/                   0x00000000, 0x3FF54000,
+/**/                   0x98A10084, 0x3F79A73C,
+/**/                   0x00000000, 0x3FE55000,
+/**/                   0x1433B9BD, 0x3FF57313,
+/**/                   0x0523E7B2, 0x3FE9AC97,
+/**/                   0x361F7393, 0x3FF5CA50,
+/**/                   0xB0F40825, 0x4004257B,
+/**/                   0x46286025, 0x40154927,
+/**/                   0x781495B4, 0x4027EFF1,
+/**/                   0x0A1139F1, 0x403C349E,
+/**/                   0x8B6015DA, 0xBC5D2C66,
+/**/                   0xBDD7E0E0, 0x3FE752C6,
+/**/                   0x00000000, 0x3FF58000,
+/**/                   0x988C865F, 0xBF69D9D7,
+/**/                   0x00000000, 0x3FE57000,
+/**/                   0xAD039E07, 0x3FF58D01,
+/**/                   0x279933CD, 0x3FEA313F,
+/**/                   0xB63D93A6, 0x3FF66EDE,
+/**/                   0xD836441A, 0x40050012,
+/**/                   0xF23D152C, 0x401671E1,
+/**/                   0x65D3A1DD, 0x40298A4C,
+/**/                   0x5EBDBF39, 0x403E7316,
+/**/                   0x7AAA4996, 0xBCAE5B6C,
+/**/                   0xBC7D2FA0, 0x3FE77DC6,
+/**/                   0x00000000, 0x3FF58000,
+/**/                   0x073C0E86, 0x3F6A035A,
+/**/                   0x00000000, 0x3FE59000,
+/**/                   0xE28DADB6, 0x3FF5A776,
+/**/                   0x7D7BE2B5, 0x3FEAB9D7,
+/**/                   0x5234C8A9, 0x3FF71A71,
+/**/                   0xF873554C, 0x4005E6A3,
+/**/                   0xC1F33F9B, 0x4017AE9A,
+/**/                   0x4310046E, 0x402B4581,
+/**/                   0xF64B03E7, 0x40407376,
+/**/                   0xB3AB0542, 0xBCA3F39B,
+/**/                   0x1E48D158, 0x3FE7A8FB,
+/**/                   0x00000000, 0x3FF5C000,
+/**/                   0x725249CA, 0xBF78891D,
+/**/                   0x00000000, 0x3FE5B000,
+/**/                   0xBA730F9B, 0x3FF5C276,
+/**/                   0x454127C3, 0x3FEB468B,
+/**/                   0x0E816ADB, 0x3FF7CD6B,
+/**/                   0xEDDAC837, 0x4006D9FE,
+/**/                   0x0209E3B7, 0x401900EE,
+/**/                   0x57489C7E, 0x402D24A2,
+/**/                   0x7F810E14, 0x4041CAEA,
+/**/                   0x24F9675B, 0xBC84F20E,
+/**/                   0xF472A690, 0x3FE7D464,
+/**/                   0x00000000, 0x3FF5C000,
+/**/                   0x987CD623, 0x3F43B5D3,
+/**/                   0x00000000, 0x3FE5D000,
+/**/                   0x66C30CDC, 0x3FF5DE05,
+/**/                   0x23798D1A, 0x3FEBD788,
+/**/                   0xB0E567D8, 0x3FF88835,
+/**/                   0x6E46660A, 0x4007DB04,
+/**/                   0xCA07CAA5, 0x401A6A9E,
+/**/                   0x41ECEF64, 0x402F2B16,
+/**/                   0xC36F367B, 0x40434315,
+/**/                   0x542594A6, 0xBCA08CA1,
+/**/                   0x5869D9E8, 0x3FE80005,
+/**/                   0x00000000, 0x3FF5C000,
+/**/                   0xC30CDBD9, 0x3F7E0566,
+/**/                   0x00000000, 0x3FE5F000,
+/**/                   0x4875FA03, 0x3FF5FA27,
+/**/                   0x4CF96D63, 0x3FEC6CFE,
+/**/                   0x4D7B8313, 0x3FF94B42,
+/**/                   0xA1B04592, 0x4008EAA7,
+/**/                   0x2C5A9D87, 0x401BED9B,
+/**/                   0x1BC92F68, 0x4030AE51,
+/**/                   0x685FBD64, 0x4044DF8C,
+/**/                   0x30FE6378, 0xBCAC07A8,
+/**/                   0x6C30303C, 0x3FE82BDD,
+/**/                   0x00000000, 0x3FF60000,
+/**/                   0x2817F40C, 0xBF5762DE,
+/**/                   0x00000000, 0x3FE61000,
+/**/                   0xF213FCD6, 0x3FF616E0,
+/**/                   0xB47784FF, 0x3FED0720,
+/**/                   0xE13C6707, 0x3FFA1709,
+/**/                   0xE70B2E72, 0x400A09EF,
+/**/                   0xE976AAD9, 0x401D8C00,
+/**/                   0xD1AE1EA8, 0x4031DEBA,
+/**/                   0x6424341F, 0x4046A453,
+/**/                   0xA65D40B1, 0x3CA13E53,
+/**/                   0x5ABA79E8, 0x3FE857EE,
+/**/                   0x00000000, 0x3FF60000,
+/**/                   0x13FCD614, 0x3F76E0F2,
+/**/                   0x00000000, 0x3FE63000,
+/**/                   0x2A8B4ED8, 0x3FF63437,
+/**/                   0x3BF69915, 0x3FEDA625,
+/**/                   0xFB6DF86F, 0x3FFAEC0D,
+/**/                   0xCAF2D64B, 0x400B39FA,
+/**/                   0xB7E2DC06, 0x401F4822,
+/**/                   0xB12537E3, 0x4033291B,
+/**/                   0xAF3EF0D1, 0x404895F0,
+/**/                   0x71E7ED76, 0x3CAEA588,
+/**/                   0x5856807C, 0x3FE88439,
+/**/                   0x00000000, 0x3FF64000,
+/**/                   0xE9624F1C, 0xBF6791AA,
+/**/                   0x00000000, 0x3FE65000,
+/**/                   0xF039F5E3, 0x3FF6522E,
+/**/                   0xEA588E54, 0x3FEE4A44,
+/**/                   0x77A3F8A4, 0x3FFBCAD9,
+/**/                   0x3669F2F2, 0x400C7BFE,
+/**/                   0x1AEA54A4, 0x40209247,
+/**/                   0x6B866959, 0x4034900A,
+/**/                   0x620634CF, 0x404AB97D,
+/**/                   0xDA91B0FD, 0x3C948649,
+/**/                   0xA316D3A0, 0x3FE8B0BF,
+/**/                   0x00000000, 0x3FF64000,
+/**/                   0x39F5E2AD, 0x3F722EF0,
+/**/                   0x00000000, 0x3FE67000,
+/**/                   0x7C2F4FC3, 0x3FF670CD,
+/**/                   0x2583CF60, 0x3FEEF3BC,
+/**/                   0x4A2E1684, 0x3FFCB401,
+/**/                   0xDCB9F8FB, 0x400DD14A,
+/**/                   0x4E164373, 0x40219209,
+/**/                   0x8FC171BC, 0x40361669,
+/**/                   0xA46B7BE1, 0x404D14BA,
+/**/                   0xBBDFE65A, 0xBCABAC31,
+/**/                   0x8344E08C, 0x3FE8DD82,
+/**/                   0x00000000, 0x3FF68000,
+/**/                   0xA1607A77, 0xBF6E6507,
+/**/                   0x00000000, 0x3FE69000,
+/**/                   0x45AA3C85, 0x3FF69018,
+/**/                   0xF18FBD18, 0x3FEFA2CA,
+/**/                   0x610C140E, 0x3FFDA825,
+/**/                   0xF08895E1, 0x400F3B4E,
+/**/                   0x272CD203, 0x4022A4E4,
+/**/                   0x60C4A0EE, 0x4037BF71,
+/**/                   0xEC79351D, 0x404FAE29,
+/**/                   0x3E22FB0A, 0x3C6BF5BB,
+/**/                   0x4BD9C858, 0x3FE90A83,
+/**/                   0x00000000, 0x3FF68000,
+/**/                   0xAA3C8533, 0x3F701845,
+/**/                   0x00000000, 0x3FE6B000,
+/**/                   0x05D92E4E, 0x3FF6B015,
+/**/                   0x9ABD20D8, 0x3FF02BDA,
+/**/                   0x9BC5CC13, 0x3FFEA7F1,
+/**/                   0x94AFB2BB, 0x40105DCC,
+/**/                   0xB382B54A, 0x4023CC8C,
+/**/                   0x19C28EAE, 0x40398EBB,
+/**/                   0x8F7609B5, 0x40514694,
+/**/                   0xF66137E5, 0x3C9CD223,
+/**/                   0x5AFE73AC, 0x3FE937C3,
+/**/                   0x00000000, 0x3FF6C000,
+/**/                   0x4DA36334, 0xBF6FD5F4,
+/**/                   0x00000000, 0x3FE6D000,
+/**/                   0xBBE1EF2B, 0x3FF6D0C9,
+/**/                   0x82FBDD29, 0x3FF08961,
+/**/                   0xDCD403EC, 0x3FFFB41E,
+/**/                   0x121D0023, 0x401129EE,
+/**/                   0xB34159B2, 0x40250AE5,
+/**/                   0xDB5CEAC4, 0x403B884D,
+/**/                   0xA0B334B0, 0x4052DD09,
+/**/                   0xD8F14BF9, 0xBC96BF1D,
+/**/                   0x1A936D24, 0x3FE96544,
+/**/                   0x00000000, 0x3FF6C000,
+/**/                   0xE1EF2AEE, 0x3F70C9BB,
+/**/                   0x00000000, 0x3FE6F000,
+/**/                   0xB13786CF, 0x3FF6F23C,
+/**/                   0x7B7FC134, 0x3FF0EA20,
+/**/                   0x1BD0D518, 0x400066BA,
+/**/                   0x159EC945, 0x401202F9,
+/**/                   0x16FF868A, 0x40266205,
+/**/                   0x87398014, 0x403DB0AD,
+/**/                   0x47D58711, 0x40549F33,
+/**/                   0x54B11A28, 0x3C8D858F,
+/**/                   0x00C1184C, 0x3FE99307,
+/**/                   0x00000000, 0x3FF70000,
+/**/                   0x90F2626A, 0xBF6B869D,
+/**/                   0x00000000, 0x3FE71000,
+/**/                   0x7E455603, 0x3FF71474,
+/**/                   0x3A65655F, 0x3FF14E40,
+/**/                   0x1F4AA7A1, 0x4000FA64,
+/**/                   0xB946C70A, 0x4012E9F0,
+/**/                   0x3CC53936, 0x4027D43A,
+/**/                   0xEE087279, 0x40400675,
+/**/                   0x77313CEF, 0x40569278,
+/**/                   0x772D6E62, 0xBCAB1BA1,
+/**/                   0x9090E874, 0x3FE9C10D,
+/**/                   0x00000000, 0x3FF70000,
+/**/                   0x455602D3, 0x3F74747E,
+/**/                   0x00000000, 0x3FE73000,
+/**/                   0x0F773DEC, 0x3FF73778,
+/**/                   0x1288B243, 0x3FF1B5EC,
+/**/                   0x3A853FA5, 0x40019581,
+/**/                   0x6D2743E5, 0x4013DFF0,
+/**/                   0x09B4B924, 0x40296415,
+/**/                   0x19A59D1F, 0x4041515E,
+/**/                   0xF3E53877, 0x4058BD01,
+/**/                   0xFC348BAE, 0x3C962269,
+/**/                   0x5A90493C, 0x3FE9EF59,
+/**/                   0x00000000, 0x3FF74000,
+/**/                   0x11842743, 0xBF610FE1,
+/**/                   0x00000000, 0x3FE75000,
+/**/                   0xAAA78140, 0x3FF75B4E,
+/**/                   0x28B49576, 0x3FF22152,
+/**/                   0x74D66746, 0x4002388E,
+/**/                   0xA43083A8, 0x4014E62E,
+/**/                   0x02885ED7, 0x402B146E,
+/**/                   0x29A3BC2C, 0x4042BC45,
+/**/                   0xCDAFE7E5, 0x405B25D8,
+/**/                   0xF03F8A74, 0x3CA8862D,
+/**/                   0xFD7DFBD8, 0x3FEA1DEB,
+/**/                   0x00000000, 0x3FF74000,
+/**/                   0xA7813FBA, 0x3F7B4EAA,
+/**/                   0x00000000, 0x3FE77000,
+/**/                   0xF4FC0008, 0x3FF77FFF,
+/**/                   0xADE499E4, 0x3FF290A3,
+/**/                   0xFF22FE11, 0x4002E412,
+/**/                   0xD7A17943, 0x4015FDFF,
+/**/                   0x8AF79AEF, 0x402CE86F,
+/**/                   0x6F8EDF86, 0x40444ACA,
+/**/                   0x29CF9F92, 0x405DD50A,
+/**/                   0xC5865233, 0x3CA49DB0,
+/**/                   0x2702BD90, 0x3FEA4CC7,
+/**/                   0x00000000, 0x3FF78000,
+/**/                   0xF08268E1, 0xBE6607FF,
+/**/                   0x00000000, 0x3FE79000,
+/**/                   0xF93D7FBC, 0x3FF7A593,
+/**/                   0x1F293A81, 0x3FF30415,
+/**/                   0x31649EA4, 0x400398A1,
+/**/                   0xED75DA1E, 0x401728D9,
+/**/                   0x7B1736CA, 0x402EE3A0,
+/**/                   0x036EC9D4, 0x40460106,
+/**/                   0xB3E5A09F, 0x406069E8,
+/**/                   0x4E8EB882, 0xBCA79BBD,
+/**/                   0x94762100, 0x3FEA7BEC,
+/**/                   0x00000000, 0x3FF7C000,
+/**/                   0xC280445C, 0xBF7A6C06,
+/**/                   0x00000000, 0x3FE7B000,
+/**/                   0x2EB4E536, 0x3FF7CC13,
+/**/                   0x8BD25D7D, 0x3FF37BDE,
+/**/                   0xA51DF797, 0x400456D7,
+/**/                   0x103AF33E, 0x40186858,
+/**/                   0x21121C2E, 0x403084F8,
+/**/                   0x9D7C6DE3, 0x4047E39A,
+/**/                   0xEF4C9A12, 0x40621664,
+/**/                   0x39DB72FF, 0x3C804D2D,
+/**/                   0x13B099B0, 0x3FEAAB5E,
+/**/                   0x00000000, 0x3FF7C000,
+/**/                   0x69CA6C2F, 0x3F68265D,
+/**/                   0x00000000, 0x3FE7D000,
+/**/                   0x809BA1CD, 0x3FF7F386,
+/**/                   0xE298B2EB, 0x3FF3F83B,
+/**/                   0x708A6ABE, 0x40051F62,
+/**/                   0x090F77AB, 0x4019BE3F,
+/**/                   0x6C13BF38, 0x4031AFE2,
+/**/                   0x65FF02A8, 0x4049F7CA,
+/**/                   0xDA840FE0, 0x4063F614,
+/**/                   0xAB5D1A54, 0xBCA7BDE9,
+/**/                   0x83EBD320, 0x3FEADB1D,
+/**/                   0x00000000, 0x3FF80000,
+/**/                   0xC8BC6562, 0xBF68F2FE,
+/**/                   0x00000000, 0x3FE7F000,
+/**/                   0x562E1E24, 0x3FF81BF7,
+/**/                   0x469724DB, 0x3FF4796D,
+/**/                   0x86E67917, 0x4005F2FC,
+/**/                   0x2F5AE582, 0x401B2C82,
+/**/                   0x65EE1919, 0x4032F505,
+/**/                   0x4744D220, 0x404C438F,
+/**/                   0xD66309FD, 0x40661003,
+/**/                   0xFC828894, 0x3C8470C8,
+/**/                   0xD6B287DC, 0x3FEB0B2C,
+/**/                   0x00000000, 0x3FF80000,
+/**/                   0x2E1E23E5, 0x3F7BF756,
+/**/                   0x00000000, 0x3FE81000,
+/**/                   0x9B70AB1D, 0x3FF8456F,
+/**/                   0x6D01A674, 0x3FF4FFB7,
+/**/                   0x42D7B667, 0x4006D271,
+/**/                   0x05DD4055, 0x401CB549,
+/**/                   0xE490CA9B, 0x40345723,
+/**/                   0x47C5589B, 0x404ECD17,
+/**/                   0x3D6DB036, 0x40686C46,
+/**/                   0xECF23C2E, 0x4084044D,
+/**/                   0x0D173A5F, 0xBC7F0990,
+/**/                   0x10E12D3C, 0x3FEB3B8E,
+/**/                   0x00000000, 0x3FF84000,
+/**/                   0xC2AC733C, 0x3F55BE6D,
+/**/                   0x00000000, 0x3FE83000,
+/**/                   0xCAB97B9D, 0x3FF86FF9,
+/**/                   0x04A71B42, 0x3FF58B64,
+/**/                   0x20C0FB6E, 0x4007BE9E,
+/**/                   0x9B426297, 0x401E5AF5,
+/**/                   0x013C40EE, 0x4035D958,
+/**/                   0x2215E48C, 0x4050CEA9,
+/**/                   0xB8C0669A, 0x406B146B,
+/**/                   0xFB8EB0FE, 0x40868C96,
+/**/                   0x1FCCBAD4, 0x3CA55848,
+/**/                   0x4BB8EA98, 0x3FEB6C43,
+/**/                   0x00000000, 0x3FF88000,
+/**/                   0x46846319, 0xBF700635,
+/**/                   0x00000000, 0x3FE85000,
+/**/                   0xF71469BF, 0x3FF89BA0,
+/**/                   0x28717EFA, 0x3FF61CC2,
+/**/                   0xAFB7BAF7, 0x4008B874,
+/**/                   0xEC7286DB, 0x40201015,
+/**/                   0x8329A469, 0x40377F1F,
+/**/                   0x2927F0DD, 0x40525E49,
+/**/                   0x5AE80CD9, 0x406E135C,
+/**/                   0x40DF64FD, 0x40897364,
+/**/                   0x1ED91B03, 0x3C89F53B,
+/**/                   0xB6067ABC, 0x3FEB9D4E,
+/**/                   0x00000000, 0x3FF88000,
+/**/                   0x1469BF33, 0x3F7BA0F7,
+/**/                   0x00000000, 0x3FE87000,
+/**/                   0xD797DABF, 0x3FF8C870,
+/**/                   0xDE42D55F, 0x3FF6B426,
+/**/                   0xC0E06552, 0x4009C0FC,
+/**/                   0xEB059907, 0x402103EC,
+/**/                   0x49A75AA7, 0x40394C6A,
+/**/                   0xB2A496D0, 0x40541A81,
+/**/                   0x209CB693, 0x4070BAEE,
+/**/                   0x285808C5, 0x408CC860,
+/**/                   0x9B0DC6F3, 0xBCAE6D8C,
+/**/                   0x955EC1C4, 0x3FEBCEB2,
+/**/                   0x00000000, 0x3FF8C000,
+/**/                   0x2FB57EE7, 0x3F60E1AF,
+/**/                   0x00000000, 0x3FE89000,
+/**/                   0xD3C502F4, 0x3FF8F675,
+/**/                   0xA3BFB2E4, 0x3FF751ED,
+/**/                   0xDE3987BC, 0x400AD956,
+/**/                   0xB30AAD0A, 0x40220AA0,
+/**/                   0x16220014, 0x403B45AB,
+/**/                   0xEC84429C, 0x40560929,
+/**/                   0x0D747939, 0x4072A569,
+/**/                   0x5407F41E, 0x40904F10,
+/**/                   0xFC269962, 0xBC675CEB,
+/**/                   0x4773138C, 0x3FEC0071,
+/**/                   0x00000000, 0x3FF90000,
+/**/                   0x75FA1750, 0xBF631458,
+/**/                   0x00000000, 0x3FE8B000,
+/**/                   0x111125DF, 0x3FF925BD,
+/**/                   0x0AD2B4C2, 0x3FF7F679,
+/**/                   0x1359A3C8, 0x400C02BF,
+/**/                   0x88857C21, 0x40232601,
+/**/                   0x2515D90E, 0x403D6FEB,
+/**/                   0xD421145E, 0x405830FA,
+/**/                   0xFD789544, 0x4074D1D6,
+/**/                   0x4B30EBF1, 0x40928561,
+/**/                   0x7876F9D2, 0x3CA13E7B,
+/**/                   0x437F5E74, 0x3FEC328D,
+/**/                   0x00000000, 0x3FF94000,
+/**/                   0xEEDA20A4, 0xBF7A42EE,
+/**/                   0x00000000, 0x3FE8D000,
+/**/                   0x81B9477B, 0x3FF95654,
+/**/                   0x67F87779, 0x3FF8A233,
+/**/                   0x14665EA0, 0x400D3E90,
+/**/                   0x5A415747, 0x40245815,
+/**/                   0x1D7511C0, 0x403FD0E1,
+/**/                   0x01EC30FB, 0x405A99B6,
+/**/                   0xDD7EE7A1, 0x40774A72,
+/**/                   0x5C2F1724, 0x40951454,
+/**/                   0x774A5205, 0x3C8185B3,
+/**/                   0x1BD4AD0C, 0x3FEC6509,
+/**/                   0x00000000, 0x3FF94000,
+/**/                   0xB9477AC0, 0x3F765481,
+/**/                   0x00000000, 0x3FE8F000,
+/**/                   0xF50630B5, 0x3FF9884A,
+/**/                   0x94B35A8D, 0x3FF9558F,
+/**/                   0xD1A32B1D, 0x400E8E46,
+/**/                   0x0AEC68DB, 0x4025A31F,
+/**/                   0xFD21A759, 0x40413785,
+/**/                   0xF56DFCA6, 0x405D4C53,
+/**/                   0xF89C0F5F, 0x407A1B45,
+/**/                   0xC92C8CF3, 0x40980BB3,
+/**/                   0xFEB6A05E, 0xBC8696E8,
+/**/                   0x7F82B8CC, 0x3FEC97E7,
+/**/                   0x00000000, 0x3FF98000,
+/**/                   0x0C6169C6, 0x3F6095EA,
+/**/                   0x00000000, 0x3FE91000,
+/**/                   0x292BC29F, 0x3FF9BBB0,
+/**/                   0xC8E3D76B, 0x3FFA1109,
+/**/                   0x8873C480, 0x400FF386,
+/**/                   0xDE619C77, 0x402709A6,
+/**/                   0x5A9417B9, 0x4042A8E9,
+/**/                   0xBFE20B57, 0x4060299D,
+/**/                   0xE1225431, 0x407D5283,
+/**/                   0xC225406C, 0x409B7E74,
+/**/                   0x74F396DB, 0xBC879431,
+/**/                   0x3C239888, 0x3FECCB2B,
+/**/                   0x00000000, 0x3FF9C000,
+/**/                   0x50F5839F, 0xBF513F5B,
+/**/                   0x00000000, 0x3FE93000,
+/**/                   0xDEF4783D, 0x3FF9F094,
+/**/                   0x8E300736, 0x3FFAD528,
+/**/                   0xB2D4D4EE, 0x4010B80E,
+/**/                   0x3F3D0057, 0x40288E84,
+/**/                   0xD20263C0, 0x404440D4,
+/**/                   0x26E14927, 0x4061DD42,
+/**/                   0x5EF13D09, 0x4080807D,
+/**/                   0xFE9E94BE, 0x409F836C,
+/**/                   0xE5FD9D2D, 0xBC813C84,
+/**/                   0x3FCCF104, 0x3FECFED7,
+/**/                   0x00000000, 0x3FFA0000,
+/**/                   0x170F854B, 0xBF6ED642,
+/**/                   0x00000000, 0x3FE95000,
+/**/                   0xEF70C9F9, 0x3FFA270A,
+/**/                   0xD12662D9, 0x3FFBA27D,
+/**/                   0xE8433B59, 0x40118304,
+/**/                   0x1B4DD8D9, 0x402A34E9,
+/**/                   0x58AA354C, 0x4046041F,
+/**/                   0x87EB035B, 0x4063C823,
+/**/                   0x7F89A6B6, 0x40829D4E,
+/**/                   0xB4BED54D, 0x40A21B1A,
+/**/                   0xFD8283D4, 0x3C855D66,
+/**/                   0x9B2A7684, 0x3FED32EE,
+/**/                   0x00000000, 0x3FFA4000,
+/**/                   0x8F3606B9, 0xBF78F510,
+/**/                   0x00000000, 0x3FE97000,
+/**/                   0x63EA127F, 0x3FFA5F25,
+/**/                   0x1460C218, 0x3FFC79A8,
+/**/                   0x3D14975C, 0x40125BC0,
+/**/                   0x2249DB66, 0x402C006F,
+/**/                   0xED0AEFCD, 0x4047F856,
+/**/                   0x2E2028D0, 0x4065F27F,
+/**/                   0x6CE59595, 0x40850B95,
+/**/                   0x18C497E2, 0x40A4DC23,
+/**/                   0x76BA54CA, 0x3C8BDFAE,
+/**/                   0x83C60554, 0x3FED6774,
+/**/                   0x00000000, 0x3FFA4000,
+/**/                   0xEA127F53, 0x3F7F2563,
+/**/                   0x00000000, 0x3FE99000,
+/**/                   0x9061CEFE, 0x3FFA98F8,
+/**/                   0xCAA1F466, 0x3FFD5B53,
+/**/                   0xA92630E8, 0x40134379,
+/**/                   0x41E37357, 0x402DF527,
+/**/                   0xD7DE2305, 0x404A23DF,
+/**/                   0x1911C50F, 0x406865FE,
+/**/                   0xD5CE543D, 0x4087D981,
+/**/                   0x2134A322, 0x40A8192E,
+/**/                   0x4FE6DAC8, 0xBC915CF9,
+/**/                   0x56821F74, 0x3FED9C6C,
+/**/                   0x00000000, 0x3FFA8000,
+/**/                   0x61CEFDBB, 0x3F78F890,
+/**/                   0x00000000, 0x3FE9B000,
+/**/                   0x30F0DACC, 0x3FFAD49A,
+/**/                   0xDDBFEE70, 0x3FFE483C,
+/**/                   0xC4418459, 0x40143B8C,
+/**/                   0xE6E7E816, 0x40300BD5,
+/**/                   0x02EE200E, 0x404C8E1A,
+/**/                   0x83038A03, 0x406B2DFC,
+/**/                   0xD987E3D9, 0x408B1814,
+/**/                   0x8827CEFA, 0x40ABEB1E,
+/**/                   0xE22AFCE0, 0x3CA8829A,
+/**/                   0x9A4C39D0, 0x3FEDD1D9,
+/**/                   0x00000000, 0x3FFAC000,
+/**/                   0xF0DACB86, 0x3F749A30,
+/**/                   0x00000000, 0x3FE9D000,
+/**/                   0x8A66E40D, 0x3FFB1221,
+/**/                   0x692DC10A, 0x3FFF4130,
+/**/                   0x64621A80, 0x4015457C,
+/**/                   0xED2A1AB4, 0x4031369A,
+/**/                   0xBC003A70, 0x404F3F8D,
+/**/                   0x462E99D6, 0x406E57E1,
+/**/                   0xC53F5717, 0x408EDBC2,
+/**/                   0x0A71E453, 0x40B0383D,
+/**/                   0xBEDD86A9, 0x3C90AF9F,
+/**/                   0x030CF708, 0x3FEE07C0,
+/**/                   0x00000000, 0x3FFB0000,
+/**/                   0x66E40CBE, 0x3F72218A,
+/**/                   0x00000000, 0x3FE9F000,
+/**/                   0x8E9927E5, 0x3FFB51A7,
+/**/                   0x581637B3, 0x40002387,
+/**/                   0xF5B2C17E, 0x401662F7,
+/**/                   0x36EAC07E, 0x40327DDB,
+/**/                   0xC70D9C43, 0x40512110,
+/**/                   0x88C52943, 0x4070F9C4,
+/**/                   0xB1AB4848, 0x40919E9E,
+/**/                   0xB1EC7695, 0x40B2E76B,
+/**/                   0x5E9F6FD9, 0x3CAA2400,
+/**/                   0x74DD3C64, 0x3FEE3E23,
+/**/                   0x00000000, 0x3FFB4000,
+/**/                   0x9927E571, 0x3F71A78E,
+/**/                   0x00000000, 0x3FEA1000,
+/**/                   0x04E0F95F, 0x3FFB9347,
+/**/                   0xAC8DC27B, 0x4000AD66,
+/**/                   0xAE05A580, 0x401795E1,
+/**/                   0x299AA0A0, 0x4033E4FA,
+/**/                   0xA33AB75C, 0x4052D0AD,
+/**/                   0x39D64C89, 0x407309E5,
+/**/                   0x154C34C4, 0x40942D39,
+/**/                   0x59D15B1D, 0x40B61A59,
+/**/                   0x114BE565, 0xBCAFC899,
+/**/                   0x0787FD30, 0x3FEE7508,
+/**/                   0x00000000, 0x3FFB8000,
+/**/                   0xE0F95E8B, 0x3F734704,
+/**/                   0x00000000, 0x3FEA3000,
+/**/                   0xB75F37A1, 0x3FFBD71C,
+/**/                   0xFC9006E1, 0x40013EBC,
+/**/                   0xC48D2C09, 0x4018E055,
+/**/                   0xC2C8C9CD, 0x40356FD7,
+/**/                   0x6198B971, 0x4054B557,
+/**/                   0x9680F9AF, 0x4075678C,
+/**/                   0x8AF946DD, 0x40972BE5,
+/**/                   0xE1B531F9, 0x40B9EDE4,
+/**/                   0xE4527544, 0xBC447F69,
+/**/                   0x0A61AD1C, 0x3FEEAC72,
+/**/                   0x00000000, 0x3FFBC000,
+/**/                   0x5F37A0DF, 0x3F771CB7,
+/**/                   0x00000000, 0x3FEA5000,
+/**/                   0xA5B24F80, 0x3FFC1D47,
+/**/                   0x7EB9F789, 0x4001D81E,
+/**/                   0xDF42B6B7, 0x401A44B2,
+/**/                   0xB4766752, 0x403722E5,
+/**/                   0xECFADFF0, 0x4056D6EE,
+/**/                   0x8B1EB8D5, 0x40782028,
+/**/                   0xCA840144, 0x409AB0E2,
+/**/                   0xE2126BBF, 0x40BE8614,
+/**/                   0x2CC624E2, 0xBC8D9A93,
+/**/                   0x087F8D20, 0x3FEEE466,
+/**/                   0x00000000, 0x3FFC0000,
+/**/                   0xB24F8064, 0x3F7D47A5,
+/**/                   0x00000000, 0x3FEA7000,
+/**/                   0x3DE98207, 0x3FFC65E9,
+/**/                   0x811F641B, 0x40027A2E,
+/**/                   0xF223266D, 0x401BC5A3,
+/**/                   0xA6ECBE29, 0x40390340,
+/**/                   0xC3D499AF, 0x40593EB6,
+/**/                   0xAD8CC2F1, 0x407B43D9,
+/**/                   0xA519B816, 0x409ED77C,
+/**/                   0x5B3B703B, 0x40C2080A,
+/**/                   0xE993C3DD, 0x3C7B187D,
+/**/                   0xCD5A7CE8, 0x3FEF1CE8,
+/**/                   0x00000000, 0x3FFC8000,
+/**/                   0x167DF937, 0xBF7A16C2,
+/**/                   0x00000000, 0x3FEA9000,
+/**/                   0x9CA2F05E, 0x3FFCB125,
+/**/                   0x54FC4C95, 0x400325A1,
+/**/                   0xD9C5FF75, 0x401D662B,
+/**/                   0x8E93577D, 0x403B16CE,
+/**/                   0xE0E3029E, 0x405BF79A,
+/**/                   0x04BCDF91, 0x407EE612,
+/**/                   0x31EFE3F1, 0x40A1E0AC,
+/**/                   0x85DF051C, 0x40C56267,
+/**/                   0x2D0BC06E, 0xBCAD6122,
+/**/                   0x69EAB2F0, 0x3FEF55FF,
+/**/                   0x00000000, 0x3FFCC000,
+/**/                   0xBA1F43E4, 0xBF6DB4C6,
+/**/                   0x00000000, 0x3FEAB000,
+/**/                   0xD56B9F55, 0x3FFCFF23,
+/**/                   0x86149A3B, 0x4003DB3E,
+/**/                   0x0B8D0DAD, 0x401F29B3,
+/**/                   0x40E9D1A7, 0x403D6463,
+/**/                   0x619D6679, 0x405F0E89,
+/**/                   0x92CF3FBC, 0x40818F2E,
+/**/                   0x844E51BD, 0x40A4CC10,
+/**/                   0xF3A9EB60, 0x40C9762D,
+/**/                   0xEF4B1E02, 0x3CA20E79,
+/**/                   0x3A4BC01C, 0x3FEF8FAF,
+/**/                   0x00000000, 0x3FFD0000,
+/**/                   0x8C156248, 0xBF2B8552,
+/**/                   0x00000000, 0x3FEAD000,
+/**/                   0x44AAD4F2, 0x3FFD500E,
+/**/                   0x6B85DB68, 0x40049BE3,
+/**/                   0xE558F351, 0x40208A0B,
+/**/                   0xC1BCC632, 0x403FF3EC,
+/**/                   0x2A555E45, 0x40614970,
+/**/                   0xDD057F33, 0x408404AE,
+/**/                   0x22610A18, 0x40A847D9,
+/**/                   0x3C7AA2B4, 0x40CE7146,
+/**/                   0x53CA14EC, 0xBC9571D0,
+/**/                   0xEBFAA348, 0x3FEFC9FD,
+/**/                   0x00000000, 0x3FFD4000,
+/**/                   0xAAD4F267, 0x3F700E44,
+/**/                   0x00000000, 0x3FEAF000,
+/**/                   0xEC9EDC5A, 0x3FFDA412,
+/**/                   0x22B6D908, 0x40056886,
+/**/                   0xB605B3B4, 0x402194E0,
+/**/                   0x9338560C, 0x40416754,
+/**/                   0x34B16169, 0x40634B7B,
+/**/                   0x3B1BAF9C, 0x4086E508,
+/**/                   0xFB9DFBF5, 0x40AC7475,
+/**/                   0xF4B4BB01, 0x40D2473E,
+/**/                   0xE9F06EFC, 0x3CA82B31,
+/**/                   0xC2613F02, 0x3FF00278,
+/**/                   0x00000000, 0x3FFDC000,
+/**/                   0x6123A5D1, 0xBF7BED13,
+/**/                   0x00000000, 0x3FEB1000,
+/**/                   0xDF3AE0DB, 0x3FFDFB63,
+/**/                   0x08AD38CF, 0x40064239,
+/**/                   0xAA166573, 0x4022B7DB,
+/**/                   0x38210D3E, 0x4042FFB4,
+/**/                   0xFB634456, 0x40659862,
+/**/                   0xEE8F3E34, 0x408A45B4,
+/**/                   0xD39A6C6F, 0x40B0BD59,
+/**/                   0x2B4867E8, 0x40D60CCD,
+/**/                   0x1CBB85B3, 0xBCA6097F,
+/**/                   0x3537E800, 0x3FF02048,
+/**/                   0x00000000, 0x3FFE0000,
+/**/                   0x147C93ED, 0xBF527083,
+/**/                   0x00000000, 0x3FEB3000,
+/**/                   0xB70F5F72, 0x3FFE5637,
+/**/                   0xCA935102, 0x40072A2E,
+/**/                   0x43559218, 0x4023F5DE,
+/**/                   0xB4E19CA3, 0x4044C96E,
+/**/                   0x1272DDA3, 0x40683D62,
+/**/                   0xC6BFAAED, 0x408E4135,
+/**/                   0x099FB249, 0x40B3C717,
+/**/                   0xD5294F7D, 0x40DABA6D,
+/**/                   0xC91FFA21, 0x3CA488B1,
+/**/                   0xB5B309E0, 0x3FF03E70,
+/**/                   0x00000000, 0x3FFE4000,
+/**/                   0x0F5F723E, 0x3F7637B7,
+/**/                   0x00000000, 0x3FEB5000,
+/**/                   0x21D4B842, 0x3FFEB4CA,
+/**/                   0x2BE08FC5, 0x400821BF,
+/**/                   0x6A6A3BD0, 0x40255238,
+/**/                   0xBAC907E2, 0x4046CC00,
+/**/                   0x94202458, 0x406B4A78,
+/**/                   0xFE065CA6, 0x40917C35,
+/**/                   0xE8D5B845, 0x40B77848,
+/**/                   0x0CD72D76, 0x40E04820,
+/**/                   0x9CBE508B, 0x3CA54B6E,
+/**/                   0xE41C2ACE, 0x3FF05CF5,
+/**/                   0x00000000, 0x3FFEC000,
+/**/                   0x568F7C18, 0xBF666BBC,
+/**/                   0x00000000, 0x3FEB7000,
+/**/                   0x7FB6EB26, 0x3FFF175C,
+/**/                   0xA7BA9C35, 0x40092A6C,
+/**/                   0x80F5BA9F, 0x4026D0BC,
+/**/                   0x33BD74FB, 0x40491048,
+/**/                   0x61FCE21F, 0x406ED319,
+/**/                   0x60DF5AED, 0x40944A2E,
+/**/                   0x1AC97175, 0x40BBFAFC,
+/**/                   0xC3A8BC22, 0x40E3F145,
+/**/                   0xA70A42D9, 0xBC994B5D,
+/**/                   0x9F358760, 0x3FF07BDB,
+/**/                   0x00000000, 0x3FFF0000,
+/**/                   0xB6EB2582, 0x3F775C7F,
+/**/                   0x00000000, 0x3FEB9000,
+/**/                   0x9B29492C, 0x3FFF7E36,
+/**/                   0x1C35AD8A, 0x400A45EB,
+/**/                   0xC8373BB1, 0x402875D7,
+/**/                   0x885E6AE6, 0x404BA0D1,
+/**/                   0x0831631E, 0x40717784,
+/**/                   0x7F51DA78, 0x4097A441,
+/**/                   0x6D7642FB, 0x40C0C2B2,
+/**/                   0x594961FB, 0x40E89073,
+/**/                   0x96CDC181, 0xBCA5DECE,
+/**/                   0x0A46374E, 0x3FF09B26,
+/**/                   0x00000000, 0x3FFF8000,
+/**/                   0x6B6D3D05, 0xBF3C964D,
+/**/                   0x00000000, 0x3FEBB000,
+/**/                   0x7DD9B1CF, 0x3FFFE9A7,
+/**/                   0xB9AE77AF, 0x400B7627,
+/**/                   0x3338306D, 0x402A46B0,
+/**/                   0xA0CAACE9, 0x404E8A38,
+/**/                   0x864F53A2, 0x4073DDBB,
+/**/                   0xD6C97F8D, 0x409BAAF0,
+/**/                   0xDFAE5A98, 0x40C42EEF,
+/**/                   0xE19501DA, 0x40EE701A,
+/**/                   0xC7D3D675, 0x3C9CC4F4,
+/**/                   0x93EC49AE, 0x3FF0BAD9,
+/**/                   0x00000000, 0x40000000,
+/**/                   0x264E310D, 0xBF765882,
+/**/                   0x00000000, 0x3FEBD000,
+/**/                   0x34302F3B, 0x40002D03,
+/**/                   0x7F5AAF0D, 0x400CBD52,
+/**/                   0x0C635C0A, 0x402C4949,
+/**/                   0xB6BB1732, 0x4050EDD1,
+/**/                   0x9691A9F4, 0x4076AE3D,
+/**/                   0x61482FC6, 0x40A043C7,
+/**/                   0xF81EB6E0, 0x40C87037,
+/**/                   0xE84FE55E, 0x40F2FA30,
+/**/                   0x228FC41D, 0xBC9820F1,
+/**/                   0xFDD4AE68, 0x3FF0DAFA,
+/**/                   0x00000000, 0x40002000,
+/**/                   0x605E76B0, 0x3F7A0668,
+/**/                   0x00000000, 0x3FEBF000,
+/**/                   0xF9C947A3, 0x400067D9,
+/**/                   0xA1722882, 0x400E1DE9,
+/**/                   0x41FE0247, 0x402E84B0,
+/**/                   0xDBD1D676, 0x4052D3AE,
+/**/                   0xE088BEF5, 0x4079FF78,
+/**/                   0x64D9A484, 0x40A33780,
+/**/                   0x1974F9B5, 0x40CDC32D,
+/**/                   0xCE268611, 0x40F7D295,
+/**/                   0xD437D23F, 0xBCA5A192,
+/**/                   0x657EFDCA, 0x3FF0FB8F,
+/**/                   0x00000000, 0x40006000,
+/**/                   0x251E8CF3, 0x3F6F67E7,
+/**/                   0x00000000, 0x3FEC1000,
+/**/                   0xB1FFFA6D, 0x4000A58D,
+/**/                   0x4E7307C3, 0x400F9AC7,
+/**/                   0x5EA15962, 0x4030809B,
+/**/                   0x5418E1B6, 0x405501D0,
+/**/                   0xB476D79F, 0x407DED80,
+/**/                   0x37F33D5F, 0x40A6D2BF,
+/**/                   0xA43F6C6F, 0x40D23C31,
+/**/                   0xDB17BBAA, 0x40FE1E46,
+/**/                   0x41D8AD56, 0xBCA7EB62,
+/**/                   0x4E3ADE0A, 0x3FF11C9C,
+/**/                   0x00000000, 0x4000A000,
+/**/                   0xFFE9B457, 0x3F6636C7,
+/**/                   0x00000000, 0x3FEC3000,
+/**/                   0x1D1BDCC6, 0x4000E65A,
+/**/                   0x3503CCCE, 0x40109B99,
+/**/                   0x7580EC24, 0x4031E45B,
+/**/                   0x1803E176, 0x405785CA,
+/**/                   0x8458A77D, 0x40814DDB,
+/**/                   0x6C115AB7, 0x40AB41D9,
+/**/                   0xD7BCE584, 0x40D67DF0,
+/**/                   0xF5487646, 0x41032EF5,
+/**/                   0xF3631254, 0xBC9C4040,
+/**/                   0xAC964DA8, 0x3FF13E27,
+/**/                   0x00000000, 0x4000E000,
+/**/                   0x6F731770, 0x3F696874,
+/**/                   0x00000000, 0x3FEC5000,
+/**/                   0x068FBCB4, 0x40012A82,
+/**/                   0x7FE89A5F, 0x40117B79,
+/**/                   0xD37F3897, 0x40337376,
+/**/                   0xDF3B47A2, 0x405A704E,
+/**/                   0xEB114449, 0x40841B83,
+/**/                   0x8D323120, 0x40B05F75,
+/**/                   0x8AE65DDD, 0x40DBEFEC,
+/**/                   0xD1814341, 0x4108A2A2,
+/**/                   0xFB25EC76, 0x3CA3E83D,
+/**/                   0xF37FFEDA, 0x3FF16037,
+/**/                   0x00000000, 0x40012000,
+/**/                   0x1F796787, 0x3F75040D,
+/**/                   0x00000000, 0x3FEC7000,
+/**/                   0x5F8F574B, 0x40017250,
+/**/                   0xB566493D, 0x40126F35,
+/**/                   0x95186E3D, 0x403534F5,
+/**/                   0x947D5EA5, 0x405DD60B,
+/**/                   0x568C5D73, 0x40877C77,
+/**/                   0xA26261F0, 0x40B3CB66,
+/**/                   0xBF32194D, 0x40E17B06,
+/**/                   0x11490E42, 0x410FE921,
+/**/                   0x5376CB61, 0xBCA34428,
+/**/                   0x236FE314, 0x3FF182D4,
+/**/                   0x00000000, 0x40018000,
+/**/                   0xE15169A9, 0xBF7B5F40,
+/**/                   0x00000000, 0x3FEC9000,
+/**/                   0x91B4C8D8, 0x4001BE19,
+/**/                   0xBE69BAE6, 0x4013795B,
+/**/                   0xCD6F8B02, 0x40373151,
+/**/                   0xD86A7BFF, 0x4060E864,
+/**/                   0x515F5BD6, 0x408B95CC,
+/**/                   0xD070B4A1, 0x40B8180C,
+/**/                   0xC9B24D80, 0x40E60D2C,
+/**/                   0xAA392CAF, 0x4114DBF6,
+/**/                   0xF5844C55, 0xBCA89BD0,
+/**/                   0xDBFAF236, 0x3FF1A603,
+/**/                   0x00000000, 0x4001C000,
+/**/                   0xB37285FC, 0xBF4E66E4,
+/**/                   0x00000000, 0x3FECB000,
+/**/                   0x1757F6B1, 0x40020E3D,
+/**/                   0xAE890640, 0x40149CE9,
+/**/                   0xD6174F60, 0x403972D4,
+/**/                   0x8C82DF92, 0x40634079,
+/**/                   0xACAB5569, 0x40904BE6,
+/**/                   0xB362E75A, 0x40BD8A99,
+/**/                   0x389374DC, 0x40EC0ED7,
+/**/                   0xCA5E9653, 0x411B8ADF,
+/**/                   0x4A1E3E49, 0xBC80CBC7,
+/**/                   0x704F5D26, 0x3FF1C9CF,
+/**/                   0x00000000, 0x40020000,
+/**/                   0xAFED62A2, 0x3F7C7A2E,
+/**/                   0x00000000, 0x3FECD000,
+/**/                   0x6B3395AA, 0x40026327,
+/**/                   0x33FB1467, 0x4015DD66,
+/**/                   0xDCF3437C, 0x403C0610,
+/**/                   0xC9D7C47A, 0x406607CE,
+/**/                   0xA330DC5C, 0x409360FB,
+/**/                   0x38A3194B, 0x40C240B4,
+/**/                   0xBAA6A879, 0x40F20437,
+/**/                   0x04D6F19C, 0x41226106,
+/**/                   0x15E5252C, 0x3CABCCF5,
+/**/                   0xFF35681A, 0x3FF1EE3F,
+/**/                   0x00000000, 0x40026000,
+/**/                   0x9CAD4CE9, 0x3F593B59,
+/**/                   0x00000000, 0x3FECF000,
+/**/                   0x664A8350, 0x4002BD54,
+/**/                   0x945190A0, 0x40173EFF,
+/**/                   0xC7CC5224, 0x403EFA80,
+/**/                   0x896F1658, 0x406958AA,
+/**/                   0x4FD54E04, 0x40973450,
+/**/                   0x4CD60C4A, 0x40C6BF55,
+/**/                   0x3EFFD07C, 0x40F75EBE,
+/**/                   0x9E2E6981, 0x4128D03C,
+/**/                   0xC8A488FF, 0xBC987CEE,
+/**/                   0x8F597306, 0x3FF2135F,
+/**/                   0x00000000, 0x4002C000,
+/**/                   0xABE583FE, 0xBF555CCD,
+/**/                   0x00000000, 0x3FED1000,
+/**/                   0x2A40EA5C, 0x40031D52,
+/**/                   0x52B4947D, 0x4018C6B3,
+/**/                   0x5D01146E, 0x404131AE,
+/**/                   0x0163E71C, 0x406D54FB,
+/**/                   0xEF3ED15B, 0x409BFE8A,
+/**/                   0xA33A6B00, 0x40CC9C28,
+/**/                   0x1456E1A6, 0x40FEA523,
+/**/                   0xFC8790DB, 0x4130F60F,
+/**/                   0x6FABCA41, 0x3CAC104F,
+/**/                   0x30D87C68, 0x3FF23939,
+/**/                   0x00000000, 0x40032000,
+/**/                   0xF8AD1CF9, 0xBF556EAD,
+/**/                   0x00000000, 0x3FED3000,
+/**/                   0xC053C623, 0x400383C4,
+/**/                   0x6ADBFF2C, 0x401A7A81,
+/**/                   0xE219A24E, 0x40432C5B,
+/**/                   0x30F4B8D8, 0x40711484,
+/**/                   0xBC59423E, 0x40A10659,
+/**/                   0x3D537AE5, 0x40D22C09,
+/**/                   0xA4B7D930, 0x410454A2,
+/**/                   0xC151F3C3, 0x41378151,
+/**/                   0x779E9951, 0xBCA2F226,
+/**/                   0x254E3F9C, 0x3FF25FD9,
+/**/                   0x00000000, 0x40038000,
+/**/                   0x9E311A8B, 0x3F5E2602,
+/**/                   0x00000000, 0x3FED5000,
+/**/                   0xA2F65F8C, 0x4003F16A,
+/**/                   0x36C0308E, 0x401C61AF,
+/**/                   0x5337FF7D, 0x40457C82,
+/**/                   0x7FB84BA9, 0x407407A3,
+/**/                   0x4C74DEA7, 0x40A4E476,
+/**/                   0xDF1C2124, 0x40D75638,
+/**/                   0xA2556E94, 0x410B5320,
+/**/                   0x7D68ABBE, 0x414087CD,
+/**/                   0x73A87AB9, 0xBCACD58C,
+/**/                   0x10017B06, 0x3FF2874D,
+/**/                   0x00000000, 0x40040000,
+/**/                   0x1340E849, 0xBF7D2ABA,
+/**/                   0x00000000, 0x3FED7000,
+/**/                   0x7BA9A810, 0x40046722,
+/**/                   0xCBC74735, 0x401E851F,
+/**/                   0xF3879985, 0x40483596,
+/**/                   0xCD297F00, 0x4077AAEB,
+/**/                   0x31669F50, 0x40A9E3C8,
+/**/                   0xB7CBB664, 0x40DE5420,
+/**/                   0xB75100A0, 0x41129F7B,
+/**/                   0x51D127BF, 0x4147A1C1,
+/**/                   0x46D9C78F, 0x3CAC647E,
+/**/                   0x304962AE, 0x3FF2AFA4,
+/**/                   0x00000000, 0x40046000,
+/**/                   0xA6A041C9, 0x3F6C89EE,
+/**/                   0x00000000, 0x3FED9000,
+/**/                   0x7A99A835, 0x4004E5F2,
+/**/                   0x15B0232D, 0x402077E5,
+/**/                   0xEE468866, 0x404B70C1,
+/**/                   0x43A041C3, 0x407C334A,
+/**/                   0x53D2C164, 0x40B036D1,
+/**/                   0x10CCEDBE, 0x40E3F7B1,
+/**/                   0xF6C2E560, 0x4119C160,
+/**/                   0x6D21D20F, 0x415131DD,
+/**/                   0x2EC50766, 0x41878683,
+/**/                   0xD1134ECC, 0xBCA95596,
+/**/                   0xA8F4B028, 0x3FF2D8EF,
+/**/                   0x00000000, 0x4004E000,
+/**/                   0x66A0D2C7, 0x3F67C9EA,
+/**/                   0x00000000, 0x3FEDB000,
+/**/                   0xD6373B90, 0x40056F11,
+/**/                   0xC3747DF3, 0x4021D7AC,
+/**/                   0x6A014D6F, 0x404F4EF3,
+/**/                   0x505C454B, 0x4080F4C4,
+/**/                   0x214975C5, 0x40B48D16,
+/**/                   0xF57BFAC6, 0x40EAACFD,
+/**/                   0x5225A6ED, 0x41222235,
+/**/                   0xACBA67AB, 0x41598643,
+/**/                   0xDE5D19B9, 0x419267B9,
+/**/                   0x42C92439, 0xBCAEF63C,
+/**/                   0xD86BED76, 0x3FF30342,
+/**/                   0x00000000, 0x40056000,
+/**/                   0x6E771F48, 0x3F7E23AC,
+/**/                   0x00000000, 0x3FEDD000,
+/**/                   0x3D2D8CF1, 0x400603F5,
+/**/                   0xEF4A10FA, 0x40236A84,
+/**/                   0x4EA265AF, 0x4051FDF3,
+/**/                   0xD944F636, 0x408499B5,
+/**/                   0x37F73BAC, 0x40BA64B8,
+/**/                   0x259B27FC, 0x40F21B9F,
+/**/                   0x265D5B9F, 0x412A0669,
+/**/                   0x3DC806E2, 0x41635D8E,
+/**/                   0x36AD8B00, 0x419D8657,
+/**/                   0x3FFCDCA3, 0x3CA4CEEB,
+/**/                   0xC69D2D10, 0x3FF32EB3,
+/**/                   0x00000000, 0x40060000,
+/**/                   0x6C678625, 0x3F5FA9E9,
+/**/                   0x00000000, 0x3FEDF000,
+/**/                   0x5FCDF915, 0x4006A65F,
+/**/                   0x68321BDA, 0x40253B6E,
+/**/                   0x706E8DA9, 0x4054D949,
+/**/                   0x4A70D2D7, 0x408950EF,
+/**/                   0x1F15E14E, 0x40C13319,
+/**/                   0x846A9BD5, 0x40F907B1,
+/**/                   0x17C39016, 0x4133139C,
+/**/                   0xBC86F11B, 0x416E1DA3,
+/**/                   0xD9F86F3B, 0x41A8597F,
+/**/                   0x7D0D5190, 0x3C32D4F8,
+/**/                   0xAFA88354, 0x3FF35B5B,
+/**/                   0x00000000, 0x4006A000,
+/**/                   0x37E455FD, 0x3F697D7F,
+/**/                   0x00000000, 0x3FEE1000,
+/**/                   0x41D1DBF9, 0x40075877,
+/**/                   0xF5852184, 0x402758A8,
+/**/                   0x65C0F467, 0x405861EE,
+/**/                   0xD2D91276, 0x408F83C0,
+/**/                   0x43EC3B0E, 0x40C6CA7C,
+/**/                   0x718322C8, 0x4101A722,
+/**/                   0x9533D806, 0x413CA4C6,
+/**/                   0xE9899583, 0x417812B7,
+/**/                   0x85EE8B86, 0x41B4B875,
+/**/                   0xD1AEEED1, 0xBC99DEFB,
+/**/                   0xB510476E, 0x3FF38957,
+/**/                   0x00000000, 0x40076000,
+/**/                   0xB8901BF9, 0xBF6E22F8,
+/**/                   0x00000000, 0x3FEE3000,
+/**/                   0xE1C37E57, 0x40081CE6,
+/**/                   0xD3DC9910, 0x4029D4F3,
+/**/                   0xE3095065, 0x405CD074,
+/**/                   0xC5C38224, 0x4093E764,
+/**/                   0x3CAE1F31, 0x40CEC5AE,
+/**/                   0xC0645F38, 0x41097A50,
+/**/                   0xD8A7F25E, 0x41461866,
+/**/                   0x8C2F04A3, 0x4183DAF5,
+/**/                   0xA9143C1F, 0x41C2450E,
+/**/                   0x9FD995BC, 0x3C7D25BE,
+/**/                   0xC35D33E6, 0x3FF3B8C9,
+/**/                   0x00000000, 0x40082000,
+/**/                   0xE40D49E0, 0xBF58C8F1,
+/**/                   0x00000000, 0x3FEE5000,
+/**/                   0x285640BB, 0x4008F706,
+/**/                   0x3B2B7CD1, 0x402CC96B,
+/**/                   0xC5341328, 0x40613ADF,
+/**/                   0x16E928A9, 0x4099908D,
+/**/                   0x7CC08A3C, 0x40D53986,
+/**/                   0x31DD3E45, 0x4112DFC5,
+/**/                   0xE2A13787, 0x41519499,
+/**/                   0xF94424AD, 0x4190F943,
+/**/                   0xCDCD49BE, 0x41D0C6BC,
+/**/                   0x6D41701D, 0xBC9E2458,
+/**/                   0xC088BD28, 0x3FF3E9D9,
+/**/                   0x00000000, 0x40090000,
+/**/                   0x537E8A00, 0xBF71F3AF,
+/**/                   0x00000000, 0x3FEE7000,
+/**/                   0x6562D1E0, 0x4009EB18,
+/**/                   0x75651223, 0x40302C31,
+/**/                   0x336E41C7, 0x4064E431,
+/**/                   0xA065DA69, 0x40A0BCA6,
+/**/                   0x917AF357, 0x40DE034D,
+/**/                   0x4168FB0F, 0x411CD2C1,
+/**/                   0x15BB794D, 0x415CFEB6,
+/**/                   0x6EFFD5E5, 0x419E3EE1,
+/**/                   0x1ACB4D9C, 0x41E024E7,
+/**/                   0xD93F153F, 0xBC9C29C8,
+/**/                   0x2183E810, 0x3FF41CB7,
+/**/                   0x00000000, 0x4009E000,
+/**/                   0xC5A3C038, 0x3F7630CA,
+/**/                   0x00000000, 0x3FEE9000,
+/**/                   0xA364196F, 0x400AFEA6,
+/**/                   0x0B19A2EB, 0x403258F3,
+/**/                   0x2520AC75, 0x4069BDA5,
+/**/                   0x8F67EDEA, 0x40A669BC,
+/**/                   0xC026C9F8, 0x40E5D78C,
+/**/                   0x1E3B36C2, 0x4126CCB4,
+/**/                   0xBF45C805, 0x4168EDE4,
+/**/                   0x8AC89E76, 0x41AC2F6A,
+/**/                   0x4CA9EB55, 0x41F0675E,
+/**/                   0x0D13E3DF, 0x42336AC1,
+/**/                   0xF2DE93A6, 0x3C9B1D74,
+/**/                   0x155FB22E, 0x3FF4519B,
+/**/                   0x00000000, 0x400B0000,
+/**/                   0xBE690E67, 0xBF4595C9,
+/**/                   0x00000000, 0x3FEEB000,
+/**/                   0x4BD1C065, 0x400C3908,
+/**/                   0x26C39FFD, 0x40350D88,
+/**/                   0x69D3E79E, 0x4070296B,
+/**/                   0xD7FEEA5D, 0x40AED279,
+/**/                   0xFD5BD547, 0x40F072A8,
+/**/                   0x4A08BB38, 0x4132CDB9,
+/**/                   0x536BED06, 0x41768482,
+/**/                   0x2F10E88D, 0x41BBE1FF,
+/**/                   0xABDBBDAC, 0x4201C966,
+/**/                   0x02E62DDA, 0x42471011,
+/**/                   0x3E907E71, 0xBCA0855D,
+/**/                   0x8FA73920, 0x3FF488CB,
+/**/                   0x00000000, 0x400C4000,
+/**/                   0xB8FE6DDF, 0xBF6BDED0,
+/**/                   0x00000000, 0x3FEED000,
+/**/                   0x12AAF9A9, 0x400DA439,
+/**/                   0x62F25109, 0x40387D46,
+/**/                   0x3F133A3F, 0x4074C339,
+/**/                   0x662036F9, 0x40B5E143,
+/**/                   0x74467831, 0x40F9CF04,
+/**/                   0x576C6FA8, 0x41404E10,
+/**/                   0xFF4F8E88, 0x41859489,
+/**/                   0xB44962A9, 0x41CD88D2,
+/**/                   0x97A288F3, 0x4214D838,
+/**/                   0x6CF738B3, 0x425DE10B,
+/**/                   0x5F7263CC, 0xBC8E9EA7,
+/**/                   0xAA786F36, 0x3FF4C29F,
+/**/                   0x00000000, 0x400DA000,
+/**/                   0xABE6A2AD, 0x3F60E44A,
+/**/                   0x00000000, 0x3FEEF000,
+/**/                   0xC169B52F, 0x400F4E35,
+/**/                   0x29E8699C, 0x403CF773,
+/**/                   0xFC1818D6, 0x407B6D37,
+/**/                   0x1386790A, 0x40C02655,
+/**/                   0x4FF79D1E, 0x41054A1F,
+/**/                   0x7DB0265A, 0x414E104A,
+/**/                   0xE5C8114B, 0x41963C39,
+/**/                   0xF52A87DB, 0x41E10156,
+/**/                   0x2E9E7ABE, 0x422ADD76,
+/**/                   0x6EC81361, 0x427586AB,
+/**/                   0xE395EEA6, 0x3C935690,
+/**/                   0x2E5965A2, 0x3FF4FF86,
+/**/                   0x00000000, 0x400F4000,
+/**/                   0xD36A5E70, 0x3F7C6B82 } };
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/atnat.h b/REORG.TODO/sysdeps/ieee754/dbl-64/atnat.h
new file mode 100644
index 0000000000..3ba064ae59
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/atnat.h
@@ -0,0 +1,154 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/************************************************************************/
+/*  MODULE_NAME: atnat.h                                                */
+/*                                                                      */
+/*                                                                      */
+/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
+/************************************************************************/
+#ifndef ATNAT_H
+#define ATNAT_H
+
+#define M 4
+
+#ifdef BIG_ENDI
+  static const number
+  /* polynomial I */
+/**/ d3             = {{0xbfd55555, 0x55555555} }, /* -0.333... */
+/**/ d5             = {{0x3fc99999, 0x999997fd} }, /*  0.199... */
+/**/ d7             = {{0xbfc24924, 0x923f7603} }, /* -0.142... */
+/**/ d9             = {{0x3fbc71c6, 0xe5129a3b} }, /*  0.111... */
+/**/ d11            = {{0xbfb74580, 0x22b13c25} }, /* -0.090... */
+/**/ d13            = {{0x3fb375f0, 0x8b31cbce} }, /*  0.076... */
+  /* polynomial II */
+/**/ f3             = {{0xbfd55555, 0x55555555} }, /* -1/3      */
+/**/ ff3            = {{0xbc755555, 0x55555555} }, /* -1/3-f3   */
+/**/ f5             = {{0x3fc99999, 0x9999999a} }, /*  1/5      */
+/**/ ff5            = {{0xbc699999, 0x9999999a} }, /*  1/5-f5   */
+/**/ f7             = {{0xbfc24924, 0x92492492} }, /* -1/7      */
+/**/ ff7            = {{0xbc624924, 0x92492492} }, /* -1/7-f7   */
+/**/ f9             = {{0x3fbc71c7, 0x1c71c71c} }, /*  1/9      */
+/**/ ff9            = {{0x3c5c71c7, 0x1c71c71c} }, /*  1/9-f9   */
+/**/ f11            = {{0xbfb745d1, 0x745d1746} }, /* -1/11     */
+/**/ f13            = {{0x3fb3b13b, 0x13b13b14} }, /*  1/13     */
+/**/ f15            = {{0xbfb11111, 0x11111111} }, /* -1/15     */
+/**/ f17            = {{0x3fae1e1e, 0x1e1e1e1e} }, /*  1/17     */
+/**/ f19            = {{0xbfaaf286, 0xbca1af28} }, /* -1/19     */
+  /* constants    */
+/**/ a              = {{0x3e4bb67a, 0x00000000} }, /*  1.290e-8     */
+/**/ b              = {{0x3fb00000, 0x00000000} }, /*  1/16         */
+/**/ c              = {{0x3ff00000, 0x00000000} }, /*  1            */
+/**/ d              = {{0x40300000, 0x00000000} }, /*  16           */
+/**/ e              = {{0x43349ff2, 0x00000000} }, /*  5.805e15     */
+/**/ hpi            = {{0x3ff921fb, 0x54442d18} }, /*  pi/2         */
+/**/ mhpi           = {{0xbff921fb, 0x54442d18} }, /* -pi/2         */
+/**/ hpi1           = {{0x3c91a626, 0x33145c07} }, /*  pi/2-hpi     */
+/**/ u1             = {{0x3c2d3382, 0x00000000} }, /*  7.915e-19    */
+/**/ u21            = {{0x3c6dffc0, 0x00000000} }, /*  1.301e-17    */
+/**/ u22            = {{0x3c527bd0, 0x00000000} }, /*  4.008e-18    */
+/**/ u23            = {{0x3c3cd057, 0x00000000} }, /*  1.562e-18    */
+/**/ u24            = {{0x3c329cdf, 0x00000000} }, /*  1.009e-18    */
+/**/ u31            = {{0x3c3a1edf, 0x00000000} }, /*  1.416e-18    */
+/**/ u32            = {{0x3c33f0e1, 0x00000000} }, /*  1.081e-18    */
+/**/ u4             = {{0x3bf955e4, 0x00000000} }, /*  8.584e-20    */
+/**/ u5             = {{0x3aaef2d1, 0x00000000} }, /*  5e-26        */
+/**/ u6             = {{0x3a98c56d, 0x00000000} }, /*  2.001e-26    */
+/**/ u7             = {{0x3a9375de, 0x00000000} }, /*  1.572e-26    */
+/**/ u8             = {{0x3a6eeb36, 0x00000000} }, /*  3.122e-27    */
+/**/ u9[M]          ={{{0x38c1aa5b, 0x00000000} }, /* 2.658e-35     */
+/**/                  {{0x35c1aa4d, 0x00000000} }, /* 9.443e-50     */
+/**/                  {{0x32c1aa88, 0x00000000} }, /* 3.355e-64     */
+/**/                  {{0x11c1aa56, 0x00000000} }};/* 3.818e-223    */
+
+#else
+#ifdef LITTLE_ENDI
+  static const number
+  /* polynomial I */
+/**/ d3             = {{0x55555555, 0xbfd55555} }, /* -0.333... */
+/**/ d5             = {{0x999997fd, 0x3fc99999} }, /*  0.199... */
+/**/ d7             = {{0x923f7603, 0xbfc24924} }, /* -0.142... */
+/**/ d9             = {{0xe5129a3b, 0x3fbc71c6} }, /*  0.111... */
+/**/ d11            = {{0x22b13c25, 0xbfb74580} }, /* -0.090... */
+/**/ d13            = {{0x8b31cbce, 0x3fb375f0} }, /*  0.076... */
+  /* polynomial II */
+/**/ f3             = {{0x55555555, 0xbfd55555} }, /* -1/3      */
+/**/ ff3            = {{0x55555555, 0xbc755555} }, /* -1/3-f3   */
+/**/ f5             = {{0x9999999a, 0x3fc99999} }, /*  1/5      */
+/**/ ff5            = {{0x9999999a, 0xbc699999} }, /*  1/5-f5   */
+/**/ f7             = {{0x92492492, 0xbfc24924} }, /* -1/7      */
+/**/ ff7            = {{0x92492492, 0xbc624924} }, /* -1/7-f7   */
+/**/ f9             = {{0x1c71c71c, 0x3fbc71c7} }, /*  1/9      */
+/**/ ff9            = {{0x1c71c71c, 0x3c5c71c7} }, /*  1/9-f9   */
+/**/ f11            = {{0x745d1746, 0xbfb745d1} }, /* -1/11     */
+/**/ f13            = {{0x13b13b14, 0x3fb3b13b} }, /*  1/13     */
+/**/ f15            = {{0x11111111, 0xbfb11111} }, /* -1/15     */
+/**/ f17            = {{0x1e1e1e1e, 0x3fae1e1e} }, /*  1/17     */
+/**/ f19            = {{0xbca1af28, 0xbfaaf286} }, /* -1/19     */
+  /* constants    */
+/**/ a              = {{0x00000000, 0x3e4bb67a} }, /*  1.290e-8     */
+/**/ b              = {{0x00000000, 0x3fb00000} }, /*  1/16         */
+/**/ c              = {{0x00000000, 0x3ff00000} }, /*  1            */
+/**/ d              = {{0x00000000, 0x40300000} }, /*  16           */
+/**/ e              = {{0x00000000, 0x43349ff2} }, /*  5.805e15     */
+/**/ hpi            = {{0x54442d18, 0x3ff921fb} }, /*  pi/2         */
+/**/ mhpi           = {{0x54442d18, 0xbff921fb} }, /* -pi/2         */
+/**/ hpi1           = {{0x33145c07, 0x3c91a626} }, /*  pi/2-hpi     */
+/**/ u1             = {{0x00000000, 0x3c2d3382} }, /*  7.915e-19    */
+/**/ u21            = {{0x00000000, 0x3c6dffc0} }, /*  1.301e-17    */
+/**/ u22            = {{0x00000000, 0x3c527bd0} }, /*  4.008e-18    */
+/**/ u23            = {{0x00000000, 0x3c3cd057} }, /*  1.562e-18    */
+/**/ u24            = {{0x00000000, 0x3c329cdf} }, /*  1.009e-18    */
+/**/ u31            = {{0x00000000, 0x3c3a1edf} }, /*  1.416e-18    */
+/**/ u32            = {{0x00000000, 0x3c33f0e1} }, /*  1.081e-18    */
+/**/ u4             = {{0x00000000, 0x3bf955e4} }, /*  8.584e-20    */
+/**/ u5             = {{0x00000000, 0x3aaef2d1} }, /*  5e-26        */
+/**/ u6             = {{0x00000000, 0x3a98c56d} }, /*  2.001e-26    */
+/**/ u7             = {{0x00000000, 0x3a9375de} }, /*  1.572e-26    */
+/**/ u8             = {{0x00000000, 0x3a6eeb36} }, /*  3.122e-27    */
+/**/ u9[M]          ={{{0x00000000, 0x38c1aa5b} }, /* 2.658e-35     */
+/**/                  {{0x00000000, 0x35c1aa4d} }, /* 9.443e-50     */
+/**/                  {{0x00000000, 0x32c1aa88} }, /* 3.355e-64     */
+/**/                  {{0x00000000, 0x11c1aa56} }};/* 3.818e-223    */
+
+#endif
+#endif
+
+#define  A         a.d
+#define  B         b.d
+#define  C         c.d
+#define  D         d.d
+#define  E         e.d
+#define  HPI       hpi.d
+#define  MHPI      mhpi.d
+#define  HPI1      hpi1.d
+#define  U1        u1.d
+#define  U21       u21.d
+#define  U22       u22.d
+#define  U23       u23.d
+#define  U24       u24.d
+#define  U31       u31.d
+#define  U32       u32.d
+#define  U4        u4.d
+#define  U5        u5.d
+#define  U6        u6.d
+#define  U7        u7.d
+#define  U8        u8.d
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/atnat2.h b/REORG.TODO/sysdeps/ieee754/dbl-64/atnat2.h
new file mode 100644
index 0000000000..27033b6ceb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/atnat2.h
@@ -0,0 +1,161 @@
+
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/************************************************************************/
+/*  MODULE_NAME: atnat2.h                                                */
+/*                                                                      */
+/*                                                                      */
+/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
+/************************************************************************/
+
+
+
+#ifndef ATNAT2_H
+#define ATNAT2_H
+
+
+#define MM 5
+#ifdef BIG_ENDI
+
+  static const number
+  /* polynomial I */
+/**/ d3             = {{0xbfd55555, 0x55555555} }, /* -0.333... */
+/**/ d5             = {{0x3fc99999, 0x999997fd} }, /*  0.199... */
+/**/ d7             = {{0xbfc24924, 0x923f7603} }, /* -0.142... */
+/**/ d9             = {{0x3fbc71c6, 0xe5129a3b} }, /*  0.111... */
+/**/ d11            = {{0xbfb74580, 0x22b13c25} }, /* -0.090... */
+/**/ d13            = {{0x3fb375f0, 0x8b31cbce} }, /*  0.076... */
+  /* polynomial II */
+/**/ f3             = {{0xbfd55555, 0x55555555} }, /* -1/3      */
+/**/ ff3            = {{0xbc755555, 0x55555555} }, /* -1/3-f3   */
+/**/ f5             = {{0x3fc99999, 0x9999999a} }, /*  1/5      */
+/**/ ff5            = {{0xbc699999, 0x9999999a} }, /*  1/5-f5   */
+/**/ f7             = {{0xbfc24924, 0x92492492} }, /* -1/7      */
+/**/ ff7            = {{0xbc624924, 0x92492492} }, /* -1/7-f7   */
+/**/ f9             = {{0x3fbc71c7, 0x1c71c71c} }, /*  1/9      */
+/**/ ff9            = {{0x3c5c71c7, 0x1c71c71c} }, /*  1/9-f9   */
+/**/ f11            = {{0xbfb745d1, 0x745d1746} }, /* -1/11     */
+/**/ f13            = {{0x3fb3b13b, 0x13b13b14} }, /*  1/13     */
+/**/ f15            = {{0xbfb11111, 0x11111111} }, /* -1/15     */
+/**/ f17            = {{0x3fae1e1e, 0x1e1e1e1e} }, /*  1/17     */
+/**/ f19            = {{0xbfaaf286, 0xbca1af28} }, /* -1/19     */
+  /* constants    */
+/**/ inv16          = {{0x3fb00000, 0x00000000} }, /*  1/16         */
+/**/ opi            = {{0x400921fb, 0x54442d18} }, /*  pi           */
+/**/ opi1           = {{0x3ca1a626, 0x33145c07} }, /*  pi-opi       */
+/**/ mopi           = {{0xc00921fb, 0x54442d18} }, /* -pi           */
+/**/ hpi            = {{0x3ff921fb, 0x54442d18} }, /*  pi/2         */
+/**/ hpi1           = {{0x3c91a626, 0x33145c07} }, /*  pi/2-hpi     */
+/**/ mhpi           = {{0xbff921fb, 0x54442d18} }, /* -pi/2         */
+/**/ qpi            = {{0x3fe921fb, 0x54442d18} }, /*  pi/4         */
+/**/ mqpi           = {{0xbfe921fb, 0x54442d18} }, /* -pi/4         */
+/**/ tqpi           = {{0x4002d97c, 0x7f3321d2} }, /*  3pi/4        */
+/**/ mtqpi          = {{0xc002d97c, 0x7f3321d2} }, /* -3pi/4        */
+/**/ u1             = {{0x3c314c2a, 0x00000000} }, /*  9.377e-19    */
+/**/ u2             = {{0x3bf955e4, 0x00000000} }, /*  8.584e-20    */
+/**/ u3             = {{0x3bf955e4, 0x00000000} }, /*  8.584e-20    */
+/**/ u4             = {{0x3bf955e4, 0x00000000} }, /*  8.584e-20    */
+/**/ u5             = {{0x3aaef2d1, 0x00000000} }, /*  5e-26        */
+/**/ u6             = {{0x3a6eeb36, 0x00000000} }, /*  3.122e-27    */
+/**/ u7             = {{0x3a6eeb36, 0x00000000} }, /*  3.122e-27    */
+/**/ u8             = {{0x3a6eeb36, 0x00000000} }, /*  3.122e-27    */
+/**/ u91            = {{0x3c6dffc0, 0x00000000} }, /*  1.301e-17    */
+/**/ u92            = {{0x3c527bd0, 0x00000000} }, /*  4.008e-18    */
+/**/ u93            = {{0x3c3cd057, 0x00000000} }, /*  1.562e-18    */
+/**/ u94            = {{0x3c329cdf, 0x00000000} }, /*  1.009e-18    */
+/**/ ua1            = {{0x3c3a1edf, 0x00000000} }, /*  1.416e-18    */
+/**/ ua2            = {{0x3c33f0e1, 0x00000000} }, /*  1.081e-18    */
+/**/ ub             = {{0x3a98c56d, 0x00000000} }, /*  2.001e-26    */
+/**/ uc             = {{0x3a9375de, 0x00000000} }, /*  1.572e-26    */
+/**/ ud[MM]         ={{{0x38c6eddf, 0x00000000} }, /*  3.450e-35    */
+/**/                  {{0x35c6ef60, 0x00000000} }, /*  1.226e-49    */
+/**/                  {{0x32c6ed2f, 0x00000000} }, /*  4.354e-64    */
+/**/                  {{0x23c6eee8, 0x00000000} }, /*  2.465e-136   */
+/**/                  {{0x11c6ed16, 0x00000000} }},/*  4.955e-223   */
+/**/ ue             = {{0x38900e9d, 0x00000000} }, /*  3.02e-36     */
+/**/ two500         = {{0x5f300000, 0x00000000} }, /*  2**500       */
+/**/ twom500        = {{0x20b00000, 0x00000000} }; /*  2**(-500)    */
+
+#else
+#ifdef LITTLE_ENDI
+
+  static const number
+  /* polynomial I */
+/**/ d3             = {{0x55555555, 0xbfd55555} }, /* -0.333... */
+/**/ d5             = {{0x999997fd, 0x3fc99999} }, /*  0.199... */
+/**/ d7             = {{0x923f7603, 0xbfc24924} }, /* -0.142... */
+/**/ d9             = {{0xe5129a3b, 0x3fbc71c6} }, /*  0.111... */
+/**/ d11            = {{0x22b13c25, 0xbfb74580} }, /* -0.090... */
+/**/ d13            = {{0x8b31cbce, 0x3fb375f0} }, /*  0.076... */
+  /* polynomial II */
+/**/ f3             = {{0x55555555, 0xbfd55555} }, /* -1/3      */
+/**/ ff3            = {{0x55555555, 0xbc755555} }, /* -1/3-f3   */
+/**/ f5             = {{0x9999999a, 0x3fc99999} }, /*  1/5      */
+/**/ ff5            = {{0x9999999a, 0xbc699999} }, /*  1/5-f5   */
+/**/ f7             = {{0x92492492, 0xbfc24924} }, /* -1/7      */
+/**/ ff7            = {{0x92492492, 0xbc624924} }, /* -1/7-f7   */
+/**/ f9             = {{0x1c71c71c, 0x3fbc71c7} }, /*  1/9      */
+/**/ ff9            = {{0x1c71c71c, 0x3c5c71c7} }, /*  1/9-f9   */
+/**/ f11            = {{0x745d1746, 0xbfb745d1} }, /* -1/11     */
+/**/ f13            = {{0x13b13b14, 0x3fb3b13b} }, /*  1/13     */
+/**/ f15            = {{0x11111111, 0xbfb11111} }, /* -1/15     */
+/**/ f17            = {{0x1e1e1e1e, 0x3fae1e1e} }, /*  1/17     */
+/**/ f19            = {{0xbca1af28, 0xbfaaf286} }, /* -1/19     */
+  /* constants    */
+/**/ inv16          = {{0x00000000, 0x3fb00000} }, /*  1/16         */
+/**/ opi            = {{0x54442d18, 0x400921fb} }, /*  pi           */
+/**/ opi1           = {{0x33145c07, 0x3ca1a626} }, /*  pi-opi       */
+/**/ mopi           = {{0x54442d18, 0xc00921fb} }, /* -pi           */
+/**/ hpi            = {{0x54442d18, 0x3ff921fb} }, /*  pi/2         */
+/**/ hpi1           = {{0x33145c07, 0x3c91a626} }, /*  pi/2-hpi     */
+/**/ mhpi           = {{0x54442d18, 0xbff921fb} }, /* -pi/2         */
+/**/ qpi            = {{0x54442d18, 0x3fe921fb} }, /*  pi/4         */
+/**/ mqpi           = {{0x54442d18, 0xbfe921fb} }, /* -pi/4         */
+/**/ tqpi           = {{0x7f3321d2, 0x4002d97c} }, /*  3pi/4        */
+/**/ mtqpi          = {{0x7f3321d2, 0xc002d97c} }, /* -3pi/4        */
+/**/ u1             = {{0x00000000, 0x3c314c2a} }, /*  9.377e-19    */
+/**/ u2             = {{0x00000000, 0x3bf955e4} }, /*  8.584e-20    */
+/**/ u3             = {{0x00000000, 0x3bf955e4} }, /*  8.584e-20    */
+/**/ u4             = {{0x00000000, 0x3bf955e4} }, /*  8.584e-20    */
+/**/ u5             = {{0x00000000, 0x3aaef2d1} }, /*  5e-26        */
+/**/ u6             = {{0x00000000, 0x3a6eeb36} }, /*  3.122e-27    */
+/**/ u7             = {{0x00000000, 0x3a6eeb36} }, /*  3.122e-27    */
+/**/ u8             = {{0x00000000, 0x3a6eeb36} }, /*  3.122e-27    */
+/**/ u91            = {{0x00000000, 0x3c6dffc0} }, /*  1.301e-17    */
+/**/ u92            = {{0x00000000, 0x3c527bd0} }, /*  4.008e-18    */
+/**/ u93            = {{0x00000000, 0x3c3cd057} }, /*  1.562e-18    */
+/**/ u94            = {{0x00000000, 0x3c329cdf} }, /*  1.009e-18    */
+/**/ ua1            = {{0x00000000, 0x3c3a1edf} }, /*  1.416e-18    */
+/**/ ua2            = {{0x00000000, 0x3c33f0e1} }, /*  1.081e-18    */
+/**/ ub             = {{0x00000000, 0x3a98c56d} }, /*  2.001e-26    */
+/**/ uc             = {{0x00000000, 0x3a9375de} }, /*  1.572e-26    */
+/**/ ud[MM]         ={{{0x00000000, 0x38c6eddf} }, /*  3.450e-35    */
+/**/                  {{0x00000000, 0x35c6ef60} }, /*  1.226e-49    */
+/**/                  {{0x00000000, 0x32c6ed2f} }, /*  4.354e-64    */
+/**/                  {{0x00000000, 0x23c6eee8} }, /*  2.465e-136   */
+/**/                  {{0x00000000, 0x11c6ed16} }},/*  4.955e-223   */
+/**/ ue             = {{0x00000000, 0x38900e9d} }, /*  3.02e-36     */
+/**/ two500         = {{0x00000000, 0x5f300000} }, /*  2**500       */
+/**/ twom500        = {{0x00000000, 0x20b00000} }; /*  2**(-500)    */
+
+#endif
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/branred.c b/REORG.TODO/sysdeps/ieee754/dbl-64/branred.c
new file mode 100644
index 0000000000..30ae9c79e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/branred.c
@@ -0,0 +1,144 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/*******************************************************************/
+/*                                                                 */
+/* MODULE_NAME: branred.c                                          */
+/*                                                                 */
+/* FUNCTIONS:   branred                                            */
+/*                                                                 */
+/* FILES NEEDED: branred.h mydefs.h endian.h mpa.h                 */
+/*               mha.c                                             */
+/*                                                                 */
+/* Routine  branred() performs range  reduction of a double number */
+/* x into Double length number  a+aa,such that                     */
+/* x=n*pi/2+(a+aa), abs(a+aa)<pi/4, n=0,+-1,+-2,....               */
+/* Routine returns the integer (n mod 4) of the above description  */
+/* of x.                                                           */
+/*******************************************************************/
+
+#include "endian.h"
+#include "mydefs.h"
+#include "branred.h"
+#include <math.h>
+#include <math_private.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+
+/*******************************************************************/
+/* Routine  branred() performs range  reduction of a double number */
+/* x into Double length number a+aa,such that                      */
+/* x=n*pi/2+(a+aa), abs(a+aa)<pi/4, n=0,+-1,+-2,....               */
+/* Routine return integer (n mod 4)                                */
+/*******************************************************************/
+int
+SECTION
+__branred(double x, double *a, double *aa)
+{
+  int i,k;
+  mynumber  u,gor;
+  double r[6],s,t,sum,b,bb,sum1,sum2,b1,bb1,b2,bb2,x1,x2,t1,t2;
+
+  x*=tm600.x;
+  t=x*split;   /* split x to two numbers */
+  x1=t-(t-x);
+  x2=x-x1;
+  sum=0;
+  u.x = x1;
+  k = (u.i[HIGH_HALF]>>20)&2047;
+  k = (k-450)/24;
+  if (k<0)
+    k=0;
+  gor.x = t576.x;
+  gor.i[HIGH_HALF] -= ((k*24)<<20);
+  for (i=0;i<6;i++)
+    { r[i] = x1*toverp[k+i]*gor.x; gor.x *= tm24.x; }
+  for (i=0;i<3;i++) {
+    s=(r[i]+big.x)-big.x;
+    sum+=s;
+    r[i]-=s;
+  }
+  t=0;
+  for (i=0;i<6;i++)
+    t+=r[5-i];
+  bb=(((((r[0]-t)+r[1])+r[2])+r[3])+r[4])+r[5];
+  s=(t+big.x)-big.x;
+  sum+=s;
+  t-=s;
+  b=t+bb;
+  bb=(t-b)+bb;
+  s=(sum+big1.x)-big1.x;
+  sum-=s;
+  b1=b;
+  bb1=bb;
+  sum1=sum;
+  sum=0;
+
+  u.x = x2;
+  k = (u.i[HIGH_HALF]>>20)&2047;
+  k = (k-450)/24;
+  if (k<0)
+    k=0;
+  gor.x = t576.x;
+  gor.i[HIGH_HALF] -= ((k*24)<<20);
+  for (i=0;i<6;i++)
+    { r[i] = x2*toverp[k+i]*gor.x; gor.x *= tm24.x; }
+  for (i=0;i<3;i++) {
+    s=(r[i]+big.x)-big.x;
+    sum+=s;
+    r[i]-=s;
+  }
+  t=0;
+  for (i=0;i<6;i++)
+    t+=r[5-i];
+  bb=(((((r[0]-t)+r[1])+r[2])+r[3])+r[4])+r[5];
+  s=(t+big.x)-big.x;
+ sum+=s;
+ t-=s;
+ b=t+bb;
+ bb=(t-b)+bb;
+ s=(sum+big1.x)-big1.x;
+ sum-=s;
+
+ b2=b;
+ bb2=bb;
+ sum2=sum;
+
+ sum=sum1+sum2;
+ b=b1+b2;
+ bb = (fabs(b1)>fabs(b2))? (b1-b)+b2 : (b2-b)+b1;
+ if (b > 0.5)
+   {b-=1.0; sum+=1.0;}
+ else if (b < -0.5)
+   {b+=1.0; sum-=1.0;}
+ s=b+(bb+bb1+bb2);
+ t=((b-s)+bb)+(bb1+bb2);
+ b=s*split;
+ t1=b-(b-s);
+ t2=s-t1;
+ b=s*hp0.x;
+ bb=(((t1*mp1.x-b)+t1*mp2.x)+t2*mp1.x)+(t2*mp2.x+s*hp1.x+t*hp0.x);
+ s=b+bb;
+ t=(b-s)+bb;
+ *a=s;
+ *aa=t;
+ return ((int) sum)&3; /* return quater of unit circle */
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/branred.h b/REORG.TODO/sysdeps/ieee754/dbl-64/branred.h
new file mode 100644
index 0000000000..c3fd7dd27b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/branred.h
@@ -0,0 +1,80 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/************************************************************************/
+/*  MODULE_NAME: branred.h                                              */
+/*                                                                      */
+/*                                                                      */
+/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
+/************************************************************************/
+
+#ifndef BRANRED_H
+#define BRANRED_H
+
+#include <dla.h>
+
+#ifdef BIG_ENDI
+static const mynumber
+
+/**/           t576 = {{0x63f00000, 0x00000000}}, /* 2 ^ 576  */
+/**/          tm600 = {{0x1a700000, 0x00000000}}, /* 2 ^- 600 */
+/**/           tm24 = {{0x3e700000, 0x00000000}}, /* 2 ^- 24  */
+/**/            big = {{0x43380000, 0x00000000}}, /*  6755399441055744      */
+/**/           big1 = {{0x43580000, 0x00000000}}, /* 27021597764222976      */
+/**/            hp0 = {{0x3FF921FB, 0x54442D18}} ,/* 1.5707963267948966     */
+/**/            hp1 = {{0x3C91A626, 0x33145C07}} ,/* 6.123233995736766e-17  */
+/**/            mp1 = {{0x3FF921FB, 0x58000000}}, /* 1.5707963407039642     */
+/**/            mp2 = {{0xBE4DDE97, 0x40000000}}; /*-1.3909067675399456e-08 */
+
+#else
+#ifdef LITTLE_ENDI
+static const mynumber
+
+/**/           t576 = {{0x00000000, 0x63f00000}},  /* 2 ^ 576  */
+/**/          tm600 = {{0x00000000, 0x1a700000}},  /* 2 ^- 600 */
+/**/           tm24 = {{0x00000000, 0x3e700000}},  /* 2 ^- 24  */
+/**/            big = {{0x00000000, 0x43380000}},  /*  6755399441055744      */
+/**/           big1 = {{0x00000000, 0x43580000}},  /* 27021597764222976      */
+/**/            hp0 = {{0x54442D18, 0x3FF921FB}},  /* 1.5707963267948966     */
+/**/            hp1 = {{0x33145C07, 0x3C91A626}},  /* 6.123233995736766e-17  */
+/**/            mp1 = {{0x58000000, 0x3FF921FB}},  /* 1.5707963407039642     */
+/**/            mp2 = {{0x40000000, 0xBE4DDE97}};  /*-1.3909067675399456e-08 */
+
+#endif
+#endif
+
+static const double toverp[75] = { /*  2/ PI base 24*/
+  10680707.0,  7228996.0,  1387004.0,  2578385.0, 16069853.0,
+  12639074.0,  9804092.0,  4427841.0, 16666979.0, 11263675.0,
+  12935607.0,  2387514.0,  4345298.0, 14681673.0,  3074569.0,
+  13734428.0, 16653803.0,  1880361.0, 10960616.0,  8533493.0,
+   3062596.0,  8710556.0,  7349940.0,  6258241.0,  3772886.0,
+   3769171.0,  3798172.0,  8675211.0, 12450088.0,  3874808.0,
+   9961438.0,   366607.0, 15675153.0,  9132554.0,  7151469.0,
+   3571407.0,  2607881.0, 12013382.0,  4155038.0,  6285869.0,
+   7677882.0, 13102053.0, 15825725.0,   473591.0,  9065106.0,
+  15363067.0,  6271263.0,  9264392.0,  5636912.0,  4652155.0,
+   7056368.0, 13614112.0, 10155062.0,  1944035.0,  9527646.0,
+  15080200.0,  6658437.0,  6231200.0,  6832269.0, 16767104.0,
+   5075751.0,  3212806.0,  1398474.0,  7579849.0,  6349435.0,
+  12618859.0,  4703257.0, 12806093.0, 14477321.0,  2786137.0,
+  12875403.0,  9837734.0, 14528324.0, 13719321.0,   343717.0 };
+
+static const double split =  CN;	/* 2^27 + 1 */
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/dbl2mpn.c b/REORG.TODO/sysdeps/ieee754/dbl-64/dbl2mpn.c
new file mode 100644
index 0000000000..8294dc26ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/dbl2mpn.c
@@ -0,0 +1,107 @@
+/* Copyright (C) 1993-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include "longlong.h"
+#include <ieee754.h>
+#include <float.h>
+#include <stdlib.h>
+
+/* Convert a `double' in IEEE754 standard double-precision format to a
+   multi-precision integer representing the significand scaled up by its
+   number of bits (52 for double) and an integral power of two (MPN frexp). */
+
+mp_size_t
+__mpn_extract_double (mp_ptr res_ptr, mp_size_t size,
+		      int *expt, int *is_neg,
+		      double value)
+{
+  union ieee754_double u;
+  u.d = value;
+
+  *is_neg = u.ieee.negative;
+  *expt = (int) u.ieee.exponent - IEEE754_DOUBLE_BIAS;
+
+#if BITS_PER_MP_LIMB == 32
+  res_ptr[0] = u.ieee.mantissa1; /* Low-order 32 bits of fraction.  */
+  res_ptr[1] = u.ieee.mantissa0; /* High-order 20 bits.  */
+  # define N 2
+#elif BITS_PER_MP_LIMB == 64
+  /* Hopefully the compiler will combine the two bitfield extracts
+     and this composition into just the original quadword extract.  */
+  res_ptr[0] = ((mp_limb_t) u.ieee.mantissa0 << 32) | u.ieee.mantissa1;
+  # define N 1
+#else
+  # error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+/* The format does not fill the last limb.  There are some zeros.  */
+#define NUM_LEADING_ZEROS (BITS_PER_MP_LIMB \
+			   - (DBL_MANT_DIG - ((N - 1) * BITS_PER_MP_LIMB)))
+
+  if (u.ieee.exponent == 0)
+    {
+      /* A biased exponent of zero is a special case.
+	 Either it is a zero or it is a denormal number.  */
+      if (res_ptr[0] == 0 && res_ptr[N - 1] == 0) /* Assumes N<=2.  */
+	/* It's zero.  */
+	*expt = 0;
+      else
+	{
+          /* It is a denormal number, meaning it has no implicit leading
+	     one bit, and its exponent is in fact the format minimum.  */
+	  int cnt;
+
+	  if (res_ptr[N - 1] != 0)
+	    {
+	      count_leading_zeros (cnt, res_ptr[N - 1]);
+	      cnt -= NUM_LEADING_ZEROS;
+#if N == 2
+	      res_ptr[N - 1] = res_ptr[1] << cnt
+			       | (N - 1)
+			       * (res_ptr[0] >> (BITS_PER_MP_LIMB - cnt));
+	      res_ptr[0] <<= cnt;
+#else
+	      res_ptr[N - 1] <<= cnt;
+#endif
+	      *expt = DBL_MIN_EXP - 1 - cnt;
+	    }
+	  else
+	    {
+	      count_leading_zeros (cnt, res_ptr[0]);
+	      if (cnt >= NUM_LEADING_ZEROS)
+		{
+		  res_ptr[N - 1] = res_ptr[0] << (cnt - NUM_LEADING_ZEROS);
+		  res_ptr[0] = 0;
+		}
+	      else
+		{
+		  res_ptr[N - 1] = res_ptr[0] >> (NUM_LEADING_ZEROS - cnt);
+		  res_ptr[0] <<= BITS_PER_MP_LIMB - (NUM_LEADING_ZEROS - cnt);
+		}
+	      *expt = DBL_MIN_EXP - 1
+		      - (BITS_PER_MP_LIMB - NUM_LEADING_ZEROS) - cnt;
+	    }
+	}
+    }
+  else
+    /* Add the implicit leading one bit for a normalized number.  */
+    res_ptr[N - 1] |= (mp_limb_t) 1 << (DBL_MANT_DIG - 1
+					- ((N - 1) * BITS_PER_MP_LIMB));
+
+  return N;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/dla.h b/REORG.TODO/sysdeps/ieee754/dbl-64/dla.h
new file mode 100644
index 0000000000..88e8ffb1ca
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/dla.h
@@ -0,0 +1,183 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <math.h>
+
+/***********************************************************************/
+/*MODULE_NAME: dla.h                                                   */
+/*                                                                     */
+/* This file holds C language macros for 'Double Length Floating Point */
+/* Arithmetic'. The macros are based on the paper:                     */
+/* T.J.Dekker, "A floating-point Technique for extending the           */
+/* Available Precision", Number. Math. 18, 224-242 (1971).              */
+/* A Double-Length number is defined by a pair (r,s), of IEEE double    */
+/* precision floating point numbers that satisfy,                      */
+/*                                                                     */
+/*              abs(s) <= abs(r+s)*2**(-53)/(1+2**(-53)).              */
+/*                                                                     */
+/* The computer arithmetic assumed is IEEE double precision in         */
+/* round to nearest mode. All variables in the macros must be of type  */
+/* IEEE double.                                                        */
+/***********************************************************************/
+
+/* CN = 1+2**27 = '41a0000002000000' IEEE double format.  Use it to split a
+   double for better accuracy.  */
+#define  CN   134217729.0
+
+
+/* Exact addition of two single-length floating point numbers, Dekker. */
+/* The macro produces a double-length number (z,zz) that satisfies     */
+/* z+zz = x+y exactly.                                                 */
+
+#define  EADD(x,y,z,zz)  \
+	   z=(x)+(y);  zz=(fabs(x)>fabs(y)) ? (((x)-(z))+(y)) : (((y)-(z))+(x));
+
+
+/* Exact subtraction of two single-length floating point numbers, Dekker. */
+/* The macro produces a double-length number (z,zz) that satisfies        */
+/* z+zz = x-y exactly.                                                    */
+
+#define  ESUB(x,y,z,zz)  \
+	   z=(x)-(y);  zz=(fabs(x)>fabs(y)) ? (((x)-(z))-(y)) : ((x)-((y)+(z)));
+
+
+#ifdef __FP_FAST_FMA
+# define DLA_FMS(x, y, z) __builtin_fma (x, y, -(z))
+#endif
+
+/* Exact multiplication of two single-length floating point numbers,   */
+/* Veltkamp. The macro produces a double-length number (z,zz) that     */
+/* satisfies z+zz = x*y exactly. p,hx,tx,hy,ty are temporary           */
+/* storage variables of type double.                                   */
+
+#ifdef DLA_FMS
+# define  EMULV(x, y, z, zz, p, hx, tx, hy, ty)          \
+  z = x * y; zz = DLA_FMS (x, y, z);
+#else
+# define  EMULV(x, y, z, zz, p, hx, tx, hy, ty)          \
+  p = CN * (x);  hx = ((x) - p) + p;  tx = (x) - hx; \
+  p = CN * (y);  hy = ((y) - p) + p;  ty = (y) - hy; \
+  z = (x) * (y); zz = (((hx * hy - z) + hx * ty) + tx * hy) + tx * ty;
+#endif
+
+
+/* Exact multiplication of two single-length floating point numbers, Dekker. */
+/* The macro produces a nearly double-length number (z,zz) (see Dekker)      */
+/* that satisfies z+zz = x*y exactly. p,hx,tx,hy,ty,q are temporary          */
+/* storage variables of type double.                                         */
+
+#ifdef DLA_FMS
+# define  MUL12(x,y,z,zz,p,hx,tx,hy,ty,q)        \
+	   EMULV(x,y,z,zz,p,hx,tx,hy,ty)
+#else
+# define  MUL12(x,y,z,zz,p,hx,tx,hy,ty,q)        \
+	   p=CN*(x);  hx=((x)-p)+p;  tx=(x)-hx; \
+	   p=CN*(y);  hy=((y)-p)+p;  ty=(y)-hy; \
+	   p=hx*hy;  q=hx*ty+tx*hy; z=p+q;  zz=((p-z)+q)+tx*ty;
+#endif
+
+
+/* Double-length addition, Dekker. The macro produces a double-length   */
+/* number (z,zz) which satisfies approximately   z+zz = x+xx + y+yy.    */
+/* An error bound: (abs(x+xx)+abs(y+yy))*4.94e-32. (x,xx), (y,yy)       */
+/* are assumed to be double-length numbers. r,s are temporary           */
+/* storage variables of type double.                                    */
+
+#define  ADD2(x, xx, y, yy, z, zz, r, s)                   \
+  r = (x) + (y);  s = (fabs (x) > fabs (y)) ?                \
+		      (((((x) - r) + (y)) + (yy)) + (xx)) : \
+		      (((((y) - r) + (x)) + (xx)) + (yy));  \
+  z = r + s;  zz = (r - z) + s;
+
+
+/* Double-length subtraction, Dekker. The macro produces a double-length  */
+/* number (z,zz) which satisfies approximately   z+zz = x+xx - (y+yy).    */
+/* An error bound: (abs(x+xx)+abs(y+yy))*4.94e-32. (x,xx), (y,yy)         */
+/* are assumed to be double-length numbers. r,s are temporary             */
+/* storage variables of type double.                                      */
+
+#define  SUB2(x, xx, y, yy, z, zz, r, s)                   \
+  r = (x) - (y);  s = (fabs (x) > fabs (y)) ?                \
+		      (((((x) - r) - (y)) - (yy)) + (xx)) : \
+		      ((((x) - ((y) + r)) + (xx)) - (yy));  \
+  z = r + s;  zz = (r - z) + s;
+
+
+/* Double-length multiplication, Dekker. The macro produces a double-length  */
+/* number (z,zz) which satisfies approximately   z+zz = (x+xx)*(y+yy).       */
+/* An error bound: abs((x+xx)*(y+yy))*1.24e-31. (x,xx), (y,yy)               */
+/* are assumed to be double-length numbers. p,hx,tx,hy,ty,q,c,cc are         */
+/* temporary storage variables of type double.                               */
+
+#define  MUL2(x, xx, y, yy, z, zz, p, hx, tx, hy, ty, q, c, cc)  \
+  MUL12 (x, y, c, cc, p, hx, tx, hy, ty, q)                      \
+  cc = ((x) * (yy) + (xx) * (y)) + cc;   z = c + cc;   zz = (c - z) + cc;
+
+
+/* Double-length division, Dekker. The macro produces a double-length        */
+/* number (z,zz) which satisfies approximately   z+zz = (x+xx)/(y+yy).       */
+/* An error bound: abs((x+xx)/(y+yy))*1.50e-31. (x,xx), (y,yy)               */
+/* are assumed to be double-length numbers. p,hx,tx,hy,ty,q,c,cc,u,uu        */
+/* are temporary storage variables of type double.                           */
+
+#define  DIV2(x,xx,y,yy,z,zz,p,hx,tx,hy,ty,q,c,cc,u,uu)  \
+	   c=(x)/(y);   MUL12(c,y,u,uu,p,hx,tx,hy,ty,q)  \
+	   cc=(((((x)-u)-uu)+(xx))-c*(yy))/(y);   z=c+cc;   zz=(c-z)+cc;
+
+
+/* Double-length addition, slower but more accurate than ADD2.               */
+/* The macro produces a double-length                                        */
+/* number (z,zz) which satisfies approximately   z+zz = (x+xx)+(y+yy).       */
+/* An error bound: abs(x+xx + y+yy)*1.50e-31. (x,xx), (y,yy)                 */
+/* are assumed to be double-length numbers. r,rr,s,ss,u,uu,w                 */
+/* are temporary storage variables of type double.                           */
+
+#define  ADD2A(x, xx, y, yy, z, zz, r, rr, s, ss, u, uu, w)                 \
+  r = (x) + (y);                                                            \
+  if (fabs (x) > fabs (y)) { rr = ((x) - r) + (y);  s = (rr + (yy)) + (xx); } \
+  else               { rr = ((y) - r) + (x);  s = (rr + (xx)) + (yy); }     \
+  if (rr != 0.0) {                                                          \
+      z = r + s;  zz = (r - z) + s; }                                       \
+  else {                                                                    \
+      ss = (fabs (xx) > fabs (yy)) ? (((xx) - s) + (yy)) : (((yy) - s) + (xx));\
+      u = r + s;                                                            \
+      uu = (fabs (r) > fabs (s))   ? ((r - u) + s)   : ((s - u) + r);         \
+      w = uu + ss;  z = u + w;                                              \
+      zz = (fabs (u) > fabs (w))   ? ((u - z) + w)   : ((w - z) + u); }
+
+
+/* Double-length subtraction, slower but more accurate than SUB2.            */
+/* The macro produces a double-length                                        */
+/* number (z,zz) which satisfies approximately   z+zz = (x+xx)-(y+yy).       */
+/* An error bound: abs(x+xx - (y+yy))*1.50e-31. (x,xx), (y,yy)               */
+/* are assumed to be double-length numbers. r,rr,s,ss,u,uu,w                 */
+/* are temporary storage variables of type double.                           */
+
+#define  SUB2A(x, xx, y, yy, z, zz, r, rr, s, ss, u, uu, w)                   \
+  r = (x) - (y);                                                              \
+  if (fabs (x) > fabs (y)) { rr = ((x) - r) - (y);  s = (rr - (yy)) + (xx); }   \
+  else               { rr = (x) - ((y) + r);  s = (rr + (xx)) - (yy); }       \
+  if (rr != 0.0) {                                                            \
+      z = r + s;  zz = (r - z) + s; }                                         \
+  else {                                                                      \
+      ss = (fabs (xx) > fabs (yy)) ? (((xx) - s) - (yy)) : ((xx) - ((yy) + s)); \
+      u = r + s;                                                              \
+      uu = (fabs (r) > fabs (s))   ? ((r - u) + s)   : ((s - u) + r);           \
+      w = uu + ss;  z = u + w;                                                \
+      zz = (fabs (u) > fabs (w))   ? ((u - z) + w)   : ((w - z) + u); }
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/doasin.c b/REORG.TODO/sysdeps/ieee754/dbl-64/doasin.c
new file mode 100644
index 0000000000..7c2f3c3dc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/doasin.c
@@ -0,0 +1,84 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/**********************************************************************/
+/* MODULE_NAME: doasin.c                                              */
+/*                                                                    */
+/* FUNCTION: doasin                                                   */
+/*                                                                    */
+/* FILES NEEDED:endian.h mydefs.h dla.h doasin.h                      */
+/*              mpa.c                                                 */
+/*                                                                    */
+/* Compute arcsin(x,dx,v) of double-length number (x+dx) the result   */
+/* stored in v where v= v[0]+v[1] =arcsin(x+dx)                       */
+/**********************************************************************/
+
+#include "endian.h"
+#include "mydefs.h"
+#include <dla.h>
+#include <math_private.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+/********************************************************************/
+/* Compute arcsin(x,dx,v) of double-length number (x+dx) the result */
+/* stored in v where v= v[0]+v[1] =arcsin(x+dx)                     */
+/********************************************************************/
+void
+SECTION
+__doasin(double x, double dx, double v[]) {
+
+#include "doasin.h"
+
+  static const double
+    d5 =  0.22372159090911789889975459505194491E-01,
+    d6 =  0.17352764422456822913014975683014622E-01,
+    d7 =  0.13964843843786693521653681033981614E-01,
+    d8 =  0.11551791438485242609036067259086589E-01,
+    d9 =  0.97622386568166960207425666787248914E-02,
+    d10 = 0.83638737193775788576092749009744976E-02,
+    d11 = 0.79470250400727425881446981833568758E-02;
+
+  double xx,p,pp,u,uu,r,s;
+  double tc,tcc;
+#ifndef DLA_FMS
+  double hx,tx,hy,ty,tp,tq;
+#endif
+
+
+/* Taylor series for arcsin for Double-Length numbers         */
+  xx = x*x+2.0*x*dx;
+  p = ((((((d11*xx+d10)*xx+d9)*xx+d8)*xx+d7)*xx+d6)*xx+d5)*xx;
+  pp = 0;
+
+  MUL2(x,dx,x,dx,u,uu,tp,hx,tx,hy,ty,tq,tc,tcc);
+  ADD2(p,pp,c4.x,cc4.x,p,pp,r,s);
+  MUL2(p,pp,u,uu,p,pp,tp,hx,tx,hy,ty,tq,tc,tcc);
+  ADD2(p,pp,c3.x,cc3.x,p,pp,r,s);
+  MUL2(p,pp,u,uu,p,pp,tp,hx,tx,hy,ty,tq,tc,tcc);
+  ADD2(p,pp,c2.x,cc2.x,p,pp,r,s);
+  MUL2(p,pp,u,uu,p,pp,tp,hx,tx,hy,ty,tq,tc,tcc);
+  ADD2(p,pp,c1.x,cc1.x,p,pp,r,s);
+  MUL2(p,pp,u,uu,p,pp,tp,hx,tx,hy,ty,tq,tc,tcc);
+  MUL2(p,pp,x,dx,p,pp,tp,hx,tx,hy,ty,tq,tc,tcc);
+  ADD2(p,pp,x,dx,p,pp,r,s);
+  v[0]=p;
+  v[1]=pp; /* arcsin(x+dx)=v[0]+v[1] */
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/doasin.h b/REORG.TODO/sysdeps/ieee754/dbl-64/doasin.h
new file mode 100644
index 0000000000..c6b64597fb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/doasin.h
@@ -0,0 +1,63 @@
+
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/************************************************************************/
+/*  MODULE_NAME: doasin.h                                                */
+/*                                                                      */
+/*                                                                      */
+/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
+/************************************************************************/
+
+
+
+#ifndef DOASIN_H
+#define DOASIN_H
+
+#ifdef BIG_ENDI
+
+ static const  mynumber
+/**/             c1 = {{0x3FC55555, 0x55555555}}, /*  0.16666666666666666    */
+/**/            cc1 = {{0x3C655555, 0x55775389}}, /*  9.2518585419753846e-18 */
+/**/             c2 = {{0x3FB33333, 0x33333333}}, /*  0.074999999999999997   */
+/**/            cc2 = {{0x3C499993, 0x63F1A115}}, /*  2.7755472886508899e-18 */
+/**/             c3 = {{0x3FA6DB6D, 0xB6DB6DB7}}, /*  0.044642857142857144   */
+/**/            cc3 = {{0xBC320FC0, 0x3D5CF0C5}}, /* -9.7911734574147224e-19 */
+/**/             c4 = {{0x3F9F1C71, 0xC71C71C5}}, /*  0.030381944444444437   */
+/**/            cc4 = {{0xBC02B240, 0xFF23ED1E}}; /* -1.2669108566898312e-19 */
+
+#else
+#ifdef LITTLE_ENDI
+
+ static const  mynumber
+/**/             c1 = {{0x55555555, 0x3FC55555}}, /*  0.16666666666666666    */
+/**/            cc1 = {{0x55775389, 0x3C655555}}, /*  9.2518585419753846e-18 */
+/**/             c2 = {{0x33333333, 0x3FB33333}}, /*  0.074999999999999997   */
+/**/            cc2 = {{0x63F1A115, 0x3C499993}}, /*  2.7755472886508899e-18 */
+/**/             c3 = {{0xB6DB6DB7, 0x3FA6DB6D}}, /*  0.044642857142857144   */
+/**/            cc3 = {{0x3D5CF0C5, 0xBC320FC0}}, /* -9.7911734574147224e-19 */
+/**/             c4 = {{0xC71C71C5, 0x3F9F1C71}}, /*  0.030381944444444437   */
+/**/            cc4 = {{0xFF23ED1E, 0xBC02B240}}; /* -1.2669108566898312e-19 */
+
+
+#endif
+#endif
+
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.c b/REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.c
new file mode 100644
index 0000000000..372872b42b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.c
@@ -0,0 +1,223 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/********************************************************************/
+/*                                                                  */
+/* MODULE_NAME: dosincos.c                                          */
+/*                                                                  */
+/*                                                                  */
+/* FUNCTIONS:   dubsin                                              */
+/*              dubcos                                              */
+/*              docos                                               */
+/* FILES NEEDED: endian.h mydefs.h dla.h dosincos.h                 */
+/*               sincos.tbl                                         */
+/*                                                                  */
+/* Routines compute sin() and cos() as Double-Length numbers         */
+/********************************************************************/
+
+
+
+#include "endian.h"
+#include "mydefs.h"
+#include <dla.h>
+#include "dosincos.h"
+#include <math_private.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+extern const union
+{
+  int4 i[880];
+  double x[440];
+} __sincostab attribute_hidden;
+
+/***********************************************************************/
+/* Routine receive Double-Length number (x+dx) and computing sin(x+dx) */
+/* as Double-Length number and store it at array v .It computes it by  */
+/* arithmetic action on Double-Length numbers                          */
+/*(x+dx) between 0 and PI/4                                            */
+/***********************************************************************/
+
+void
+SECTION
+__dubsin (double x, double dx, double v[])
+{
+  double r, s, c, cc, d, dd, d2, dd2, e, ee,
+	 sn, ssn, cs, ccs, ds, dss, dc, dcc;
+#ifndef DLA_FMS
+  double p, hx, tx, hy, ty, q;
+#endif
+  mynumber u;
+  int4 k;
+
+  u.x = x + big.x;
+  k = u.i[LOW_HALF] << 2;
+  x = x - (u.x - big.x);
+  d = x + dx;
+  dd = (x - d) + dx;
+  /* sin(x+dx)=sin(Xi+t)=sin(Xi)*cos(t) + cos(Xi)sin(t) where t ->0 */
+  MUL2 (d, dd, d, dd, d2, dd2, p, hx, tx, hy, ty, q, c, cc);
+  sn = __sincostab.x[k];       /*                                  */
+  ssn = __sincostab.x[k + 1];  /*      sin(Xi) and cos(Xi)         */
+  cs = __sincostab.x[k + 2];   /*                                  */
+  ccs = __sincostab.x[k + 3];  /*                                  */
+  /* Taylor series for sin ds=sin(t) */
+  MUL2 (d2, dd2, s7.x, ss7.x, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, s5.x, ss5.x, ds, dss, r, s);
+  MUL2 (d2, dd2, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, s3.x, ss3.x, ds, dss, r, s);
+  MUL2 (d2, dd2, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  MUL2 (d, dd, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, d, dd, ds, dss, r, s);
+
+  /* Taylor series for cos dc=cos(t) */
+  MUL2 (d2, dd2, c8.x, cc8.x, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c6.x, cc6.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c4.x, cc4.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c2.x, cc2.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+
+  MUL2 (cs, ccs, ds, dss, e, ee, p, hx, tx, hy, ty, q, c, cc);
+  MUL2 (dc, dcc, sn, ssn, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  SUB2 (e, ee, dc, dcc, e, ee, r, s);
+  ADD2 (e, ee, sn, ssn, e, ee, r, s);                    /* e+ee=sin(x+dx) */
+
+  v[0] = e;
+  v[1] = ee;
+}
+/**********************************************************************/
+/* Routine receive Double-Length number (x+dx) and computes cos(x+dx) */
+/* as Double-Length number and store it in array v .It computes it by */
+/* arithmetic action on Double-Length numbers                         */
+/*(x+dx) between 0 and PI/4                                           */
+/**********************************************************************/
+
+void
+SECTION
+__dubcos (double x, double dx, double v[])
+{
+  double r, s, c, cc, d, dd, d2, dd2, e, ee,
+	 sn, ssn, cs, ccs, ds, dss, dc, dcc;
+#ifndef DLA_FMS
+  double p, hx, tx, hy, ty, q;
+#endif
+  mynumber u;
+  int4 k;
+  u.x = x + big.x;
+  k = u.i[LOW_HALF] << 2;
+  x = x - (u.x - big.x);
+  d = x + dx;
+  dd = (x - d) + dx;  /* cos(x+dx)=cos(Xi+t)=cos(Xi)cos(t) - sin(Xi)sin(t) */
+  MUL2 (d, dd, d, dd, d2, dd2, p, hx, tx, hy, ty, q, c, cc);
+  sn = __sincostab.x[k];     /*                                  */
+  ssn = __sincostab.x[k + 1];  /*      sin(Xi) and cos(Xi)         */
+  cs = __sincostab.x[k + 2];   /*                                  */
+  ccs = __sincostab.x[k + 3];  /*                                  */
+  MUL2 (d2, dd2, s7.x, ss7.x, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, s5.x, ss5.x, ds, dss, r, s);
+  MUL2 (d2, dd2, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, s3.x, ss3.x, ds, dss, r, s);
+  MUL2 (d2, dd2, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  MUL2 (d, dd, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, d, dd, ds, dss, r, s);
+
+  MUL2 (d2, dd2, c8.x, cc8.x, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c6.x, cc6.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c4.x, cc4.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c2.x, cc2.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+
+  MUL2 (cs, ccs, ds, dss, e, ee, p, hx, tx, hy, ty, q, c, cc);
+  MUL2 (dc, dcc, sn, ssn, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+
+  MUL2 (d2, dd2, s7.x, ss7.x, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, s5.x, ss5.x, ds, dss, r, s);
+  MUL2 (d2, dd2, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, s3.x, ss3.x, ds, dss, r, s);
+  MUL2 (d2, dd2, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  MUL2 (d, dd, ds, dss, ds, dss, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (ds, dss, d, dd, ds, dss, r, s);
+  MUL2 (d2, dd2, c8.x, cc8.x, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c6.x, cc6.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c4.x, cc4.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (dc, dcc, c2.x, cc2.x, dc, dcc, r, s);
+  MUL2 (d2, dd2, dc, dcc, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  MUL2 (sn, ssn, ds, dss, e, ee, p, hx, tx, hy, ty, q, c, cc);
+  MUL2 (dc, dcc, cs, ccs, dc, dcc, p, hx, tx, hy, ty, q, c, cc);
+  ADD2 (e, ee, dc, dcc, e, ee, r, s);
+  SUB2 (cs, ccs, e, ee, e, ee, r, s);
+
+  v[0] = e;
+  v[1] = ee;
+}
+/**********************************************************************/
+/* Routine receive Double-Length number (x+dx) and computes cos(x+dx) */
+/* as Double-Length number and store it in array v                    */
+/**********************************************************************/
+void
+SECTION
+__docos (double x, double dx, double v[])
+{
+  double y, yy, p, w[2];
+  if (x > 0)
+    {
+      y = x; yy = dx;
+    }
+  else
+    {
+      y = -x; yy = -dx;
+    }
+  if (y < 0.5 * hp0.x)                                 /*  y< PI/4    */
+    {
+      __dubcos (y, yy, w); v[0] = w[0]; v[1] = w[1];
+    }
+  else if (y < 1.5 * hp0.x)                        /* y< 3/4 * PI */
+    {
+      p = hp0.x - y; /* p = PI/2 - y */
+      yy = hp1.x - yy;
+      y = p + yy;
+      yy = (p - y) + yy;
+      if (y > 0)
+	{
+	  __dubsin (y, yy, w); v[0] = w[0]; v[1] = w[1];
+	}
+      /* cos(x) = sin ( 90 -  x ) */
+      else
+	{
+	  __dubsin (-y, -yy, w); v[0] = -w[0]; v[1] = -w[1];
+	}
+    }
+  else   /* y>= 3/4 * PI */
+    {
+      p = 2.0 * hp0.x - y; /* p = PI- y */
+      yy = 2.0 * hp1.x - yy;
+      y = p + yy;
+      yy = (p - y) + yy;
+      __dubcos (y, yy, w);
+      v[0] = -w[0];
+      v[1] = -w[1];
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.h b/REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.h
new file mode 100644
index 0000000000..9fda3d77cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/dosincos.h
@@ -0,0 +1,80 @@
+
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/************************************************************************/
+/*  MODULE_NAME: dosincos.h                                                */
+/*                                                                      */
+/*                                                                      */
+/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
+/************************************************************************/
+
+
+
+#ifndef DOSINCOS_H
+#define DOSINCOS_H
+
+
+#ifdef BIG_ENDI
+static const mynumber
+/**/             s3 = {{0xBFC55555, 0x55555555}},/* -0.16666666666666666    */
+/**/            ss3 = {{0xBC6553AA, 0xE77EE482}},/* -9.2490366677784492e-18 */
+/**/             s5 = {{0x3F811111, 0x11110F15}},/*  0.008333333333332452   */
+/**/            ss5 = {{0xBC21AC06, 0xDA488820}},/* -4.7899996586987931e-19 */
+/**/             s7 = {{0xBF2A019F, 0x5816C78D}},/* -0.00019841261022928957 */
+/**/            ss7 = {{0x3BCDCEC9, 0x6A18BF2A}},/*  1.2624077757871259e-20 */
+/**/             c2 = {{0x3FE00000, 0x00000000}},/*  0.5                    */
+/**/            cc2 = {{0xBA282FD8, 0x00000000}},/* -1.5264073330037701e-28 */
+/**/             c4 = {{0xBFA55555, 0x55555555}},/* -0.041666666666666664   */
+/**/            cc4 = {{0xBC4554BC, 0x2FFF257E}},/* -2.312711276085743e-18  */
+/**/             c6 = {{0x3F56C16C, 0x16C16A96}},/*  0.0013888888888888055  */
+/**/            cc6 = {{0xBBD2E846, 0xE6346F14}},/* -1.6015133010194884e-20 */
+/**/             c8 = {{0xBEFA019F, 0x821D5987}},/* -2.480157866754367e-05  */
+/**/            cc8 = {{0x3B7AB71E, 0x72FFE5CC}},/*  3.5357416224857556e-22 */
+
+/**/            big = {{0x42c80000, 0x00000000}}, /* 52776558133248         */
+
+/**/            hp0 = {{0x3FF921FB, 0x54442D18}}, /* PI / 2                 */
+/**/            hp1 = {{0x3C91A626, 0x33145C07}}; /* 6.123233995736766e-17  */
+#else
+#ifdef LITTLE_ENDI
+static const mynumber
+/**/             s3 = {{0x55555555, 0xBFC55555}},/* -0.16666666666666666    */
+/**/            ss3 = {{0xE77EE482, 0xBC6553AA}},/* -9.2490366677784492e-18 */
+/**/             s5 = {{0x11110F15, 0x3F811111}},/*  0.008333333333332452   */
+/**/            ss5 = {{0xDA488820, 0xBC21AC06}},/* -4.7899996586987931e-19 */
+/**/             s7 = {{0x5816C78D, 0xBF2A019F}},/* -0.00019841261022928957 */
+/**/            ss7 = {{0x6A18BF2A, 0x3BCDCEC9}},/*  1.2624077757871259e-20 */
+/**/             c2 = {{0x00000000, 0x3FE00000}},/*  0.5                    */
+/**/            cc2 = {{0x00000000, 0xBA282FD8}},/* -1.5264073330037701e-28 */
+/**/             c4 = {{0x55555555, 0xBFA55555}},/* -0.041666666666666664   */
+/**/            cc4 = {{0x2FFF257E, 0xBC4554BC}},/* -2.312711276085743e-18  */
+/**/             c6 = {{0x16C16A96, 0x3F56C16C}},/*  0.0013888888888888055  */
+/**/            cc6 = {{0xE6346F14, 0xBBD2E846}},/* -1.6015133010194884e-20 */
+/**/             c8 = {{0x821D5987, 0xBEFA019F}},/* -2.480157866754367e-05  */
+/**/            cc8 = {{0x72FFE5CC, 0x3B7AB71E}},/*  3.5357416224857556e-22 */
+
+/**/            big = {{0x00000000, 0x42c80000}}, /* 52776558133248         */
+
+/**/            hp0 = {{0x54442D18, 0x3FF921FB}}, /* PI / 2                 */
+/**/            hp1 = {{0x33145C07, 0x3C91A626}}; /* 6.123233995736766e-17  */
+#endif
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_acos.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_acos.c
new file mode 100644
index 0000000000..8f7cd89249
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_acos.c
@@ -0,0 +1 @@
+/* In e_asin.c */
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_acosh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_acosh.c
new file mode 100644
index 0000000000..c1f3590f75
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_acosh.c
@@ -0,0 +1,69 @@
+/* @(#)e_acosh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_acosh(x)
+ * Method :
+ *	Based on
+ *		acosh(x) = log [ x + sqrt(x*x-1) ]
+ *	we have
+ *		acosh(x) := log(x)+ln2,	if x is large; else
+ *		acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else
+ *		acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1.
+ *
+ * Special cases:
+ *	acosh(x) is NaN with signal if x<1.
+ *	acosh(NaN) is NaN without signal.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  one = 1.0,
+  ln2 = 6.93147180559945286227e-01;    /* 0x3FE62E42, 0xFEFA39EF */
+
+double
+__ieee754_acosh (double x)
+{
+  double t;
+  int32_t hx;
+  u_int32_t lx;
+  EXTRACT_WORDS (hx, lx, x);
+  if (hx < 0x3ff00000)                  /* x < 1 */
+    {
+      return (x - x) / (x - x);
+    }
+  else if (hx >= 0x41b00000)            /* x > 2**28 */
+    {
+      if (hx >= 0x7ff00000)             /* x is inf of NaN */
+	{
+	  return x + x;
+	}
+      else
+	return __ieee754_log (x) + ln2;         /* acosh(huge)=log(2x) */
+    }
+  else if (((hx - 0x3ff00000) | lx) == 0)
+    {
+      return 0.0;                       /* acosh(1) = 0 */
+    }
+  else if (hx > 0x40000000)             /* 2**28 > x > 2 */
+    {
+      t = x * x;
+      return __ieee754_log (2.0 * x - one / (x + __ieee754_sqrt (t - one)));
+    }
+  else                                  /* 1<x<2 */
+    {
+      t = x - one;
+      return __log1p (t + __ieee754_sqrt (2.0 * t + t * t));
+    }
+}
+strong_alias (__ieee754_acosh, __acosh_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_asin.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_asin.c
new file mode 100644
index 0000000000..9808f3981c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_asin.c
@@ -0,0 +1,647 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/******************************************************************/
+/*     MODULE_NAME:uasncs.c                                       */
+/*                                                                */
+/*     FUNCTIONS: uasin                                           */
+/*                uacos                                           */
+/* FILES NEEDED: dla.h endian.h mpa.h mydefs.h  usncs.h           */
+/*               doasin.c sincos32.c dosincos.c mpa.c             */
+/*               sincos.tbl  asincos.tbl  powtwo.tbl root.tbl     */
+/*                                                                */
+/* Ultimate asin/acos routines. Given an IEEE double machine      */
+/* number x, compute the correctly rounded value of               */
+/* arcsin(x)or arccos(x)  according to the function called.       */
+/* Assumption: Machine arithmetic operations are performed in     */
+/* round to nearest mode of IEEE 754 standard.                    */
+/*                                                                */
+/******************************************************************/
+#include "endian.h"
+#include "mydefs.h"
+#include "asincos.tbl"
+#include "root.tbl"
+#include "powtwo.tbl"
+#include "MathLib.h"
+#include "uasncs.h"
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+void __doasin(double x, double dx, double w[]);
+void __dubsin(double x, double dx, double v[]);
+void __dubcos(double x, double dx, double v[]);
+void __docos(double x, double dx, double v[]);
+double __sin32(double x, double res, double res1);
+double __cos32(double x, double res, double res1);
+
+/***************************************************************************/
+/* An ultimate asin routine. Given an IEEE double machine number x         */
+/* it computes the correctly rounded (to nearest) value of arcsin(x)       */
+/***************************************************************************/
+double
+SECTION
+__ieee754_asin(double x){
+  double x1,x2,xx,s1,s2,res1,p,t,res,r,cor,cc,y,c,z,w[2];
+  mynumber u,v;
+  int4 k,m,n;
+
+  u.x = x;
+  m = u.i[HIGH_HALF];
+  k = 0x7fffffff&m;              /* no sign */
+
+  if (k < 0x3e500000)
+    {
+      math_check_force_underflow (x);
+      return x;  /* for x->0 => sin(x)=x */
+    }
+  /*----------------------2^-26 <= |x| < 2^ -3    -----------------*/
+  else
+  if (k < 0x3fc00000) {
+    x2 = x*x;
+    t = (((((f6*x2 + f5)*x2 + f4)*x2 + f3)*x2 + f2)*x2 + f1)*(x2*x);
+    res = x+t;         /*  res=arcsin(x) according to Taylor series  */
+    cor = (x-res)+t;
+    if (res == res+1.025*cor) return res;
+    else {
+      x1 = x+big;
+      xx = x*x;
+      x1 -= big;
+      x2 = x - x1;
+      p = x1*x1*x1;
+      s1 = a1.x*p;
+      s2 = ((((((c7*xx + c6)*xx + c5)*xx + c4)*xx + c3)*xx + c2)*xx*xx*x +
+	     ((a1.x+a2.x)*x2*x2+ 0.5*x1*x)*x2) + a2.x*p;
+      res1 = x+s1;
+      s2 = ((x-res1)+s1)+s2;
+      res = res1+s2;
+      cor = (res1-res)+s2;
+      if (res == res+1.00014*cor) return res;
+      else {
+	__doasin(x,0,w);
+	if (w[0]==(w[0]+1.00000001*w[1])) return w[0];
+	else {
+	  y=fabs(x);
+	  res=fabs(w[0]);
+	  res1=fabs(w[0]+1.1*w[1]);
+	  return (m>0)?__sin32(y,res,res1):-__sin32(y,res,res1);
+	}
+      }
+    }
+  }
+  /*---------------------0.125 <= |x| < 0.5 -----------------------------*/
+  else if (k < 0x3fe00000) {
+    if (k<0x3fd00000) n = 11*((k&0x000fffff)>>15);
+    else n = 11*((k&0x000fffff)>>14)+352;
+    if (m>0) xx = x - asncs.x[n];
+    else xx = -x - asncs.x[n];
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+xx*(asncs.x[n+5]
+     +xx*asncs.x[n+6]))))+asncs.x[n+7];
+    t+=p;
+    res =asncs.x[n+8] +t;
+    cor = (asncs.x[n+8]-res)+t;
+    if (res == res+1.05*cor) return (m>0)?res:-res;
+    else {
+      r=asncs.x[n+8]+xx*asncs.x[n+9];
+      t=((asncs.x[n+8]-r)+xx*asncs.x[n+9])+(p+xx*asncs.x[n+10]);
+      res = r+t;
+      cor = (r-res)+t;
+      if (res == res+1.0005*cor) return (m>0)?res:-res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	__dubsin(res,z,w);
+	z=(w[0]-fabs(x))+w[1];
+	if (z>1.0e-27) return (m>0)?min(res,res1):-min(res,res1);
+	else if (z<-1.0e-27) return (m>0)?max(res,res1):-max(res,res1);
+	else {
+	  y=fabs(x);
+	  return (m>0)?__sin32(y,res,res1):-__sin32(y,res,res1);
+	}
+      }
+    }
+  }    /*   else  if (k < 0x3fe00000)    */
+  /*-------------------- 0.5 <= |x| < 0.75 -----------------------------*/
+  else
+  if (k < 0x3fe80000) {
+    n = 1056+((k&0x000fe000)>>11)*3;
+    if (m>0) xx = x - asncs.x[n];
+    else xx = -x - asncs.x[n];
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+xx*(asncs.x[n+5]
+	   +xx*(asncs.x[n+6]+xx*asncs.x[n+7])))))+asncs.x[n+8];
+    t+=p;
+    res =asncs.x[n+9] +t;
+    cor = (asncs.x[n+9]-res)+t;
+    if (res == res+1.01*cor) return (m>0)?res:-res;
+    else {
+      r=asncs.x[n+9]+xx*asncs.x[n+10];
+      t=((asncs.x[n+9]-r)+xx*asncs.x[n+10])+(p+xx*asncs.x[n+11]);
+      res = r+t;
+      cor = (r-res)+t;
+      if (res == res+1.0005*cor) return (m>0)?res:-res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	__dubsin(res,z,w);
+	z=(w[0]-fabs(x))+w[1];
+	if (z>1.0e-27) return (m>0)?min(res,res1):-min(res,res1);
+	else if (z<-1.0e-27) return (m>0)?max(res,res1):-max(res,res1);
+	else {
+	  y=fabs(x);
+	  return (m>0)?__sin32(y,res,res1):-__sin32(y,res,res1);
+	}
+      }
+    }
+  }    /*   else  if (k < 0x3fe80000)    */
+  /*--------------------- 0.75 <= |x|< 0.921875 ----------------------*/
+  else
+  if (k < 0x3fed8000) {
+    n = 992+((k&0x000fe000)>>13)*13;
+    if (m>0) xx = x - asncs.x[n];
+    else xx = -x - asncs.x[n];
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+xx*(asncs.x[n+5]
+     +xx*(asncs.x[n+6]+xx*(asncs.x[n+7]+xx*asncs.x[n+8]))))))+asncs.x[n+9];
+    t+=p;
+    res =asncs.x[n+10] +t;
+    cor = (asncs.x[n+10]-res)+t;
+    if (res == res+1.01*cor) return (m>0)?res:-res;
+    else {
+      r=asncs.x[n+10]+xx*asncs.x[n+11];
+      t=((asncs.x[n+10]-r)+xx*asncs.x[n+11])+(p+xx*asncs.x[n+12]);
+      res = r+t;
+      cor = (r-res)+t;
+      if (res == res+1.0008*cor) return (m>0)?res:-res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	y=hp0.x-res;
+	z=((hp0.x-y)-res)+(hp1.x-z);
+	__dubcos(y,z,w);
+	z=(w[0]-fabs(x))+w[1];
+	if (z>1.0e-27) return (m>0)?min(res,res1):-min(res,res1);
+	else if (z<-1.0e-27) return (m>0)?max(res,res1):-max(res,res1);
+	else {
+	  y=fabs(x);
+	  return (m>0)?__sin32(y,res,res1):-__sin32(y,res,res1);
+	}
+      }
+    }
+  }    /*   else  if (k < 0x3fed8000)    */
+  /*-------------------0.921875 <= |x| < 0.953125 ------------------------*/
+  else
+  if (k < 0x3fee8000) {
+    n = 884+((k&0x000fe000)>>13)*14;
+    if (m>0) xx = x - asncs.x[n];
+    else xx = -x - asncs.x[n];
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+
+		      xx*(asncs.x[n+5]+xx*(asncs.x[n+6]
+		      +xx*(asncs.x[n+7]+xx*(asncs.x[n+8]+
+		      xx*asncs.x[n+9])))))))+asncs.x[n+10];
+    t+=p;
+    res =asncs.x[n+11] +t;
+    cor = (asncs.x[n+11]-res)+t;
+    if (res == res+1.01*cor) return (m>0)?res:-res;
+    else {
+      r=asncs.x[n+11]+xx*asncs.x[n+12];
+      t=((asncs.x[n+11]-r)+xx*asncs.x[n+12])+(p+xx*asncs.x[n+13]);
+      res = r+t;
+      cor = (r-res)+t;
+      if (res == res+1.0007*cor) return (m>0)?res:-res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	y=(hp0.x-res)-z;
+	z=y+hp1.x;
+	y=(y-z)+hp1.x;
+	__dubcos(z,y,w);
+	z=(w[0]-fabs(x))+w[1];
+	if (z>1.0e-27) return (m>0)?min(res,res1):-min(res,res1);
+	else if (z<-1.0e-27) return (m>0)?max(res,res1):-max(res,res1);
+	else {
+	  y=fabs(x);
+	  return (m>0)?__sin32(y,res,res1):-__sin32(y,res,res1);
+	}
+      }
+    }
+  }    /*   else  if (k < 0x3fee8000)    */
+
+  /*--------------------0.953125 <= |x| < 0.96875 ------------------------*/
+  else
+  if (k < 0x3fef0000) {
+    n = 768+((k&0x000fe000)>>13)*15;
+    if (m>0) xx = x - asncs.x[n];
+    else xx = -x - asncs.x[n];
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+
+			 xx*(asncs.x[n+5]+xx*(asncs.x[n+6]
+			 +xx*(asncs.x[n+7]+xx*(asncs.x[n+8]+
+		    xx*(asncs.x[n+9]+xx*asncs.x[n+10]))))))))+asncs.x[n+11];
+    t+=p;
+    res =asncs.x[n+12] +t;
+    cor = (asncs.x[n+12]-res)+t;
+    if (res == res+1.01*cor) return (m>0)?res:-res;
+    else {
+      r=asncs.x[n+12]+xx*asncs.x[n+13];
+      t=((asncs.x[n+12]-r)+xx*asncs.x[n+13])+(p+xx*asncs.x[n+14]);
+      res = r+t;
+      cor = (r-res)+t;
+      if (res == res+1.0007*cor) return (m>0)?res:-res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	y=(hp0.x-res)-z;
+	z=y+hp1.x;
+	y=(y-z)+hp1.x;
+	__dubcos(z,y,w);
+	z=(w[0]-fabs(x))+w[1];
+	if (z>1.0e-27) return (m>0)?min(res,res1):-min(res,res1);
+	else if (z<-1.0e-27) return (m>0)?max(res,res1):-max(res,res1);
+	else {
+	  y=fabs(x);
+	  return (m>0)?__sin32(y,res,res1):-__sin32(y,res,res1);
+	}
+      }
+    }
+  }    /*   else  if (k < 0x3fef0000)    */
+  /*--------------------0.96875 <= |x| < 1 --------------------------------*/
+  else
+  if (k<0x3ff00000)  {
+    z = 0.5*((m>0)?(1.0-x):(1.0+x));
+    v.x=z;
+    k=v.i[HIGH_HALF];
+    t=inroot[(k&0x001fffff)>>14]*powtwo[511-(k>>21)];
+    r=1.0-t*t*z;
+    t = t*(rt0+r*(rt1+r*(rt2+r*rt3)));
+    c=t*z;
+    t=c*(1.5-0.5*t*c);
+    y=(c+t24)-t24;
+    cc = (z-y*y)/(t+y);
+    p=(((((f6*z+f5)*z+f4)*z+f3)*z+f2)*z+f1)*z;
+    cor = (hp1.x - 2.0*cc)-2.0*(y+cc)*p;
+    res1 = hp0.x - 2.0*y;
+    res =res1 + cor;
+    if (res == res+1.003*((res1-res)+cor)) return (m>0)?res:-res;
+    else {
+      c=y+cc;
+      cc=(y-c)+cc;
+      __doasin(c,cc,w);
+      res1=hp0.x-2.0*w[0];
+      cor=((hp0.x-res1)-2.0*w[0])+(hp1.x-2.0*w[1]);
+      res = res1+cor;
+      cor = (res1-res)+cor;
+      if (res==(res+1.0000001*cor)) return (m>0)?res:-res;
+      else {
+	y=fabs(x);
+	res1=res+1.1*cor;
+	return (m>0)?__sin32(y,res,res1):-__sin32(y,res,res1);
+      }
+    }
+  }    /*   else  if (k < 0x3ff00000)    */
+  /*---------------------------- |x|>=1 -------------------------------*/
+  else if (k==0x3ff00000 && u.i[LOW_HALF]==0) return (m>0)?hp0.x:-hp0.x;
+  else
+  if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x + x;
+  else {
+    u.i[HIGH_HALF]=0x7ff00000;
+    v.i[HIGH_HALF]=0x7ff00000;
+    u.i[LOW_HALF]=0;
+    v.i[LOW_HALF]=0;
+    return u.x/v.x;  /* NaN */
+ }
+}
+#ifndef __ieee754_asin
+strong_alias (__ieee754_asin, __asin_finite)
+#endif
+
+/*******************************************************************/
+/*                                                                 */
+/*         End of arcsine,  below is arccosine                     */
+/*                                                                 */
+/*******************************************************************/
+
+double
+SECTION
+__ieee754_acos(double x)
+{
+  double x1,x2,xx,s1,s2,res1,p,t,res,r,cor,cc,y,c,z,w[2],eps;
+  mynumber u,v;
+  int4 k,m,n;
+  u.x = x;
+  m = u.i[HIGH_HALF];
+  k = 0x7fffffff&m;
+  /*-------------------  |x|<2.77556*10^-17 ----------------------*/
+  if (k < 0x3c880000) return hp0.x;
+
+  /*-----------------  2.77556*10^-17 <= |x| < 2^-3 --------------*/
+  else
+  if (k < 0x3fc00000) {
+    x2 = x*x;
+    t = (((((f6*x2 + f5)*x2 + f4)*x2 + f3)*x2 + f2)*x2 + f1)*(x2*x);
+    r=hp0.x-x;
+    cor=(((hp0.x-r)-x)+hp1.x)-t;
+    res = r+cor;
+    cor = (r-res)+cor;
+    if (res == res+1.004*cor) return res;
+    else {
+      x1 = x+big;
+      xx = x*x;
+      x1 -= big;
+      x2 = x - x1;
+      p = x1*x1*x1;
+      s1 = a1.x*p;
+      s2 = ((((((c7*xx + c6)*xx + c5)*xx + c4)*xx + c3)*xx + c2)*xx*xx*x +
+	    ((a1.x+a2.x)*x2*x2+ 0.5*x1*x)*x2) + a2.x*p;
+      res1 = x+s1;
+      s2 = ((x-res1)+s1)+s2;
+      r=hp0.x-res1;
+      cor=(((hp0.x-r)-res1)+hp1.x)-s2;
+      res = r+cor;
+      cor = (r-res)+cor;
+      if (res == res+1.00004*cor) return res;
+      else {
+	__doasin(x,0,w);
+	r=hp0.x-w[0];
+	cor=((hp0.x-r)-w[0])+(hp1.x-w[1]);
+	res=r+cor;
+	cor=(r-res)+cor;
+	if (res ==(res +1.00000001*cor)) return res;
+	else {
+	  res1=res+1.1*cor;
+	  return __cos32(x,res,res1);
+	}
+      }
+    }
+  }    /*   else  if (k < 0x3fc00000)    */
+  /*----------------------  0.125 <= |x| < 0.5 --------------------*/
+  else
+  if (k < 0x3fe00000) {
+    if (k<0x3fd00000) n = 11*((k&0x000fffff)>>15);
+    else n = 11*((k&0x000fffff)>>14)+352;
+    if (m>0) xx = x - asncs.x[n];
+    else xx = -x - asncs.x[n];
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+
+		   xx*(asncs.x[n+5]+xx*asncs.x[n+6]))))+asncs.x[n+7];
+    t+=p;
+    y = (m>0)?(hp0.x-asncs.x[n+8]):(hp0.x+asncs.x[n+8]);
+    t = (m>0)?(hp1.x-t):(hp1.x+t);
+    res = y+t;
+    if (res == res+1.02*((y-res)+t)) return res;
+    else {
+      r=asncs.x[n+8]+xx*asncs.x[n+9];
+      t=((asncs.x[n+8]-r)+xx*asncs.x[n+9])+(p+xx*asncs.x[n+10]);
+      if (m>0)
+	{p = hp0.x-r; t = (((hp0.x-p)-r)-t)+hp1.x; }
+      else
+	{p = hp0.x+r; t = ((hp0.x-p)+r)+(hp1.x+t); }
+      res = p+t;
+      cor = (p-res)+t;
+      if (res == (res+1.0002*cor)) return res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	__docos(res,z,w);
+	z=(w[0]-x)+w[1];
+	if (z>1.0e-27) return max(res,res1);
+	else if (z<-1.0e-27) return min(res,res1);
+	else return __cos32(x,res,res1);
+      }
+    }
+  }    /*   else  if (k < 0x3fe00000)    */
+
+  /*--------------------------- 0.5 <= |x| < 0.75 ---------------------*/
+  else
+  if (k < 0x3fe80000) {
+    n = 1056+((k&0x000fe000)>>11)*3;
+    if (m>0) {xx = x - asncs.x[n]; eps=1.04; }
+    else {xx = -x - asncs.x[n]; eps=1.02; }
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+
+		   xx*(asncs.x[n+5]+xx*(asncs.x[n+6]+
+		   xx*asncs.x[n+7])))))+asncs.x[n+8];
+    t+=p;
+   y = (m>0)?(hp0.x-asncs.x[n+9]):(hp0.x+asncs.x[n+9]);
+   t = (m>0)?(hp1.x-t):(hp1.x+t);
+   res = y+t;
+   if (res == res+eps*((y-res)+t)) return res;
+   else {
+     r=asncs.x[n+9]+xx*asncs.x[n+10];
+     t=((asncs.x[n+9]-r)+xx*asncs.x[n+10])+(p+xx*asncs.x[n+11]);
+     if (m>0) {p = hp0.x-r; t = (((hp0.x-p)-r)-t)+hp1.x; eps=1.0004; }
+     else   {p = hp0.x+r; t = ((hp0.x-p)+r)+(hp1.x+t); eps=1.0002; }
+     res = p+t;
+     cor = (p-res)+t;
+     if (res == (res+eps*cor)) return res;
+     else {
+       res1=res+1.1*cor;
+       z=0.5*(res1-res);
+       __docos(res,z,w);
+       z=(w[0]-x)+w[1];
+       if (z>1.0e-27) return max(res,res1);
+       else if (z<-1.0e-27) return min(res,res1);
+       else return __cos32(x,res,res1);
+     }
+   }
+  }    /*   else  if (k < 0x3fe80000)    */
+
+/*------------------------- 0.75 <= |x| < 0.921875 -------------*/
+  else
+  if (k < 0x3fed8000) {
+    n = 992+((k&0x000fe000)>>13)*13;
+    if (m>0) {xx = x - asncs.x[n]; eps = 1.04; }
+    else {xx = -x - asncs.x[n]; eps = 1.01; }
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+
+		      xx*(asncs.x[n+5]+xx*(asncs.x[n+6]+xx*(asncs.x[n+7]+
+		      xx*asncs.x[n+8]))))))+asncs.x[n+9];
+    t+=p;
+    y = (m>0)?(hp0.x-asncs.x[n+10]):(hp0.x+asncs.x[n+10]);
+    t = (m>0)?(hp1.x-t):(hp1.x+t);
+    res = y+t;
+    if (res == res+eps*((y-res)+t)) return res;
+    else {
+      r=asncs.x[n+10]+xx*asncs.x[n+11];
+      t=((asncs.x[n+10]-r)+xx*asncs.x[n+11])+(p+xx*asncs.x[n+12]);
+      if (m>0) {p = hp0.x-r; t = (((hp0.x-p)-r)-t)+hp1.x; eps=1.0032; }
+      else   {p = hp0.x+r; t = ((hp0.x-p)+r)+(hp1.x+t); eps=1.0008; }
+      res = p+t;
+      cor = (p-res)+t;
+      if (res == (res+eps*cor)) return res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	__docos(res,z,w);
+	z=(w[0]-x)+w[1];
+	if (z>1.0e-27) return max(res,res1);
+	else if (z<-1.0e-27) return min(res,res1);
+	else return __cos32(x,res,res1);
+      }
+    }
+  }    /*   else  if (k < 0x3fed8000)    */
+
+/*-------------------0.921875 <= |x| < 0.953125 ------------------*/
+  else
+  if (k < 0x3fee8000) {
+    n = 884+((k&0x000fe000)>>13)*14;
+    if (m>0) {xx = x - asncs.x[n]; eps=1.04; }
+    else {xx = -x - asncs.x[n]; eps =1.005; }
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+
+		   xx*(asncs.x[n+5]+xx*(asncs.x[n+6]
+		   +xx*(asncs.x[n+7]+xx*(asncs.x[n+8]+
+		   xx*asncs.x[n+9])))))))+asncs.x[n+10];
+    t+=p;
+    y = (m>0)?(hp0.x-asncs.x[n+11]):(hp0.x+asncs.x[n+11]);
+    t = (m>0)?(hp1.x-t):(hp1.x+t);
+    res = y+t;
+    if (res == res+eps*((y-res)+t)) return res;
+    else {
+      r=asncs.x[n+11]+xx*asncs.x[n+12];
+      t=((asncs.x[n+11]-r)+xx*asncs.x[n+12])+(p+xx*asncs.x[n+13]);
+      if (m>0) {p = hp0.x-r; t = (((hp0.x-p)-r)-t)+hp1.x; eps=1.0030; }
+      else   {p = hp0.x+r; t = ((hp0.x-p)+r)+(hp1.x+t); eps=1.0005; }
+      res = p+t;
+      cor = (p-res)+t;
+      if (res == (res+eps*cor)) return res;
+      else {
+	res1=res+1.1*cor;
+	z=0.5*(res1-res);
+	__docos(res,z,w);
+	z=(w[0]-x)+w[1];
+	if (z>1.0e-27) return max(res,res1);
+	else if (z<-1.0e-27) return min(res,res1);
+	else return __cos32(x,res,res1);
+      }
+    }
+  }    /*   else  if (k < 0x3fee8000)    */
+
+  /*--------------------0.953125 <= |x| < 0.96875 ----------------*/
+  else
+  if (k < 0x3fef0000) {
+    n = 768+((k&0x000fe000)>>13)*15;
+    if (m>0) {xx = x - asncs.x[n]; eps=1.04; }
+    else {xx = -x - asncs.x[n]; eps=1.005;}
+    t = asncs.x[n+1]*xx;
+    p=xx*xx*(asncs.x[n+2]+xx*(asncs.x[n+3]+xx*(asncs.x[n+4]+
+	    xx*(asncs.x[n+5]+xx*(asncs.x[n+6]
+	    +xx*(asncs.x[n+7]+xx*(asncs.x[n+8]+xx*(asncs.x[n+9]+
+	    xx*asncs.x[n+10]))))))))+asncs.x[n+11];
+    t+=p;
+    y = (m>0)?(hp0.x-asncs.x[n+12]):(hp0.x+asncs.x[n+12]);
+   t = (m>0)?(hp1.x-t):(hp1.x+t);
+   res = y+t;
+   if (res == res+eps*((y-res)+t)) return res;
+   else {
+     r=asncs.x[n+12]+xx*asncs.x[n+13];
+     t=((asncs.x[n+12]-r)+xx*asncs.x[n+13])+(p+xx*asncs.x[n+14]);
+     if (m>0) {p = hp0.x-r; t = (((hp0.x-p)-r)-t)+hp1.x; eps=1.0030; }
+     else   {p = hp0.x+r; t = ((hp0.x-p)+r)+(hp1.x+t); eps=1.0005; }
+     res = p+t;
+     cor = (p-res)+t;
+     if (res == (res+eps*cor)) return res;
+     else {
+       res1=res+1.1*cor;
+       z=0.5*(res1-res);
+       __docos(res,z,w);
+       z=(w[0]-x)+w[1];
+       if (z>1.0e-27) return max(res,res1);
+       else if (z<-1.0e-27) return min(res,res1);
+       else return __cos32(x,res,res1);
+     }
+   }
+  }    /*   else  if (k < 0x3fef0000)    */
+  /*-----------------0.96875 <= |x| < 1 ---------------------------*/
+
+  else
+  if (k<0x3ff00000)  {
+    z = 0.5*((m>0)?(1.0-x):(1.0+x));
+    v.x=z;
+    k=v.i[HIGH_HALF];
+    t=inroot[(k&0x001fffff)>>14]*powtwo[511-(k>>21)];
+    r=1.0-t*t*z;
+    t = t*(rt0+r*(rt1+r*(rt2+r*rt3)));
+    c=t*z;
+    t=c*(1.5-0.5*t*c);
+    y = (t27*c+c)-t27*c;
+    cc = (z-y*y)/(t+y);
+    p=(((((f6*z+f5)*z+f4)*z+f3)*z+f2)*z+f1)*z;
+    if (m<0) {
+      cor = (hp1.x - cc)-(y+cc)*p;
+      res1 = hp0.x - y;
+      res =res1 + cor;
+      if (res == res+1.002*((res1-res)+cor)) return (res+res);
+      else {
+	c=y+cc;
+	cc=(y-c)+cc;
+	__doasin(c,cc,w);
+	res1=hp0.x-w[0];
+	cor=((hp0.x-res1)-w[0])+(hp1.x-w[1]);
+	res = res1+cor;
+	cor = (res1-res)+cor;
+	if (res==(res+1.000001*cor)) return (res+res);
+	else {
+	  res=res+res;
+	  res1=res+1.2*cor;
+	  return __cos32(x,res,res1);
+	}
+      }
+    }
+    else {
+      cor = cc+p*(y+cc);
+      res = y + cor;
+      if (res == res+1.03*((y-res)+cor)) return (res+res);
+      else {
+	c=y+cc;
+	cc=(y-c)+cc;
+	__doasin(c,cc,w);
+	res = w[0];
+	cor=w[1];
+	if (res==(res+1.000001*cor)) return (res+res);
+	else {
+	  res=res+res;
+	  res1=res+1.2*cor;
+	  return __cos32(x,res,res1);
+	}
+      }
+    }
+  }    /*   else  if (k < 0x3ff00000)    */
+
+  /*---------------------------- |x|>=1 -----------------------*/
+  else
+  if (k==0x3ff00000 && u.i[LOW_HALF]==0) return (m>0)?0:2.0*hp0.x;
+  else
+  if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x + x;
+  else {
+    u.i[HIGH_HALF]=0x7ff00000;
+    v.i[HIGH_HALF]=0x7ff00000;
+    u.i[LOW_HALF]=0;
+    v.i[LOW_HALF]=0;
+    return u.x/v.x;
+  }
+}
+#ifndef __ieee754_acos
+strong_alias (__ieee754_acos, __acos_finite)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_atan2.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_atan2.c
new file mode 100644
index 0000000000..3c9d964b9b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_atan2.c
@@ -0,0 +1,620 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/************************************************************************/
+/*  MODULE_NAME: atnat2.c                                               */
+/*                                                                      */
+/*  FUNCTIONS: uatan2                                                   */
+/*             atan2Mp                                                  */
+/*             signArctan2                                              */
+/*             normalized                                               */
+/*                                                                      */
+/*  FILES NEEDED: dla.h endian.h mpa.h mydefs.h atnat2.h                */
+/*                mpatan.c mpatan2.c mpsqrt.c                           */
+/*                uatan.tbl                                             */
+/*                                                                      */
+/* An ultimate atan2() routine. Given two IEEE double machine numbers y,*/
+/* x it computes the correctly rounded (to nearest) value of atan2(y,x).*/
+/*                                                                      */
+/* Assumption: Machine arithmetic operations are performed in           */
+/* round to nearest mode of IEEE 754 standard.                          */
+/*                                                                      */
+/************************************************************************/
+
+#include <dla.h>
+#include "mpa.h"
+#include "MathLib.h"
+#include "uatan.tbl"
+#include "atnat2.h"
+#include <fenv.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <stap-probe.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+/************************************************************************/
+/* An ultimate atan2 routine. Given two IEEE double machine numbers y,x */
+/* it computes the correctly rounded (to nearest) value of atan2(y,x).  */
+/* Assumption: Machine arithmetic operations are performed in           */
+/* round to nearest mode of IEEE 754 standard.                          */
+/************************************************************************/
+static double atan2Mp (double, double, const int[]);
+  /* Fix the sign and return after stage 1 or stage 2 */
+static double
+signArctan2 (double y, double z)
+{
+  return __copysign (z, y);
+}
+
+static double normalized (double, double, double, double);
+void __mpatan2 (mp_no *, mp_no *, mp_no *, int);
+
+double
+SECTION
+__ieee754_atan2 (double y, double x)
+{
+  int i, de, ux, dx, uy, dy;
+  static const int pr[MM] = { 6, 8, 10, 20, 32 };
+  double ax, ay, u, du, u9, ua, v, vv, dv, t1, t2, t3, t7, t8,
+	 z, zz, cor, s1, ss1, s2, ss2;
+#ifndef DLA_FMS
+  double t4, t5, t6;
+#endif
+  number num;
+
+  static const int ep = 59768832,      /*  57*16**5   */
+		   em = -59768832;      /* -57*16**5   */
+
+  /* x=NaN or y=NaN */
+  num.d = x;
+  ux = num.i[HIGH_HALF];
+  dx = num.i[LOW_HALF];
+  if ((ux & 0x7ff00000) == 0x7ff00000)
+    {
+      if (((ux & 0x000fffff) | dx) != 0x00000000)
+	return x + y;
+    }
+  num.d = y;
+  uy = num.i[HIGH_HALF];
+  dy = num.i[LOW_HALF];
+  if ((uy & 0x7ff00000) == 0x7ff00000)
+    {
+      if (((uy & 0x000fffff) | dy) != 0x00000000)
+	return y + y;
+    }
+
+  /* y=+-0 */
+  if (uy == 0x00000000)
+    {
+      if (dy == 0x00000000)
+	{
+	  if ((ux & 0x80000000) == 0x00000000)
+	    return 0;
+	  else
+	    return opi.d;
+	}
+    }
+  else if (uy == 0x80000000)
+    {
+      if (dy == 0x00000000)
+	{
+	  if ((ux & 0x80000000) == 0x00000000)
+	    return -0.0;
+	  else
+	    return mopi.d;
+	}
+    }
+
+  /* x=+-0 */
+  if (x == 0)
+    {
+      if ((uy & 0x80000000) == 0x00000000)
+	return hpi.d;
+      else
+	return mhpi.d;
+    }
+
+  /* x=+-INF */
+  if (ux == 0x7ff00000)
+    {
+      if (dx == 0x00000000)
+	{
+	  if (uy == 0x7ff00000)
+	    {
+	      if (dy == 0x00000000)
+		return qpi.d;
+	    }
+	  else if (uy == 0xfff00000)
+	    {
+	      if (dy == 0x00000000)
+		return mqpi.d;
+	    }
+	  else
+	    {
+	      if ((uy & 0x80000000) == 0x00000000)
+		return 0;
+	      else
+		return -0.0;
+	    }
+	}
+    }
+  else if (ux == 0xfff00000)
+    {
+      if (dx == 0x00000000)
+	{
+	  if (uy == 0x7ff00000)
+	    {
+	      if (dy == 0x00000000)
+		return tqpi.d;
+	    }
+	  else if (uy == 0xfff00000)
+	    {
+	      if (dy == 0x00000000)
+		return mtqpi.d;
+	    }
+	  else
+	    {
+	      if ((uy & 0x80000000) == 0x00000000)
+		return opi.d;
+	      else
+		return mopi.d;
+	    }
+	}
+    }
+
+  /* y=+-INF */
+  if (uy == 0x7ff00000)
+    {
+      if (dy == 0x00000000)
+	return hpi.d;
+    }
+  else if (uy == 0xfff00000)
+    {
+      if (dy == 0x00000000)
+	return mhpi.d;
+    }
+
+  SET_RESTORE_ROUND (FE_TONEAREST);
+  /* either x/y or y/x is very close to zero */
+  ax = (x < 0) ? -x : x;
+  ay = (y < 0) ? -y : y;
+  de = (uy & 0x7ff00000) - (ux & 0x7ff00000);
+  if (de >= ep)
+    {
+      return ((y > 0) ? hpi.d : mhpi.d);
+    }
+  else if (de <= em)
+    {
+      if (x > 0)
+	{
+	  double ret;
+	  if ((z = ay / ax) < TWOM1022)
+	    ret = normalized (ax, ay, y, z);
+	  else
+	    ret = signArctan2 (y, z);
+	  if (fabs (ret) < DBL_MIN)
+	    {
+	      double vret = ret ? ret : DBL_MIN;
+	      double force_underflow = vret * vret;
+	      math_force_eval (force_underflow);
+	    }
+	  return ret;
+	}
+      else
+	{
+	  return ((y > 0) ? opi.d : mopi.d);
+	}
+    }
+
+  /* if either x or y is extremely close to zero, scale abs(x), abs(y). */
+  if (ax < twom500.d || ay < twom500.d)
+    {
+      ax *= two500.d;
+      ay *= two500.d;
+    }
+
+  /* Likewise for large x and y.  */
+  if (ax > two500.d || ay > two500.d)
+    {
+      ax *= twom500.d;
+      ay *= twom500.d;
+    }
+
+  /* x,y which are neither special nor extreme */
+  if (ay < ax)
+    {
+      u = ay / ax;
+      EMULV (ax, u, v, vv, t1, t2, t3, t4, t5);
+      du = ((ay - v) - vv) / ax;
+    }
+  else
+    {
+      u = ax / ay;
+      EMULV (ay, u, v, vv, t1, t2, t3, t4, t5);
+      du = ((ax - v) - vv) / ay;
+    }
+
+  if (x > 0)
+    {
+      /* (i)   x>0, abs(y)< abs(x):  atan(ay/ax) */
+      if (ay < ax)
+	{
+	  if (u < inv16.d)
+	    {
+	      v = u * u;
+
+	      zz = du + u * v * (d3.d
+				 + v * (d5.d
+					+ v * (d7.d
+					       + v * (d9.d
+						      + v * (d11.d
+							     + v * d13.d)))));
+
+	      if ((z = u + (zz - u1.d * u)) == u + (zz + u1.d * u))
+		return signArctan2 (y, z);
+
+	      MUL2 (u, du, u, du, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
+	      s1 = v * (f11.d + v * (f13.d
+				     + v * (f15.d + v * (f17.d + v * f19.d))));
+	      ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      MUL2 (u, du, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (u, du, s2, ss2, s1, ss1, t1, t2);
+
+	      if ((z = s1 + (ss1 - u5.d * s1)) == s1 + (ss1 + u5.d * s1))
+		return signArctan2 (y, z);
+
+	      return atan2Mp (x, y, pr);
+	    }
+
+	  i = (TWO52 + TWO8 * u) - TWO52;
+	  i -= 16;
+	  t3 = u - cij[i][0].d;
+	  EADD (t3, du, v, dv);
+	  t1 = cij[i][1].d;
+	  t2 = cij[i][2].d;
+	  zz = v * t2 + (dv * t2
+			 + v * v * (cij[i][3].d
+				    + v * (cij[i][4].d
+					   + v * (cij[i][5].d
+						  + v * cij[i][6].d))));
+	  if (i < 112)
+	    {
+	      if (i < 48)
+		u9 = u91.d;     /* u < 1/4	*/
+	      else
+		u9 = u92.d;
+	    }           /* 1/4 <= u < 1/2 */
+	  else
+	    {
+	      if (i < 176)
+		u9 = u93.d;     /* 1/2 <= u < 3/4 */
+	      else
+		u9 = u94.d;
+	    }           /* 3/4 <= u <= 1  */
+	  if ((z = t1 + (zz - u9 * t1)) == t1 + (zz + u9 * t1))
+	    return signArctan2 (y, z);
+
+	  t1 = u - hij[i][0].d;
+	  EADD (t1, du, v, vv);
+	  s1 = v * (hij[i][11].d
+		    + v * (hij[i][12].d
+			   + v * (hij[i][13].d
+				  + v * (hij[i][14].d
+					 + v * hij[i][15].d))));
+	  ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+
+	  if ((z = s2 + (ss2 - ub.d * s2)) == s2 + (ss2 + ub.d * s2))
+	    return signArctan2 (y, z);
+	  return atan2Mp (x, y, pr);
+	}
+
+      /* (ii)  x>0, abs(x)<=abs(y):  pi/2-atan(ax/ay) */
+      if (u < inv16.d)
+	{
+	  v = u * u;
+	  zz = u * v * (d3.d
+			+ v * (d5.d
+			       + v * (d7.d
+				      + v * (d9.d
+					     + v * (d11.d
+						    + v * d13.d)))));
+	  ESUB (hpi.d, u, t2, cor);
+	  t3 = ((hpi1.d + cor) - du) - zz;
+	  if ((z = t2 + (t3 - u2.d)) == t2 + (t3 + u2.d))
+	    return signArctan2 (y, z);
+
+	  MUL2 (u, du, u, du, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
+	  s1 = v * (f11.d
+		    + v * (f13.d
+			   + v * (f15.d + v * (f17.d + v * f19.d))));
+	  ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  MUL2 (u, du, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (u, du, s2, ss2, s1, ss1, t1, t2);
+	  SUB2 (hpi.d, hpi1.d, s1, ss1, s2, ss2, t1, t2);
+
+	  if ((z = s2 + (ss2 - u6.d)) == s2 + (ss2 + u6.d))
+	    return signArctan2 (y, z);
+	  return atan2Mp (x, y, pr);
+	}
+
+      i = (TWO52 + TWO8 * u) - TWO52;
+      i -= 16;
+      v = (u - cij[i][0].d) + du;
+
+      zz = hpi1.d - v * (cij[i][2].d
+			 + v * (cij[i][3].d
+				+ v * (cij[i][4].d
+				       + v * (cij[i][5].d
+					      + v * cij[i][6].d))));
+      t1 = hpi.d - cij[i][1].d;
+      if (i < 112)
+	ua = ua1.d;	/* w <  1/2 */
+      else
+	ua = ua2.d;	/* w >= 1/2 */
+      if ((z = t1 + (zz - ua)) == t1 + (zz + ua))
+	return signArctan2 (y, z);
+
+      t1 = u - hij[i][0].d;
+      EADD (t1, du, v, vv);
+
+      s1 = v * (hij[i][11].d
+		+ v * (hij[i][12].d
+		       + v * (hij[i][13].d
+			      + v * (hij[i][14].d
+				     + v * hij[i][15].d))));
+
+      ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+      SUB2 (hpi.d, hpi1.d, s2, ss2, s1, ss1, t1, t2);
+
+      if ((z = s1 + (ss1 - uc.d)) == s1 + (ss1 + uc.d))
+	return signArctan2 (y, z);
+      return atan2Mp (x, y, pr);
+    }
+
+  /* (iii) x<0, abs(x)< abs(y):  pi/2+atan(ax/ay) */
+  if (ax < ay)
+    {
+      if (u < inv16.d)
+	{
+	  v = u * u;
+	  zz = u * v * (d3.d
+			+ v * (d5.d
+			       + v * (d7.d
+				      + v * (d9.d
+					     + v * (d11.d + v * d13.d)))));
+	  EADD (hpi.d, u, t2, cor);
+	  t3 = ((hpi1.d + cor) + du) + zz;
+	  if ((z = t2 + (t3 - u3.d)) == t2 + (t3 + u3.d))
+	    return signArctan2 (y, z);
+
+	  MUL2 (u, du, u, du, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
+	  s1 = v * (f11.d
+		    + v * (f13.d + v * (f15.d + v * (f17.d + v * f19.d))));
+	  ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  MUL2 (u, du, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (u, du, s2, ss2, s1, ss1, t1, t2);
+	  ADD2 (hpi.d, hpi1.d, s1, ss1, s2, ss2, t1, t2);
+
+	  if ((z = s2 + (ss2 - u7.d)) == s2 + (ss2 + u7.d))
+	    return signArctan2 (y, z);
+	  return atan2Mp (x, y, pr);
+	}
+
+      i = (TWO52 + TWO8 * u) - TWO52;
+      i -= 16;
+      v = (u - cij[i][0].d) + du;
+      zz = hpi1.d + v * (cij[i][2].d
+			 + v * (cij[i][3].d
+				+ v * (cij[i][4].d
+				       + v * (cij[i][5].d
+					      + v * cij[i][6].d))));
+      t1 = hpi.d + cij[i][1].d;
+      if (i < 112)
+	ua = ua1.d;	/* w <  1/2 */
+      else
+	ua = ua2.d;	/* w >= 1/2 */
+      if ((z = t1 + (zz - ua)) == t1 + (zz + ua))
+	return signArctan2 (y, z);
+
+      t1 = u - hij[i][0].d;
+      EADD (t1, du, v, vv);
+      s1 = v * (hij[i][11].d
+		+ v * (hij[i][12].d
+		       + v * (hij[i][13].d
+			      + v * (hij[i][14].d
+				     + v * hij[i][15].d))));
+      ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+      ADD2 (hpi.d, hpi1.d, s2, ss2, s1, ss1, t1, t2);
+
+      if ((z = s1 + (ss1 - uc.d)) == s1 + (ss1 + uc.d))
+	return signArctan2 (y, z);
+      return atan2Mp (x, y, pr);
+    }
+
+  /* (iv)  x<0, abs(y)<=abs(x):  pi-atan(ax/ay) */
+  if (u < inv16.d)
+    {
+      v = u * u;
+      zz = u * v * (d3.d
+		    + v * (d5.d
+			   + v * (d7.d
+				  + v * (d9.d + v * (d11.d + v * d13.d)))));
+      ESUB (opi.d, u, t2, cor);
+      t3 = ((opi1.d + cor) - du) - zz;
+      if ((z = t2 + (t3 - u4.d)) == t2 + (t3 + u4.d))
+	return signArctan2 (y, z);
+
+      MUL2 (u, du, u, du, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
+      s1 = v * (f11.d + v * (f13.d + v * (f15.d + v * (f17.d + v * f19.d))));
+      ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+      MUL2 (u, du, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (u, du, s2, ss2, s1, ss1, t1, t2);
+      SUB2 (opi.d, opi1.d, s1, ss1, s2, ss2, t1, t2);
+
+      if ((z = s2 + (ss2 - u8.d)) == s2 + (ss2 + u8.d))
+	return signArctan2 (y, z);
+      return atan2Mp (x, y, pr);
+    }
+
+  i = (TWO52 + TWO8 * u) - TWO52;
+  i -= 16;
+  v = (u - cij[i][0].d) + du;
+  zz = opi1.d - v * (cij[i][2].d
+		     + v * (cij[i][3].d
+			    + v * (cij[i][4].d
+				   + v * (cij[i][5].d + v * cij[i][6].d))));
+  t1 = opi.d - cij[i][1].d;
+  if (i < 112)
+    ua = ua1.d;	/* w <  1/2 */
+  else
+    ua = ua2.d;	/* w >= 1/2 */
+  if ((z = t1 + (zz - ua)) == t1 + (zz + ua))
+    return signArctan2 (y, z);
+
+  t1 = u - hij[i][0].d;
+
+  EADD (t1, du, v, vv);
+
+  s1 = v * (hij[i][11].d
+	    + v * (hij[i][12].d
+		   + v * (hij[i][13].d
+			  + v * (hij[i][14].d + v * hij[i][15].d))));
+
+  ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+  MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+  SUB2 (opi.d, opi1.d, s2, ss2, s1, ss1, t1, t2);
+
+  if ((z = s1 + (ss1 - uc.d)) == s1 + (ss1 + uc.d))
+    return signArctan2 (y, z);
+  return atan2Mp (x, y, pr);
+}
+
+#ifndef __ieee754_atan2
+strong_alias (__ieee754_atan2, __atan2_finite)
+#endif
+
+/* Treat the Denormalized case */
+static double
+SECTION
+normalized (double ax, double ay, double y, double z)
+{
+  int p;
+  mp_no mpx, mpy, mpz, mperr, mpz2, mpt1;
+  p = 6;
+  __dbl_mp (ax, &mpx, p);
+  __dbl_mp (ay, &mpy, p);
+  __dvd (&mpy, &mpx, &mpz, p);
+  __dbl_mp (ue.d, &mpt1, p);
+  __mul (&mpz, &mpt1, &mperr, p);
+  __sub (&mpz, &mperr, &mpz2, p);
+  __mp_dbl (&mpz2, &z, p);
+  return signArctan2 (y, z);
+}
+
+/* Stage 3: Perform a multi-Precision computation */
+static double
+SECTION
+atan2Mp (double x, double y, const int pr[])
+{
+  double z1, z2;
+  int i, p;
+  mp_no mpx, mpy, mpz, mpz1, mpz2, mperr, mpt1;
+  for (i = 0; i < MM; i++)
+    {
+      p = pr[i];
+      __dbl_mp (x, &mpx, p);
+      __dbl_mp (y, &mpy, p);
+      __mpatan2 (&mpy, &mpx, &mpz, p);
+      __dbl_mp (ud[i].d, &mpt1, p);
+      __mul (&mpz, &mpt1, &mperr, p);
+      __add (&mpz, &mperr, &mpz1, p);
+      __sub (&mpz, &mperr, &mpz2, p);
+      __mp_dbl (&mpz1, &z1, p);
+      __mp_dbl (&mpz2, &z2, p);
+      if (z1 == z2)
+	{
+	  LIBC_PROBE (slowatan2, 4, &p, &x, &y, &z1);
+	  return z1;
+	}
+    }
+  LIBC_PROBE (slowatan2_inexact, 4, &p, &x, &y, &z1);
+  return z1;			/*if impossible to do exact computing */
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_atanh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_atanh.c
new file mode 100644
index 0000000000..a9d19a0472
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_atanh.c
@@ -0,0 +1,74 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+
+/* __ieee754_atanh(x)
+   Method :
+      1.Reduced x to positive by atanh(-x) = -atanh(x)
+      2.For x>=0.5
+		    1              2x                          x
+	atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
+		    2             1 - x                      1 - x
+
+	For x<0.5
+	atanh(x) = 0.5*log1p(2x+2x*x/(1-x))
+
+   Special cases:
+	atanh(x) is NaN if |x| > 1 with signal;
+	atanh(NaN) is that NaN with no signal;
+	atanh(+-1) is +-INF with signal.
+
+ */
+
+#include <float.h>
+#include <inttypes.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double huge = 1e300;
+
+double
+__ieee754_atanh (double x)
+{
+  double xa = fabs (x);
+  double t;
+  if (isless (xa, 0.5))
+    {
+      if (__glibc_unlikely (xa < 0x1.0p-28))
+	{
+	  math_force_eval (huge + x);
+	  math_check_force_underflow (x);
+	  return x;
+	}
+
+      t = xa + xa;
+      t = 0.5 * __log1p (t + t * xa / (1.0 - xa));
+    }
+  else if (__glibc_likely (isless (xa, 1.0)))
+    t = 0.5 * __log1p ((xa + xa) / (1.0 - xa));
+  else
+    {
+      if (isgreater (xa, 1.0))
+	return (x - x) / (x - x);
+
+      return x / 0.0;
+    }
+
+  return __copysign (t, x);
+}
+strong_alias (__ieee754_atanh, __atanh_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_cosh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_cosh.c
new file mode 100644
index 0000000000..52a5d5007d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_cosh.c
@@ -0,0 +1,88 @@
+/* Optimized by Ulrich Drepper <drepper@gmail.com>, 2011 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_cosh(x)
+ * Method :
+ * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2
+ *	1. Replace x by |x| (cosh(x) = cosh(-x)).
+ *	2.
+ *							[ exp(x) - 1 ]^2
+ *	    0        <= x <= ln2/2  :  cosh(x) := 1 + -------------------
+ *							   2*exp(x)
+ *
+ *						  exp(x) +  1/exp(x)
+ *	    ln2/2    <= x <= 22     :  cosh(x) := -------------------
+ *							  2
+ *	    22       <= x <= lnovft :  cosh(x) := exp(x)/2
+ *	    lnovft   <= x <= ln2ovft:  cosh(x) := exp(x/2)/2 * exp(x/2)
+ *	    ln2ovft  <  x	    :  cosh(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ *	cosh(x) is |x| if x is +INF, -INF, or NaN.
+ *	only cosh(0)=1 is exact for finite x.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double one = 1.0, half = 0.5, huge = 1.0e300;
+
+double
+__ieee754_cosh (double x)
+{
+  double t, w;
+  int32_t ix;
+  u_int32_t lx;
+
+  /* High word of |x|. */
+  GET_HIGH_WORD (ix, x);
+  ix &= 0x7fffffff;
+
+  /* |x| in [0,22] */
+  if (ix < 0x40360000)
+    {
+      /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
+      if (ix < 0x3fd62e43)
+	{
+	  if (ix < 0x3c800000)
+	    return one;                                   /* cosh(tiny) = 1 */
+	  t = __expm1 (fabs (x));
+	  w = one + t;
+	  return one + (t * t) / (w + w);
+	}
+
+      /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+      t = __ieee754_exp (fabs (x));
+      return half * t + half / t;
+    }
+
+  /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
+  if (ix < 0x40862e42)
+    return half * __ieee754_exp (fabs (x));
+
+  /* |x| in [log(maxdouble), overflowthresold] */
+  GET_LOW_WORD (lx, x);
+  if (ix < 0x408633ce || ((ix == 0x408633ce) && (lx <= (u_int32_t) 0x8fb9f87d)))
+    {
+      w = __ieee754_exp (half * fabs (x));
+      t = half * w;
+      return t * w;
+    }
+
+  /* x is INF or NaN */
+  if (ix >= 0x7ff00000)
+    return x * x;
+
+  /* |x| > overflowthresold, cosh(x) overflow */
+  return math_narrow_eval (huge * huge);
+}
+strong_alias (__ieee754_cosh, __cosh_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp.c
new file mode 100644
index 0000000000..6757a14ce1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp.c
@@ -0,0 +1,361 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/***************************************************************************/
+/*  MODULE_NAME:uexp.c                                                     */
+/*                                                                         */
+/*  FUNCTION:uexp                                                          */
+/*           exp1                                                          */
+/*                                                                         */
+/* FILES NEEDED:dla.h endian.h mpa.h mydefs.h uexp.h                       */
+/*              mpa.c mpexp.x slowexp.c                                    */
+/*                                                                         */
+/* An ultimate exp routine. Given an IEEE double machine number x          */
+/* it computes the correctly rounded (to nearest) value of e^x             */
+/* Assumption: Machine arithmetic operations are performed in              */
+/* round to nearest mode of IEEE 754 standard.                             */
+/*                                                                         */
+/***************************************************************************/
+
+#include <math.h>
+#include "endian.h"
+#include "uexp.h"
+#include "mydefs.h"
+#include "MathLib.h"
+#include "uexp.tbl"
+#include <math_private.h>
+#include <fenv.h>
+#include <float.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+double __slowexp (double);
+
+/* An ultimate exp routine. Given an IEEE double machine number x it computes
+   the correctly rounded (to nearest) value of e^x.  */
+double
+SECTION
+__ieee754_exp (double x)
+{
+  double bexp, t, eps, del, base, y, al, bet, res, rem, cor;
+  mynumber junk1, junk2, binexp = {{0, 0}};
+  int4 i, j, m, n, ex;
+  double retval;
+
+  {
+    SET_RESTORE_ROUND (FE_TONEAREST);
+
+    junk1.x = x;
+    m = junk1.i[HIGH_HALF];
+    n = m & hugeint;
+
+    if (n > smallint && n < bigint)
+      {
+	y = x * log2e.x + three51.x;
+	bexp = y - three51.x;	/*  multiply the result by 2**bexp        */
+
+	junk1.x = y;
+
+	eps = bexp * ln_two2.x;	/* x = bexp*ln(2) + t - eps               */
+	t = x - bexp * ln_two1.x;
+
+	y = t + three33.x;
+	base = y - three33.x;	/* t rounded to a multiple of 2**-18      */
+	junk2.x = y;
+	del = (t - base) - eps;	/*  x = bexp*ln(2) + base + del           */
+	eps = del + del * del * (p3.x * del + p2.x);
+
+	binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 1023) << 20;
+
+	i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
+	j = (junk2.i[LOW_HALF] & 511) << 1;
+
+	al = coar.x[i] * fine.x[j];
+	bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
+	       + coar.x[i + 1] * fine.x[j + 1]);
+
+	rem = (bet + bet * eps) + al * eps;
+	res = al + rem;
+	cor = (al - res) + rem;
+	if (res == (res + cor * err_0))
+	  {
+	    retval = res * binexp.x;
+	    goto ret;
+	  }
+	else
+	  {
+	    retval = __slowexp (x);
+	    goto ret;
+	  }			/*if error is over bound */
+      }
+
+    if (n <= smallint)
+      {
+	retval = 1.0;
+	goto ret;
+      }
+
+    if (n >= badint)
+      {
+	if (n > infint)
+	  {
+	    retval = x + x;
+	    goto ret;
+	  }			/* x is NaN */
+	if (n < infint)
+	  {
+	    if (x > 0)
+	      goto ret_huge;
+	    else
+	      goto ret_tiny;
+	  }
+	/* x is finite,  cause either overflow or underflow  */
+	if (junk1.i[LOW_HALF] != 0)
+	  {
+	    retval = x + x;
+	    goto ret;
+	  }			/*  x is NaN  */
+	retval = (x > 0) ? inf.x : zero;	/* |x| = inf;  return either inf or 0 */
+	goto ret;
+      }
+
+    y = x * log2e.x + three51.x;
+    bexp = y - three51.x;
+    junk1.x = y;
+    eps = bexp * ln_two2.x;
+    t = x - bexp * ln_two1.x;
+    y = t + three33.x;
+    base = y - three33.x;
+    junk2.x = y;
+    del = (t - base) - eps;
+    eps = del + del * del * (p3.x * del + p2.x);
+    i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
+    j = (junk2.i[LOW_HALF] & 511) << 1;
+    al = coar.x[i] * fine.x[j];
+    bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
+	   + coar.x[i + 1] * fine.x[j + 1]);
+    rem = (bet + bet * eps) + al * eps;
+    res = al + rem;
+    cor = (al - res) + rem;
+    if (m >> 31)
+      {
+	ex = junk1.i[LOW_HALF];
+	if (res < 1.0)
+	  {
+	    res += res;
+	    cor += cor;
+	    ex -= 1;
+	  }
+	if (ex >= -1022)
+	  {
+	    binexp.i[HIGH_HALF] = (1023 + ex) << 20;
+	    if (res == (res + cor * err_0))
+	      {
+		retval = res * binexp.x;
+		goto ret;
+	      }
+	    else
+	      {
+		retval = __slowexp (x);
+		goto check_uflow_ret;
+	      }			/*if error is over bound */
+	  }
+	ex = -(1022 + ex);
+	binexp.i[HIGH_HALF] = (1023 - ex) << 20;
+	res *= binexp.x;
+	cor *= binexp.x;
+	eps = 1.0000000001 + err_0 * binexp.x;
+	t = 1.0 + res;
+	y = ((1.0 - t) + res) + cor;
+	res = t + y;
+	cor = (t - res) + y;
+	if (res == (res + eps * cor))
+	  {
+	    binexp.i[HIGH_HALF] = 0x00100000;
+	    retval = (res - 1.0) * binexp.x;
+	    goto check_uflow_ret;
+	  }
+	else
+	  {
+	    retval = __slowexp (x);
+	    goto check_uflow_ret;
+	  }			/*   if error is over bound    */
+      check_uflow_ret:
+	if (retval < DBL_MIN)
+	  {
+	    double force_underflow = tiny * tiny;
+	    math_force_eval (force_underflow);
+	  }
+	if (retval == 0)
+	  goto ret_tiny;
+	goto ret;
+      }
+    else
+      {
+	binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 767) << 20;
+	if (res == (res + cor * err_0))
+	  retval = res * binexp.x * t256.x;
+	else
+	  retval = __slowexp (x);
+	if (isinf (retval))
+	  goto ret_huge;
+	else
+	  goto ret;
+      }
+  }
+ret:
+  return retval;
+
+ ret_huge:
+  return hhuge * hhuge;
+
+ ret_tiny:
+  return tiny * tiny;
+}
+#ifndef __ieee754_exp
+strong_alias (__ieee754_exp, __exp_finite)
+#endif
+
+/* Compute e^(x+xx).  The routine also receives bound of error of previous
+   calculation.  If after computing exp the error exceeds the allowed bounds,
+   the routine returns a non-positive number.  Otherwise it returns the
+   computed result, which is always positive.  */
+double
+SECTION
+__exp1 (double x, double xx, double error)
+{
+  double bexp, t, eps, del, base, y, al, bet, res, rem, cor;
+  mynumber junk1, junk2, binexp = {{0, 0}};
+  int4 i, j, m, n, ex;
+
+  junk1.x = x;
+  m = junk1.i[HIGH_HALF];
+  n = m & hugeint;		/* no sign */
+
+  if (n > smallint && n < bigint)
+    {
+      y = x * log2e.x + three51.x;
+      bexp = y - three51.x;	/*  multiply the result by 2**bexp        */
+
+      junk1.x = y;
+
+      eps = bexp * ln_two2.x;	/* x = bexp*ln(2) + t - eps               */
+      t = x - bexp * ln_two1.x;
+
+      y = t + three33.x;
+      base = y - three33.x;	/* t rounded to a multiple of 2**-18      */
+      junk2.x = y;
+      del = (t - base) + (xx - eps);	/*  x = bexp*ln(2) + base + del      */
+      eps = del + del * del * (p3.x * del + p2.x);
+
+      binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 1023) << 20;
+
+      i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
+      j = (junk2.i[LOW_HALF] & 511) << 1;
+
+      al = coar.x[i] * fine.x[j];
+      bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
+	     + coar.x[i + 1] * fine.x[j + 1]);
+
+      rem = (bet + bet * eps) + al * eps;
+      res = al + rem;
+      cor = (al - res) + rem;
+      if (res == (res + cor * (1.0 + error + err_1)))
+	return res * binexp.x;
+      else
+	return -10.0;
+    }
+
+  if (n <= smallint)
+    return 1.0;			/*  if x->0 e^x=1 */
+
+  if (n >= badint)
+    {
+      if (n > infint)
+	return (zero / zero);	/* x is NaN,  return invalid */
+      if (n < infint)
+	return ((x > 0) ? (hhuge * hhuge) : (tiny * tiny));
+      /* x is finite,  cause either overflow or underflow  */
+      if (junk1.i[LOW_HALF] != 0)
+	return (zero / zero);	/*  x is NaN  */
+      return ((x > 0) ? inf.x : zero);	/* |x| = inf;  return either inf or 0 */
+    }
+
+  y = x * log2e.x + three51.x;
+  bexp = y - three51.x;
+  junk1.x = y;
+  eps = bexp * ln_two2.x;
+  t = x - bexp * ln_two1.x;
+  y = t + three33.x;
+  base = y - three33.x;
+  junk2.x = y;
+  del = (t - base) + (xx - eps);
+  eps = del + del * del * (p3.x * del + p2.x);
+  i = ((junk2.i[LOW_HALF] >> 8) & 0xfffffffe) + 356;
+  j = (junk2.i[LOW_HALF] & 511) << 1;
+  al = coar.x[i] * fine.x[j];
+  bet = ((coar.x[i] * fine.x[j + 1] + coar.x[i + 1] * fine.x[j])
+	 + coar.x[i + 1] * fine.x[j + 1]);
+  rem = (bet + bet * eps) + al * eps;
+  res = al + rem;
+  cor = (al - res) + rem;
+  if (m >> 31)
+    {
+      ex = junk1.i[LOW_HALF];
+      if (res < 1.0)
+	{
+	  res += res;
+	  cor += cor;
+	  ex -= 1;
+	}
+      if (ex >= -1022)
+	{
+	  binexp.i[HIGH_HALF] = (1023 + ex) << 20;
+	  if (res == (res + cor * (1.0 + error + err_1)))
+	    return res * binexp.x;
+	  else
+	    return -10.0;
+	}
+      ex = -(1022 + ex);
+      binexp.i[HIGH_HALF] = (1023 - ex) << 20;
+      res *= binexp.x;
+      cor *= binexp.x;
+      eps = 1.00000000001 + (error + err_1) * binexp.x;
+      t = 1.0 + res;
+      y = ((1.0 - t) + res) + cor;
+      res = t + y;
+      cor = (t - res) + y;
+      if (res == (res + eps * cor))
+	{
+	  binexp.i[HIGH_HALF] = 0x00100000;
+	  return (res - 1.0) * binexp.x;
+	}
+      else
+	return -10.0;
+    }
+  else
+    {
+      binexp.i[HIGH_HALF] = (junk1.i[LOW_HALF] + 767) << 20;
+      if (res == (res + cor * (1.0 + error + err_1)))
+	return res * binexp.x * t256.x;
+      else
+	return -10.0;
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp10.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp10.c
new file mode 100644
index 0000000000..6c8783e405
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp10.c
@@ -0,0 +1,50 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+static const double log10_high = 0x2.4d7637p0;
+static const double log10_low = 0x7.6aaa2b05ba95cp-28;
+
+double
+__ieee754_exp10 (double arg)
+{
+  int32_t lx;
+  double arg_high, arg_low;
+  double exp_high, exp_low;
+
+  if (!isfinite (arg))
+    return __ieee754_exp (arg);
+  if (arg < DBL_MIN_10_EXP - DBL_DIG - 10)
+    return DBL_MIN * DBL_MIN;
+  else if (arg > DBL_MAX_10_EXP + 1)
+    return DBL_MAX * DBL_MAX;
+  else if (fabs (arg) < 0x1p-56)
+    return 1.0;
+
+  GET_LOW_WORD (lx, arg);
+  lx &= 0xf8000000;
+  arg_high = arg;
+  SET_LOW_WORD (arg_high, lx);
+  arg_low = arg - arg_high;
+  exp_high = arg_high * log10_high;
+  exp_low = arg_high * log10_low + arg_low * M_LN10;
+  return __ieee754_exp (exp_high) * __ieee754_exp (exp_low);
+}
+strong_alias (__ieee754_exp10, __exp10_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp2.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp2.c
new file mode 100644
index 0000000000..9efda23f06
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_exp2.c
@@ -0,0 +1,133 @@
+/* Double-precision floating point 2^x.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Geoffrey Keating <geoffk@ozemail.com.au>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* The basic design here is from
+   Shmuel Gal and Boris Bachelis, "An Accurate Elementary Mathematical
+   Library for the IEEE Floating Point Standard", ACM Trans. Math. Soft.,
+   17 (1), March 1991, pp. 26-45.
+   It has been slightly modified to compute 2^x instead of e^x.
+   */
+#include <stdlib.h>
+#include <float.h>
+#include <ieee754.h>
+#include <math.h>
+#include <fenv.h>
+#include <inttypes.h>
+#include <math_private.h>
+
+#include "t_exp2.h"
+
+static const double TWO1023 = 8.988465674311579539e+307;
+static const double TWOM1000 = 9.3326361850321887899e-302;
+
+double
+__ieee754_exp2 (double x)
+{
+  static const double himark = (double) DBL_MAX_EXP;
+  static const double lomark = (double) (DBL_MIN_EXP - DBL_MANT_DIG - 1);
+
+  /* Check for usual case.  */
+  if (__glibc_likely (isless (x, himark)))
+    {
+      /* Exceptional cases:  */
+      if (__glibc_unlikely (!isgreaterequal (x, lomark)))
+	{
+	  if (isinf (x))
+	    /* e^-inf == 0, with no error.  */
+	    return 0;
+	  else
+	    /* Underflow */
+	    return TWOM1000 * TWOM1000;
+	}
+
+      static const double THREEp42 = 13194139533312.0;
+      int tval, unsafe;
+      double rx, x22, result;
+      union ieee754_double ex2_u, scale_u;
+
+      if (fabs (x) < DBL_EPSILON / 4.0)
+	return 1.0 + x;
+
+      {
+	SET_RESTORE_ROUND_NOEX (FE_TONEAREST);
+
+	/* 1. Argument reduction.
+	   Choose integers ex, -256 <= t < 256, and some real
+	   -1/1024 <= x1 <= 1024 so that
+	   x = ex + t/512 + x1.
+
+	   First, calculate rx = ex + t/512.  */
+	rx = x + THREEp42;
+	rx -= THREEp42;
+	x -= rx;  /* Compute x=x1. */
+	/* Compute tval = (ex*512 + t)+256.
+	   Now, t = (tval mod 512)-256 and ex=tval/512  [that's mod, NOT %;
+	   and /-round-to-nearest not the usual c integer /].  */
+	tval = (int) (rx * 512.0 + 256.0);
+
+	/* 2. Adjust for accurate table entry.
+	   Find e so that
+	   x = ex + t/512 + e + x2
+	   where -1e6 < e < 1e6, and
+	   (double)(2^(t/512+e))
+	   is accurate to one part in 2^-64.  */
+
+	/* 'tval & 511' is the same as 'tval%512' except that it's always
+	   positive.
+	   Compute x = x2.  */
+	x -= exp2_deltatable[tval & 511];
+
+	/* 3. Compute ex2 = 2^(t/512+e+ex).  */
+	ex2_u.d = exp2_accuratetable[tval & 511];
+	tval >>= 9;
+	/* x2 is an integer multiple of 2^-54; avoid intermediate
+	   underflow from the calculation of x22 * x.  */
+	unsafe = abs (tval) >= -DBL_MIN_EXP - 56;
+	ex2_u.ieee.exponent += tval >> unsafe;
+	scale_u.d = 1.0;
+	scale_u.ieee.exponent += tval - (tval >> unsafe);
+
+	/* 4. Approximate 2^x2 - 1, using a fourth-degree polynomial,
+	   with maximum error in [-2^-10-2^-30,2^-10+2^-30]
+	   less than 10^-19.  */
+
+	x22 = (((.0096181293647031180
+		 * x + .055504110254308625)
+		* x + .240226506959100583)
+	       * x + .69314718055994495) * ex2_u.d;
+	math_opt_barrier (x22);
+      }
+
+      /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex).  */
+      result = x22 * x + ex2_u.d;
+
+      if (!unsafe)
+	return result;
+      else
+	{
+	  result *= scale_u.d;
+	  math_check_force_underflow_nonneg (result);
+	  return result;
+	}
+    }
+  else
+    /* Return x, if x is a NaN or Inf; or overflow, otherwise.  */
+    return TWO1023 * x;
+}
+strong_alias (__ieee754_exp2, __exp2_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_fmod.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_fmod.c
new file mode 100644
index 0000000000..e82b302200
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_fmod.c
@@ -0,0 +1,173 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_fmod(x,y)
+ * Return x mod y in exact arithmetic
+ * Method: shift and subtract
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double one = 1.0, Zero[] = { 0.0, -0.0, };
+
+double
+__ieee754_fmod (double x, double y)
+{
+  int32_t n, hx, hy, hz, ix, iy, sx, i;
+  u_int32_t lx, ly, lz;
+
+  EXTRACT_WORDS (hx, lx, x);
+  EXTRACT_WORDS (hy, ly, y);
+  sx = hx & 0x80000000;                 /* sign of x */
+  hx ^= sx;                     /* |x| */
+  hy &= 0x7fffffff;             /* |y| */
+
+  /* purge off exception values */
+  if ((hy | ly) == 0 || (hx >= 0x7ff00000) ||   /* y=0,or x not finite */
+      ((hy | ((ly | -ly) >> 31)) > 0x7ff00000)) /* or y is NaN */
+    return (x * y) / (x * y);
+  if (hx <= hy)
+    {
+      if ((hx < hy) || (lx < ly))
+	return x;                               /* |x|<|y| return x */
+      if (lx == ly)
+	return Zero[(u_int32_t) sx >> 31];      /* |x|=|y| return x*0*/
+    }
+
+  /* determine ix = ilogb(x) */
+  if (__glibc_unlikely (hx < 0x00100000))                  /* subnormal x */
+    {
+      if (hx == 0)
+	{
+	  for (ix = -1043, i = lx; i > 0; i <<= 1)
+	    ix -= 1;
+	}
+      else
+	{
+	  for (ix = -1022, i = (hx << 11); i > 0; i <<= 1)
+	    ix -= 1;
+	}
+    }
+  else
+    ix = (hx >> 20) - 1023;
+
+  /* determine iy = ilogb(y) */
+  if (__glibc_unlikely (hy < 0x00100000))                  /* subnormal y */
+    {
+      if (hy == 0)
+	{
+	  for (iy = -1043, i = ly; i > 0; i <<= 1)
+	    iy -= 1;
+	}
+      else
+	{
+	  for (iy = -1022, i = (hy << 11); i > 0; i <<= 1)
+	    iy -= 1;
+	}
+    }
+  else
+    iy = (hy >> 20) - 1023;
+
+  /* set up {hx,lx}, {hy,ly} and align y to x */
+  if (__glibc_likely (ix >= -1022))
+    hx = 0x00100000 | (0x000fffff & hx);
+  else                  /* subnormal x, shift x to normal */
+    {
+      n = -1022 - ix;
+      if (n <= 31)
+	{
+	  hx = (hx << n) | (lx >> (32 - n));
+	  lx <<= n;
+	}
+      else
+	{
+	  hx = lx << (n - 32);
+	  lx = 0;
+	}
+    }
+  if (__glibc_likely (iy >= -1022))
+    hy = 0x00100000 | (0x000fffff & hy);
+  else                  /* subnormal y, shift y to normal */
+    {
+      n = -1022 - iy;
+      if (n <= 31)
+	{
+	  hy = (hy << n) | (ly >> (32 - n));
+	  ly <<= n;
+	}
+      else
+	{
+	  hy = ly << (n - 32);
+	  ly = 0;
+	}
+    }
+
+  /* fix point fmod */
+  n = ix - iy;
+  while (n--)
+    {
+      hz = hx - hy; lz = lx - ly; if (lx < ly)
+	hz -= 1;
+      if (hz < 0)
+	{
+	  hx = hx + hx + (lx >> 31); lx = lx + lx;
+	}
+      else
+	{
+	  if ((hz | lz) == 0)           /* return sign(x)*0 */
+	    return Zero[(u_int32_t) sx >> 31];
+	  hx = hz + hz + (lz >> 31); lx = lz + lz;
+	}
+    }
+  hz = hx - hy; lz = lx - ly; if (lx < ly)
+    hz -= 1;
+  if (hz >= 0)
+    {
+      hx = hz; lx = lz;
+    }
+
+  /* convert back to floating value and restore the sign */
+  if ((hx | lx) == 0)                   /* return sign(x)*0 */
+    return Zero[(u_int32_t) sx >> 31];
+  while (hx < 0x00100000)               /* normalize x */
+    {
+      hx = hx + hx + (lx >> 31); lx = lx + lx;
+      iy -= 1;
+    }
+  if (__glibc_likely (iy >= -1022))              /* normalize output */
+    {
+      hx = ((hx - 0x00100000) | ((iy + 1023) << 20));
+      INSERT_WORDS (x, hx | sx, lx);
+    }
+  else                          /* subnormal output */
+    {
+      n = -1022 - iy;
+      if (n <= 20)
+	{
+	  lx = (lx >> n) | ((u_int32_t) hx << (32 - n));
+	  hx >>= n;
+	}
+      else if (n <= 31)
+	{
+	  lx = (hx << (32 - n)) | (lx >> n); hx = sx;
+	}
+      else
+	{
+	  lx = hx >> (n - 32); hx = sx;
+	}
+      INSERT_WORDS (x, hx | sx, lx);
+      x *= one;                 /* create necessary signal */
+    }
+  return x;                     /* exact output */
+}
+strong_alias (__ieee754_fmod, __fmod_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_gamma_r.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_gamma_r.c
new file mode 100644
index 0000000000..818fa94766
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_gamma_r.c
@@ -0,0 +1,220 @@
+/* Implementation of gamma function according to ISO C.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+   approximation to gamma function.  */
+
+static const double gamma_coeff[] =
+  {
+    0x1.5555555555555p-4,
+    -0xb.60b60b60b60b8p-12,
+    0x3.4034034034034p-12,
+    -0x2.7027027027028p-12,
+    0x3.72a3c5631fe46p-12,
+    -0x7.daac36664f1f4p-12,
+  };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 184, in the form R *
+   2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+   avoid overflow or underflow in intermediate calculations.  */
+
+static double
+gamma_positive (double x, int *exp2_adj)
+{
+  int local_signgam;
+  if (x < 0.5)
+    {
+      *exp2_adj = 0;
+      return __ieee754_exp (__ieee754_lgamma_r (x + 1, &local_signgam)) / x;
+    }
+  else if (x <= 1.5)
+    {
+      *exp2_adj = 0;
+      return __ieee754_exp (__ieee754_lgamma_r (x, &local_signgam));
+    }
+  else if (x < 6.5)
+    {
+      /* Adjust into the range for using exp (lgamma).  */
+      *exp2_adj = 0;
+      double n = __ceil (x - 1.5);
+      double x_adj = x - n;
+      double eps;
+      double prod = __gamma_product (x_adj, 0, n, &eps);
+      return (__ieee754_exp (__ieee754_lgamma_r (x_adj, &local_signgam))
+	      * prod * (1.0 + eps));
+    }
+  else
+    {
+      double eps = 0;
+      double x_eps = 0;
+      double x_adj = x;
+      double prod = 1;
+      if (x < 12.0)
+	{
+	  /* Adjust into the range for applying Stirling's
+	     approximation.  */
+	  double n = __ceil (12.0 - x);
+	  x_adj = math_narrow_eval (x + n);
+	  x_eps = (x - (x_adj - n));
+	  prod = __gamma_product (x_adj - n, x_eps, n, &eps);
+	}
+      /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+	 Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+	 starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+	 factored out.  */
+      double exp_adj = -eps;
+      double x_adj_int = __round (x_adj);
+      double x_adj_frac = x_adj - x_adj_int;
+      int x_adj_log2;
+      double x_adj_mant = __frexp (x_adj, &x_adj_log2);
+      if (x_adj_mant < M_SQRT1_2)
+	{
+	  x_adj_log2--;
+	  x_adj_mant *= 2.0;
+	}
+      *exp2_adj = x_adj_log2 * (int) x_adj_int;
+      double ret = (__ieee754_pow (x_adj_mant, x_adj)
+		    * __ieee754_exp2 (x_adj_log2 * x_adj_frac)
+		    * __ieee754_exp (-x_adj)
+		    * __ieee754_sqrt (2 * M_PI / x_adj)
+		    / prod);
+      exp_adj += x_eps * __ieee754_log (x_adj);
+      double bsum = gamma_coeff[NCOEFF - 1];
+      double x_adj2 = x_adj * x_adj;
+      for (size_t i = 1; i <= NCOEFF - 1; i++)
+	bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+      exp_adj += bsum / x_adj;
+      return ret + ret * __expm1 (exp_adj);
+    }
+}
+
+double
+__ieee754_gamma_r (double x, int *signgamp)
+{
+  int32_t hx;
+  u_int32_t lx;
+  double ret;
+
+  EXTRACT_WORDS (hx, lx, x);
+
+  if (__glibc_unlikely (((hx & 0x7fffffff) | lx) == 0))
+    {
+      /* Return value for x == 0 is Inf with divide by zero exception.  */
+      *signgamp = 0;
+      return 1.0 / x;
+    }
+  if (__builtin_expect (hx < 0, 0)
+      && (u_int32_t) hx < 0xfff00000 && __rint (x) == x)
+    {
+      /* Return value for integer x < 0 is NaN with invalid exception.  */
+      *signgamp = 0;
+      return (x - x) / (x - x);
+    }
+  if (__glibc_unlikely ((unsigned int) hx == 0xfff00000 && lx == 0))
+    {
+      /* x == -Inf.  According to ISO this is NaN.  */
+      *signgamp = 0;
+      return x - x;
+    }
+  if (__glibc_unlikely ((hx & 0x7ff00000) == 0x7ff00000))
+    {
+      /* Positive infinity (return positive infinity) or NaN (return
+	 NaN).  */
+      *signgamp = 0;
+      return x + x;
+    }
+
+  if (x >= 172.0)
+    {
+      /* Overflow.  */
+      *signgamp = 0;
+      ret = math_narrow_eval (DBL_MAX * DBL_MAX);
+      return ret;
+    }
+  else
+    {
+      SET_RESTORE_ROUND (FE_TONEAREST);
+      if (x > 0.0)
+	{
+	  *signgamp = 0;
+	  int exp2_adj;
+	  double tret = gamma_positive (x, &exp2_adj);
+	  ret = __scalbn (tret, exp2_adj);
+	}
+      else if (x >= -DBL_EPSILON / 4.0)
+	{
+	  *signgamp = 0;
+	  ret = 1.0 / x;
+	}
+      else
+	{
+	  double tx = __trunc (x);
+	  *signgamp = (tx == 2.0 * __trunc (tx / 2.0)) ? -1 : 1;
+	  if (x <= -184.0)
+	    /* Underflow.  */
+	    ret = DBL_MIN * DBL_MIN;
+	  else
+	    {
+	      double frac = tx - x;
+	      if (frac > 0.5)
+		frac = 1.0 - frac;
+	      double sinpix = (frac <= 0.25
+			       ? __sin (M_PI * frac)
+			       : __cos (M_PI * (0.5 - frac)));
+	      int exp2_adj;
+	      double tret = M_PI / (-x * sinpix
+				    * gamma_positive (-x, &exp2_adj));
+	      ret = __scalbn (tret, -exp2_adj);
+	      math_check_force_underflow_nonneg (ret);
+	    }
+	}
+      ret = math_narrow_eval (ret);
+    }
+  if (isinf (ret) && x != 0)
+    {
+      if (*signgamp < 0)
+	{
+	  ret = math_narrow_eval (-__copysign (DBL_MAX, ret) * DBL_MAX);
+	  ret = -ret;
+	}
+      else
+	ret = math_narrow_eval (__copysign (DBL_MAX, ret) * DBL_MAX);
+      return ret;
+    }
+  else if (ret == 0)
+    {
+      if (*signgamp < 0)
+	{
+	  ret = math_narrow_eval (-__copysign (DBL_MIN, ret) * DBL_MIN);
+	  ret = -ret;
+	}
+      else
+	ret = math_narrow_eval (__copysign (DBL_MIN, ret) * DBL_MIN);
+      return ret;
+    }
+  else
+    return ret;
+}
+strong_alias (__ieee754_gamma_r, __gamma_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_hypot.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_hypot.c
new file mode 100644
index 0000000000..76eb408348
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_hypot.c
@@ -0,0 +1,161 @@
+/* @(#)e_hypot.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_hypot(x,y)
+ *
+ * Method :
+ *	If (assume round-to-nearest) z=x*x+y*y
+ *	has error less than sqrt(2)/2 ulp, than
+ *	sqrt(z) has error less than 1 ulp (exercise).
+ *
+ *	So, compute sqrt(x*x+y*y) with some care as
+ *	follows to get the error below 1 ulp:
+ *
+ *	Assume x>y>0;
+ *	(if possible, set rounding to round-to-nearest)
+ *	1. if x > 2y  use
+ *		x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
+ *	where x1 = x with lower 32 bits cleared, x2 = x-x1; else
+ *	2. if x <= 2y use
+ *		t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
+ *	where t1 = 2x with lower 32 bits cleared, t2 = 2x-t1,
+ *	y1= y with lower 32 bits chopped, y2 = y-y1.
+ *
+ *	NOTE: scaling may be necessary if some argument is too
+ *	      large or too tiny
+ *
+ * Special cases:
+ *	hypot(x,y) is INF if x or y is +INF or -INF; else
+ *	hypot(x,y) is NAN if x or y is NAN.
+ *
+ * Accuracy:
+ *	hypot(x,y) returns sqrt(x^2+y^2) with error less
+ *	than 1 ulps (units in the last place)
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+double
+__ieee754_hypot (double x, double y)
+{
+  double a, b, t1, t2, y1, y2, w;
+  int32_t j, k, ha, hb;
+
+  GET_HIGH_WORD (ha, x);
+  ha &= 0x7fffffff;
+  GET_HIGH_WORD (hb, y);
+  hb &= 0x7fffffff;
+  if (hb > ha)
+    {
+      a = y; b = x; j = ha; ha = hb; hb = j;
+    }
+  else
+    {
+      a = x; b = y;
+    }
+  SET_HIGH_WORD (a, ha);        /* a <- |a| */
+  SET_HIGH_WORD (b, hb);        /* b <- |b| */
+  if ((ha - hb) > 0x3c00000)
+    {
+      return a + b;
+    }                                       /* x/y > 2**60 */
+  k = 0;
+  if (__glibc_unlikely (ha > 0x5f300000))                  /* a>2**500 */
+    {
+      if (ha >= 0x7ff00000)             /* Inf or NaN */
+	{
+	  u_int32_t low;
+	  w = a + b;                    /* for sNaN */
+	  if (issignaling (a) || issignaling (b))
+	    return w;
+	  GET_LOW_WORD (low, a);
+	  if (((ha & 0xfffff) | low) == 0)
+	    w = a;
+	  GET_LOW_WORD (low, b);
+	  if (((hb ^ 0x7ff00000) | low) == 0)
+	    w = b;
+	  return w;
+	}
+      /* scale a and b by 2**-600 */
+      ha -= 0x25800000; hb -= 0x25800000;  k += 600;
+      SET_HIGH_WORD (a, ha);
+      SET_HIGH_WORD (b, hb);
+    }
+  if (__builtin_expect (hb < 0x23d00000, 0))            /* b < 2**-450 */
+    {
+      if (hb <= 0x000fffff)             /* subnormal b or 0 */
+	{
+	  u_int32_t low;
+	  GET_LOW_WORD (low, b);
+	  if ((hb | low) == 0)
+	    return a;
+	  t1 = 0;
+	  SET_HIGH_WORD (t1, 0x7fd00000);       /* t1=2^1022 */
+	  b *= t1;
+	  a *= t1;
+	  k -= 1022;
+	  GET_HIGH_WORD (ha, a);
+	  GET_HIGH_WORD (hb, b);
+	  if (hb > ha)
+	    {
+	      t1 = a;
+	      a = b;
+	      b = t1;
+	      j = ha;
+	      ha = hb;
+	      hb = j;
+	    }
+	}
+      else                      /* scale a and b by 2^600 */
+	{
+	  ha += 0x25800000;             /* a *= 2^600 */
+	  hb += 0x25800000;             /* b *= 2^600 */
+	  k -= 600;
+	  SET_HIGH_WORD (a, ha);
+	  SET_HIGH_WORD (b, hb);
+	}
+    }
+  /* medium size a and b */
+  w = a - b;
+  if (w > b)
+    {
+      t1 = 0;
+      SET_HIGH_WORD (t1, ha);
+      t2 = a - t1;
+      w = __ieee754_sqrt (t1 * t1 - (b * (-b) - t2 * (a + t1)));
+    }
+  else
+    {
+      a = a + a;
+      y1 = 0;
+      SET_HIGH_WORD (y1, hb);
+      y2 = b - y1;
+      t1 = 0;
+      SET_HIGH_WORD (t1, ha + 0x00100000);
+      t2 = a - t1;
+      w = __ieee754_sqrt (t1 * y1 - (w * (-w) - (t1 * y2 + t2 * b)));
+    }
+  if (k != 0)
+    {
+      u_int32_t high;
+      t1 = 1.0;
+      GET_HIGH_WORD (high, t1);
+      SET_HIGH_WORD (t1, high + (k << 20));
+      w *= t1;
+      math_check_force_underflow_nonneg (w);
+      return w;
+    }
+  else
+    return w;
+}
+strong_alias (__ieee754_hypot, __hypot_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_ilogb.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_ilogb.c
new file mode 100644
index 0000000000..1e338a59c1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_ilogb.c
@@ -0,0 +1,63 @@
+/* @(#)s_ilogb.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_ilogb.c,v 1.9 1995/05/10 20:47:28 jtc Exp $";
+#endif
+
+/* ilogb(double x)
+ * return the binary exponent of non-zero x
+ * ilogb(0) = FP_ILOGB0
+ * ilogb(NaN) = FP_ILOGBNAN (no signal is raised)
+ * ilogb(+-Inf) = INT_MAX (no signal is raised)
+ */
+
+#include <limits.h>
+#include <math.h>
+#include <math_private.h>
+
+int
+__ieee754_ilogb (double x)
+{
+  int32_t hx, lx, ix;
+
+  GET_HIGH_WORD (hx, x);
+  hx &= 0x7fffffff;
+  if (hx < 0x00100000)
+    {
+      GET_LOW_WORD (lx, x);
+      if ((hx | lx) == 0)
+	return FP_ILOGB0;               /* ilogb(0) = FP_ILOGB0 */
+      else                              /* subnormal x */
+      if (hx == 0)
+	{
+	  for (ix = -1043; lx > 0; lx <<= 1)
+	    ix -= 1;
+	}
+      else
+	{
+	  for (ix = -1022, hx <<= 11; hx > 0; hx <<= 1)
+	    ix -= 1;
+	}
+      return ix;
+    }
+  else if (hx < 0x7ff00000)
+    return (hx >> 20) - 1023;
+  else if (FP_ILOGBNAN != INT_MAX)
+    {
+      /* ISO C99 requires ilogb(+-Inf) == INT_MAX.  */
+      GET_LOW_WORD (lx, x);
+      if (((hx ^ 0x7ff00000) | lx) == 0)
+	return INT_MAX;
+    }
+  return FP_ILOGBNAN;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_j0.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_j0.c
new file mode 100644
index 0000000000..4b440cf0d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_j0.c
@@ -0,0 +1,458 @@
+/* @(#)e_j0.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/* Modified by Naohiko Shimizu/Tokai University, Japan 1997/08/26,
+   for performance improvement on pipelined processors.
+ */
+
+/* __ieee754_j0(x), __ieee754_y0(x)
+ * Bessel function of the first and second kinds of order zero.
+ * Method -- j0(x):
+ *	1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ...
+ *	2. Reduce x to |x| since j0(x)=j0(-x),  and
+ *	   for x in (0,2)
+ *		j0(x) = 1-z/4+ z^2*R0/S0,  where z = x*x;
+ *	   (precision:  |j0-1+z/4-z^2R0/S0 |<2**-63.67 )
+ *	   for x in (2,inf)
+ *		j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0))
+ *	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ *	   as follow:
+ *		cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+ *			= 1/sqrt(2) * (cos(x) + sin(x))
+ *		sin(x0) = sin(x)cos(pi/4)-cos(x)sin(pi/4)
+ *			= 1/sqrt(2) * (sin(x) - cos(x))
+ *	   (To avoid cancellation, use
+ *		sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ *	    to compute the worse one.)
+ *
+ *	3 Special cases
+ *		j0(nan)= nan
+ *		j0(0) = 1
+ *		j0(inf) = 0
+ *
+ * Method -- y0(x):
+ *	1. For x<2.
+ *	   Since
+ *		y0(x) = 2/pi*(j0(x)*(ln(x/2)+Euler) + x^2/4 - ...)
+ *	   therefore y0(x)-2/pi*j0(x)*ln(x) is an even function.
+ *	   We use the following function to approximate y0,
+ *		y0(x) = U(z)/V(z) + (2/pi)*(j0(x)*ln(x)), z= x^2
+ *	   where
+ *		U(z) = u00 + u01*z + ... + u06*z^6
+ *		V(z) = 1  + v01*z + ... + v04*z^4
+ *	   with absolute approximation error bounded by 2**-72.
+ *	   Note: For tiny x, U/V = u0 and j0(x)~1, hence
+ *		y0(tiny) = u0 + (2/pi)*ln(tiny), (choose tiny<2**-27)
+ *	2. For x>=2.
+ *		y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0))
+ *	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ *	   by the method mentioned above.
+ *	3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static double pzero (double), qzero (double);
+
+static const double
+  huge = 1e300,
+  one = 1.0,
+  invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */
+  tpi = 6.36619772367581382433e-01,     /* 0x3FE45F30, 0x6DC9C883 */
+/* R0/S0 on [0, 2.00] */
+  R[] = { 0.0, 0.0, 1.56249999999999947958e-02, /* 0x3F8FFFFF, 0xFFFFFFFD */
+	  -1.89979294238854721751e-04, /* 0xBF28E6A5, 0xB61AC6E9 */
+	  1.82954049532700665670e-06, /* 0x3EBEB1D1, 0x0C503919 */
+	  -4.61832688532103189199e-09 }, /* 0xBE33D5E7, 0x73D63FCE */
+  S[] = { 0.0, 1.56191029464890010492e-02, /* 0x3F8FFCE8, 0x82C8C2A4 */
+	  1.16926784663337450260e-04, /* 0x3F1EA6D2, 0xDD57DBF4 */
+	  5.13546550207318111446e-07, /* 0x3EA13B54, 0xCE84D5A9 */
+	  1.16614003333790000205e-09 }; /* 0x3E1408BC, 0xF4745D8F */
+
+static const double zero = 0.0;
+
+double
+__ieee754_j0 (double x)
+{
+  double z, s, c, ss, cc, r, u, v, r1, r2, s1, s2, z2, z4;
+  int32_t hx, ix;
+
+  GET_HIGH_WORD (hx, x);
+  ix = hx & 0x7fffffff;
+  if (ix >= 0x7ff00000)
+    return one / (x * x);
+  x = fabs (x);
+  if (ix >= 0x40000000)         /* |x| >= 2.0 */
+    {
+      __sincos (x, &s, &c);
+      ss = s - c;
+      cc = s + c;
+      if (ix < 0x7fe00000)           /* make sure x+x not overflow */
+	{
+	  z = -__cos (x + x);
+	  if ((s * c) < zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      /*
+       * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+       * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+       */
+      if (ix > 0x48000000)
+	z = (invsqrtpi * cc) / __ieee754_sqrt (x);
+      else
+	{
+	  u = pzero (x); v = qzero (x);
+	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrt (x);
+	}
+      return z;
+    }
+  if (ix < 0x3f200000)          /* |x| < 2**-13 */
+    {
+      math_force_eval (huge + x);       /* raise inexact if x != 0 */
+      if (ix < 0x3e400000)
+	return one;                     /* |x|<2**-27 */
+      else
+	return one - 0.25 * x * x;
+    }
+  z = x * x;
+  r1 = z * R[2]; z2 = z * z;
+  r2 = R[3] + z * R[4]; z4 = z2 * z2;
+  r = r1 + z2 * r2 + z4 * R[5];
+  s1 = one + z * S[1];
+  s2 = S[2] + z * S[3];
+  s = s1 + z2 * s2 + z4 * S[4];
+  if (ix < 0x3FF00000)          /* |x| < 1.00 */
+    {
+      return one + z * (-0.25 + (r / s));
+    }
+  else
+    {
+      u = 0.5 * x;
+      return ((one + u) * (one - u) + z * (r / s));
+    }
+}
+strong_alias (__ieee754_j0, __j0_finite)
+
+static const double
+U[] = { -7.38042951086872317523e-02, /* 0xBFB2E4D6, 0x99CBD01F */
+	 1.76666452509181115538e-01,  /* 0x3FC69D01, 0x9DE9E3FC */
+	-1.38185671945596898896e-02,  /* 0xBF8C4CE8, 0xB16CFA97 */
+	 3.47453432093683650238e-04,  /* 0x3F36C54D, 0x20B29B6B */
+	-3.81407053724364161125e-06,  /* 0xBECFFEA7, 0x73D25CAD */
+	 1.95590137035022920206e-08,  /* 0x3E550057, 0x3B4EABD4 */
+	-3.98205194132103398453e-11 }, /* 0xBDC5E43D, 0x693FB3C8 */
+V[] = { 1.27304834834123699328e-02,   /* 0x3F8A1270, 0x91C9C71A */
+	 7.60068627350353253702e-05,   /* 0x3F13ECBB, 0xF578C6C1 */
+	 2.59150851840457805467e-07,   /* 0x3E91642D, 0x7FF202FD */
+	 4.41110311332675467403e-10 }; /* 0x3DFE5018, 0x3BD6D9EF */
+
+double
+__ieee754_y0 (double x)
+{
+  double z, s, c, ss, cc, u, v, z2, z4, z6, u1, u2, u3, v1, v2;
+  int32_t hx, ix, lx;
+
+  EXTRACT_WORDS (hx, lx, x);
+  ix = 0x7fffffff & hx;
+  /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0, y0(0) is -inf.  */
+  if (ix >= 0x7ff00000)
+    return one / (x + x * x);
+  if ((ix | lx) == 0)
+    return -1 / zero; /* -inf and divide by zero exception.  */
+  if (hx < 0)
+    return zero / (zero * x);
+  if (ix >= 0x40000000)         /* |x| >= 2.0 */
+    {   /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0))
+		 * where x0 = x-pi/4
+		 *      Better formula:
+		 *              cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+		 *                      =  1/sqrt(2) * (sin(x) + cos(x))
+		 *              sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+		 *                      =  1/sqrt(2) * (sin(x) - cos(x))
+		 * To avoid cancellation, use
+		 *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+		 * to compute the worse one.
+		 */
+      __sincos (x, &s, &c);
+      ss = s - c;
+      cc = s + c;
+      /*
+       * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+       * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+       */
+      if (ix < 0x7fe00000)           /* make sure x+x not overflow */
+	{
+	  z = -__cos (x + x);
+	  if ((s * c) < zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      if (ix > 0x48000000)
+	z = (invsqrtpi * ss) / __ieee754_sqrt (x);
+      else
+	{
+	  u = pzero (x); v = qzero (x);
+	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrt (x);
+	}
+      return z;
+    }
+  if (ix <= 0x3e400000)         /* x < 2**-27 */
+    {
+      return (U[0] + tpi * __ieee754_log (x));
+    }
+  z = x * x;
+  u1 = U[0] + z * U[1]; z2 = z * z;
+  u2 = U[2] + z * U[3]; z4 = z2 * z2;
+  u3 = U[4] + z * U[5]; z6 = z4 * z2;
+  u = u1 + z2 * u2 + z4 * u3 + z6 * U[6];
+  v1 = one + z * V[0];
+  v2 = V[1] + z * V[2];
+  v = v1 + z2 * v2 + z4 * V[3];
+  return (u / v + tpi * (__ieee754_j0 (x) * __ieee754_log (x)));
+}
+strong_alias (__ieee754_y0, __y0_finite)
+
+/* The asymptotic expansions of pzero is
+ *	1 - 9/128 s^2 + 11025/98304 s^4 - ...,	where s = 1/x.
+ * For x >= 2, We approximate pzero by
+ *	pzero(x) = 1 + (R/S)
+ * where  R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10
+ *	  S = 1 + pS0*s^2 + ... + pS4*s^10
+ * and
+ *	| pzero(x)-1-R/S | <= 2  ** ( -60.26)
+ */
+static const double pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+ -7.03124999999900357484e-02, /* 0xBFB1FFFF, 0xFFFFFD32 */
+ -8.08167041275349795626e+00, /* 0xC02029D0, 0xB44FA779 */
+ -2.57063105679704847262e+02, /* 0xC0701102, 0x7B19E863 */
+ -2.48521641009428822144e+03, /* 0xC0A36A6E, 0xCD4DCAFC */
+ -5.25304380490729545272e+03, /* 0xC0B4850B, 0x36CC643D */
+};
+static const double pS8[5] = {
+  1.16534364619668181717e+02, /* 0x405D2233, 0x07A96751 */
+  3.83374475364121826715e+03, /* 0x40ADF37D, 0x50596938 */
+  4.05978572648472545552e+04, /* 0x40E3D2BB, 0x6EB6B05F */
+  1.16752972564375915681e+05, /* 0x40FC810F, 0x8F9FA9BD */
+  4.76277284146730962675e+04, /* 0x40E74177, 0x4F2C49DC */
+};
+
+static const double pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ -1.14125464691894502584e-11, /* 0xBDA918B1, 0x47E495CC */
+ -7.03124940873599280078e-02, /* 0xBFB1FFFF, 0xE69AFBC6 */
+ -4.15961064470587782438e+00, /* 0xC010A370, 0xF90C6BBF */
+ -6.76747652265167261021e+01, /* 0xC050EB2F, 0x5A7D1783 */
+ -3.31231299649172967747e+02, /* 0xC074B3B3, 0x6742CC63 */
+ -3.46433388365604912451e+02, /* 0xC075A6EF, 0x28A38BD7 */
+};
+static const double pS5[5] = {
+  6.07539382692300335975e+01, /* 0x404E6081, 0x0C98C5DE */
+  1.05125230595704579173e+03, /* 0x40906D02, 0x5C7E2864 */
+  5.97897094333855784498e+03, /* 0x40B75AF8, 0x8FBE1D60 */
+  9.62544514357774460223e+03, /* 0x40C2CCB8, 0xFA76FA38 */
+  2.40605815922939109441e+03, /* 0x40A2CC1D, 0xC70BE864 */
+};
+
+static const double pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+ -2.54704601771951915620e-09, /* 0xBE25E103, 0x6FE1AA86 */
+ -7.03119616381481654654e-02, /* 0xBFB1FFF6, 0xF7C0E24B */
+ -2.40903221549529611423e+00, /* 0xC00345B2, 0xAEA48074 */
+ -2.19659774734883086467e+01, /* 0xC035F74A, 0x4CB94E14 */
+ -5.80791704701737572236e+01, /* 0xC04D0A22, 0x420A1A45 */
+ -3.14479470594888503854e+01, /* 0xC03F72AC, 0xA892D80F */
+};
+static const double pS3[5] = {
+  3.58560338055209726349e+01, /* 0x4041ED92, 0x84077DD3 */
+  3.61513983050303863820e+02, /* 0x40769839, 0x464A7C0E */
+  1.19360783792111533330e+03, /* 0x4092A66E, 0x6D1061D6 */
+  1.12799679856907414432e+03, /* 0x40919FFC, 0xB8C39B7E */
+  1.73580930813335754692e+02, /* 0x4065B296, 0xFC379081 */
+};
+
+static const double pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+ -8.87534333032526411254e-08, /* 0xBE77D316, 0xE927026D */
+ -7.03030995483624743247e-02, /* 0xBFB1FF62, 0x495E1E42 */
+ -1.45073846780952986357e+00, /* 0xBFF73639, 0x8A24A843 */
+ -7.63569613823527770791e+00, /* 0xC01E8AF3, 0xEDAFA7F3 */
+ -1.11931668860356747786e+01, /* 0xC02662E6, 0xC5246303 */
+ -3.23364579351335335033e+00, /* 0xC009DE81, 0xAF8FE70F */
+};
+static const double pS2[5] = {
+  2.22202997532088808441e+01, /* 0x40363865, 0x908B5959 */
+  1.36206794218215208048e+02, /* 0x4061069E, 0x0EE8878F */
+  2.70470278658083486789e+02, /* 0x4070E786, 0x42EA079B */
+  1.53875394208320329881e+02, /* 0x40633C03, 0x3AB6FAFF */
+  1.46576176948256193810e+01, /* 0x402D50B3, 0x44391809 */
+};
+
+static double
+pzero (double x)
+{
+  const double *p, *q;
+  double z, r, s, z2, z4, r1, r2, r3, s1, s2, s3;
+  int32_t ix;
+  GET_HIGH_WORD (ix, x);
+  ix &= 0x7fffffff;
+  /* ix >= 0x40000000 for all calls to this function.  */
+  if (ix >= 0x41b00000)
+    {
+      return one;
+    }
+  else if (ix >= 0x40200000)
+    {
+      p = pR8; q = pS8;
+    }
+  else if (ix >= 0x40122E8B)
+    {
+      p = pR5; q = pS5;
+    }
+  else if (ix >= 0x4006DB6D)
+    {
+      p = pR3; q = pS3;
+    }
+  else
+    {
+      p = pR2; q = pS2;
+    }
+  z = one / (x * x);
+  r1 = p[0] + z * p[1]; z2 = z * z;
+  r2 = p[2] + z * p[3]; z4 = z2 * z2;
+  r3 = p[4] + z * p[5];
+  r = r1 + z2 * r2 + z4 * r3;
+  s1 = one + z * q[0];
+  s2 = q[1] + z * q[2];
+  s3 = q[3] + z * q[4];
+  s = s1 + z2 * s2 + z4 * s3;
+  return one + r / s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qzero is
+ *	-1/8 s + 75/1024 s^3 - ..., where s = 1/x.
+ * We approximate pzero by
+ *	qzero(x) = s*(-1.25 + (R/S))
+ * where  R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10
+ *	  S = 1 + qS0*s^2 + ... + qS5*s^12
+ * and
+ *	| qzero(x)/s +1.25-R/S | <= 2  ** ( -61.22)
+ */
+static const double qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+  7.32421874999935051953e-02, /* 0x3FB2BFFF, 0xFFFFFE2C */
+  1.17682064682252693899e+01, /* 0x40278952, 0x5BB334D6 */
+  5.57673380256401856059e+02, /* 0x40816D63, 0x15301825 */
+  8.85919720756468632317e+03, /* 0x40C14D99, 0x3E18F46D */
+  3.70146267776887834771e+04, /* 0x40E212D4, 0x0E901566 */
+};
+static const double qS8[6] = {
+  1.63776026895689824414e+02, /* 0x406478D5, 0x365B39BC */
+  8.09834494656449805916e+03, /* 0x40BFA258, 0x4E6B0563 */
+  1.42538291419120476348e+05, /* 0x41016652, 0x54D38C3F */
+  8.03309257119514397345e+05, /* 0x412883DA, 0x83A52B43 */
+  8.40501579819060512818e+05, /* 0x4129A66B, 0x28DE0B3D */
+ -3.43899293537866615225e+05, /* 0xC114FD6D, 0x2C9530C5 */
+};
+
+static const double qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+  1.84085963594515531381e-11, /* 0x3DB43D8F, 0x29CC8CD9 */
+  7.32421766612684765896e-02, /* 0x3FB2BFFF, 0xD172B04C */
+  5.83563508962056953777e+00, /* 0x401757B0, 0xB9953DD3 */
+  1.35111577286449829671e+02, /* 0x4060E392, 0x0A8788E9 */
+  1.02724376596164097464e+03, /* 0x40900CF9, 0x9DC8C481 */
+  1.98997785864605384631e+03, /* 0x409F17E9, 0x53C6E3A6 */
+};
+static const double qS5[6] = {
+  8.27766102236537761883e+01, /* 0x4054B1B3, 0xFB5E1543 */
+  2.07781416421392987104e+03, /* 0x40A03BA0, 0xDA21C0CE */
+  1.88472887785718085070e+04, /* 0x40D267D2, 0x7B591E6D */
+  5.67511122894947329769e+04, /* 0x40EBB5E3, 0x97E02372 */
+  3.59767538425114471465e+04, /* 0x40E19118, 0x1F7A54A0 */
+ -5.35434275601944773371e+03, /* 0xC0B4EA57, 0xBEDBC609 */
+};
+
+static const double qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+  4.37741014089738620906e-09, /* 0x3E32CD03, 0x6ADECB82 */
+  7.32411180042911447163e-02, /* 0x3FB2BFEE, 0x0E8D0842 */
+  3.34423137516170720929e+00, /* 0x400AC0FC, 0x61149CF5 */
+  4.26218440745412650017e+01, /* 0x40454F98, 0x962DAEDD */
+  1.70808091340565596283e+02, /* 0x406559DB, 0xE25EFD1F */
+  1.66733948696651168575e+02, /* 0x4064D77C, 0x81FA21E0 */
+};
+static const double qS3[6] = {
+  4.87588729724587182091e+01, /* 0x40486122, 0xBFE343A6 */
+  7.09689221056606015736e+02, /* 0x40862D83, 0x86544EB3 */
+  3.70414822620111362994e+03, /* 0x40ACF04B, 0xE44DFC63 */
+  6.46042516752568917582e+03, /* 0x40B93C6C, 0xD7C76A28 */
+  2.51633368920368957333e+03, /* 0x40A3A8AA, 0xD94FB1C0 */
+ -1.49247451836156386662e+02, /* 0xC062A7EB, 0x201CF40F */
+};
+
+static const double qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+  1.50444444886983272379e-07, /* 0x3E84313B, 0x54F76BDB */
+  7.32234265963079278272e-02, /* 0x3FB2BEC5, 0x3E883E34 */
+  1.99819174093815998816e+00, /* 0x3FFFF897, 0xE727779C */
+  1.44956029347885735348e+01, /* 0x402CFDBF, 0xAAF96FE5 */
+  3.16662317504781540833e+01, /* 0x403FAA8E, 0x29FBDC4A */
+  1.62527075710929267416e+01, /* 0x403040B1, 0x71814BB4 */
+};
+static const double qS2[6] = {
+  3.03655848355219184498e+01, /* 0x403E5D96, 0xF7C07AED */
+  2.69348118608049844624e+02, /* 0x4070D591, 0xE4D14B40 */
+  8.44783757595320139444e+02, /* 0x408A6645, 0x22B3BF22 */
+  8.82935845112488550512e+02, /* 0x408B977C, 0x9C5CC214 */
+  2.12666388511798828631e+02, /* 0x406A9553, 0x0E001365 */
+ -5.31095493882666946917e+00, /* 0xC0153E6A, 0xF8B32931 */
+};
+
+static double
+qzero (double x)
+{
+  const double *p, *q;
+  double s, r, z, z2, z4, z6, r1, r2, r3, s1, s2, s3;
+  int32_t ix;
+  GET_HIGH_WORD (ix, x);
+  ix &= 0x7fffffff;
+  /* ix >= 0x40000000 for all calls to this function.  */
+  if (ix >= 0x41b00000)
+    {
+      return -.125 / x;
+    }
+  else if (ix >= 0x40200000)
+    {
+      p = qR8; q = qS8;
+    }
+  else if (ix >= 0x40122E8B)
+    {
+      p = qR5; q = qS5;
+    }
+  else if (ix >= 0x4006DB6D)
+    {
+      p = qR3; q = qS3;
+    }
+  else
+    {
+      p = qR2; q = qS2;
+    }
+  z = one / (x * x);
+  r1 = p[0] + z * p[1]; z2 = z * z;
+  r2 = p[2] + z * p[3]; z4 = z2 * z2;
+  r3 = p[4] + z * p[5]; z6 = z4 * z2;
+  r = r1 + z2 * r2 + z4 * r3;
+  s1 = one + z * q[0];
+  s2 = q[1] + z * q[2];
+  s3 = q[3] + z * q[4];
+  s = s1 + z2 * s2 + z4 * s3 + z6 * q[5];
+  return (-.125 + r / s) / x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_j1.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_j1.c
new file mode 100644
index 0000000000..eb446fd102
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_j1.c
@@ -0,0 +1,466 @@
+/* @(#)e_j1.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/* Modified by Naohiko Shimizu/Tokai University, Japan 1997/08/26,
+   for performance improvement on pipelined processors.
+ */
+
+/* __ieee754_j1(x), __ieee754_y1(x)
+ * Bessel function of the first and second kinds of order zero.
+ * Method -- j1(x):
+ *	1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ...
+ *	2. Reduce x to |x| since j1(x)=-j1(-x),  and
+ *	   for x in (0,2)
+ *		j1(x) = x/2 + x*z*R0/S0,  where z = x*x;
+ *	   (precision:  |j1/x - 1/2 - R0/S0 |<2**-61.51 )
+ *	   for x in (2,inf)
+ *		j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x1)-q1(x)*sin(x1))
+ *		y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1))
+ *	   where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1)
+ *	   as follow:
+ *		cos(x1) =  cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+ *			=  1/sqrt(2) * (sin(x) - cos(x))
+ *		sin(x1) =  sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+ *			= -1/sqrt(2) * (sin(x) + cos(x))
+ *	   (To avoid cancellation, use
+ *		sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ *	    to compute the worse one.)
+ *
+ *	3 Special cases
+ *		j1(nan)= nan
+ *		j1(0) = 0
+ *		j1(inf) = 0
+ *
+ * Method -- y1(x):
+ *	1. screen out x<=0 cases: y1(0)=-inf, y1(x<0)=NaN
+ *	2. For x<2.
+ *	   Since
+ *		y1(x) = 2/pi*(j1(x)*(ln(x/2)+Euler)-1/x-x/2+5/64*x^3-...)
+ *	   therefore y1(x)-2/pi*j1(x)*ln(x)-1/x is an odd function.
+ *	   We use the following function to approximate y1,
+ *		y1(x) = x*U(z)/V(z) + (2/pi)*(j1(x)*ln(x)-1/x), z= x^2
+ *	   where for x in [0,2] (abs err less than 2**-65.89)
+ *		U(z) = U0[0] + U0[1]*z + ... + U0[4]*z^4
+ *		V(z) = 1  + v0[0]*z + ... + v0[4]*z^5
+ *	   Note: For tiny x, 1/x dominate y1 and hence
+ *		y1(tiny) = -2/pi/tiny, (choose tiny<2**-54)
+ *	3. For x>=2.
+ *		y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1))
+ *	   where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1)
+ *	   by method mentioned above.
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static double pone (double), qone (double);
+
+static const double
+  huge = 1e300,
+  one = 1.0,
+  invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */
+  tpi = 6.36619772367581382433e-01,     /* 0x3FE45F30, 0x6DC9C883 */
+/* R0/S0 on [0,2] */
+  R[] = { -6.25000000000000000000e-02, /* 0xBFB00000, 0x00000000 */
+	  1.40705666955189706048e-03,   /* 0x3F570D9F, 0x98472C61 */
+	  -1.59955631084035597520e-05,  /* 0xBEF0C5C6, 0xBA169668 */
+	  4.96727999609584448412e-08 }, /* 0x3E6AAAFA, 0x46CA0BD9 */
+  S[] = { 0.0, 1.91537599538363460805e-02, /* 0x3F939D0B, 0x12637E53 */
+	  1.85946785588630915560e-04,   /* 0x3F285F56, 0xB9CDF664 */
+	  1.17718464042623683263e-06,   /* 0x3EB3BFF8, 0x333F8498 */
+	  5.04636257076217042715e-09,   /* 0x3E35AC88, 0xC97DFF2C */
+	  1.23542274426137913908e-11 }; /* 0x3DAB2ACF, 0xCFB97ED8 */
+
+static const double zero = 0.0;
+
+double
+__ieee754_j1 (double x)
+{
+  double z, s, c, ss, cc, r, u, v, y, r1, r2, s1, s2, s3, z2, z4;
+  int32_t hx, ix;
+
+  GET_HIGH_WORD (hx, x);
+  ix = hx & 0x7fffffff;
+  if (__glibc_unlikely (ix >= 0x7ff00000))
+    return one / x;
+  y = fabs (x);
+  if (ix >= 0x40000000)         /* |x| >= 2.0 */
+    {
+      __sincos (y, &s, &c);
+      ss = -s - c;
+      cc = s - c;
+      if (ix < 0x7fe00000)           /* make sure y+y not overflow */
+	{
+	  z = __cos (y + y);
+	  if ((s * c) > zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      /*
+       * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
+       * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
+       */
+      if (ix > 0x48000000)
+	z = (invsqrtpi * cc) / __ieee754_sqrt (y);
+      else
+	{
+	  u = pone (y); v = qone (y);
+	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrt (y);
+	}
+      if (hx < 0)
+	return -z;
+      else
+	return z;
+    }
+  if (__glibc_unlikely (ix < 0x3e400000))                  /* |x|<2**-27 */
+    {
+      if (huge + x > one)                 /* inexact if x!=0 necessary */
+	{
+	  double ret = math_narrow_eval (0.5 * x);
+	  math_check_force_underflow (ret);
+	  if (ret == 0 && x != 0)
+	    __set_errno (ERANGE);
+	  return ret;
+	}
+    }
+  z = x * x;
+  r1 = z * R[0]; z2 = z * z;
+  r2 = R[1] + z * R[2]; z4 = z2 * z2;
+  r = r1 + z2 * r2 + z4 * R[3];
+  r *= x;
+  s1 = one + z * S[1];
+  s2 = S[2] + z * S[3];
+  s3 = S[4] + z * S[5];
+  s = s1 + z2 * s2 + z4 * s3;
+  return (x * 0.5 + r / s);
+}
+strong_alias (__ieee754_j1, __j1_finite)
+
+static const double U0[5] = {
+ -1.96057090646238940668e-01, /* 0xBFC91866, 0x143CBC8A */
+  5.04438716639811282616e-02, /* 0x3FA9D3C7, 0x76292CD1 */
+ -1.91256895875763547298e-03, /* 0xBF5F55E5, 0x4844F50F */
+  2.35252600561610495928e-05, /* 0x3EF8AB03, 0x8FA6B88E */
+ -9.19099158039878874504e-08, /* 0xBE78AC00, 0x569105B8 */
+};
+static const double V0[5] = {
+  1.99167318236649903973e-02, /* 0x3F94650D, 0x3F4DA9F0 */
+  2.02552581025135171496e-04, /* 0x3F2A8C89, 0x6C257764 */
+  1.35608801097516229404e-06, /* 0x3EB6C05A, 0x894E8CA6 */
+  6.22741452364621501295e-09, /* 0x3E3ABF1D, 0x5BA69A86 */
+  1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */
+};
+
+double
+__ieee754_y1 (double x)
+{
+  double z, s, c, ss, cc, u, v, u1, u2, v1, v2, v3, z2, z4;
+  int32_t hx, ix, lx;
+
+  EXTRACT_WORDS (hx, lx, x);
+  ix = 0x7fffffff & hx;
+  /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */
+  if (__glibc_unlikely (ix >= 0x7ff00000))
+    return one / (x + x * x);
+  if (__glibc_unlikely ((ix | lx) == 0))
+    return -1 / zero; /* -inf and divide by zero exception.  */
+  /* -inf and overflow exception.  */;
+  if (__glibc_unlikely (hx < 0))
+    return zero / (zero * x);
+  if (ix >= 0x40000000)         /* |x| >= 2.0 */
+    {
+      __sincos (x, &s, &c);
+      ss = -s - c;
+      cc = s - c;
+      if (ix < 0x7fe00000)           /* make sure x+x not overflow */
+	{
+	  z = __cos (x + x);
+	  if ((s * c) > zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0))
+       * where x0 = x-3pi/4
+       *      Better formula:
+       *              cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+       *                      =  1/sqrt(2) * (sin(x) - cos(x))
+       *              sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+       *                      = -1/sqrt(2) * (cos(x) + sin(x))
+       * To avoid cancellation, use
+       *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+       * to compute the worse one.
+       */
+      if (ix > 0x48000000)
+	z = (invsqrtpi * ss) / __ieee754_sqrt (x);
+      else
+	{
+	  u = pone (x); v = qone (x);
+	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrt (x);
+	}
+      return z;
+    }
+  if (__glibc_unlikely (ix <= 0x3c900000))              /* x < 2**-54 */
+    {
+      z = -tpi / x;
+      if (isinf (z))
+	__set_errno (ERANGE);
+      return z;
+    }
+  z = x * x;
+  u1 = U0[0] + z * U0[1]; z2 = z * z;
+  u2 = U0[2] + z * U0[3]; z4 = z2 * z2;
+  u = u1 + z2 * u2 + z4 * U0[4];
+  v1 = one + z * V0[0];
+  v2 = V0[1] + z * V0[2];
+  v3 = V0[3] + z * V0[4];
+  v = v1 + z2 * v2 + z4 * v3;
+  return (x * (u / v) + tpi * (__ieee754_j1 (x) * __ieee754_log (x) - one / x));
+}
+strong_alias (__ieee754_y1, __y1_finite)
+
+/* For x >= 8, the asymptotic expansions of pone is
+ *	1 + 15/128 s^2 - 4725/2^15 s^4 - ...,	where s = 1/x.
+ * We approximate pone by
+ *	pone(x) = 1 + (R/S)
+ * where  R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10
+ *	  S = 1 + ps0*s^2 + ... + ps4*s^10
+ * and
+ *	| pone(x)-1-R/S | <= 2  ** ( -60.06)
+ */
+
+static const double pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+  1.17187499999988647970e-01, /* 0x3FBDFFFF, 0xFFFFFCCE */
+  1.32394806593073575129e+01, /* 0x402A7A9D, 0x357F7FCE */
+  4.12051854307378562225e+02, /* 0x4079C0D4, 0x652EA590 */
+  3.87474538913960532227e+03, /* 0x40AE457D, 0xA3A532CC */
+  7.91447954031891731574e+03, /* 0x40BEEA7A, 0xC32782DD */
+};
+static const double ps8[5] = {
+  1.14207370375678408436e+02, /* 0x405C8D45, 0x8E656CAC */
+  3.65093083420853463394e+03, /* 0x40AC85DC, 0x964D274F */
+  3.69562060269033463555e+04, /* 0x40E20B86, 0x97C5BB7F */
+  9.76027935934950801311e+04, /* 0x40F7D42C, 0xB28F17BB */
+  3.08042720627888811578e+04, /* 0x40DE1511, 0x697A0B2D */
+};
+
+static const double pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+  1.31990519556243522749e-11, /* 0x3DAD0667, 0xDAE1CA7D */
+  1.17187493190614097638e-01, /* 0x3FBDFFFF, 0xE2C10043 */
+  6.80275127868432871736e+00, /* 0x401B3604, 0x6E6315E3 */
+  1.08308182990189109773e+02, /* 0x405B13B9, 0x452602ED */
+  5.17636139533199752805e+02, /* 0x40802D16, 0xD052D649 */
+  5.28715201363337541807e+02, /* 0x408085B8, 0xBB7E0CB7 */
+};
+static const double ps5[5] = {
+  5.92805987221131331921e+01, /* 0x404DA3EA, 0xA8AF633D */
+  9.91401418733614377743e+02, /* 0x408EFB36, 0x1B066701 */
+  5.35326695291487976647e+03, /* 0x40B4E944, 0x5706B6FB */
+  7.84469031749551231769e+03, /* 0x40BEA4B0, 0xB8A5BB15 */
+  1.50404688810361062679e+03, /* 0x40978030, 0x036F5E51 */
+};
+
+static const double pr3[6] = {
+  3.02503916137373618024e-09, /* 0x3E29FC21, 0xA7AD9EDD */
+  1.17186865567253592491e-01, /* 0x3FBDFFF5, 0x5B21D17B */
+  3.93297750033315640650e+00, /* 0x400F76BC, 0xE85EAD8A */
+  3.51194035591636932736e+01, /* 0x40418F48, 0x9DA6D129 */
+  9.10550110750781271918e+01, /* 0x4056C385, 0x4D2C1837 */
+  4.85590685197364919645e+01, /* 0x4048478F, 0x8EA83EE5 */
+};
+static const double ps3[5] = {
+  3.47913095001251519989e+01, /* 0x40416549, 0xA134069C */
+  3.36762458747825746741e+02, /* 0x40750C33, 0x07F1A75F */
+  1.04687139975775130551e+03, /* 0x40905B7C, 0x5037D523 */
+  8.90811346398256432622e+02, /* 0x408BD67D, 0xA32E31E9 */
+  1.03787932439639277504e+02, /* 0x4059F26D, 0x7C2EED53 */
+};
+
+static const double pr2[6] = { /* for x in [2.8570,2]=1/[0.3499,0.5] */
+  1.07710830106873743082e-07, /* 0x3E7CE9D4, 0xF65544F4 */
+  1.17176219462683348094e-01, /* 0x3FBDFF42, 0xBE760D83 */
+  2.36851496667608785174e+00, /* 0x4002F2B7, 0xF98FAEC0 */
+  1.22426109148261232917e+01, /* 0x40287C37, 0x7F71A964 */
+  1.76939711271687727390e+01, /* 0x4031B1A8, 0x177F8EE2 */
+  5.07352312588818499250e+00, /* 0x40144B49, 0xA574C1FE */
+};
+static const double ps2[5] = {
+  2.14364859363821409488e+01, /* 0x40356FBD, 0x8AD5ECDC */
+  1.25290227168402751090e+02, /* 0x405F5293, 0x14F92CD5 */
+  2.32276469057162813669e+02, /* 0x406D08D8, 0xD5A2DBD9 */
+  1.17679373287147100768e+02, /* 0x405D6B7A, 0xDA1884A9 */
+  8.36463893371618283368e+00, /* 0x4020BAB1, 0xF44E5192 */
+};
+
+static double
+pone (double x)
+{
+  const double *p, *q;
+  double z, r, s, r1, r2, r3, s1, s2, s3, z2, z4;
+  int32_t ix;
+  GET_HIGH_WORD (ix, x);
+  ix &= 0x7fffffff;
+  /* ix >= 0x40000000 for all calls to this function.  */
+  if (ix >= 0x41b00000)
+    {
+      return one;
+    }
+  else if (ix >= 0x40200000)
+    {
+      p = pr8; q = ps8;
+    }
+  else if (ix >= 0x40122E8B)
+    {
+      p = pr5; q = ps5;
+    }
+  else if (ix >= 0x4006DB6D)
+    {
+      p = pr3; q = ps3;
+    }
+  else
+    {
+      p = pr2; q = ps2;
+    }
+  z = one / (x * x);
+  r1 = p[0] + z * p[1]; z2 = z * z;
+  r2 = p[2] + z * p[3]; z4 = z2 * z2;
+  r3 = p[4] + z * p[5];
+  r = r1 + z2 * r2 + z4 * r3;
+  s1 = one + z * q[0];
+  s2 = q[1] + z * q[2];
+  s3 = q[3] + z * q[4];
+  s = s1 + z2 * s2 + z4 * s3;
+  return one + r / s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qone is
+ *	3/8 s - 105/1024 s^3 - ..., where s = 1/x.
+ * We approximate pone by
+ *	qone(x) = s*(0.375 + (R/S))
+ * where  R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10
+ *	  S = 1 + qs1*s^2 + ... + qs6*s^12
+ * and
+ *	| qone(x)/s -0.375-R/S | <= 2  ** ( -61.13)
+ */
+
+static const double qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+ -1.02539062499992714161e-01, /* 0xBFBA3FFF, 0xFFFFFDF3 */
+ -1.62717534544589987888e+01, /* 0xC0304591, 0xA26779F7 */
+ -7.59601722513950107896e+02, /* 0xC087BCD0, 0x53E4B576 */
+ -1.18498066702429587167e+04, /* 0xC0C724E7, 0x40F87415 */
+ -4.84385124285750353010e+04, /* 0xC0E7A6D0, 0x65D09C6A */
+};
+static const double qs8[6] = {
+  1.61395369700722909556e+02, /* 0x40642CA6, 0xDE5BCDE5 */
+  7.82538599923348465381e+03, /* 0x40BE9162, 0xD0D88419 */
+  1.33875336287249578163e+05, /* 0x4100579A, 0xB0B75E98 */
+  7.19657723683240939863e+05, /* 0x4125F653, 0x72869C19 */
+  6.66601232617776375264e+05, /* 0x412457D2, 0x7719AD5C */
+ -2.94490264303834643215e+05, /* 0xC111F969, 0x0EA5AA18 */
+};
+
+static const double qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ -2.08979931141764104297e-11, /* 0xBDB6FA43, 0x1AA1A098 */
+ -1.02539050241375426231e-01, /* 0xBFBA3FFF, 0xCB597FEF */
+ -8.05644828123936029840e+00, /* 0xC0201CE6, 0xCA03AD4B */
+ -1.83669607474888380239e+02, /* 0xC066F56D, 0x6CA7B9B0 */
+ -1.37319376065508163265e+03, /* 0xC09574C6, 0x6931734F */
+ -2.61244440453215656817e+03, /* 0xC0A468E3, 0x88FDA79D */
+};
+static const double qs5[6] = {
+  8.12765501384335777857e+01, /* 0x405451B2, 0xFF5A11B2 */
+  1.99179873460485964642e+03, /* 0x409F1F31, 0xE77BF839 */
+  1.74684851924908907677e+04, /* 0x40D10F1F, 0x0D64CE29 */
+  4.98514270910352279316e+04, /* 0x40E8576D, 0xAABAD197 */
+  2.79480751638918118260e+04, /* 0x40DB4B04, 0xCF7C364B */
+ -4.71918354795128470869e+03, /* 0xC0B26F2E, 0xFCFFA004 */
+};
+
+static const double qr3[6] = {
+ -5.07831226461766561369e-09, /* 0xBE35CFA9, 0xD38FC84F */
+ -1.02537829820837089745e-01, /* 0xBFBA3FEB, 0x51AEED54 */
+ -4.61011581139473403113e+00, /* 0xC01270C2, 0x3302D9FF */
+ -5.78472216562783643212e+01, /* 0xC04CEC71, 0xC25D16DA */
+ -2.28244540737631695038e+02, /* 0xC06C87D3, 0x4718D55F */
+ -2.19210128478909325622e+02, /* 0xC06B66B9, 0x5F5C1BF6 */
+};
+static const double qs3[6] = {
+  4.76651550323729509273e+01, /* 0x4047D523, 0xCCD367E4 */
+  6.73865112676699709482e+02, /* 0x40850EEB, 0xC031EE3E */
+  3.38015286679526343505e+03, /* 0x40AA684E, 0x448E7C9A */
+  5.54772909720722782367e+03, /* 0x40B5ABBA, 0xA61D54A6 */
+  1.90311919338810798763e+03, /* 0x409DBC7A, 0x0DD4DF4B */
+ -1.35201191444307340817e+02, /* 0xC060E670, 0x290A311F */
+};
+
+static const double qr2[6] = { /* for x in [2.8570,2]=1/[0.3499,0.5] */
+ -1.78381727510958865572e-07, /* 0xBE87F126, 0x44C626D2 */
+ -1.02517042607985553460e-01, /* 0xBFBA3E8E, 0x9148B010 */
+ -2.75220568278187460720e+00, /* 0xC0060484, 0x69BB4EDA */
+ -1.96636162643703720221e+01, /* 0xC033A9E2, 0xC168907F */
+ -4.23253133372830490089e+01, /* 0xC04529A3, 0xDE104AAA */
+ -2.13719211703704061733e+01, /* 0xC0355F36, 0x39CF6E52 */
+};
+static const double qs2[6] = {
+  2.95333629060523854548e+01, /* 0x403D888A, 0x78AE64FF */
+  2.52981549982190529136e+02, /* 0x406F9F68, 0xDB821CBA */
+  7.57502834868645436472e+02, /* 0x4087AC05, 0xCE49A0F7 */
+  7.39393205320467245656e+02, /* 0x40871B25, 0x48D4C029 */
+  1.55949003336666123687e+02, /* 0x40637E5E, 0x3C3ED8D4 */
+ -4.95949898822628210127e+00, /* 0xC013D686, 0xE71BE86B */
+};
+
+static double
+qone (double x)
+{
+  const double *p, *q;
+  double s, r, z, r1, r2, r3, s1, s2, s3, z2, z4, z6;
+  int32_t ix;
+  GET_HIGH_WORD (ix, x);
+  ix &= 0x7fffffff;
+  /* ix >= 0x40000000 for all calls to this function.  */
+  if (ix >= 0x41b00000)
+    {
+      return .375 / x;
+    }
+  else if (ix >= 0x40200000)
+    {
+      p = qr8; q = qs8;
+    }
+  else if (ix >= 0x40122E8B)
+    {
+      p = qr5; q = qs5;
+    }
+  else if (ix >= 0x4006DB6D)
+    {
+      p = qr3; q = qs3;
+    }
+  else
+    {
+      p = qr2; q = qs2;
+    }
+  z = one / (x * x);
+  r1 = p[0] + z * p[1]; z2 = z * z;
+  r2 = p[2] + z * p[3]; z4 = z2 * z2;
+  r3 = p[4] + z * p[5]; z6 = z4 * z2;
+  r = r1 + z2 * r2 + z4 * r3;
+  s1 = one + z * q[0];
+  s2 = q[1] + z * q[2];
+  s3 = q[3] + z * q[4];
+  s = s1 + z2 * s2 + z4 * s3 + z6 * q[5];
+  return (.375 + r / s) / x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_jn.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_jn.c
new file mode 100644
index 0000000000..3fecf82f10
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_jn.c
@@ -0,0 +1,347 @@
+/* @(#)e_jn.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * floating point Bessel's function of the 1st and 2nd kind
+ * of order n
+ *
+ * Special cases:
+ *	y0(0)=y1(0)=yn(n,0) = -inf with overflow signal;
+ *	y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
+ * Note 2. About jn(n,x), yn(n,x)
+ *	For n=0, j0(x) is called,
+ *	for n=1, j1(x) is called,
+ *	for n<x, forward recursion us used starting
+ *	from values of j0(x) and j1(x).
+ *	for n>x, a continued fraction approximation to
+ *	j(n,x)/j(n-1,x) is evaluated and then backward
+ *	recursion is used starting from a supposed value
+ *	for j(n,x). The resulting value of j(0,x) is
+ *	compared with the actual value to correct the
+ *	supposed value of j(n,x).
+ *
+ *	yn(n,x) is similar in all respects, except
+ *	that forward recursion is used for all
+ *	values of n>1.
+ *
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  invsqrtpi = 5.64189583547756279280e-01, /* 0x3FE20DD7, 0x50429B6D */
+  two = 2.00000000000000000000e+00,  /* 0x40000000, 0x00000000 */
+  one = 1.00000000000000000000e+00;  /* 0x3FF00000, 0x00000000 */
+
+static const double zero = 0.00000000000000000000e+00;
+
+double
+__ieee754_jn (int n, double x)
+{
+  int32_t i, hx, ix, lx, sgn;
+  double a, b, temp, di, ret;
+  double z, w;
+
+  /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
+   * Thus, J(-n,x) = J(n,-x)
+   */
+  EXTRACT_WORDS (hx, lx, x);
+  ix = 0x7fffffff & hx;
+  /* if J(n,NaN) is NaN */
+  if (__glibc_unlikely ((ix | ((u_int32_t) (lx | -lx)) >> 31) > 0x7ff00000))
+    return x + x;
+  if (n < 0)
+    {
+      n = -n;
+      x = -x;
+      hx ^= 0x80000000;
+    }
+  if (n == 0)
+    return (__ieee754_j0 (x));
+  if (n == 1)
+    return (__ieee754_j1 (x));
+  sgn = (n & 1) & (hx >> 31);   /* even n -- 0, odd n -- sign(x) */
+  x = fabs (x);
+  {
+    SET_RESTORE_ROUND (FE_TONEAREST);
+    if (__glibc_unlikely ((ix | lx) == 0 || ix >= 0x7ff00000))
+      /* if x is 0 or inf */
+      return sgn == 1 ? -zero : zero;
+    else if ((double) n <= x)
+      {
+	/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
+	if (ix >= 0x52D00000)      /* x > 2**302 */
+	  { /* (x >> n**2)
+			 *	    Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+			 *	    Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+			 *	    Let s=sin(x), c=cos(x),
+			 *		xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+			 *
+			 *		   n	sin(xn)*sqt2	cos(xn)*sqt2
+			 *		----------------------------------
+			 *		   0	 s-c		 c+s
+			 *		   1	-s-c		-c+s
+			 *		   2	-s+c		-c-s
+			 *		   3	 s+c		 c-s
+			 */
+	    double s;
+	    double c;
+	    __sincos (x, &s, &c);
+	    switch (n & 3)
+	      {
+	      case 0: temp = c + s; break;
+	      case 1: temp = -c + s; break;
+	      case 2: temp = -c - s; break;
+	      case 3: temp = c - s; break;
+	      }
+	    b = invsqrtpi * temp / __ieee754_sqrt (x);
+	  }
+	else
+	  {
+	    a = __ieee754_j0 (x);
+	    b = __ieee754_j1 (x);
+	    for (i = 1; i < n; i++)
+	      {
+		temp = b;
+		b = b * ((double) (i + i) / x) - a; /* avoid underflow */
+		a = temp;
+	      }
+	  }
+      }
+    else
+      {
+	if (ix < 0x3e100000)      /* x < 2**-29 */
+	  { /* x is tiny, return the first Taylor expansion of J(n,x)
+			 * J(n,x) = 1/n!*(x/2)^n  - ...
+			 */
+	    if (n > 33)           /* underflow */
+	      b = zero;
+	    else
+	      {
+		temp = x * 0.5; b = temp;
+		for (a = one, i = 2; i <= n; i++)
+		  {
+		    a *= (double) i;              /* a = n! */
+		    b *= temp;                    /* b = (x/2)^n */
+		  }
+		b = b / a;
+	      }
+	  }
+	else
+	  {
+	    /* use backward recurrence */
+	    /*			x      x^2      x^2
+	     *  J(n,x)/J(n-1,x) =  ----   ------   ------   .....
+	     *			2n  - 2(n+1) - 2(n+2)
+	     *
+	     *			1      1        1
+	     *  (for large x)   =  ----  ------   ------   .....
+	     *			2n   2(n+1)   2(n+2)
+	     *			-- - ------ - ------ -
+	     *			 x     x         x
+	     *
+	     * Let w = 2n/x and h=2/x, then the above quotient
+	     * is equal to the continued fraction:
+	     *		    1
+	     *	= -----------------------
+	     *		       1
+	     *	   w - -----------------
+	     *			  1
+	     *		w+h - ---------
+	     *		       w+2h - ...
+	     *
+	     * To determine how many terms needed, let
+	     * Q(0) = w, Q(1) = w(w+h) - 1,
+	     * Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
+	     * When Q(k) > 1e4	good for single
+	     * When Q(k) > 1e9	good for double
+	     * When Q(k) > 1e17	good for quadruple
+	     */
+	    /* determine k */
+	    double t, v;
+	    double q0, q1, h, tmp; int32_t k, m;
+	    w = (n + n) / (double) x; h = 2.0 / (double) x;
+	    q0 = w;  z = w + h; q1 = w * z - 1.0; k = 1;
+	    while (q1 < 1.0e9)
+	      {
+		k += 1; z += h;
+		tmp = z * q1 - q0;
+		q0 = q1;
+		q1 = tmp;
+	      }
+	    m = n + n;
+	    for (t = zero, i = 2 * (n + k); i >= m; i -= 2)
+	      t = one / (i / x - t);
+	    a = t;
+	    b = one;
+	    /*  estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n)
+	     *  Hence, if n*(log(2n/x)) > ...
+	     *  single 8.8722839355e+01
+	     *  double 7.09782712893383973096e+02
+	     *  long double 1.1356523406294143949491931077970765006170e+04
+	     *  then recurrent value may overflow and the result is
+	     *  likely underflow to zero
+	     */
+	    tmp = n;
+	    v = two / x;
+	    tmp = tmp * __ieee754_log (fabs (v * tmp));
+	    if (tmp < 7.09782712893383973096e+02)
+	      {
+		for (i = n - 1, di = (double) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		  }
+	      }
+	    else
+	      {
+		for (i = n - 1, di = (double) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		    /* scale b to avoid spurious overflow */
+		    if (b > 1e100)
+		      {
+			a /= b;
+			t /= b;
+			b = one;
+		      }
+		  }
+	      }
+	    /* j0() and j1() suffer enormous loss of precision at and
+	     * near zero; however, we know that their zero points never
+	     * coincide, so just choose the one further away from zero.
+	     */
+	    z = __ieee754_j0 (x);
+	    w = __ieee754_j1 (x);
+	    if (fabs (z) >= fabs (w))
+	      b = (t * z / b);
+	    else
+	      b = (t * w / a);
+	  }
+      }
+    if (sgn == 1)
+      ret = -b;
+    else
+      ret = b;
+    ret = math_narrow_eval (ret);
+  }
+  if (ret == 0)
+    {
+      ret = math_narrow_eval (__copysign (DBL_MIN, ret) * DBL_MIN);
+      __set_errno (ERANGE);
+    }
+  else
+    math_check_force_underflow (ret);
+  return ret;
+}
+strong_alias (__ieee754_jn, __jn_finite)
+
+double
+__ieee754_yn (int n, double x)
+{
+  int32_t i, hx, ix, lx;
+  int32_t sign;
+  double a, b, temp, ret;
+
+  EXTRACT_WORDS (hx, lx, x);
+  ix = 0x7fffffff & hx;
+  /* if Y(n,NaN) is NaN */
+  if (__glibc_unlikely ((ix | ((u_int32_t) (lx | -lx)) >> 31) > 0x7ff00000))
+    return x + x;
+  if (__glibc_unlikely ((ix | lx) == 0))
+    return -HUGE_VAL + x;
+  /* -inf and overflow exception.  */;
+  if (__glibc_unlikely (hx < 0))
+    return zero / (zero * x);
+  sign = 1;
+  if (n < 0)
+    {
+      n = -n;
+      sign = 1 - ((n & 1) << 1);
+    }
+  if (n == 0)
+    return (__ieee754_y0 (x));
+  {
+    SET_RESTORE_ROUND (FE_TONEAREST);
+    if (n == 1)
+      {
+	ret = sign * __ieee754_y1 (x);
+	goto out;
+      }
+    if (__glibc_unlikely (ix == 0x7ff00000))
+      return zero;
+    if (ix >= 0x52D00000)      /* x > 2**302 */
+      { /* (x >> n**2)
+	 *	    Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *	    Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *	    Let s=sin(x), c=cos(x),
+	 *		xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+	 *
+	 *		   n	sin(xn)*sqt2	cos(xn)*sqt2
+	 *		----------------------------------
+	 *		   0	 s-c		 c+s
+	 *		   1	-s-c		-c+s
+	 *		   2	-s+c		-c-s
+	 *		   3	 s+c		 c-s
+	 */
+	double c;
+	double s;
+	__sincos (x, &s, &c);
+	switch (n & 3)
+	  {
+	  case 0: temp = s - c; break;
+	  case 1: temp = -s - c; break;
+	  case 2: temp = -s + c; break;
+	  case 3: temp = s + c; break;
+	  }
+	b = invsqrtpi * temp / __ieee754_sqrt (x);
+      }
+    else
+      {
+	u_int32_t high;
+	a = __ieee754_y0 (x);
+	b = __ieee754_y1 (x);
+	/* quit if b is -inf */
+	GET_HIGH_WORD (high, b);
+	for (i = 1; i < n && high != 0xfff00000; i++)
+	  {
+	    temp = b;
+	    b = ((double) (i + i) / x) * b - a;
+	    GET_HIGH_WORD (high, b);
+	    a = temp;
+	  }
+	/* If B is +-Inf, set up errno accordingly.  */
+	if (!isfinite (b))
+	  __set_errno (ERANGE);
+      }
+    if (sign > 0)
+      ret = b;
+    else
+      ret = -b;
+  }
+ out:
+  if (isinf (ret))
+    ret = __copysign (DBL_MAX, ret) * DBL_MAX;
+  return ret;
+}
+strong_alias (__ieee754_yn, __yn_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_lgamma_r.c
new file mode 100644
index 0000000000..b5860d8a24
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -0,0 +1,310 @@
+/* @(#)er_lgamma.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_lgamma_r(x, signgamp)
+ * Reentrant version of the logarithm of the Gamma function
+ * with user provide pointer for the sign of Gamma(x).
+ *
+ * Method:
+ *   1. Argument Reduction for 0 < x <= 8
+ *	Since gamma(1+s)=s*gamma(s), for x in [0,8], we may
+ *	reduce x to a number in [1.5,2.5] by
+ *		lgamma(1+s) = log(s) + lgamma(s)
+ *	for example,
+ *		lgamma(7.3) = log(6.3) + lgamma(6.3)
+ *			    = log(6.3*5.3) + lgamma(5.3)
+ *			    = log(6.3*5.3*4.3*3.3*2.3) + lgamma(2.3)
+ *   2. Polynomial approximation of lgamma around its
+ *	minimun ymin=1.461632144968362245 to maintain monotonicity.
+ *	On [ymin-0.23, ymin+0.27] (i.e., [1.23164,1.73163]), use
+ *		Let z = x-ymin;
+ *		lgamma(x) = -1.214862905358496078218 + z^2*poly(z)
+ *	where
+ *		poly(z) is a 14 degree polynomial.
+ *   2. Rational approximation in the primary interval [2,3]
+ *	We use the following approximation:
+ *		s = x-2.0;
+ *		lgamma(x) = 0.5*s + s*P(s)/Q(s)
+ *	with accuracy
+ *		|P/Q - (lgamma(x)-0.5s)| < 2**-61.71
+ *	Our algorithms are based on the following observation
+ *
+ *                             zeta(2)-1    2    zeta(3)-1    3
+ * lgamma(2+s) = s*(1-Euler) + --------- * s  -  --------- * s  + ...
+ *                                 2                 3
+ *
+ *	where Euler = 0.5771... is the Euler constant, which is very
+ *	close to 0.5.
+ *
+ *   3. For x>=8, we have
+ *	lgamma(x)~(x-0.5)log(x)-x+0.5*log(2pi)+1/(12x)-1/(360x**3)+....
+ *	(better formula:
+ *	   lgamma(x)~(x-0.5)*(log(x)-1)-.5*(log(2pi)-1) + ...)
+ *	Let z = 1/x, then we approximation
+ *		f(z) = lgamma(x) - (x-0.5)(log(x)-1)
+ *	by
+ *				    3       5             11
+ *		w = w0 + w1*z + w2*z  + w3*z  + ... + w6*z
+ *	where
+ *		|w - f(z)| < 2**-58.74
+ *
+ *   4. For negative x, since (G is gamma function)
+ *		-x*G(-x)*G(x) = pi/sin(pi*x),
+ *	we have
+ *		G(x) = pi/(sin(pi*x)*(-x)*G(-x))
+ *	since G(-x) is positive, sign(G(x)) = sign(sin(pi*x)) for x<0
+ *	Hence, for x<0, signgam = sign(sin(pi*x)) and
+ *		lgamma(x) = log(|Gamma(x)|)
+ *			  = log(pi/(|x*sin(pi*x)|)) - lgamma(-x);
+ *	Note: one should avoid compute pi*(-x) directly in the
+ *	      computation of sin(pi*(-x)).
+ *
+ *   5. Special Cases
+ *		lgamma(2+s) ~ s*(1-Euler) for tiny s
+ *		lgamma(1)=lgamma(2)=0
+ *		lgamma(x) ~ -log(x) for tiny x
+ *		lgamma(0) = lgamma(inf) = inf
+ *		lgamma(-integer) = +-inf
+ *
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+static const double
+two52=  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+half=  5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+one =  1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+pi  =  3.14159265358979311600e+00, /* 0x400921FB, 0x54442D18 */
+a0  =  7.72156649015328655494e-02, /* 0x3FB3C467, 0xE37DB0C8 */
+a1  =  3.22467033424113591611e-01, /* 0x3FD4A34C, 0xC4A60FAD */
+a2  =  6.73523010531292681824e-02, /* 0x3FB13E00, 0x1A5562A7 */
+a3  =  2.05808084325167332806e-02, /* 0x3F951322, 0xAC92547B */
+a4  =  7.38555086081402883957e-03, /* 0x3F7E404F, 0xB68FEFE8 */
+a5  =  2.89051383673415629091e-03, /* 0x3F67ADD8, 0xCCB7926B */
+a6  =  1.19270763183362067845e-03, /* 0x3F538A94, 0x116F3F5D */
+a7  =  5.10069792153511336608e-04, /* 0x3F40B6C6, 0x89B99C00 */
+a8  =  2.20862790713908385557e-04, /* 0x3F2CF2EC, 0xED10E54D */
+a9  =  1.08011567247583939954e-04, /* 0x3F1C5088, 0x987DFB07 */
+a10 =  2.52144565451257326939e-05, /* 0x3EFA7074, 0x428CFA52 */
+a11 =  4.48640949618915160150e-05, /* 0x3F07858E, 0x90A45837 */
+tc  =  1.46163214496836224576e+00, /* 0x3FF762D8, 0x6356BE3F */
+tf  = -1.21486290535849611461e-01, /* 0xBFBF19B9, 0xBCC38A42 */
+/* tt = -(tail of tf) */
+tt  = -3.63867699703950536541e-18, /* 0xBC50C7CA, 0xA48A971F */
+t0  =  4.83836122723810047042e-01, /* 0x3FDEF72B, 0xC8EE38A2 */
+t1  = -1.47587722994593911752e-01, /* 0xBFC2E427, 0x8DC6C509 */
+t2  =  6.46249402391333854778e-02, /* 0x3FB08B42, 0x94D5419B */
+t3  = -3.27885410759859649565e-02, /* 0xBFA0C9A8, 0xDF35B713 */
+t4  =  1.79706750811820387126e-02, /* 0x3F9266E7, 0x970AF9EC */
+t5  = -1.03142241298341437450e-02, /* 0xBF851F9F, 0xBA91EC6A */
+t6  =  6.10053870246291332635e-03, /* 0x3F78FCE0, 0xE370E344 */
+t7  = -3.68452016781138256760e-03, /* 0xBF6E2EFF, 0xB3E914D7 */
+t8  =  2.25964780900612472250e-03, /* 0x3F6282D3, 0x2E15C915 */
+t9  = -1.40346469989232843813e-03, /* 0xBF56FE8E, 0xBF2D1AF1 */
+t10 =  8.81081882437654011382e-04, /* 0x3F4CDF0C, 0xEF61A8E9 */
+t11 = -5.38595305356740546715e-04, /* 0xBF41A610, 0x9C73E0EC */
+t12 =  3.15632070903625950361e-04, /* 0x3F34AF6D, 0x6C0EBBF7 */
+t13 = -3.12754168375120860518e-04, /* 0xBF347F24, 0xECC38C38 */
+t14 =  3.35529192635519073543e-04, /* 0x3F35FD3E, 0xE8C2D3F4 */
+u0  = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */
+u1  =  6.32827064025093366517e-01, /* 0x3FE4401E, 0x8B005DFF */
+u2  =  1.45492250137234768737e+00, /* 0x3FF7475C, 0xD119BD6F */
+u3  =  9.77717527963372745603e-01, /* 0x3FEF4976, 0x44EA8450 */
+u4  =  2.28963728064692451092e-01, /* 0x3FCD4EAE, 0xF6010924 */
+u5  =  1.33810918536787660377e-02, /* 0x3F8B678B, 0xBF2BAB09 */
+v1  =  2.45597793713041134822e+00, /* 0x4003A5D7, 0xC2BD619C */
+v2  =  2.12848976379893395361e+00, /* 0x40010725, 0xA42B18F5 */
+v3  =  7.69285150456672783825e-01, /* 0x3FE89DFB, 0xE45050AF */
+v4  =  1.04222645593369134254e-01, /* 0x3FBAAE55, 0xD6537C88 */
+v5  =  3.21709242282423911810e-03, /* 0x3F6A5ABB, 0x57D0CF61 */
+s0  = -7.72156649015328655494e-02, /* 0xBFB3C467, 0xE37DB0C8 */
+s1  =  2.14982415960608852501e-01, /* 0x3FCB848B, 0x36E20878 */
+s2  =  3.25778796408930981787e-01, /* 0x3FD4D98F, 0x4F139F59 */
+s3  =  1.46350472652464452805e-01, /* 0x3FC2BB9C, 0xBEE5F2F7 */
+s4  =  2.66422703033638609560e-02, /* 0x3F9B481C, 0x7E939961 */
+s5  =  1.84028451407337715652e-03, /* 0x3F5E26B6, 0x7368F239 */
+s6  =  3.19475326584100867617e-05, /* 0x3F00BFEC, 0xDD17E945 */
+r1  =  1.39200533467621045958e+00, /* 0x3FF645A7, 0x62C4AB74 */
+r2  =  7.21935547567138069525e-01, /* 0x3FE71A18, 0x93D3DCDC */
+r3  =  1.71933865632803078993e-01, /* 0x3FC601ED, 0xCCFBDF27 */
+r4  =  1.86459191715652901344e-02, /* 0x3F9317EA, 0x742ED475 */
+r5  =  7.77942496381893596434e-04, /* 0x3F497DDA, 0xCA41A95B */
+r6  =  7.32668430744625636189e-06, /* 0x3EDEBAF7, 0xA5B38140 */
+w0  =  4.18938533204672725052e-01, /* 0x3FDACFE3, 0x90C97D69 */
+w1  =  8.33333333333329678849e-02, /* 0x3FB55555, 0x5555553B */
+w2  = -2.77777777728775536470e-03, /* 0xBF66C16C, 0x16B02E5C */
+w3  =  7.93650558643019558500e-04, /* 0x3F4A019F, 0x98CF38B6 */
+w4  = -5.95187557450339963135e-04, /* 0xBF4380CB, 0x8C0FE741 */
+w5  =  8.36339918996282139126e-04, /* 0x3F4B67BA, 0x4CDAD5D1 */
+w6  = -1.63092934096575273989e-03; /* 0xBF5AB89D, 0x0B9E43E4 */
+
+static const double zero=  0.00000000000000000000e+00;
+
+static double
+sin_pi(double x)
+{
+	double y,z;
+	int n,ix;
+
+	GET_HIGH_WORD(ix,x);
+	ix &= 0x7fffffff;
+
+	if(ix<0x3fd00000) return __sin(pi*x);
+	y = -x;		/* x is assume negative */
+
+    /*
+     * argument reduction, make sure inexact flag not raised if input
+     * is an integer
+     */
+	z = __floor(y);
+	if(z!=y) {				/* inexact anyway */
+	    y  *= 0.5;
+	    y   = 2.0*(y - __floor(y));		/* y = |x| mod 2.0 */
+	    n   = (int) (y*4.0);
+	} else {
+	    if(ix>=0x43400000) {
+		y = zero; n = 0;                 /* y must be even */
+	    } else {
+		if(ix<0x43300000) z = y+two52;	/* exact */
+		GET_LOW_WORD(n,z);
+		n &= 1;
+		y  = n;
+		n<<= 2;
+	    }
+	}
+	switch (n) {
+	    case 0:   y =  __sin(pi*y); break;
+	    case 1:
+	    case 2:   y =  __cos(pi*(0.5-y)); break;
+	    case 3:
+	    case 4:   y =  __sin(pi*(one-y)); break;
+	    case 5:
+	    case 6:   y = -__cos(pi*(y-1.5)); break;
+	    default:  y =  __sin(pi*(y-2.0)); break;
+	    }
+	return -y;
+}
+
+
+double
+__ieee754_lgamma_r(double x, int *signgamp)
+{
+	double t,y,z,nadj,p,p1,p2,p3,q,r,w;
+	int i,hx,lx,ix;
+
+	EXTRACT_WORDS(hx,lx,x);
+
+    /* purge off +-inf, NaN, +-0, and negative arguments */
+	*signgamp = 1;
+	ix = hx&0x7fffffff;
+	if(__builtin_expect(ix>=0x7ff00000, 0)) return x*x;
+	if(__builtin_expect((ix|lx)==0, 0))
+	  {
+	    if (hx < 0)
+	      *signgamp = -1;
+	    return one/fabs(x);
+	  }
+	if(__builtin_expect(ix<0x3b900000, 0)) {
+	    /* |x|<2**-70, return -log(|x|) */
+	    if(hx<0) {
+		*signgamp = -1;
+		return -__ieee754_log(-x);
+	    } else return -__ieee754_log(x);
+	}
+	if(hx<0) {
+	    if(__builtin_expect(ix>=0x43300000, 0))
+		/* |x|>=2**52, must be -integer */
+		return __fabs (x)/zero;
+	    if (x < -2.0 && x > -28.0)
+		return __lgamma_neg (x, signgamp);
+	    t = sin_pi(x);
+	    if(t==zero) return one/fabsf(t); /* -integer */
+	    nadj = __ieee754_log(pi/fabs(t*x));
+	    if(t<zero) *signgamp = -1;
+	    x = -x;
+	}
+
+    /* purge off 1 and 2 */
+	if((((ix-0x3ff00000)|lx)==0)||(((ix-0x40000000)|lx)==0)) r = 0;
+    /* for x < 2.0 */
+	else if(ix<0x40000000) {
+	    if(ix<=0x3feccccc) {	/* lgamma(x) = lgamma(x+1)-log(x) */
+		r = -__ieee754_log(x);
+		if(ix>=0x3FE76944) {y = one-x; i= 0;}
+		else if(ix>=0x3FCDA661) {y= x-(tc-one); i=1;}
+		else {y = x; i=2;}
+	    } else {
+		r = zero;
+		if(ix>=0x3FFBB4C3) {y=2.0-x;i=0;} /* [1.7316,2] */
+		else if(ix>=0x3FF3B4C4) {y=x-tc;i=1;} /* [1.23,1.73] */
+		else {y=x-one;i=2;}
+	    }
+	    switch(i) {
+	      case 0:
+		z = y*y;
+		p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10))));
+		p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11)))));
+		p  = y*p1+p2;
+		r  += (p-0.5*y); break;
+	      case 1:
+		z = y*y;
+		w = z*y;
+		p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12)));	/* parallel comp */
+		p2 = t1+w*(t4+w*(t7+w*(t10+w*t13)));
+		p3 = t2+w*(t5+w*(t8+w*(t11+w*t14)));
+		p  = z*p1-(tt-w*(p2+y*p3));
+		r += (tf + p); break;
+	      case 2:
+		p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5)))));
+		p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5))));
+		r += (-0.5*y + p1/p2);
+	    }
+	}
+	else if(ix<0x40200000) {			/* x < 8.0 */
+	    i = (int)x;
+	    t = zero;
+	    y = x-(double)i;
+	    p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))));
+	    q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))));
+	    r = half*y+p/q;
+	    z = one;	/* lgamma(1+s) = log(s) + lgamma(s) */
+	    switch(i) {
+	    case 7: z *= (y+6.0);	/* FALLTHRU */
+	    case 6: z *= (y+5.0);	/* FALLTHRU */
+	    case 5: z *= (y+4.0);	/* FALLTHRU */
+	    case 4: z *= (y+3.0);	/* FALLTHRU */
+	    case 3: z *= (y+2.0);	/* FALLTHRU */
+		    r += __ieee754_log(z); break;
+	    }
+    /* 8.0 <= x < 2**58 */
+	} else if (ix < 0x43900000) {
+	    t = __ieee754_log(x);
+	    z = one/x;
+	    y = z*z;
+	    w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6)))));
+	    r = (x-half)*(t-one)+w;
+	} else
+    /* 2**58 <= x <= inf */
+	    r =  math_narrow_eval (x*(__ieee754_log(x)-one));
+	/* NADJ is set for negative arguments but not otherwise,
+	   resulting in warnings that it may be used uninitialized
+	   although in the cases where it is used it has always been
+	   set.  */
+	DIAG_PUSH_NEEDS_COMMENT;
+	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	if(hx<0) r = nadj - r;
+	DIAG_POP_NEEDS_COMMENT;
+	return r;
+}
+strong_alias (__ieee754_lgamma_r, __lgamma_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_log.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_log.c
new file mode 100644
index 0000000000..e7cddc29c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_log.c
@@ -0,0 +1,262 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/*********************************************************************/
+/*                                                                   */
+/*      MODULE_NAME:ulog.c                                           */
+/*                                                                   */
+/*      FUNCTION:ulog                                                */
+/*                                                                   */
+/*      FILES NEEDED: dla.h endian.h mpa.h mydefs.h ulog.h           */
+/*                    mpexp.c mplog.c mpa.c                          */
+/*                    ulog.tbl                                       */
+/*                                                                   */
+/* An ultimate log routine. Given an IEEE double machine number x    */
+/* it computes the correctly rounded (to nearest) value of log(x).   */
+/* Assumption: Machine arithmetic operations are performed in        */
+/* round to nearest mode of IEEE 754 standard.                       */
+/*                                                                   */
+/*********************************************************************/
+
+
+#include "endian.h"
+#include <dla.h>
+#include "mpa.h"
+#include "MathLib.h"
+#include <math.h>
+#include <math_private.h>
+#include <stap-probe.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+void __mplog (mp_no *, mp_no *, int);
+
+/*********************************************************************/
+/* An ultimate log routine. Given an IEEE double machine number x     */
+/* it computes the correctly rounded (to nearest) value of log(x).   */
+/*********************************************************************/
+double
+SECTION
+__ieee754_log (double x)
+{
+#define M 4
+  static const int pr[M] = { 8, 10, 18, 32 };
+  int i, j, n, ux, dx, p;
+  double dbl_n, u, p0, q, r0, w, nln2a, luai, lubi, lvaj, lvbj,
+	 sij, ssij, ttij, A, B, B0, y, y1, y2, polI, polII, sa, sb,
+	 t1, t2, t7, t8, t, ra, rb, ww,
+	 a0, aa0, s1, s2, ss2, s3, ss3, a1, aa1, a, aa, b, bb, c;
+#ifndef DLA_FMS
+  double t3, t4, t5, t6;
+#endif
+  number num;
+  mp_no mpx, mpy, mpy1, mpy2, mperr;
+
+#include "ulog.tbl"
+#include "ulog.h"
+
+  /* Treating special values of x ( x<=0, x=INF, x=NaN etc.). */
+
+  num.d = x;
+  ux = num.i[HIGH_HALF];
+  dx = num.i[LOW_HALF];
+  n = 0;
+  if (__glibc_unlikely (ux < 0x00100000))
+    {
+      if (__glibc_unlikely (((ux & 0x7fffffff) | dx) == 0))
+	return MHALF / 0.0;     /* return -INF */
+      if (__glibc_unlikely (ux < 0))
+	return (x - x) / 0.0;   /* return NaN  */
+      n -= 54;
+      x *= two54.d;             /* scale x     */
+      num.d = x;
+    }
+  if (__glibc_unlikely (ux >= 0x7ff00000))
+    return x + x;               /* INF or NaN  */
+
+  /* Regular values of x */
+
+  w = x - 1;
+  if (__glibc_likely (fabs (w) > U03))
+    goto case_03;
+
+  /* log (1) is +0 in all rounding modes.  */
+  if (w == 0.0)
+    return 0.0;
+
+  /*--- Stage I, the case abs(x-1) < 0.03 */
+
+  t8 = MHALF * w;
+  EMULV (t8, w, a, aa, t1, t2, t3, t4, t5);
+  EADD (w, a, b, bb);
+  /* Evaluate polynomial II */
+  polII = b7.d + w * b8.d;
+  polII = b6.d + w * polII;
+  polII = b5.d + w * polII;
+  polII = b4.d + w * polII;
+  polII = b3.d + w * polII;
+  polII = b2.d + w * polII;
+  polII = b1.d + w * polII;
+  polII = b0.d + w * polII;
+  polII *= w * w * w;
+  c = (aa + bb) + polII;
+
+  /* End stage I, case abs(x-1) < 0.03 */
+  if ((y = b + (c + b * E2)) == b + (c - b * E2))
+    return y;
+
+  /*--- Stage II, the case abs(x-1) < 0.03 */
+
+  a = d19.d + w * d20.d;
+  a = d18.d + w * a;
+  a = d17.d + w * a;
+  a = d16.d + w * a;
+  a = d15.d + w * a;
+  a = d14.d + w * a;
+  a = d13.d + w * a;
+  a = d12.d + w * a;
+  a = d11.d + w * a;
+
+  EMULV (w, a, s2, ss2, t1, t2, t3, t4, t5);
+  ADD2 (d10.d, dd10.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d9.d, dd9.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d8.d, dd8.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d7.d, dd7.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d6.d, dd6.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d5.d, dd5.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d4.d, dd4.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d3.d, dd3.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (d2.d, dd2.d, s2, ss2, s3, ss3, t1, t2);
+  MUL2 (w, 0, s3, ss3, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  MUL2 (w, 0, s2, ss2, s3, ss3, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (w, 0, s3, ss3, b, bb, t1, t2);
+
+  /* End stage II, case abs(x-1) < 0.03 */
+  if ((y = b + (bb + b * E4)) == b + (bb - b * E4))
+    return y;
+  goto stage_n;
+
+  /*--- Stage I, the case abs(x-1) > 0.03 */
+case_03:
+
+  /* Find n,u such that x = u*2**n,   1/sqrt(2) < u < sqrt(2)  */
+  n += (num.i[HIGH_HALF] >> 20) - 1023;
+  num.i[HIGH_HALF] = (num.i[HIGH_HALF] & 0x000fffff) | 0x3ff00000;
+  if (num.d > SQRT_2)
+    {
+      num.d *= HALF;
+      n++;
+    }
+  u = num.d;
+  dbl_n = (double) n;
+
+  /* Find i such that ui=1+(i-75)/2**8 is closest to u (i= 0,1,2,...,181) */
+  num.d += h1.d;
+  i = (num.i[HIGH_HALF] & 0x000fffff) >> 12;
+
+  /* Find j such that vj=1+(j-180)/2**16 is closest to v=u/ui (j= 0,...,361) */
+  num.d = u * Iu[i].d + h2.d;
+  j = (num.i[HIGH_HALF] & 0x000fffff) >> 4;
+
+  /* Compute w=(u-ui*vj)/(ui*vj) */
+  p0 = (1 + (i - 75) * DEL_U) * (1 + (j - 180) * DEL_V);
+  q = u - p0;
+  r0 = Iu[i].d * Iv[j].d;
+  w = q * r0;
+
+  /* Evaluate polynomial I */
+  polI = w + (a2.d + a3.d * w) * w * w;
+
+  /* Add up everything */
+  nln2a = dbl_n * LN2A;
+  luai = Lu[i][0].d;
+  lubi = Lu[i][1].d;
+  lvaj = Lv[j][0].d;
+  lvbj = Lv[j][1].d;
+  EADD (luai, lvaj, sij, ssij);
+  EADD (nln2a, sij, A, ttij);
+  B0 = (((lubi + lvbj) + ssij) + ttij) + dbl_n * LN2B;
+  B = polI + B0;
+
+  /* End stage I, case abs(x-1) >= 0.03 */
+  if ((y = A + (B + E1)) == A + (B - E1))
+    return y;
+
+
+  /*--- Stage II, the case abs(x-1) > 0.03 */
+
+  /* Improve the accuracy of r0 */
+  EMULV (p0, r0, sa, sb, t1, t2, t3, t4, t5);
+  t = r0 * ((1 - sa) - sb);
+  EADD (r0, t, ra, rb);
+
+  /* Compute w */
+  MUL2 (q, 0, ra, rb, w, ww, t1, t2, t3, t4, t5, t6, t7, t8);
+
+  EADD (A, B0, a0, aa0);
+
+  /* Evaluate polynomial III */
+  s1 = (c3.d + (c4.d + c5.d * w) * w) * w;
+  EADD (c2.d, s1, s2, ss2);
+  MUL2 (s2, ss2, w, ww, s3, ss3, t1, t2, t3, t4, t5, t6, t7, t8);
+  MUL2 (s3, ss3, w, ww, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (s2, ss2, w, ww, s3, ss3, t1, t2);
+  ADD2 (s3, ss3, a0, aa0, a1, aa1, t1, t2);
+
+  /* End stage II, case abs(x-1) >= 0.03 */
+  if ((y = a1 + (aa1 + E3)) == a1 + (aa1 - E3))
+    return y;
+
+
+  /* Final stages. Use multi-precision arithmetic. */
+stage_n:
+
+  for (i = 0; i < M; i++)
+    {
+      p = pr[i];
+      __dbl_mp (x, &mpx, p);
+      __dbl_mp (y, &mpy, p);
+      __mplog (&mpx, &mpy, p);
+      __dbl_mp (e[i].d, &mperr, p);
+      __add (&mpy, &mperr, &mpy1, p);
+      __sub (&mpy, &mperr, &mpy2, p);
+      __mp_dbl (&mpy1, &y1, p);
+      __mp_dbl (&mpy2, &y2, p);
+      if (y1 == y2)
+	{
+	  LIBC_PROBE (slowlog, 3, &p, &x, &y1);
+	  return y1;
+	}
+    }
+  LIBC_PROBE (slowlog_inexact, 3, &p, &x, &y1);
+  return y1;
+}
+
+#ifndef __ieee754_log
+strong_alias (__ieee754_log, __log_finite)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_log10.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_log10.c
new file mode 100644
index 0000000000..bf40bca874
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_log10.c
@@ -0,0 +1,88 @@
+/* @(#)e_log10.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_log10(x)
+ * Return the base 10 logarithm of x
+ *
+ * Method :
+ *	Let log10_2hi = leading 40 bits of log10(2) and
+ *	    log10_2lo = log10(2) - log10_2hi,
+ *	    ivln10   = 1/log(10) rounded.
+ *	Then
+ *		n = ilogb(x),
+ *		if(n<0)  n = n+1;
+ *		x = scalbn(x,-n);
+ *		log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x))
+ *
+ * Note 1:
+ *	To guarantee log10(10**n)=n, where 10**n is normal, the rounding
+ *	mode must set to Round-to-Nearest.
+ * Note 2:
+ *	[1/log(10)] rounded to 53 bits has error  .198   ulps;
+ *	log10 is monotonic at all binary break points.
+ *
+ * Special cases:
+ *	log10(x) is NaN with signal if x < 0;
+ *	log10(+INF) is +INF with no signal; log10(0) is -INF with signal;
+ *	log10(NaN) is that NaN with no signal;
+ *	log10(10**N) = N  for N=0,1,...,22.
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following constants.
+ * The decimal values may be used, provided that the compiler will convert
+ * from decimal to binary accurately enough to produce the hexadecimal values
+ * shown.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+static const double two54 = 1.80143985094819840000e+16;         /* 0x43500000, 0x00000000 */
+static const double ivln10 = 4.34294481903251816668e-01;        /* 0x3FDBCB7B, 0x1526E50E */
+static const double log10_2hi = 3.01029995663611771306e-01;     /* 0x3FD34413, 0x509F6000 */
+static const double log10_2lo = 3.69423907715893078616e-13;     /* 0x3D59FEF3, 0x11F12B36 */
+
+double
+__ieee754_log10 (double x)
+{
+  double y, z;
+  int32_t i, k, hx;
+  u_int32_t lx;
+
+  EXTRACT_WORDS (hx, lx, x);
+
+  k = 0;
+  if (hx < 0x00100000)
+    {                           /* x < 2**-1022  */
+      if (__glibc_unlikely (((hx & 0x7fffffff) | lx) == 0))
+	return -two54 / __fabs (x);	/* log(+-0)=-inf  */
+      if (__glibc_unlikely (hx < 0))
+	return (x - x) / (x - x);       /* log(-#) = NaN */
+      k -= 54;
+      x *= two54;               /* subnormal number, scale up x */
+      GET_HIGH_WORD (hx, x);
+    }
+  if (__glibc_unlikely (hx >= 0x7ff00000))
+    return x + x;
+  k += (hx >> 20) - 1023;
+  i = ((u_int32_t) k & 0x80000000) >> 31;
+  hx = (hx & 0x000fffff) | ((0x3ff - i) << 20);
+  y = (double) (k + i);
+  if (FIX_INT_FP_CONVERT_ZERO && y == 0.0)
+    y = 0.0;
+  SET_HIGH_WORD (x, hx);
+  z = y * log10_2lo + ivln10 * __ieee754_log (x);
+  return z + y * log10_2hi;
+}
+
+strong_alias (__ieee754_log10, __log10_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_log2.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_log2.c
new file mode 100644
index 0000000000..5af68d8ecc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_log2.c
@@ -0,0 +1,133 @@
+/* Adapted for log2 by Ulrich Drepper <drepper@cygnus.com>.  */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_log2(x)
+ * Return the logarithm to base 2 of x
+ *
+ * Method :
+ *   1. Argument Reduction: find k and f such that
+ *			x = 2^k * (1+f),
+ *	   where  sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ *   2. Approximation of log(1+f).
+ *	Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ *		 = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ *		 = 2s + s*R
+ *      We use a special Reme algorithm on [0,0.1716] to generate
+ *	a polynomial of degree 14 to approximate R The maximum error
+ *	of this polynomial approximation is bounded by 2**-58.45. In
+ *	other words,
+ *			2      4      6      8      10      12      14
+ *	    R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s  +Lg6*s  +Lg7*s
+ *	(the values of Lg1 to Lg7 are listed in the program)
+ *	and
+ *	    |      2          14          |     -58.45
+ *	    | Lg1*s +...+Lg7*s    -  R(z) | <= 2
+ *	    |                             |
+ *	Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ *	In order to guarantee error in log below 1ulp, we compute log
+ *	by
+ *		log(1+f) = f - s*(f - R)	(if f is not too large)
+ *		log(1+f) = f - (hfsq - s*(hfsq+R)).	(better accuracy)
+ *
+ *	3. Finally,  log(x) = k + log(1+f).
+ *			    = k+(f-(hfsq-(s*(hfsq+R))))
+ *
+ * Special cases:
+ *	log2(x) is NaN with signal if x < 0 (including -INF) ;
+ *	log2(+INF) is +INF; log(0) is -INF with signal;
+ *	log2(NaN) is that NaN with no signal.
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+static const double ln2 = 0.69314718055994530942;
+static const double two54 = 1.80143985094819840000e+16; /* 43500000 00000000 */
+static const double Lg1 = 6.666666666666735130e-01;     /* 3FE55555 55555593 */
+static const double Lg2 = 3.999999999940941908e-01;     /* 3FD99999 9997FA04 */
+static const double Lg3 = 2.857142874366239149e-01;     /* 3FD24924 94229359 */
+static const double Lg4 = 2.222219843214978396e-01;     /* 3FCC71C5 1D8E78AF */
+static const double Lg5 = 1.818357216161805012e-01;     /* 3FC74664 96CB03DE */
+static const double Lg6 = 1.531383769920937332e-01;     /* 3FC39A09 D078C69F */
+static const double Lg7 = 1.479819860511658591e-01;     /* 3FC2F112 DF3E5244 */
+
+static const double zero = 0.0;
+
+double
+__ieee754_log2 (double x)
+{
+  double hfsq, f, s, z, R, w, t1, t2, dk;
+  int32_t k, hx, i, j;
+  u_int32_t lx;
+
+  EXTRACT_WORDS (hx, lx, x);
+
+  k = 0;
+  if (hx < 0x00100000)
+    {                           /* x < 2**-1022  */
+      if (__glibc_unlikely (((hx & 0x7fffffff) | lx) == 0))
+	return -two54 / __fabs (x);        /* log(+-0)=-inf */
+      if (__glibc_unlikely (hx < 0))
+	return (x - x) / (x - x);       /* log(-#) = NaN */
+      k -= 54;
+      x *= two54;               /* subnormal number, scale up x */
+      GET_HIGH_WORD (hx, x);
+    }
+  if (__glibc_unlikely (hx >= 0x7ff00000))
+    return x + x;
+  k += (hx >> 20) - 1023;
+  hx &= 0x000fffff;
+  i = (hx + 0x95f64) & 0x100000;
+  SET_HIGH_WORD (x, hx | (i ^ 0x3ff00000));     /* normalize x or x/2 */
+  k += (i >> 20);
+  dk = (double) k;
+  f = x - 1.0;
+  if ((0x000fffff & (2 + hx)) < 3)
+    {                           /* |f| < 2**-20 */
+      if (f == zero)
+	{
+	  if (FIX_INT_FP_CONVERT_ZERO && dk == 0.0)
+	    dk = 0.0;
+	  return dk;
+	}
+      R = f * f * (0.5 - 0.33333333333333333 * f);
+      return dk - (R - f) / ln2;
+    }
+  s = f / (2.0 + f);
+  z = s * s;
+  i = hx - 0x6147a;
+  w = z * z;
+  j = 0x6b851 - hx;
+  t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+  t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+  i |= j;
+  R = t2 + t1;
+  if (i > 0)
+    {
+      hfsq = 0.5 * f * f;
+      return dk - ((hfsq - (s * (hfsq + R))) - f) / ln2;
+    }
+  else
+    {
+      return dk - ((s * (f - R)) - f) / ln2;
+    }
+}
+
+strong_alias (__ieee754_log2, __log2_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_pow.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_pow.c
new file mode 100644
index 0000000000..9f6439ee42
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_pow.c
@@ -0,0 +1,481 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/***************************************************************************/
+/*  MODULE_NAME: upow.c                                                    */
+/*                                                                         */
+/*  FUNCTIONS: upow                                                        */
+/*             power1                                                      */
+/*             my_log2                                                     */
+/*             log1                                                        */
+/*             checkint                                                    */
+/* FILES NEEDED: dla.h endian.h mpa.h mydefs.h                             */
+/*               halfulp.c mpexp.c mplog.c slowexp.c slowpow.c mpa.c       */
+/*                          uexp.c  upow.c				   */
+/*               root.tbl uexp.tbl upow.tbl                                */
+/* An ultimate power routine. Given two IEEE double machine numbers y,x    */
+/* it computes the correctly rounded (to nearest) value of x^y.            */
+/* Assumption: Machine arithmetic operations are performed in              */
+/* round to nearest mode of IEEE 754 standard.                             */
+/*                                                                         */
+/***************************************************************************/
+#include <math.h>
+#include "endian.h"
+#include "upow.h"
+#include <dla.h>
+#include "mydefs.h"
+#include "MathLib.h"
+#include "upow.tbl"
+#include <math_private.h>
+#include <fenv.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+static const double huge = 1.0e300, tiny = 1.0e-300;
+
+double __exp1 (double x, double xx, double error);
+static double log1 (double x, double *delta, double *error);
+static double my_log2 (double x, double *delta, double *error);
+double __slowpow (double x, double y, double z);
+static double power1 (double x, double y);
+static int checkint (double x);
+
+/* An ultimate power routine. Given two IEEE double machine numbers y, x it
+   computes the correctly rounded (to nearest) value of X^y.  */
+double
+SECTION
+__ieee754_pow (double x, double y)
+{
+  double z, a, aa, error, t, a1, a2, y1, y2;
+  mynumber u, v;
+  int k;
+  int4 qx, qy;
+  v.x = y;
+  u.x = x;
+  if (v.i[LOW_HALF] == 0)
+    {				/* of y */
+      qx = u.i[HIGH_HALF] & 0x7fffffff;
+      /* Is x a NaN?  */
+      if ((((qx == 0x7ff00000) && (u.i[LOW_HALF] != 0)) || (qx > 0x7ff00000))
+	  && (y != 0 || issignaling (x)))
+	return x + x;
+      if (y == 1.0)
+	return x;
+      if (y == 2.0)
+	return x * x;
+      if (y == -1.0)
+	return 1.0 / x;
+      if (y == 0)
+	return 1.0;
+    }
+  /* else */
+  if (((u.i[HIGH_HALF] > 0 && u.i[HIGH_HALF] < 0x7ff00000) ||	/* x>0 and not x->0 */
+       (u.i[HIGH_HALF] == 0 && u.i[LOW_HALF] != 0)) &&
+      /*   2^-1023< x<= 2^-1023 * 0x1.0000ffffffff */
+      (v.i[HIGH_HALF] & 0x7fffffff) < 0x4ff00000)
+    {				/* if y<-1 or y>1   */
+      double retval;
+
+      {
+	SET_RESTORE_ROUND (FE_TONEAREST);
+
+	/* Avoid internal underflow for tiny y.  The exact value of y does
+	   not matter if |y| <= 2**-64.  */
+	if (fabs (y) < 0x1p-64)
+	  y = y < 0 ? -0x1p-64 : 0x1p-64;
+	z = log1 (x, &aa, &error);	/* x^y  =e^(y log (X)) */
+	t = y * CN;
+	y1 = t - (t - y);
+	y2 = y - y1;
+	t = z * CN;
+	a1 = t - (t - z);
+	a2 = (z - a1) + aa;
+	a = y1 * a1;
+	aa = y2 * a1 + y * a2;
+	a1 = a + aa;
+	a2 = (a - a1) + aa;
+	error = error * fabs (y);
+	t = __exp1 (a1, a2, 1.9e16 * error);	/* return -10 or 0 if wasn't computed exactly */
+	retval = (t > 0) ? t : power1 (x, y);
+      }
+
+      if (isinf (retval))
+	retval = huge * huge;
+      else if (retval == 0)
+	retval = tiny * tiny;
+      else
+	math_check_force_underflow_nonneg (retval);
+      return retval;
+    }
+
+  if (x == 0)
+    {
+      if (((v.i[HIGH_HALF] & 0x7fffffff) == 0x7ff00000 && v.i[LOW_HALF] != 0)
+	  || (v.i[HIGH_HALF] & 0x7fffffff) > 0x7ff00000)	/* NaN */
+	return y + y;
+      if (fabs (y) > 1.0e20)
+	return (y > 0) ? 0 : 1.0 / 0.0;
+      k = checkint (y);
+      if (k == -1)
+	return y < 0 ? 1.0 / x : x;
+      else
+	return y < 0 ? 1.0 / 0.0 : 0.0;	/* return 0 */
+    }
+
+  qx = u.i[HIGH_HALF] & 0x7fffffff;	/*   no sign   */
+  qy = v.i[HIGH_HALF] & 0x7fffffff;	/*   no sign   */
+
+  if (qx >= 0x7ff00000 && (qx > 0x7ff00000 || u.i[LOW_HALF] != 0))	/* NaN */
+    return x + y;
+  if (qy >= 0x7ff00000 && (qy > 0x7ff00000 || v.i[LOW_HALF] != 0))	/* NaN */
+    return x == 1.0 && !issignaling (y) ? 1.0 : y + y;
+
+  /* if x<0 */
+  if (u.i[HIGH_HALF] < 0)
+    {
+      k = checkint (y);
+      if (k == 0)
+	{
+	  if (qy == 0x7ff00000)
+	    {
+	      if (x == -1.0)
+		return 1.0;
+	      else if (x > -1.0)
+		return v.i[HIGH_HALF] < 0 ? INF.x : 0.0;
+	      else
+		return v.i[HIGH_HALF] < 0 ? 0.0 : INF.x;
+	    }
+	  else if (qx == 0x7ff00000)
+	    return y < 0 ? 0.0 : INF.x;
+	  return (x - x) / (x - x);	/* y not integer and x<0 */
+	}
+      else if (qx == 0x7ff00000)
+	{
+	  if (k < 0)
+	    return y < 0 ? nZERO.x : nINF.x;
+	  else
+	    return y < 0 ? 0.0 : INF.x;
+	}
+      /* if y even or odd */
+      if (k == 1)
+	return __ieee754_pow (-x, y);
+      else
+	{
+	  double retval;
+	  {
+	    SET_RESTORE_ROUND (FE_TONEAREST);
+	    retval = -__ieee754_pow (-x, y);
+	  }
+	  if (isinf (retval))
+	    retval = -huge * huge;
+	  else if (retval == 0)
+	    retval = -tiny * tiny;
+	  return retval;
+	}
+    }
+  /* x>0 */
+
+  if (qx == 0x7ff00000)		/* x= 2^-0x3ff */
+    return y > 0 ? x : 0;
+
+  if (qy > 0x45f00000 && qy < 0x7ff00000)
+    {
+      if (x == 1.0)
+	return 1.0;
+      if (y > 0)
+	return (x > 1.0) ? huge * huge : tiny * tiny;
+      if (y < 0)
+	return (x < 1.0) ? huge * huge : tiny * tiny;
+    }
+
+  if (x == 1.0)
+    return 1.0;
+  if (y > 0)
+    return (x > 1.0) ? INF.x : 0;
+  if (y < 0)
+    return (x < 1.0) ? INF.x : 0;
+  return 0;			/* unreachable, to make the compiler happy */
+}
+
+#ifndef __ieee754_pow
+strong_alias (__ieee754_pow, __pow_finite)
+#endif
+
+/* Compute x^y using more accurate but more slow log routine.  */
+static double
+SECTION
+power1 (double x, double y)
+{
+  double z, a, aa, error, t, a1, a2, y1, y2;
+  z = my_log2 (x, &aa, &error);
+  t = y * CN;
+  y1 = t - (t - y);
+  y2 = y - y1;
+  t = z * CN;
+  a1 = t - (t - z);
+  a2 = z - a1;
+  a = y * z;
+  aa = ((y1 * a1 - a) + y1 * a2 + y2 * a1) + y2 * a2 + aa * y;
+  a1 = a + aa;
+  a2 = (a - a1) + aa;
+  error = error * fabs (y);
+  t = __exp1 (a1, a2, 1.9e16 * error);
+  return (t >= 0) ? t : __slowpow (x, y, z);
+}
+
+/* Compute log(x) (x is left argument). The result is the returned double + the
+   parameter DELTA.  The result is bounded by ERROR.  */
+static double
+SECTION
+log1 (double x, double *delta, double *error)
+{
+  unsigned int i, j;
+  int m;
+  double uu, vv, eps, nx, e, e1, e2, t, t1, t2, res, add = 0;
+  mynumber u, v;
+#ifdef BIG_ENDI
+  mynumber /**/ two52 = {{0x43300000, 0x00000000}};	/* 2**52  */
+#else
+# ifdef LITTLE_ENDI
+  mynumber /**/ two52 = {{0x00000000, 0x43300000}};	/* 2**52  */
+# endif
+#endif
+
+  u.x = x;
+  m = u.i[HIGH_HALF];
+  *error = 0;
+  *delta = 0;
+  if (m < 0x00100000)		/*  1<x<2^-1007 */
+    {
+      x = x * t52.x;
+      add = -52.0;
+      u.x = x;
+      m = u.i[HIGH_HALF];
+    }
+
+  if ((m & 0x000fffff) < 0x0006a09e)
+    {
+      u.i[HIGH_HALF] = (m & 0x000fffff) | 0x3ff00000;
+      two52.i[LOW_HALF] = (m >> 20);
+    }
+  else
+    {
+      u.i[HIGH_HALF] = (m & 0x000fffff) | 0x3fe00000;
+      two52.i[LOW_HALF] = (m >> 20) + 1;
+    }
+
+  v.x = u.x + bigu.x;
+  uu = v.x - bigu.x;
+  i = (v.i[LOW_HALF] & 0x000003ff) << 2;
+  if (two52.i[LOW_HALF] == 1023)	/* nx = 0              */
+    {
+      if (i > 1192 && i < 1208)	/* |x-1| < 1.5*2**-10  */
+	{
+	  t = x - 1.0;
+	  t1 = (t + 5.0e6) - 5.0e6;
+	  t2 = t - t1;
+	  e1 = t - 0.5 * t1 * t1;
+	  e2 = (t * t * t * (r3 + t * (r4 + t * (r5 + t * (r6 + t
+							   * (r7 + t * r8)))))
+		- 0.5 * t2 * (t + t1));
+	  res = e1 + e2;
+	  *error = 1.0e-21 * fabs (t);
+	  *delta = (e1 - res) + e2;
+	  return res;
+	}			/* |x-1| < 1.5*2**-10  */
+      else
+	{
+	  v.x = u.x * (ui.x[i] + ui.x[i + 1]) + bigv.x;
+	  vv = v.x - bigv.x;
+	  j = v.i[LOW_HALF] & 0x0007ffff;
+	  j = j + j + j;
+	  eps = u.x - uu * vv;
+	  e1 = eps * ui.x[i];
+	  e2 = eps * (ui.x[i + 1] + vj.x[j] * (ui.x[i] + ui.x[i + 1]));
+	  e = e1 + e2;
+	  e2 = ((e1 - e) + e2);
+	  t = ui.x[i + 2] + vj.x[j + 1];
+	  t1 = t + e;
+	  t2 = ((((t - t1) + e) + (ui.x[i + 3] + vj.x[j + 2])) + e2 + e * e
+		* (p2 + e * (p3 + e * p4)));
+	  res = t1 + t2;
+	  *error = 1.0e-24;
+	  *delta = (t1 - res) + t2;
+	  return res;
+	}
+    }				/* nx = 0 */
+  else				/* nx != 0   */
+    {
+      eps = u.x - uu;
+      nx = (two52.x - two52e.x) + add;
+      e1 = eps * ui.x[i];
+      e2 = eps * ui.x[i + 1];
+      e = e1 + e2;
+      e2 = (e1 - e) + e2;
+      t = nx * ln2a.x + ui.x[i + 2];
+      t1 = t + e;
+      t2 = ((((t - t1) + e) + nx * ln2b.x + ui.x[i + 3] + e2) + e * e
+	    * (q2 + e * (q3 + e * (q4 + e * (q5 + e * q6)))));
+      res = t1 + t2;
+      *error = 1.0e-21;
+      *delta = (t1 - res) + t2;
+      return res;
+    }				/* nx != 0   */
+}
+
+/* Slower but more accurate routine of log.  The returned result is double +
+   DELTA.  The result is bounded by ERROR.  */
+static double
+SECTION
+my_log2 (double x, double *delta, double *error)
+{
+  unsigned int i, j;
+  int m;
+  double uu, vv, eps, nx, e, e1, e2, t, t1, t2, res, add = 0;
+  double ou1, ou2, lu1, lu2, ov, lv1, lv2, a, a1, a2;
+  double y, yy, z, zz, j1, j2, j7, j8;
+#ifndef DLA_FMS
+  double j3, j4, j5, j6;
+#endif
+  mynumber u, v;
+#ifdef BIG_ENDI
+  mynumber /**/ two52 = {{0x43300000, 0x00000000}};	/* 2**52  */
+#else
+# ifdef LITTLE_ENDI
+  mynumber /**/ two52 = {{0x00000000, 0x43300000}};	/* 2**52  */
+# endif
+#endif
+
+  u.x = x;
+  m = u.i[HIGH_HALF];
+  *error = 0;
+  *delta = 0;
+  add = 0;
+  if (m < 0x00100000)
+    {				/* x < 2^-1022 */
+      x = x * t52.x;
+      add = -52.0;
+      u.x = x;
+      m = u.i[HIGH_HALF];
+    }
+
+  if ((m & 0x000fffff) < 0x0006a09e)
+    {
+      u.i[HIGH_HALF] = (m & 0x000fffff) | 0x3ff00000;
+      two52.i[LOW_HALF] = (m >> 20);
+    }
+  else
+    {
+      u.i[HIGH_HALF] = (m & 0x000fffff) | 0x3fe00000;
+      two52.i[LOW_HALF] = (m >> 20) + 1;
+    }
+
+  v.x = u.x + bigu.x;
+  uu = v.x - bigu.x;
+  i = (v.i[LOW_HALF] & 0x000003ff) << 2;
+  /*------------------------------------- |x-1| < 2**-11-------------------------------  */
+  if ((two52.i[LOW_HALF] == 1023) && (i == 1200))
+    {
+      t = x - 1.0;
+      EMULV (t, s3, y, yy, j1, j2, j3, j4, j5);
+      ADD2 (-0.5, 0, y, yy, z, zz, j1, j2);
+      MUL2 (t, 0, z, zz, y, yy, j1, j2, j3, j4, j5, j6, j7, j8);
+      MUL2 (t, 0, y, yy, z, zz, j1, j2, j3, j4, j5, j6, j7, j8);
+
+      e1 = t + z;
+      e2 = ((((t - e1) + z) + zz) + t * t * t
+	    * (ss3 + t * (s4 + t * (s5 + t * (s6 + t * (s7 + t * s8))))));
+      res = e1 + e2;
+      *error = 1.0e-25 * fabs (t);
+      *delta = (e1 - res) + e2;
+      return res;
+    }
+  /*----------------------------- |x-1| > 2**-11  --------------------------  */
+  else
+    {				/*Computing log(x) according to log table                        */
+      nx = (two52.x - two52e.x) + add;
+      ou1 = ui.x[i];
+      ou2 = ui.x[i + 1];
+      lu1 = ui.x[i + 2];
+      lu2 = ui.x[i + 3];
+      v.x = u.x * (ou1 + ou2) + bigv.x;
+      vv = v.x - bigv.x;
+      j = v.i[LOW_HALF] & 0x0007ffff;
+      j = j + j + j;
+      eps = u.x - uu * vv;
+      ov = vj.x[j];
+      lv1 = vj.x[j + 1];
+      lv2 = vj.x[j + 2];
+      a = (ou1 + ou2) * (1.0 + ov);
+      a1 = (a + 1.0e10) - 1.0e10;
+      a2 = a * (1.0 - a1 * uu * vv);
+      e1 = eps * a1;
+      e2 = eps * a2;
+      e = e1 + e2;
+      e2 = (e1 - e) + e2;
+      t = nx * ln2a.x + lu1 + lv1;
+      t1 = t + e;
+      t2 = ((((t - t1) + e) + (lu2 + lv2 + nx * ln2b.x + e2)) + e * e
+	    * (p2 + e * (p3 + e * p4)));
+      res = t1 + t2;
+      *error = 1.0e-27;
+      *delta = (t1 - res) + t2;
+      return res;
+    }
+}
+
+/* This function receives a double x and checks if it is an integer.  If not,
+   it returns 0, else it returns 1 if even or -1 if odd.  */
+static int
+SECTION
+checkint (double x)
+{
+  union
+  {
+    int4 i[2];
+    double x;
+  } u;
+  int k, m, n;
+  u.x = x;
+  m = u.i[HIGH_HALF] & 0x7fffffff;	/* no sign */
+  if (m >= 0x7ff00000)
+    return 0;			/*  x is +/-inf or NaN  */
+  if (m >= 0x43400000)
+    return 1;			/*  |x| >= 2**53   */
+  if (m < 0x40000000)
+    return 0;			/* |x| < 2,  can not be 0 or 1  */
+  n = u.i[LOW_HALF];
+  k = (m >> 20) - 1023;		/*  1 <= k <= 52   */
+  if (k == 52)
+    return (n & 1) ? -1 : 1;	/* odd or even */
+  if (k > 20)
+    {
+      if (n << (k - 20) != 0)
+	return 0;		/* if not integer */
+      return (n << (k - 21) != 0) ? -1 : 1;
+    }
+  if (n)
+    return 0;			/*if  not integer */
+  if (k == 20)
+    return (m & 1) ? -1 : 1;
+  if (m << (k + 12) != 0)
+    return 0;
+  return (m << (k + 11) != 0) ? -1 : 1;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_rem_pio2.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_rem_pio2.c
new file mode 100644
index 0000000000..2f55ca294b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_rem_pio2.c
@@ -0,0 +1,193 @@
+#ifdef NOT_NEEDED_ANYMORE
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_rem_pio2(x,y)
+ *
+ * return the remainder of x rem pi/2 in y[0]+y[1]
+ * use __kernel_rem_pio2()
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+/*
+ * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+ */
+static const int32_t two_over_pi[] = {
+0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62,
+0x95993C, 0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A,
+0x424DD2, 0xE00649, 0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129,
+0xA73EE8, 0x8235F5, 0x2EBB44, 0x84E99C, 0x7026B4, 0x5F7E41,
+0x3991D6, 0x398353, 0x39F49C, 0x845F8B, 0xBDF928, 0x3B1FF8,
+0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D, 0x367ECF,
+0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5,
+0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08,
+0x560330, 0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3,
+0x91615E, 0xE61B08, 0x659985, 0x5F14A0, 0x68408D, 0xFFD880,
+0x4D7327, 0x310606, 0x1556CA, 0x73A8C9, 0x60E27B, 0xC08C6B,
+};
+
+static const int32_t npio2_hw[] = {
+0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C,
+0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C,
+0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A,
+0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C,
+0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB,
+0x404858EB, 0x404921FB,
+};
+
+/*
+ * invpio2:  53 bits of 2/pi
+ * pio2_1:   first  33 bit of pi/2
+ * pio2_1t:  pi/2 - pio2_1
+ * pio2_2:   second 33 bit of pi/2
+ * pio2_2t:  pi/2 - (pio2_1+pio2_2)
+ * pio2_3:   third  33 bit of pi/2
+ * pio2_3t:  pi/2 - (pio2_1+pio2_2+pio2_3)
+ */
+
+static const double
+  zero    = 0.00000000000000000000e+00, /* 0x00000000, 0x00000000 */
+  half    = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+  two24   = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
+  invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
+  pio2_1  = 1.57079632673412561417e+00, /* 0x3FF921FB, 0x54400000 */
+  pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */
+  pio2_2  = 6.07710050630396597660e-11, /* 0x3DD0B461, 0x1A600000 */
+  pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
+  pio2_3  = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
+  pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
+
+int32_t
+__ieee754_rem_pio2 (double x, double *y)
+{
+  double z, w, t, r, fn;
+  double tx[3];
+  int32_t e0, i, j, nx, n, ix, hx;
+  u_int32_t low;
+
+  GET_HIGH_WORD (hx, x);                /* high word of x */
+  ix = hx & 0x7fffffff;
+  if (ix <= 0x3fe921fb)      /* |x| ~<= pi/4 , no need for reduction */
+    {
+      y[0] = x; y[1] = 0; return 0;
+    }
+  if (ix < 0x4002d97c)       /* |x| < 3pi/4, special case with n=+-1 */
+    {
+      if (hx > 0)
+	{
+	  z = x - pio2_1;
+	  if (ix != 0x3ff921fb)         /* 33+53 bit pi is good enough */
+	    {
+	      y[0] = z - pio2_1t;
+	      y[1] = (z - y[0]) - pio2_1t;
+	    }
+	  else                          /* near pi/2, use 33+33+53 bit pi */
+	    {
+	      z -= pio2_2;
+	      y[0] = z - pio2_2t;
+	      y[1] = (z - y[0]) - pio2_2t;
+	    }
+	  return 1;
+	}
+      else              /* negative x */
+	{
+	  z = x + pio2_1;
+	  if (ix != 0x3ff921fb)         /* 33+53 bit pi is good enough */
+	    {
+	      y[0] = z + pio2_1t;
+	      y[1] = (z - y[0]) + pio2_1t;
+	    }
+	  else                          /* near pi/2, use 33+33+53 bit pi */
+	    {
+	      z += pio2_2;
+	      y[0] = z + pio2_2t;
+	      y[1] = (z - y[0]) + pio2_2t;
+	    }
+	  return -1;
+	}
+    }
+  if (ix <= 0x413921fb)      /* |x| ~<= 2^19*(pi/2), medium size */
+    {
+      t = fabs (x);
+      n = (int32_t) (t * invpio2 + half);
+      fn = (double) n;
+      r = t - fn * pio2_1;
+      w = fn * pio2_1t;         /* 1st round good to 85 bit */
+      if (n < 32 && ix != npio2_hw[n - 1])
+	{
+	  y[0] = r - w;         /* quick check no cancellation */
+	}
+      else
+	{
+	  u_int32_t high;
+	  j = ix >> 20;
+	  y[0] = r - w;
+	  GET_HIGH_WORD (high, y[0]);
+	  i = j - ((high >> 20) & 0x7ff);
+	  if (i > 16)       /* 2nd iteration needed, good to 118 */
+	    {
+	      t = r;
+	      w = fn * pio2_2;
+	      r = t - w;
+	      w = fn * pio2_2t - ((t - r) - w);
+	      y[0] = r - w;
+	      GET_HIGH_WORD (high, y[0]);
+	      i = j - ((high >> 20) & 0x7ff);
+	      if (i > 49)       /* 3rd iteration need, 151 bits acc */
+		{
+		  t = r;        /* will cover all possible cases */
+		  w = fn * pio2_3;
+		  r = t - w;
+		  w = fn * pio2_3t - ((t - r) - w);
+		  y[0] = r - w;
+		}
+	    }
+	}
+      y[1] = (r - y[0]) - w;
+      if (hx < 0)
+	{
+	  y[0] = -y[0]; y[1] = -y[1]; return -n;
+	}
+      else
+	return n;
+    }
+  /*
+   * all other (large) arguments
+   */
+  if (ix >= 0x7ff00000)                 /* x is inf or NaN */
+    {
+      y[0] = y[1] = x - x; return 0;
+    }
+  /* set z = scalbn(|x|,ilogb(x)-23) */
+  GET_LOW_WORD (low, x);
+  SET_LOW_WORD (z, low);
+  e0 = (ix >> 20) - 1046;               /* e0 = ilogb(z)-23; */
+  SET_HIGH_WORD (z, ix - ((int32_t) (e0 << 20)));
+  for (i = 0; i < 2; i++)
+    {
+      tx[i] = (double) ((int32_t) (z));
+      z = (z - tx[i]) * two24;
+    }
+  tx[2] = z;
+  nx = 3;
+  while (tx[nx - 1] == zero)
+    nx--;                               /* skip zero term */
+  n = __kernel_rem_pio2 (tx, y, e0, nx, 2, two_over_pi);
+  if (hx < 0)
+    {
+      y[0] = -y[0]; y[1] = -y[1]; return -n;
+    }
+  return n;
+}
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_remainder.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_remainder.c
new file mode 100644
index 0000000000..1a2eeed2e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_remainder.c
@@ -0,0 +1,152 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/**************************************************************************/
+/*  MODULE_NAME urem.c                                                    */
+/*                                                                        */
+/*  FUNCTION: uremainder                                                  */
+/*                                                                        */
+/* An ultimate remainder routine. Given two IEEE double machine numbers x */
+/* ,y   it computes the correctly rounded (to nearest) value of remainder */
+/* of dividing x by y.                                                    */
+/* Assumption: Machine arithmetic operations are performed in             */
+/* round to nearest mode of IEEE 754 standard.                            */
+/*                                                                        */
+/* ************************************************************************/
+
+#include "endian.h"
+#include "mydefs.h"
+#include "urem.h"
+#include "MathLib.h"
+#include <math.h>
+#include <math_private.h>
+
+/**************************************************************************/
+/* An ultimate remainder routine. Given two IEEE double machine numbers x */
+/* ,y   it computes the correctly rounded (to nearest) value of remainder */
+/**************************************************************************/
+double
+__ieee754_remainder (double x, double y)
+{
+  double z, d, xx;
+  int4 kx, ky, n, nn, n1, m1, l;
+  mynumber u, t, w = { { 0, 0 } }, v = { { 0, 0 } }, ww = { { 0, 0 } }, r;
+  u.x = x;
+  t.x = y;
+  kx = u.i[HIGH_HALF] & 0x7fffffff; /* no sign  for x*/
+  t.i[HIGH_HALF] &= 0x7fffffff;   /*no sign for y */
+  ky = t.i[HIGH_HALF];
+  /*------ |x| < 2^1023  and   2^-970 < |y| < 2^1024 ------------------*/
+  if (kx < 0x7fe00000 && ky < 0x7ff00000 && ky >= 0x03500000)
+    {
+      SET_RESTORE_ROUND_NOEX (FE_TONEAREST);
+      if (kx + 0x00100000 < ky)
+	return x;
+      if ((kx - 0x01500000) < ky)
+	{
+	  z = x / t.x;
+	  v.i[HIGH_HALF] = t.i[HIGH_HALF];
+	  d = (z + big.x) - big.x;
+	  xx = (x - d * v.x) - d * (t.x - v.x);
+	  if (d - z != 0.5 && d - z != -0.5)
+	    return (xx != 0) ? xx : ((x > 0) ? ZERO.x : nZERO.x);
+	  else
+	    {
+	      if (fabs (xx) > 0.5 * t.x)
+		return (z > d) ? xx - t.x : xx + t.x;
+	      else
+		return xx;
+	    }
+	} /*    (kx<(ky+0x01500000))         */
+      else
+	{
+	  r.x = 1.0 / t.x;
+	  n = t.i[HIGH_HALF];
+	  nn = (n & 0x7ff00000) + 0x01400000;
+	  w.i[HIGH_HALF] = n;
+	  ww.x = t.x - w.x;
+	  l = (kx - nn) & 0xfff00000;
+	  n1 = ww.i[HIGH_HALF];
+	  m1 = r.i[HIGH_HALF];
+	  while (l > 0)
+	    {
+	      r.i[HIGH_HALF] = m1 - l;
+	      z = u.x * r.x;
+	      w.i[HIGH_HALF] = n + l;
+	      ww.i[HIGH_HALF] = (n1) ? n1 + l : n1;
+	      d = (z + big.x) - big.x;
+	      u.x = (u.x - d * w.x) - d * ww.x;
+	      l = (u.i[HIGH_HALF] & 0x7ff00000) - nn;
+	    }
+	  r.i[HIGH_HALF] = m1;
+	  w.i[HIGH_HALF] = n;
+	  ww.i[HIGH_HALF] = n1;
+	  z = u.x * r.x;
+	  d = (z + big.x) - big.x;
+	  u.x = (u.x - d * w.x) - d * ww.x;
+	  if (fabs (u.x) < 0.5 * t.x)
+	    return (u.x != 0) ? u.x : ((x > 0) ? ZERO.x : nZERO.x);
+	  else
+	  if (fabs (u.x) > 0.5 * t.x)
+	    return (d > z) ? u.x + t.x : u.x - t.x;
+	  else
+	    {
+	      z = u.x / t.x; d = (z + big.x) - big.x;
+              return ((u.x - d * w.x) - d * ww.x);
+	    }
+	}
+    } /*   (kx<0x7fe00000&&ky<0x7ff00000&&ky>=0x03500000)     */
+  else
+    {
+      if (kx < 0x7fe00000 && ky < 0x7ff00000 && (ky > 0 || t.i[LOW_HALF] != 0))
+	{
+	  y = fabs (y) * t128.x;
+	  z = __ieee754_remainder (x, y) * t128.x;
+	  z = __ieee754_remainder (z, y) * tm128.x;
+	  return z;
+	}
+      else
+	{
+	  if ((kx & 0x7ff00000) == 0x7fe00000 && ky < 0x7ff00000 &&
+              (ky > 0 || t.i[LOW_HALF] != 0))
+	    {
+	      y = fabs (y);
+	      z = 2.0 * __ieee754_remainder (0.5 * x, y);
+	      d = fabs (z);
+	      if (d <= fabs (d - y))
+		return z;
+	      else if (d == y)
+		return 0.0 * x;
+	      else
+		return (z > 0) ? z - y : z + y;
+	    }
+	  else /* if x is too big */
+	    {
+	      if (ky == 0 && t.i[LOW_HALF] == 0) /* y = 0 */
+		return (x * y) / (x * y);
+	      else if (kx >= 0x7ff00000         /* x not finite */
+		       || (ky > 0x7ff00000      /* y is NaN */
+			   || (ky == 0x7ff00000 && t.i[LOW_HALF] != 0)))
+		return (x * y) / (x * y);
+	      else
+		return x;
+	    }
+	}
+    }
+}
+strong_alias (__ieee754_remainder, __remainder_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_sinh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_sinh.c
new file mode 100644
index 0000000000..8479bdd9b8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_sinh.c
@@ -0,0 +1,90 @@
+/* @(#)e_sinh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_sinh.c,v 1.7 1995/05/10 20:46:13 jtc Exp $";
+#endif
+
+/* __ieee754_sinh(x)
+ * Method :
+ * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2
+ *	1. Replace x by |x| (sinh(-x) = -sinh(x)).
+ *	2.
+ *						    E + E/(E+1)
+ *	    0        <= x <= 22     :  sinh(x) := --------------, E=expm1(x)
+ *							2
+ *
+ *	    22       <= x <= lnovft :  sinh(x) := exp(x)/2
+ *	    lnovft   <= x <= ln2ovft:  sinh(x) := exp(x/2)/2 * exp(x/2)
+ *	    ln2ovft  <  x	    :  sinh(x) := x*shuge (overflow)
+ *
+ * Special cases:
+ *	sinh(x) is |x| if x is +INF, -INF, or NaN.
+ *	only sinh(0)=0 is exact for finite x.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double one = 1.0, shuge = 1.0e307;
+
+double
+__ieee754_sinh (double x)
+{
+  double t, w, h;
+  int32_t ix, jx;
+  u_int32_t lx;
+
+  /* High word of |x|. */
+  GET_HIGH_WORD (jx, x);
+  ix = jx & 0x7fffffff;
+
+  /* x is INF or NaN */
+  if (__glibc_unlikely (ix >= 0x7ff00000))
+    return x + x;
+
+  h = 0.5;
+  if (jx < 0)
+    h = -h;
+  /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */
+  if (ix < 0x40360000)                  /* |x|<22 */
+    {
+      if (__glibc_unlikely (ix < 0x3e300000)) {            /* |x|<2**-28 */
+	math_check_force_underflow (x);
+	if (shuge + x > one)
+	  return x;
+	/* sinh(tiny) = tiny with inexact */
+      }
+      t = __expm1 (fabs (x));
+      if (ix < 0x3ff00000)
+	return h * (2.0 * t - t * t / (t + one));
+      return h * (t + t / (t + one));
+    }
+
+  /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
+  if (ix < 0x40862e42)
+    return h * __ieee754_exp (fabs (x));
+
+  /* |x| in [log(maxdouble), overflowthresold] */
+  GET_LOW_WORD (lx, x);
+  if (ix < 0x408633ce || ((ix == 0x408633ce) && (lx <= (u_int32_t) 0x8fb9f87d)))
+    {
+      w = __ieee754_exp (0.5 * fabs (x));
+      t = h * w;
+      return t * w;
+    }
+
+  /* |x| > overflowthresold, sinh(x) overflow */
+  return math_narrow_eval (x * shuge);
+}
+strong_alias (__ieee754_sinh, __sinh_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/e_sqrt.c b/REORG.TODO/sysdeps/ieee754/dbl-64/e_sqrt.c
new file mode 100644
index 0000000000..017d30416c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/e_sqrt.c
@@ -0,0 +1,139 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/*********************************************************************/
+/* MODULE_NAME: uroot.c                                              */
+/*                                                                   */
+/* FUNCTION:    usqrt                                                */
+/*                                                                   */
+/* FILES NEEDED: dla.h endian.h mydefs.h                             */
+/*               uroot.tbl                                           */
+/*                                                                   */
+/* An ultimate sqrt routine. Given an IEEE double machine number x   */
+/* it computes the correctly rounded (to nearest) value of square    */
+/* root of x.                                                        */
+/* Assumption: Machine arithmetic operations are performed in        */
+/* round to nearest mode of IEEE 754 standard.                       */
+/*                                                                   */
+/*********************************************************************/
+
+#include "endian.h"
+#include "mydefs.h"
+#include <dla.h>
+#include "MathLib.h"
+#include "root.tbl"
+#include <math_private.h>
+
+/*********************************************************************/
+/* An ultimate sqrt routine. Given an IEEE double machine number x   */
+/* it computes the correctly rounded (to nearest) value of square    */
+/* root of x.                                                        */
+/*********************************************************************/
+double
+__ieee754_sqrt (double x)
+{
+  static const double
+    rt0 = 9.99999999859990725855365213134618E-01,
+    rt1 = 4.99999999495955425917856814202739E-01,
+    rt2 = 3.75017500867345182581453026130850E-01,
+    rt3 = 3.12523626554518656309172508769531E-01;
+  static const double big = 134217728.0;
+  double y, t, del, res, res1, hy, z, zz, p, hx, tx, ty, s;
+  mynumber a, c = { { 0, 0 } };
+  int4 k;
+
+  a.x = x;
+  k = a.i[HIGH_HALF];
+  a.i[HIGH_HALF] = (k & 0x001fffff) | 0x3fe00000;
+  t = inroot[(k & 0x001fffff) >> 14];
+  s = a.x;
+  /*----------------- 2^-1022  <= | x |< 2^1024  -----------------*/
+  if (k > 0x000fffff && k < 0x7ff00000)
+    {
+      int rm = __fegetround ();
+      fenv_t env;
+      libc_feholdexcept_setround (&env, FE_TONEAREST);
+      double ret;
+      y = 1.0 - t * (t * s);
+      t = t * (rt0 + y * (rt1 + y * (rt2 + y * rt3)));
+      c.i[HIGH_HALF] = 0x20000000 + ((k & 0x7fe00000) >> 1);
+      y = t * s;
+      hy = (y + big) - big;
+      del = 0.5 * t * ((s - hy * hy) - (y - hy) * (y + hy));
+      res = y + del;
+      if (res == (res + 1.002 * ((y - res) + del)))
+	ret = res * c.x;
+      else
+	{
+	  res1 = res + 1.5 * ((y - res) + del);
+	  EMULV (res, res1, z, zz, p, hx, tx, hy, ty); /* (z+zz)=res*res1 */
+	  res = ((((z - s) + zz) < 0) ? max (res, res1) :
+					min (res, res1));
+	  ret = res * c.x;
+	}
+      math_force_eval (ret);
+      libc_fesetenv (&env);
+      double dret = x / ret;
+      if (dret != ret)
+	{
+	  double force_inexact = 1.0 / 3.0;
+	  math_force_eval (force_inexact);
+	  /* The square root is inexact, ret is the round-to-nearest
+	     value which may need adjusting for other rounding
+	     modes.  */
+	  switch (rm)
+	    {
+#ifdef FE_UPWARD
+	    case FE_UPWARD:
+	      if (dret > ret)
+		ret = (res + 0x1p-1022) * c.x;
+	      break;
+#endif
+
+#ifdef FE_DOWNWARD
+	    case FE_DOWNWARD:
+#endif
+#ifdef FE_TOWARDZERO
+	    case FE_TOWARDZERO:
+#endif
+#if defined FE_DOWNWARD || defined FE_TOWARDZERO
+	      if (dret < ret)
+		ret = (res - 0x1p-1022) * c.x;
+	      break;
+#endif
+
+	    default:
+	      break;
+	    }
+	}
+      /* Otherwise (x / ret == ret), either the square root was exact or
+         the division was inexact.  */
+      return ret;
+    }
+  else
+    {
+      if ((k & 0x7ff00000) == 0x7ff00000)
+	return x * x + x; /* sqrt(NaN)=NaN, sqrt(+inf)=+inf, sqrt(-inf)=sNaN */
+      if (x == 0)
+	return x;       /* sqrt(+0)=+0, sqrt(-0)=-0 */
+      if (k < 0)
+	return (x - x) / (x - x); /* sqrt(-ve)=sNaN */
+      return 0x1p-256 * __ieee754_sqrt (x * 0x1p512);
+    }
+}
+strong_alias (__ieee754_sqrt, __sqrt_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/gamma_product.c b/REORG.TODO/sysdeps/ieee754/dbl-64/gamma_product.c
new file mode 100644
index 0000000000..d946b3c845
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/gamma_product.c
@@ -0,0 +1,45 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_split.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+   - 1, in the form R * (1 + *EPS) where the return value R is an
+   approximation to the product and *EPS is set to indicate the
+   approximate error in the return value.  X is such that all the
+   values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+   X is small enough that factors quadratic in it can be
+   neglected.  */
+
+double
+__gamma_product (double x, double x_eps, int n, double *eps)
+{
+  SET_RESTORE_ROUND (FE_TONEAREST);
+  double ret = x;
+  *eps = x_eps / x;
+  for (int i = 1; i < n; i++)
+    {
+      *eps += x_eps / (x + i);
+      double lo;
+      mul_split (&ret, &lo, ret, x + i);
+      *eps += lo / ret;
+    }
+  return ret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/gamma_productf.c b/REORG.TODO/sysdeps/ieee754/dbl-64/gamma_productf.c
new file mode 100644
index 0000000000..49c15b14b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/gamma_productf.c
@@ -0,0 +1,43 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+   - 1, in the form R * (1 + *EPS) where the return value R is an
+   approximation to the product and *EPS is set to indicate the
+   approximate error in the return value.  X is such that all the
+   values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+   X is small enough that factors quadratic in it can be
+   neglected.  */
+
+float
+__gamma_productf (float x, float x_eps, int n, float *eps)
+{
+  double x_full = (double) x + (double) x_eps;
+  double ret = x_full;
+  for (int i = 1; i < n; i++)
+    ret *= x_full + i;
+
+  float fret = math_narrow_eval ((float) ret);
+  *eps = (ret - fret) / fret;
+
+  return fret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/halfulp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/halfulp.c
new file mode 100644
index 0000000000..d5f8a010e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/halfulp.c
@@ -0,0 +1,152 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/************************************************************************/
+/*                                                                      */
+/* MODULE_NAME:halfulp.c                                                */
+/*                                                                      */
+/*  FUNCTIONS:halfulp                                                   */
+/*  FILES NEEDED: mydefs.h dla.h endian.h                               */
+/*                uroot.c                                               */
+/*                                                                      */
+/*Routine halfulp(double x, double y) computes x^y where result does    */
+/*not need rounding. If the result is closer to 0 than can be           */
+/*represented it returns 0.                                             */
+/*     In the following cases the function does not compute anything    */
+/*and returns a negative number:                                        */
+/*1. if the result needs rounding,                                      */
+/*2. if y is outside the interval [0,  2^20-1],                         */
+/*3. if x can be represented by  x=2**n for some integer n.             */
+/************************************************************************/
+
+#include "endian.h"
+#include "mydefs.h"
+#include <dla.h>
+#include <math_private.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+static const int4 tab54[32] = {
+  262143, 11585,  1782, 511, 210, 107, 63, 42,
+  30,     22,     17,   14,  12,  10,  9, 7,
+  7,      6,      5,    5,   5,   4,   4, 4,
+  3,      3,      3,    3,   3,   3,   3, 3
+};
+
+
+double
+SECTION
+__halfulp (double x, double y)
+{
+  mynumber v;
+  double z, u, uu;
+#ifndef DLA_FMS
+  double j1, j2, j3, j4, j5;
+#endif
+  int4 k, l, m, n;
+  if (y <= 0)                 /*if power is negative or zero */
+    {
+      v.x = y;
+      if (v.i[LOW_HALF] != 0)
+	return -10.0;
+      v.x = x;
+      if (v.i[LOW_HALF] != 0)
+	return -10.0;
+      if ((v.i[HIGH_HALF] & 0x000fffff) != 0)
+	return -10;                                     /* if x =2 ^ n */
+      k = ((v.i[HIGH_HALF] & 0x7fffffff) >> 20) - 1023; /* find this n */
+      z = (double) k;
+      return (z * y == -1075.0) ? 0 : -10.0;
+    }
+  /* if y > 0  */
+  v.x = y;
+  if (v.i[LOW_HALF] != 0)
+    return -10.0;
+
+  v.x = x;
+  /*  case where x = 2**n for some integer n */
+  if (((v.i[HIGH_HALF] & 0x000fffff) | v.i[LOW_HALF]) == 0)
+    {
+      k = (v.i[HIGH_HALF] >> 20) - 1023;
+      return (((double) k) * y == -1075.0) ? 0 : -10.0;
+    }
+
+  v.x = y;
+  k = v.i[HIGH_HALF];
+  m = k << 12;
+  l = 0;
+  while (m)
+    {
+      m = m << 1; l++;
+    }
+  n = (k & 0x000fffff) | 0x00100000;
+  n = n >> (20 - l);                       /*   n is the odd integer of y    */
+  k = ((k >> 20) - 1023) - l;               /*   y = n*2**k                   */
+  if (k > 5)
+    return -10.0;
+  if (k > 0)
+    for (; k > 0; k--)
+      n *= 2;
+  if (n > 34)
+    return -10.0;
+  k = -k;
+  if (k > 5)
+    return -10.0;
+
+  /*   now treat x        */
+  while (k > 0)
+    {
+      z = __ieee754_sqrt (x);
+      EMULV (z, z, u, uu, j1, j2, j3, j4, j5);
+      if (((u - x) + uu) != 0)
+	break;
+      x = z;
+      k--;
+    }
+  if (k)
+    return -10.0;
+
+  /* it is impossible that n == 2,  so the mantissa of x must be short  */
+
+  v.x = x;
+  if (v.i[LOW_HALF])
+    return -10.0;
+  k = v.i[HIGH_HALF];
+  m = k << 12;
+  l = 0;
+  while (m)
+    {
+      m = m << 1; l++;
+    }
+  m = (k & 0x000fffff) | 0x00100000;
+  m = m >> (20 - l);                       /*   m is the odd integer of x    */
+
+  /*   now check whether the length of m**n is at most 54 bits */
+
+  if (m > tab54[n - 3])
+    return -10.0;
+
+  /* yes, it is - now compute x**n by simple multiplications  */
+
+  u = x;
+  for (k = 1; k < n; k++)
+    u = u * x;
+  return u;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/k_cos.c b/REORG.TODO/sysdeps/ieee754/dbl-64/k_cos.c
new file mode 100644
index 0000000000..cc5c205a5f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/k_cos.c
@@ -0,0 +1 @@
+/* Not needed anymore.  */
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/k_rem_pio2.c b/REORG.TODO/sysdeps/ieee754/dbl-64/k_rem_pio2.c
new file mode 100644
index 0000000000..2b5add6976
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/k_rem_pio2.c
@@ -0,0 +1,362 @@
+/* @(#)k_rem_pio2.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: k_rem_pio2.c,v 1.7 1995/05/10 20:46:25 jtc Exp $";
+#endif
+
+/*
+ * __kernel_rem_pio2(x,y,e0,nx,prec,ipio2)
+ * double x[],y[]; int e0,nx,prec; int ipio2[];
+ *
+ * __kernel_rem_pio2 return the last three digits of N with
+ *		y = x - N*pi/2
+ * so that |y| < pi/2.
+ *
+ * The method is to compute the integer (mod 8) and fraction parts of
+ * (2/pi)*x without doing the full multiplication. In general we
+ * skip the part of the product that are known to be a huge integer (
+ * more accurately, = 0 mod 8 ). Thus the number of operations are
+ * independent of the exponent of the input.
+ *
+ * (2/pi) is represented by an array of 24-bit integers in ipio2[].
+ *
+ * Input parameters:
+ * 	x[]	The input value (must be positive) is broken into nx
+ *		pieces of 24-bit integers in double precision format.
+ *		x[i] will be the i-th 24 bit of x. The scaled exponent
+ *		of x[0] is given in input parameter e0 (i.e., x[0]*2^e0
+ *		match x's up to 24 bits.
+ *
+ *		Example of breaking a double positive z into x[0]+x[1]+x[2]:
+ *			e0 = ilogb(z)-23
+ *			z  = scalbn(z,-e0)
+ *		for i = 0,1,2
+ *			x[i] = floor(z)
+ *			z    = (z-x[i])*2**24
+ *
+ *
+ *	y[]	ouput result in an array of double precision numbers.
+ *		The dimension of y[] is:
+ *			24-bit  precision	1
+ *			53-bit  precision	2
+ *			64-bit  precision	2
+ *			113-bit precision	3
+ *		The actual value is the sum of them. Thus for 113-bit
+ *		precision, one may have to do something like:
+ *
+ *		long double t,w,r_head, r_tail;
+ *		t = (long double)y[2] + (long double)y[1];
+ *		w = (long double)y[0];
+ *		r_head = t+w;
+ *		r_tail = w - (r_head - t);
+ *
+ *	e0	The exponent of x[0]
+ *
+ *	nx	dimension of x[]
+ *
+ *  	prec	an integer indicating the precision:
+ *			0	24  bits (single)
+ *			1	53  bits (double)
+ *			2	64  bits (extended)
+ *			3	113 bits (quad)
+ *
+ *	ipio2[]
+ *		integer array, contains the (24*i)-th to (24*i+23)-th
+ *		bit of 2/pi after binary point. The corresponding
+ *		floating value is
+ *
+ *			ipio2[i] * 2^(-24(i+1)).
+ *
+ * External function:
+ *	double scalbn(), floor();
+ *
+ *
+ * Here is the description of some local variables:
+ *
+ * 	jk	jk+1 is the initial number of terms of ipio2[] needed
+ *		in the computation. The recommended value is 2,3,4,
+ *		6 for single, double, extended,and quad.
+ *
+ * 	jz	local integer variable indicating the number of
+ *		terms of ipio2[] used.
+ *
+ *	jx	nx - 1
+ *
+ *	jv	index for pointing to the suitable ipio2[] for the
+ *		computation. In general, we want
+ *			( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8
+ *		is an integer. Thus
+ *			e0-3-24*jv >= 0 or (e0-3)/24 >= jv
+ *		Hence jv = max(0,(e0-3)/24).
+ *
+ *	jp	jp+1 is the number of terms in PIo2[] needed, jp = jk.
+ *
+ * 	q[]	double array with integral value, representing the
+ *		24-bits chunk of the product of x and 2/pi.
+ *
+ *	q0	the corresponding exponent of q[0]. Note that the
+ *		exponent for q[i] would be q0-24*i.
+ *
+ *	PIo2[]	double precision array, obtained by cutting pi/2
+ *		into 24 bits chunks.
+ *
+ *	f[]	ipio2[] in floating point
+ *
+ *	iq[]	integer array by breaking up q[] in 24-bits chunk.
+ *
+ *	fq[]	final product of x*(2/pi) in fq[0],..,fq[jk]
+ *
+ *	ih	integer. If >0 it indicates q[] is >= 0.5, hence
+ *		it also indicates the *sign* of the result.
+ *
+ */
+
+
+/*
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+static const int init_jk[] = {2,3,4,6}; /* initial value for jk */
+
+static const double PIo2[] = {
+  1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */
+  7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */
+  5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */
+  3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */
+  1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */
+  1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */
+  2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */
+  2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */
+};
+
+static const double
+  zero   = 0.0,
+  one    = 1.0,
+  two24  = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
+  twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
+
+int
+__kernel_rem_pio2 (double *x, double *y, int e0, int nx, int prec,
+                   const int32_t *ipio2)
+{
+  int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih;
+  double z, fw, f[20], fq[20], q[20];
+
+  /* initialize jk*/
+  jk = init_jk[prec];
+  jp = jk;
+
+  /* determine jx,jv,q0, note that 3>q0 */
+  jx = nx - 1;
+  jv = (e0 - 3) / 24; if (jv < 0)
+    jv = 0;
+  q0 = e0 - 24 * (jv + 1);
+
+  /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
+  j = jv - jx; m = jx + jk;
+  for (i = 0; i <= m; i++, j++)
+    f[i] = (j < 0) ? zero : (double) ipio2[j];
+
+  /* compute q[0],q[1],...q[jk] */
+  for (i = 0; i <= jk; i++)
+    {
+      for (j = 0, fw = 0.0; j <= jx; j++)
+	fw += x[j] * f[jx + i - j];
+      q[i] = fw;
+    }
+
+  jz = jk;
+recompute:
+  /* distill q[] into iq[] reversingly */
+  for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--)
+    {
+      fw = (double) ((int32_t) (twon24 * z));
+      iq[i] = (int32_t) (z - two24 * fw);
+      z = q[j - 1] + fw;
+    }
+
+  /* compute n */
+  z = __scalbn (z, q0);                 /* actual value of z */
+  z -= 8.0 * __floor (z * 0.125);               /* trim off integer >= 8 */
+  n = (int32_t) z;
+  z -= (double) n;
+  ih = 0;
+  if (q0 > 0)           /* need iq[jz-1] to determine n */
+    {
+      i = (iq[jz - 1] >> (24 - q0)); n += i;
+      iq[jz - 1] -= i << (24 - q0);
+      ih = iq[jz - 1] >> (23 - q0);
+    }
+  else if (q0 == 0)
+    ih = iq[jz - 1] >> 23;
+  else if (z >= 0.5)
+    ih = 2;
+
+  if (ih > 0)           /* q > 0.5 */
+    {
+      n += 1; carry = 0;
+      for (i = 0; i < jz; i++)          /* compute 1-q */
+	{
+	  j = iq[i];
+	  if (carry == 0)
+	    {
+	      if (j != 0)
+		{
+		  carry = 1; iq[i] = 0x1000000 - j;
+		}
+	    }
+	  else
+	    iq[i] = 0xffffff - j;
+	}
+      if (q0 > 0)               /* rare case: chance is 1 in 12 */
+	{
+	  switch (q0)
+	    {
+	    case 1:
+	      iq[jz - 1] &= 0x7fffff; break;
+	    case 2:
+	      iq[jz - 1] &= 0x3fffff; break;
+	    }
+	}
+      if (ih == 2)
+	{
+	  z = one - z;
+	  if (carry != 0)
+	    z -= __scalbn (one, q0);
+	}
+    }
+
+  /* check if recomputation is needed */
+  if (z == zero)
+    {
+      j = 0;
+      for (i = jz - 1; i >= jk; i--)
+	j |= iq[i];
+      if (j == 0)      /* need recomputation */
+	{
+	  /* On s390x gcc 6.1 -O3 produces the warning "array subscript is below
+	     array bounds [-Werror=array-bounds]".  Only __ieee754_rem_pio2l
+	     calls __kernel_rem_pio2 for normal numbers and |x| > pi/4 in case
+	     of ldbl-96 and |x| > 3pi/4 in case of ldbl-128[ibm].
+	     Thus x can't be zero and ipio2 is not zero, too.  Thus not all iq[]
+	     values can't be zero.  */
+	  DIAG_PUSH_NEEDS_COMMENT;
+	  DIAG_IGNORE_NEEDS_COMMENT (6.1, "-Warray-bounds");
+	  for (k = 1; iq[jk - k] == 0; k++)
+	    ;                               /* k = no. of terms needed */
+	  DIAG_POP_NEEDS_COMMENT;
+
+	  for (i = jz + 1; i <= jz + k; i++) /* add q[jz+1] to q[jz+k] */
+	    {
+	      f[jx + i] = (double) ipio2[jv + i];
+	      for (j = 0, fw = 0.0; j <= jx; j++)
+		fw += x[j] * f[jx + i - j];
+	      q[i] = fw;
+	    }
+	  jz += k;
+	  goto recompute;
+	}
+    }
+
+  /* chop off zero terms */
+  if (z == 0.0)
+    {
+      jz -= 1; q0 -= 24;
+      while (iq[jz] == 0)
+	{
+	  jz--; q0 -= 24;
+	}
+    }
+  else           /* break z into 24-bit if necessary */
+    {
+      z = __scalbn (z, -q0);
+      if (z >= two24)
+	{
+	  fw = (double) ((int32_t) (twon24 * z));
+	  iq[jz] = (int32_t) (z - two24 * fw);
+	  jz += 1; q0 += 24;
+	  iq[jz] = (int32_t) fw;
+	}
+      else
+	iq[jz] = (int32_t) z;
+    }
+
+  /* convert integer "bit" chunk to floating-point value */
+  fw = __scalbn (one, q0);
+  for (i = jz; i >= 0; i--)
+    {
+      q[i] = fw * (double) iq[i]; fw *= twon24;
+    }
+
+  /* compute PIo2[0,...,jp]*q[jz,...,0] */
+  for (i = jz; i >= 0; i--)
+    {
+      for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++)
+	fw += PIo2[k] * q[i + k];
+      fq[jz - i] = fw;
+    }
+
+  /* compress fq[] into y[] */
+  switch (prec)
+    {
+    case 0:
+      fw = 0.0;
+      for (i = jz; i >= 0; i--)
+	fw += fq[i];
+      y[0] = (ih == 0) ? fw : -fw;
+      break;
+    case 1:
+    case 2:;
+      double fv = 0.0;
+      for (i = jz; i >= 0; i--)
+	fv = math_narrow_eval (fv + fq[i]);
+      y[0] = (ih == 0) ? fv : -fv;
+      fv = math_narrow_eval (fq[0] - fv);
+      for (i = 1; i <= jz; i++)
+	fv = math_narrow_eval (fv + fq[i]);
+      y[1] = (ih == 0) ? fv : -fv;
+      break;
+    case 3:             /* painful */
+      for (i = jz; i > 0; i--)
+	{
+	  double fv = math_narrow_eval (fq[i - 1] + fq[i]);
+	  fq[i] += fq[i - 1] - fv;
+	  fq[i - 1] = fv;
+	}
+      for (i = jz; i > 1; i--)
+	{
+	  double fv = math_narrow_eval (fq[i - 1] + fq[i]);
+	  fq[i] += fq[i - 1] - fv;
+	  fq[i - 1] = fv;
+	}
+      for (fw = 0.0, i = jz; i >= 2; i--)
+	fw += fq[i];
+      if (ih == 0)
+	{
+	  y[0] = fq[0]; y[1] = fq[1]; y[2] = fw;
+	}
+      else
+	{
+	  y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
+	}
+    }
+  return n & 7;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/k_sin.c b/REORG.TODO/sysdeps/ieee754/dbl-64/k_sin.c
new file mode 100644
index 0000000000..cc5c205a5f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/k_sin.c
@@ -0,0 +1 @@
+/* Not needed anymore.  */
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/k_tan.c b/REORG.TODO/sysdeps/ieee754/dbl-64/k_tan.c
new file mode 100644
index 0000000000..cc5c205a5f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/k_tan.c
@@ -0,0 +1 @@
+/* Not needed anymore.  */
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_neg.c b/REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_neg.c
new file mode 100644
index 0000000000..ccde9a1fe5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_neg.c
@@ -0,0 +1,383 @@
+/* lgamma expanding around zeros.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double lgamma_zeros[][2] =
+  {
+    { -0x2.74ff92c01f0d8p+0, -0x2.abec9f315f1ap-56 },
+    { -0x2.bf6821437b202p+0, 0x6.866a5b4b9be14p-56 },
+    { -0x3.24c1b793cb35ep+0, -0xf.b8be699ad3d98p-56 },
+    { -0x3.f48e2a8f85fcap+0, -0x1.70d4561291237p-56 },
+    { -0x4.0a139e1665604p+0, 0xf.3c60f4f21e7fp-56 },
+    { -0x4.fdd5de9bbabf4p+0, 0xa.ef2f55bf89678p-56 },
+    { -0x5.021a95fc2db64p+0, -0x3.2a4c56e595394p-56 },
+    { -0x5.ffa4bd647d034p+0, -0x1.7dd4ed62cbd32p-52 },
+    { -0x6.005ac9625f234p+0, 0x4.9f83d2692e9c8p-56 },
+    { -0x6.fff2fddae1bcp+0, 0xc.29d949a3dc03p-60 },
+    { -0x7.000cff7b7f87cp+0, 0x1.20bb7d2324678p-52 },
+    { -0x7.fffe5fe05673cp+0, -0x3.ca9e82b522b0cp-56 },
+    { -0x8.0001a01459fc8p+0, -0x1.f60cb3cec1cedp-52 },
+    { -0x8.ffffd1c425e8p+0, -0xf.fc864e9574928p-56 },
+    { -0x9.00002e3bb47d8p+0, -0x6.d6d843fedc35p-56 },
+    { -0x9.fffffb606bep+0, 0x2.32f9d51885afap-52 },
+    { -0xa.0000049f93bb8p+0, -0x1.927b45d95e154p-52 },
+    { -0xa.ffffff9466eap+0, 0xe.4c92532d5243p-56 },
+    { -0xb.0000006b9915p+0, -0x3.15d965a6ffea4p-52 },
+    { -0xb.fffffff708938p+0, -0x7.387de41acc3d4p-56 },
+    { -0xc.00000008f76c8p+0, 0x8.cea983f0fdafp-56 },
+    { -0xc.ffffffff4f6ep+0, 0x3.09e80685a0038p-52 },
+    { -0xd.00000000b092p+0, -0x3.09c06683dd1bap-52 },
+    { -0xd.fffffffff3638p+0, 0x3.a5461e7b5c1f6p-52 },
+    { -0xe.000000000c9c8p+0, -0x3.a545e94e75ec6p-52 },
+    { -0xe.ffffffffff29p+0, 0x3.f9f399fb10cfcp-52 },
+    { -0xf.0000000000d7p+0, -0x3.f9f399bd0e42p-52 },
+    { -0xf.fffffffffff28p+0, -0xc.060c6621f513p-56 },
+    { -0x1.000000000000dp+4, -0x7.3f9f399da1424p-52 },
+    { -0x1.0ffffffffffffp+4, -0x3.569c47e7a93e2p-52 },
+    { -0x1.1000000000001p+4, 0x3.569c47e7a9778p-52 },
+    { -0x1.2p+4, 0xb.413c31dcbecdp-56 },
+    { -0x1.2p+4, -0xb.413c31dcbeca8p-56 },
+    { -0x1.3p+4, 0x9.7a4da340a0ab8p-60 },
+    { -0x1.3p+4, -0x9.7a4da340a0ab8p-60 },
+    { -0x1.4p+4, 0x7.950ae90080894p-64 },
+    { -0x1.4p+4, -0x7.950ae90080894p-64 },
+    { -0x1.5p+4, 0x5.c6e3bdb73d5c8p-68 },
+    { -0x1.5p+4, -0x5.c6e3bdb73d5c8p-68 },
+    { -0x1.6p+4, 0x4.338e5b6dfe14cp-72 },
+    { -0x1.6p+4, -0x4.338e5b6dfe14cp-72 },
+    { -0x1.7p+4, 0x2.ec368262c7034p-76 },
+    { -0x1.7p+4, -0x2.ec368262c7034p-76 },
+    { -0x1.8p+4, 0x1.f2cf01972f578p-80 },
+    { -0x1.8p+4, -0x1.f2cf01972f578p-80 },
+    { -0x1.9p+4, 0x1.3f3ccdd165fa9p-84 },
+    { -0x1.9p+4, -0x1.3f3ccdd165fa9p-84 },
+    { -0x1.ap+4, 0xc.4742fe35272dp-92 },
+    { -0x1.ap+4, -0xc.4742fe35272dp-92 },
+    { -0x1.bp+4, 0x7.46ac70b733a8cp-96 },
+    { -0x1.bp+4, -0x7.46ac70b733a8cp-96 },
+    { -0x1.cp+4, 0x4.2862898d42174p-100 },
+  };
+
+static const double e_hi = 0x2.b7e151628aed2p+0, e_lo = 0xa.6abf7158809dp-56;
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
+   approximation to lgamma function.  */
+
+static const double lgamma_coeff[] =
+  {
+    0x1.5555555555555p-4,
+    -0xb.60b60b60b60b8p-12,
+    0x3.4034034034034p-12,
+    -0x2.7027027027028p-12,
+    0x3.72a3c5631fe46p-12,
+    -0x7.daac36664f1f4p-12,
+    0x1.a41a41a41a41ap-8,
+    -0x7.90a1b2c3d4e6p-8,
+    0x2.dfd2c703c0dp-4,
+    -0x1.6476701181f3ap+0,
+    0xd.672219167003p+0,
+    -0x9.cd9292e6660d8p+4,
+  };
+
+#define NCOEFF (sizeof (lgamma_coeff) / sizeof (lgamma_coeff[0]))
+
+/* Polynomial approximations to (|gamma(x)|-1)(x-n)/(x-x0), where n is
+   the integer end-point of the half-integer interval containing x and
+   x0 is the zero of lgamma in that half-integer interval.  Each
+   polynomial is expressed in terms of x-xm, where xm is the midpoint
+   of the interval for which the polynomial applies.  */
+
+static const double poly_coeff[] =
+  {
+    /* Interval [-2.125, -2] (polynomial degree 10).  */
+    -0x1.0b71c5c54d42fp+0,
+    -0xc.73a1dc05f3758p-4,
+    -0x1.ec84140851911p-4,
+    -0xe.37c9da23847e8p-4,
+    -0x1.03cd87cdc0ac6p-4,
+    -0xe.ae9aedce12eep-4,
+    0x9.b11a1780cfd48p-8,
+    -0xe.f25fc460bdebp-4,
+    0x2.6e984c61ca912p-4,
+    -0xf.83fea1c6d35p-4,
+    0x4.760c8c8909758p-4,
+    /* Interval [-2.25, -2.125] (polynomial degree 11).  */
+    -0xf.2930890d7d678p-4,
+    -0xc.a5cfde054eaa8p-4,
+    0x3.9c9e0fdebd99cp-4,
+    -0x1.02a5ad35619d9p+0,
+    0x9.6e9b1167c164p-4,
+    -0x1.4d8332eba090ap+0,
+    0x1.1c0c94b1b2b6p+0,
+    -0x1.c9a70d138c74ep+0,
+    0x1.d7d9cf1d4c196p+0,
+    -0x2.91fbf4cd6abacp+0,
+    0x2.f6751f74b8ff8p+0,
+    -0x3.e1bb7b09e3e76p+0,
+    /* Interval [-2.375, -2.25] (polynomial degree 12).  */
+    -0xd.7d28d505d618p-4,
+    -0xe.69649a3040958p-4,
+    0xb.0d74a2827cd6p-4,
+    -0x1.924b09228a86ep+0,
+    0x1.d49b12bcf6175p+0,
+    -0x3.0898bb530d314p+0,
+    0x4.207a6be8fda4cp+0,
+    -0x6.39eef56d4e9p+0,
+    0x8.e2e42acbccec8p+0,
+    -0xd.0d91c1e596a68p+0,
+    0x1.2e20d7099c585p+4,
+    -0x1.c4eb6691b4ca9p+4,
+    0x2.96a1a11fd85fep+4,
+    /* Interval [-2.5, -2.375] (polynomial degree 13).  */
+    -0xb.74ea1bcfff948p-4,
+    -0x1.2a82bd590c376p+0,
+    0x1.88020f828b81p+0,
+    -0x3.32279f040d7aep+0,
+    0x5.57ac8252ce868p+0,
+    -0x9.c2aedd093125p+0,
+    0x1.12c132716e94cp+4,
+    -0x1.ea94dfa5c0a6dp+4,
+    0x3.66b61abfe858cp+4,
+    -0x6.0cfceb62a26e4p+4,
+    0xa.beeba09403bd8p+4,
+    -0x1.3188d9b1b288cp+8,
+    0x2.37f774dd14c44p+8,
+    -0x3.fdf0a64cd7136p+8,
+    /* Interval [-2.625, -2.5] (polynomial degree 13).  */
+    -0x3.d10108c27ebbp-4,
+    0x1.cd557caff7d2fp+0,
+    0x3.819b4856d36cep+0,
+    0x6.8505cbacfc42p+0,
+    0xb.c1b2e6567a4dp+0,
+    0x1.50a53a3ce6c73p+4,
+    0x2.57adffbb1ec0cp+4,
+    0x4.2b15549cf400cp+4,
+    0x7.698cfd82b3e18p+4,
+    0xd.2decde217755p+4,
+    0x1.7699a624d07b9p+8,
+    0x2.98ecf617abbfcp+8,
+    0x4.d5244d44d60b4p+8,
+    0x8.e962bf7395988p+8,
+    /* Interval [-2.75, -2.625] (polynomial degree 12).  */
+    -0x6.b5d252a56e8a8p-4,
+    0x1.28d60383da3a6p+0,
+    0x1.db6513ada89bep+0,
+    0x2.e217118fa8c02p+0,
+    0x4.450112c651348p+0,
+    0x6.4af990f589b8cp+0,
+    0x9.2db5963d7a238p+0,
+    0xd.62c03647da19p+0,
+    0x1.379f81f6416afp+4,
+    0x1.c5618b4fdb96p+4,
+    0x2.9342d0af2ac4ep+4,
+    0x3.d9cdf56d2b186p+4,
+    0x5.ab9f91d5a27a4p+4,
+    /* Interval [-2.875, -2.75] (polynomial degree 11).  */
+    -0x8.a41b1e4f36ff8p-4,
+    0xc.da87d3b69dbe8p-4,
+    0x1.1474ad5c36709p+0,
+    0x1.761ecb90c8c5cp+0,
+    0x1.d279bff588826p+0,
+    0x2.4e5d003fb36a8p+0,
+    0x2.d575575566842p+0,
+    0x3.85152b0d17756p+0,
+    0x4.5213d921ca13p+0,
+    0x5.55da7dfcf69c4p+0,
+    0x6.acef729b9404p+0,
+    0x8.483cc21dd0668p+0,
+    /* Interval [-3, -2.875] (polynomial degree 11).  */
+    -0xa.046d667e468f8p-4,
+    0x9.70b88dcc006cp-4,
+    0xa.a8a39421c94dp-4,
+    0xd.2f4d1363f98ep-4,
+    0xd.ca9aa19975b7p-4,
+    0xf.cf09c2f54404p-4,
+    0x1.04b1365a9adfcp+0,
+    0x1.22b54ef213798p+0,
+    0x1.2c52c25206bf5p+0,
+    0x1.4aa3d798aace4p+0,
+    0x1.5c3f278b504e3p+0,
+    0x1.7e08292cc347bp+0,
+  };
+
+static const size_t poly_deg[] =
+  {
+    10,
+    11,
+    12,
+    13,
+    13,
+    12,
+    11,
+    11,
+  };
+
+static const size_t poly_end[] =
+  {
+    10,
+    22,
+    35,
+    49,
+    63,
+    76,
+    88,
+    100,
+  };
+
+/* Compute sin (pi * X) for -0.25 <= X <= 0.5.  */
+
+static double
+lg_sinpi (double x)
+{
+  if (x <= 0.25)
+    return __sin (M_PI * x);
+  else
+    return __cos (M_PI * (0.5 - x));
+}
+
+/* Compute cos (pi * X) for -0.25 <= X <= 0.5.  */
+
+static double
+lg_cospi (double x)
+{
+  if (x <= 0.25)
+    return __cos (M_PI * x);
+  else
+    return __sin (M_PI * (0.5 - x));
+}
+
+/* Compute cot (pi * X) for -0.25 <= X <= 0.5.  */
+
+static double
+lg_cotpi (double x)
+{
+  return lg_cospi (x) / lg_sinpi (x);
+}
+
+/* Compute lgamma of a negative argument -28 < X < -2, setting
+   *SIGNGAMP accordingly.  */
+
+double
+__lgamma_neg (double x, int *signgamp)
+{
+  /* Determine the half-integer region X lies in, handle exact
+     integers and determine the sign of the result.  */
+  int i = __floor (-2 * x);
+  if ((i & 1) == 0 && i == -2 * x)
+    return 1.0 / 0.0;
+  double xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
+  i -= 4;
+  *signgamp = ((i & 2) == 0 ? -1 : 1);
+
+  SET_RESTORE_ROUND (FE_TONEAREST);
+
+  /* Expand around the zero X0 = X0_HI + X0_LO.  */
+  double x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
+  double xdiff = x - x0_hi - x0_lo;
+
+  /* For arguments in the range -3 to -2, use polynomial
+     approximations to an adjusted version of the gamma function.  */
+  if (i < 2)
+    {
+      int j = __floor (-8 * x) - 16;
+      double xm = (-33 - 2 * j) * 0.0625;
+      double x_adj = x - xm;
+      size_t deg = poly_deg[j];
+      size_t end = poly_end[j];
+      double g = poly_coeff[end];
+      for (size_t j = 1; j <= deg; j++)
+	g = g * x_adj + poly_coeff[end - j];
+      return __log1p (g * xdiff / (x - xn));
+    }
+
+  /* The result we want is log (sinpi (X0) / sinpi (X))
+     + log (gamma (1 - X0) / gamma (1 - X)).  */
+  double x_idiff = fabs (xn - x), x0_idiff = fabs (xn - x0_hi - x0_lo);
+  double log_sinpi_ratio;
+  if (x0_idiff < x_idiff * 0.5)
+    /* Use log not log1p to avoid inaccuracy from log1p of arguments
+       close to -1.  */
+    log_sinpi_ratio = __ieee754_log (lg_sinpi (x0_idiff)
+				     / lg_sinpi (x_idiff));
+  else
+    {
+      /* Use log1p not log to avoid inaccuracy from log of arguments
+	 close to 1.  X0DIFF2 has positive sign if X0 is further from
+	 XN than X is from XN, negative sign otherwise.  */
+      double x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5;
+      double sx0d2 = lg_sinpi (x0diff2);
+      double cx0d2 = lg_cospi (x0diff2);
+      log_sinpi_ratio = __log1p (2 * sx0d2
+				 * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
+    }
+
+  double log_gamma_ratio;
+  double y0 = math_narrow_eval (1 - x0_hi);
+  double y0_eps = -x0_hi + (1 - y0) - x0_lo;
+  double y = math_narrow_eval (1 - x);
+  double y_eps = -x + (1 - y);
+  /* We now wish to compute LOG_GAMMA_RATIO
+     = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)).  XDIFF
+     accurately approximates the difference Y0 + Y0_EPS - Y -
+     Y_EPS.  Use Stirling's approximation.  First, we may need to
+     adjust into the range where Stirling's approximation is
+     sufficiently accurate.  */
+  double log_gamma_adj = 0;
+  if (i < 6)
+    {
+      int n_up = (7 - i) / 2;
+      double ny0, ny0_eps, ny, ny_eps;
+      ny0 = math_narrow_eval (y0 + n_up);
+      ny0_eps = y0 - (ny0 - n_up) + y0_eps;
+      y0 = ny0;
+      y0_eps = ny0_eps;
+      ny = math_narrow_eval (y + n_up);
+      ny_eps = y - (ny - n_up) + y_eps;
+      y = ny;
+      y_eps = ny_eps;
+      double prodm1 = __lgamma_product (xdiff, y - n_up, y_eps, n_up);
+      log_gamma_adj = -__log1p (prodm1);
+    }
+  double log_gamma_high
+    = (xdiff * __log1p ((y0 - e_hi - e_lo + y0_eps) / e_hi)
+       + (y - 0.5 + y_eps) * __log1p (xdiff / y) + log_gamma_adj);
+  /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)).  */
+  double y0r = 1 / y0, yr = 1 / y;
+  double y0r2 = y0r * y0r, yr2 = yr * yr;
+  double rdiff = -xdiff / (y * y0);
+  double bterm[NCOEFF];
+  double dlast = rdiff, elast = rdiff * yr * (yr + y0r);
+  bterm[0] = dlast * lgamma_coeff[0];
+  for (size_t j = 1; j < NCOEFF; j++)
+    {
+      double dnext = dlast * y0r2 + elast;
+      double enext = elast * yr2;
+      bterm[j] = dnext * lgamma_coeff[j];
+      dlast = dnext;
+      elast = enext;
+    }
+  double log_gamma_low = 0;
+  for (size_t j = 0; j < NCOEFF; j++)
+    log_gamma_low += bterm[NCOEFF - 1 - j];
+  log_gamma_ratio = log_gamma_high + log_gamma_low;
+
+  return log_sinpi_ratio + log_gamma_ratio;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_product.c b/REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_product.c
new file mode 100644
index 0000000000..a894f488b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/lgamma_product.c
@@ -0,0 +1,52 @@
+/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_split.h>
+
+/* Compute the product of 1 + (T / (X + X_EPS)), 1 + (T / (X + X_EPS +
+   1)), ..., 1 + (T / (X + X_EPS + N - 1)), minus 1.  X is such that
+   all the values X + 1, ..., X + N - 1 are exactly representable, and
+   X_EPS / X is small enough that factors quadratic in it can be
+   neglected.  */
+
+double
+__lgamma_product (double t, double x, double x_eps, int n)
+{
+  double ret = 0, ret_eps = 0;
+  for (int i = 0; i < n; i++)
+    {
+      double xi = x + i;
+      double quot = t / xi;
+      double mhi, mlo;
+      mul_split (&mhi, &mlo, quot, xi);
+      double quot_lo = (t - mhi - mlo) / xi - t * x_eps / (xi * xi);
+      /* We want (1 + RET + RET_EPS) * (1 + QUOT + QUOT_LO) - 1.  */
+      double rhi, rlo;
+      mul_split (&rhi, &rlo, ret, quot);
+      double rpq = ret + quot;
+      double rpq_eps = (ret - rpq) + quot;
+      double nret = rpq + rhi;
+      double nret_eps = (rpq - nret) + rhi;
+      ret_eps += (rpq_eps + nret_eps + rlo + ret_eps * quot
+		  + quot_lo + quot_lo * (ret + ret_eps));
+      ret = nret;
+    }
+  return ret + ret_eps;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpa-arch.h b/REORG.TODO/sysdeps/ieee754/dbl-64/mpa-arch.h
new file mode 100644
index 0000000000..4428ac1301
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpa-arch.h
@@ -0,0 +1,47 @@
+/* Overridable constants and operations.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as published by
+   the Free Software Foundation; either version 2.1 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public License
+   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
+
+#include <stdint.h>
+
+typedef long mantissa_t;
+typedef int64_t mantissa_store_t;
+
+#define TWOPOW(i) (1L << i)
+
+#define RADIX_EXP 24
+#define  RADIX TWOPOW (RADIX_EXP)               /* 2^24    */
+
+/* Divide D by RADIX and put the remainder in R.  D must be a non-negative
+   integral value.  */
+#define DIV_RADIX(d, r) \
+  ({                                                                         \
+     r = d & (RADIX - 1);                                                    \
+     d >>= RADIX_EXP;                                                        \
+   })
+
+/* Put the integer component of a double X in R and retain the fraction in
+   X.  This is used in extracting mantissa digits for MP_NO by using the
+   integer portion of the current value of the number as the current mantissa
+   digit and then scaling by RADIX to get the next mantissa digit in the same
+   manner.  */
+#define INTEGER_OF(x, i) \
+  ({                                                                          \
+     i = (mantissa_t) x;                                                       \
+     x -= i;                                                                   \
+   })
+
+/* Align IN down to F.  The code assumes that F is a power of two.  */
+#define ALIGN_DOWN_TO(in, f) ((in) & - (f))
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpa.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mpa.c
new file mode 100644
index 0000000000..3820335172
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpa.c
@@ -0,0 +1,906 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/************************************************************************/
+/*  MODULE_NAME: mpa.c                                                  */
+/*                                                                      */
+/*  FUNCTIONS:                                                          */
+/*               mcr                                                    */
+/*               acr                                                    */
+/*               cpy                                                    */
+/*               norm                                                   */
+/*               denorm                                                 */
+/*               mp_dbl                                                 */
+/*               dbl_mp                                                 */
+/*               add_magnitudes                                         */
+/*               sub_magnitudes                                         */
+/*               add                                                    */
+/*               sub                                                    */
+/*               mul                                                    */
+/*               inv                                                    */
+/*               dvd                                                    */
+/*                                                                      */
+/* Arithmetic functions for multiple precision numbers.                 */
+/* Relative errors are bounded                                          */
+/************************************************************************/
+
+
+#include "endian.h"
+#include "mpa.h"
+#include <sys/param.h>
+#include <alloca.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+#ifndef NO__CONST
+const mp_no __mpone = { 1, { 1.0, 1.0 } };
+const mp_no __mptwo = { 1, { 1.0, 2.0 } };
+#endif
+
+#ifndef NO___ACR
+/* Compare mantissa of two multiple precision numbers regardless of the sign
+   and exponent of the numbers.  */
+static int
+mcr (const mp_no *x, const mp_no *y, int p)
+{
+  long i;
+  long p2 = p;
+  for (i = 1; i <= p2; i++)
+    {
+      if (X[i] == Y[i])
+	continue;
+      else if (X[i] > Y[i])
+	return 1;
+      else
+	return -1;
+    }
+  return 0;
+}
+
+/* Compare the absolute values of two multiple precision numbers.  */
+int
+__acr (const mp_no *x, const mp_no *y, int p)
+{
+  long i;
+
+  if (X[0] == 0)
+    {
+      if (Y[0] == 0)
+	i = 0;
+      else
+	i = -1;
+    }
+  else if (Y[0] == 0)
+    i = 1;
+  else
+    {
+      if (EX > EY)
+	i = 1;
+      else if (EX < EY)
+	i = -1;
+      else
+	i = mcr (x, y, p);
+    }
+
+  return i;
+}
+#endif
+
+#ifndef NO___CPY
+/* Copy multiple precision number X into Y.  They could be the same
+   number.  */
+void
+__cpy (const mp_no *x, mp_no *y, int p)
+{
+  long i;
+
+  EY = EX;
+  for (i = 0; i <= p; i++)
+    Y[i] = X[i];
+}
+#endif
+
+#ifndef NO___MP_DBL
+/* Convert a multiple precision number *X into a double precision
+   number *Y, normalized case (|x| >= 2**(-1022))).  X has precision
+   P, which is positive.  */
+static void
+norm (const mp_no *x, double *y, int p)
+{
+# define R RADIXI
+  long i;
+  double c;
+  mantissa_t a, u, v, z[5];
+  if (p < 5)
+    {
+      if (p == 1)
+	c = X[1];
+      else if (p == 2)
+	c = X[1] + R * X[2];
+      else if (p == 3)
+	c = X[1] + R * (X[2] + R * X[3]);
+      else /* p == 4.  */
+	c = (X[1] + R * X[2]) + R * R * (X[3] + R * X[4]);
+    }
+  else
+    {
+      for (a = 1, z[1] = X[1]; z[1] < TWO23; )
+	{
+	  a *= 2;
+	  z[1] *= 2;
+	}
+
+      for (i = 2; i < 5; i++)
+	{
+	  mantissa_store_t d, r;
+	  d = X[i] * (mantissa_store_t) a;
+	  DIV_RADIX (d, r);
+	  z[i] = r;
+	  z[i - 1] += d;
+	}
+
+      u = ALIGN_DOWN_TO (z[3], TWO19);
+      v = z[3] - u;
+
+      if (v == TWO18)
+	{
+	  if (z[4] == 0)
+	    {
+	      for (i = 5; i <= p; i++)
+		{
+		  if (X[i] == 0)
+		    continue;
+		  else
+		    {
+		      z[3] += 1;
+		      break;
+		    }
+		}
+	    }
+	  else
+	    z[3] += 1;
+	}
+
+      c = (z[1] + R * (z[2] + R * z[3])) / a;
+    }
+
+  c *= X[0];
+
+  for (i = 1; i < EX; i++)
+    c *= RADIX;
+  for (i = 1; i > EX; i--)
+    c *= RADIXI;
+
+  *y = c;
+# undef R
+}
+
+/* Convert a multiple precision number *X into a double precision
+   number *Y, Denormal case  (|x| < 2**(-1022))).  */
+static void
+denorm (const mp_no *x, double *y, int p)
+{
+  long i, k;
+  long p2 = p;
+  double c;
+  mantissa_t u, z[5];
+
+# define R RADIXI
+  if (EX < -44 || (EX == -44 && X[1] < TWO5))
+    {
+      *y = 0;
+      return;
+    }
+
+  if (p2 == 1)
+    {
+      if (EX == -42)
+	{
+	  z[1] = X[1] + TWO10;
+	  z[2] = 0;
+	  z[3] = 0;
+	  k = 3;
+	}
+      else if (EX == -43)
+	{
+	  z[1] = TWO10;
+	  z[2] = X[1];
+	  z[3] = 0;
+	  k = 2;
+	}
+      else
+	{
+	  z[1] = TWO10;
+	  z[2] = 0;
+	  z[3] = X[1];
+	  k = 1;
+	}
+    }
+  else if (p2 == 2)
+    {
+      if (EX == -42)
+	{
+	  z[1] = X[1] + TWO10;
+	  z[2] = X[2];
+	  z[3] = 0;
+	  k = 3;
+	}
+      else if (EX == -43)
+	{
+	  z[1] = TWO10;
+	  z[2] = X[1];
+	  z[3] = X[2];
+	  k = 2;
+	}
+      else
+	{
+	  z[1] = TWO10;
+	  z[2] = 0;
+	  z[3] = X[1];
+	  k = 1;
+	}
+    }
+  else
+    {
+      if (EX == -42)
+	{
+	  z[1] = X[1] + TWO10;
+	  z[2] = X[2];
+	  k = 3;
+	}
+      else if (EX == -43)
+	{
+	  z[1] = TWO10;
+	  z[2] = X[1];
+	  k = 2;
+	}
+      else
+	{
+	  z[1] = TWO10;
+	  z[2] = 0;
+	  k = 1;
+	}
+      z[3] = X[k];
+    }
+
+  u = ALIGN_DOWN_TO (z[3], TWO5);
+
+  if (u == z[3])
+    {
+      for (i = k + 1; i <= p2; i++)
+	{
+	  if (X[i] == 0)
+	    continue;
+	  else
+	    {
+	      z[3] += 1;
+	      break;
+	    }
+	}
+    }
+
+  c = X[0] * ((z[1] + R * (z[2] + R * z[3])) - TWO10);
+
+  *y = c * TWOM1032;
+# undef R
+}
+
+/* Convert multiple precision number *X into double precision number *Y.  The
+   result is correctly rounded to the nearest/even.  */
+void
+__mp_dbl (const mp_no *x, double *y, int p)
+{
+  if (X[0] == 0)
+    {
+      *y = 0;
+      return;
+    }
+
+  if (__glibc_likely (EX > -42 || (EX == -42 && X[1] >= TWO10)))
+    norm (x, y, p);
+  else
+    denorm (x, y, p);
+}
+#endif
+
+/* Get the multiple precision equivalent of X into *Y.  If the precision is too
+   small, the result is truncated.  */
+void
+SECTION
+__dbl_mp (double x, mp_no *y, int p)
+{
+  long i, n;
+  long p2 = p;
+
+  /* Sign.  */
+  if (x == 0)
+    {
+      Y[0] = 0;
+      return;
+    }
+  else if (x > 0)
+    Y[0] = 1;
+  else
+    {
+      Y[0] = -1;
+      x = -x;
+    }
+
+  /* Exponent.  */
+  for (EY = 1; x >= RADIX; EY += 1)
+    x *= RADIXI;
+  for (; x < 1; EY -= 1)
+    x *= RADIX;
+
+  /* Digits.  */
+  n = MIN (p2, 4);
+  for (i = 1; i <= n; i++)
+    {
+      INTEGER_OF (x, Y[i]);
+      x *= RADIX;
+    }
+  for (; i <= p2; i++)
+    Y[i] = 0;
+}
+
+/* Add magnitudes of *X and *Y assuming that abs (*X) >= abs (*Y) > 0.  The
+   sign of the sum *Z is not changed.  X and Y may overlap but not X and Z or
+   Y and Z.  No guard digit is used.  The result equals the exact sum,
+   truncated.  */
+static void
+SECTION
+add_magnitudes (const mp_no *x, const mp_no *y, mp_no *z, int p)
+{
+  long i, j, k;
+  long p2 = p;
+  mantissa_t zk;
+
+  EZ = EX;
+
+  i = p2;
+  j = p2 + EY - EX;
+  k = p2 + 1;
+
+  if (__glibc_unlikely (j < 1))
+    {
+      __cpy (x, z, p);
+      return;
+    }
+
+  zk = 0;
+
+  for (; j > 0; i--, j--)
+    {
+      zk += X[i] + Y[j];
+      if (zk >= RADIX)
+	{
+	  Z[k--] = zk - RADIX;
+	  zk = 1;
+	}
+      else
+	{
+	  Z[k--] = zk;
+	  zk = 0;
+	}
+    }
+
+  for (; i > 0; i--)
+    {
+      zk += X[i];
+      if (zk >= RADIX)
+	{
+	  Z[k--] = zk - RADIX;
+	  zk = 1;
+	}
+      else
+	{
+	  Z[k--] = zk;
+	  zk = 0;
+	}
+    }
+
+  if (zk == 0)
+    {
+      for (i = 1; i <= p2; i++)
+	Z[i] = Z[i + 1];
+    }
+  else
+    {
+      Z[1] = zk;
+      EZ += 1;
+    }
+}
+
+/* Subtract the magnitudes of *X and *Y assuming that abs (*x) > abs (*y) > 0.
+   The sign of the difference *Z is not changed.  X and Y may overlap but not X
+   and Z or Y and Z.  One guard digit is used.  The error is less than one
+   ULP.  */
+static void
+SECTION
+sub_magnitudes (const mp_no *x, const mp_no *y, mp_no *z, int p)
+{
+  long i, j, k;
+  long p2 = p;
+  mantissa_t zk;
+
+  EZ = EX;
+  i = p2;
+  j = p2 + EY - EX;
+  k = p2;
+
+  /* Y is too small compared to X, copy X over to the result.  */
+  if (__glibc_unlikely (j < 1))
+    {
+      __cpy (x, z, p);
+      return;
+    }
+
+  /* The relevant least significant digit in Y is non-zero, so we factor it in
+     to enhance accuracy.  */
+  if (j < p2 && Y[j + 1] > 0)
+    {
+      Z[k + 1] = RADIX - Y[j + 1];
+      zk = -1;
+    }
+  else
+    zk = Z[k + 1] = 0;
+
+  /* Subtract and borrow.  */
+  for (; j > 0; i--, j--)
+    {
+      zk += (X[i] - Y[j]);
+      if (zk < 0)
+	{
+	  Z[k--] = zk + RADIX;
+	  zk = -1;
+	}
+      else
+	{
+	  Z[k--] = zk;
+	  zk = 0;
+	}
+    }
+
+  /* We're done with digits from Y, so it's just digits in X.  */
+  for (; i > 0; i--)
+    {
+      zk += X[i];
+      if (zk < 0)
+	{
+	  Z[k--] = zk + RADIX;
+	  zk = -1;
+	}
+      else
+	{
+	  Z[k--] = zk;
+	  zk = 0;
+	}
+    }
+
+  /* Normalize.  */
+  for (i = 1; Z[i] == 0; i++)
+    ;
+  EZ = EZ - i + 1;
+  for (k = 1; i <= p2 + 1; )
+    Z[k++] = Z[i++];
+  for (; k <= p2; )
+    Z[k++] = 0;
+}
+
+/* Add *X and *Y and store the result in *Z.  X and Y may overlap, but not X
+   and Z or Y and Z.  One guard digit is used.  The error is less than one
+   ULP.  */
+void
+SECTION
+__add (const mp_no *x, const mp_no *y, mp_no *z, int p)
+{
+  int n;
+
+  if (X[0] == 0)
+    {
+      __cpy (y, z, p);
+      return;
+    }
+  else if (Y[0] == 0)
+    {
+      __cpy (x, z, p);
+      return;
+    }
+
+  if (X[0] == Y[0])
+    {
+      if (__acr (x, y, p) > 0)
+	{
+	  add_magnitudes (x, y, z, p);
+	  Z[0] = X[0];
+	}
+      else
+	{
+	  add_magnitudes (y, x, z, p);
+	  Z[0] = Y[0];
+	}
+    }
+  else
+    {
+      if ((n = __acr (x, y, p)) == 1)
+	{
+	  sub_magnitudes (x, y, z, p);
+	  Z[0] = X[0];
+	}
+      else if (n == -1)
+	{
+	  sub_magnitudes (y, x, z, p);
+	  Z[0] = Y[0];
+	}
+      else
+	Z[0] = 0;
+    }
+}
+
+/* Subtract *Y from *X and return the result in *Z.  X and Y may overlap but
+   not X and Z or Y and Z.  One guard digit is used.  The error is less than
+   one ULP.  */
+void
+SECTION
+__sub (const mp_no *x, const mp_no *y, mp_no *z, int p)
+{
+  int n;
+
+  if (X[0] == 0)
+    {
+      __cpy (y, z, p);
+      Z[0] = -Z[0];
+      return;
+    }
+  else if (Y[0] == 0)
+    {
+      __cpy (x, z, p);
+      return;
+    }
+
+  if (X[0] != Y[0])
+    {
+      if (__acr (x, y, p) > 0)
+	{
+	  add_magnitudes (x, y, z, p);
+	  Z[0] = X[0];
+	}
+      else
+	{
+	  add_magnitudes (y, x, z, p);
+	  Z[0] = -Y[0];
+	}
+    }
+  else
+    {
+      if ((n = __acr (x, y, p)) == 1)
+	{
+	  sub_magnitudes (x, y, z, p);
+	  Z[0] = X[0];
+	}
+      else if (n == -1)
+	{
+	  sub_magnitudes (y, x, z, p);
+	  Z[0] = -Y[0];
+	}
+      else
+	Z[0] = 0;
+    }
+}
+
+#ifndef NO__MUL
+/* Multiply *X and *Y and store result in *Z.  X and Y may overlap but not X
+   and Z or Y and Z.  For P in [1, 2, 3], the exact result is truncated to P
+   digits.  In case P > 3 the error is bounded by 1.001 ULP.  */
+void
+SECTION
+__mul (const mp_no *x, const mp_no *y, mp_no *z, int p)
+{
+  long i, j, k, ip, ip2;
+  long p2 = p;
+  mantissa_store_t zk;
+  const mp_no *a;
+  mantissa_store_t *diag;
+
+  /* Is z=0?  */
+  if (__glibc_unlikely (X[0] * Y[0] == 0))
+    {
+      Z[0] = 0;
+      return;
+    }
+
+  /* We need not iterate through all X's and Y's since it's pointless to
+     multiply zeroes.  Here, both are zero...  */
+  for (ip2 = p2; ip2 > 0; ip2--)
+    if (X[ip2] != 0 || Y[ip2] != 0)
+      break;
+
+  a = X[ip2] != 0 ? y : x;
+
+  /* ... and here, at least one of them is still zero.  */
+  for (ip = ip2; ip > 0; ip--)
+    if (a->d[ip] != 0)
+      break;
+
+  /* The product looks like this for p = 3 (as an example):
+
+
+				a1    a2    a3
+		 x		b1    b2    b3
+		 -----------------------------
+			     a1*b3 a2*b3 a3*b3
+		       a1*b2 a2*b2 a3*b2
+		 a1*b1 a2*b1 a3*b1
+
+     So our K needs to ideally be P*2, but we're limiting ourselves to P + 3
+     for P >= 3.  We compute the above digits in two parts; the last P-1
+     digits and then the first P digits.  The last P-1 digits are a sum of
+     products of the input digits from P to P-k where K is 0 for the least
+     significant digit and increases as we go towards the left.  The product
+     term is of the form X[k]*X[P-k] as can be seen in the above example.
+
+     The first P digits are also a sum of products with the same product term,
+     except that the sum is from 1 to k.  This is also evident from the above
+     example.
+
+     Another thing that becomes evident is that only the most significant
+     ip+ip2 digits of the result are non-zero, where ip and ip2 are the
+     'internal precision' of the input numbers, i.e. digits after ip and ip2
+     are all 0.  */
+
+  k = (__glibc_unlikely (p2 < 3)) ? p2 + p2 : p2 + 3;
+
+  while (k > ip + ip2 + 1)
+    Z[k--] = 0;
+
+  zk = 0;
+
+  /* Precompute sums of diagonal elements so that we can directly use them
+     later.  See the next comment to know we why need them.  */
+  diag = alloca (k * sizeof (mantissa_store_t));
+  mantissa_store_t d = 0;
+  for (i = 1; i <= ip; i++)
+    {
+      d += X[i] * (mantissa_store_t) Y[i];
+      diag[i] = d;
+    }
+  while (i < k)
+    diag[i++] = d;
+
+  while (k > p2)
+    {
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+	/* We want to add this only once, but since we subtract it in the sum
+	   of products above, we add twice.  */
+	zk += 2 * X[lim] * (mantissa_store_t) Y[lim];
+
+      for (i = k - p2, j = p2; i < j; i++, j--)
+	zk += (X[i] + X[j]) * (mantissa_store_t) (Y[i] + Y[j]);
+
+      zk -= diag[k - 1];
+
+      DIV_RADIX (zk, Z[k]);
+      k--;
+    }
+
+  /* The real deal.  Mantissa digit Z[k] is the sum of all X[i] * Y[j] where i
+     goes from 1 -> k - 1 and j goes the same range in reverse.  To reduce the
+     number of multiplications, we halve the range and if k is an even number,
+     add the diagonal element X[k/2]Y[k/2].  Through the half range, we compute
+     X[i] * Y[j] as (X[i] + X[j]) * (Y[i] + Y[j]) - X[i] * Y[i] - X[j] * Y[j].
+
+     This reduction tells us that we're summing two things, the first term
+     through the half range and the negative of the sum of the product of all
+     terms of X and Y in the full range.  i.e.
+
+     SUM(X[i] * Y[i]) for k terms.  This is precalculated above for each k in
+     a single loop so that it completes in O(n) time and can hence be directly
+     used in the loop below.  */
+  while (k > 1)
+    {
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+	/* We want to add this only once, but since we subtract it in the sum
+	   of products above, we add twice.  */
+        zk += 2 * X[lim] * (mantissa_store_t) Y[lim];
+
+      for (i = 1, j = k - 1; i < j; i++, j--)
+	zk += (X[i] + X[j]) * (mantissa_store_t) (Y[i] + Y[j]);
+
+      zk -= diag[k - 1];
+
+      DIV_RADIX (zk, Z[k]);
+      k--;
+    }
+  Z[k] = zk;
+
+  /* Get the exponent sum into an intermediate variable.  This is a subtle
+     optimization, where given enough registers, all operations on the exponent
+     happen in registers and the result is written out only once into EZ.  */
+  int e = EX + EY;
+
+  /* Is there a carry beyond the most significant digit?  */
+  if (__glibc_unlikely (Z[1] == 0))
+    {
+      for (i = 1; i <= p2; i++)
+	Z[i] = Z[i + 1];
+      e--;
+    }
+
+  EZ = e;
+  Z[0] = X[0] * Y[0];
+}
+#endif
+
+#ifndef NO__SQR
+/* Square *X and store result in *Y.  X and Y may not overlap.  For P in
+   [1, 2, 3], the exact result is truncated to P digits.  In case P > 3 the
+   error is bounded by 1.001 ULP.  This is a faster special case of
+   multiplication.  */
+void
+SECTION
+__sqr (const mp_no *x, mp_no *y, int p)
+{
+  long i, j, k, ip;
+  mantissa_store_t yk;
+
+  /* Is z=0?  */
+  if (__glibc_unlikely (X[0] == 0))
+    {
+      Y[0] = 0;
+      return;
+    }
+
+  /* We need not iterate through all X's since it's pointless to
+     multiply zeroes.  */
+  for (ip = p; ip > 0; ip--)
+    if (X[ip] != 0)
+      break;
+
+  k = (__glibc_unlikely (p < 3)) ? p + p : p + 3;
+
+  while (k > 2 * ip + 1)
+    Y[k--] = 0;
+
+  yk = 0;
+
+  while (k > p)
+    {
+      mantissa_store_t yk2 = 0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+	yk += X[lim] * (mantissa_store_t) X[lim];
+
+      /* In __mul, this loop (and the one within the next while loop) run
+         between a range to calculate the mantissa as follows:
+
+         Z[k] = X[k] * Y[n] + X[k+1] * Y[n-1] ... + X[n-1] * Y[k+1]
+		+ X[n] * Y[k]
+
+         For X == Y, we can get away with summing halfway and doubling the
+	 result.  For cases where the range size is even, the mid-point needs
+	 to be added separately (above).  */
+      for (i = k - p, j = p; i < j; i++, j--)
+	yk2 += X[i] * (mantissa_store_t) X[j];
+
+      yk += 2 * yk2;
+
+      DIV_RADIX (yk, Y[k]);
+      k--;
+    }
+
+  while (k > 1)
+    {
+      mantissa_store_t yk2 = 0;
+      long lim = k / 2;
+
+      if (k % 2 == 0)
+	yk += X[lim] * (mantissa_store_t) X[lim];
+
+      /* Likewise for this loop.  */
+      for (i = 1, j = k - 1; i < j; i++, j--)
+	yk2 += X[i] * (mantissa_store_t) X[j];
+
+      yk += 2 * yk2;
+
+      DIV_RADIX (yk, Y[k]);
+      k--;
+    }
+  Y[k] = yk;
+
+  /* Squares are always positive.  */
+  Y[0] = 1;
+
+  /* Get the exponent sum into an intermediate variable.  This is a subtle
+     optimization, where given enough registers, all operations on the exponent
+     happen in registers and the result is written out only once into EZ.  */
+  int e = EX * 2;
+
+  /* Is there a carry beyond the most significant digit?  */
+  if (__glibc_unlikely (Y[1] == 0))
+    {
+      for (i = 1; i <= p; i++)
+	Y[i] = Y[i + 1];
+      e--;
+    }
+
+  EY = e;
+}
+#endif
+
+/* Invert *X and store in *Y.  Relative error bound:
+   - For P = 2: 1.001 * R ^ (1 - P)
+   - For P = 3: 1.063 * R ^ (1 - P)
+   - For P > 3: 2.001 * R ^ (1 - P)
+
+   *X = 0 is not permissible.  */
+static void
+SECTION
+__inv (const mp_no *x, mp_no *y, int p)
+{
+  long i;
+  double t;
+  mp_no z, w;
+  static const int np1[] =
+    { 0, 0, 0, 0, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+    4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+  };
+
+  __cpy (x, &z, p);
+  z.e = 0;
+  __mp_dbl (&z, &t, p);
+  t = 1 / t;
+  __dbl_mp (t, y, p);
+  EY -= EX;
+
+  for (i = 0; i < np1[p]; i++)
+    {
+      __cpy (y, &w, p);
+      __mul (x, &w, y, p);
+      __sub (&__mptwo, y, &z, p);
+      __mul (&w, &z, y, p);
+    }
+}
+
+/* Divide *X by *Y and store result in *Z.  X and Y may overlap but not X and Z
+   or Y and Z.  Relative error bound:
+   - For P = 2: 2.001 * R ^ (1 - P)
+   - For P = 3: 2.063 * R ^ (1 - P)
+   - For P > 3: 3.001 * R ^ (1 - P)
+
+   *X = 0 is not permissible.  */
+void
+SECTION
+__dvd (const mp_no *x, const mp_no *y, mp_no *z, int p)
+{
+  mp_no w;
+
+  if (X[0] == 0)
+    Z[0] = 0;
+  else
+    {
+      __inv (y, &w, p);
+      __mul (x, &w, z, p);
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpa.h b/REORG.TODO/sysdeps/ieee754/dbl-64/mpa.h
new file mode 100644
index 0000000000..a665e6b8f7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpa.h
@@ -0,0 +1,154 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/************************************************************************/
+/*  MODULE_NAME: mpa.h                                                  */
+/*                                                                      */
+/*  FUNCTIONS:                                                          */
+/*               mcr                                                    */
+/*               acr                                                    */
+/*               cpy                                                    */
+/*               mp_dbl                                                 */
+/*               dbl_mp                                                 */
+/*               add                                                    */
+/*               sub                                                    */
+/*               mul                                                    */
+/*               dvd                                                    */
+/*                                                                      */
+/* Arithmetic functions for multiple precision numbers.                 */
+/* Common types and definition                                          */
+/************************************************************************/
+
+#include <mpa-arch.h>
+
+/* The mp_no structure holds the details of a multi-precision floating point
+   number.
+
+   - The radix of the number (R) is 2 ^ 24.
+
+   - E: The exponent of the number.
+
+   - D[0]: The sign (-1, 1) or 0 if the value is 0.  In the latter case, the
+     values of the remaining members of the structure are ignored.
+
+   - D[1] - D[p]: The mantissa of the number where:
+
+	0 <= D[i] < R and
+	P is the precision of the number and 1 <= p <= 32
+
+     D[p+1] ... D[39] have no significance.
+
+   - The value of the number is:
+
+	D[1] * R ^ (E - 1) + D[2] * R ^ (E - 2) ... D[p] * R ^ (E - p)
+
+   */
+typedef struct
+{
+  int e;
+  mantissa_t d[40];
+} mp_no;
+
+typedef union
+{
+  int i[2];
+  double d;
+} number;
+
+extern const mp_no __mpone;
+extern const mp_no __mptwo;
+
+#define  X   x->d
+#define  Y   y->d
+#define  Z   z->d
+#define  EX  x->e
+#define  EY  y->e
+#define  EZ  z->e
+
+#ifndef RADIXI
+# define  RADIXI    0x1.0p-24		/* 2^-24   */
+#endif
+
+#ifndef TWO52
+# define  TWO52     0x1.0p52		/* 2^52    */
+#endif
+
+#define  TWO5      TWOPOW (5)		/* 2^5     */
+#define  TWO8      TWOPOW (8)		/* 2^52    */
+#define  TWO10     TWOPOW (10)		/* 2^10    */
+#define  TWO18     TWOPOW (18)		/* 2^18    */
+#define  TWO19     TWOPOW (19)		/* 2^19    */
+#define  TWO23     TWOPOW (23)		/* 2^23    */
+
+#define  HALFRAD   TWO23
+
+#define  TWO57     0x1.0p57		/* 2^57    */
+#define  TWO71     0x1.0p71		/* 2^71    */
+#define  TWOM1032  0x1.0p-1032		/* 2^-1032 */
+#define  TWOM1022  0x1.0p-1022		/* 2^-1022 */
+
+#define  HALF      0x1.0p-1		/* 1/2 */
+#define  MHALF     -0x1.0p-1		/* -1/2 */
+
+int __acr (const mp_no *, const mp_no *, int);
+void __cpy (const mp_no *, mp_no *, int);
+void __mp_dbl (const mp_no *, double *, int);
+void __dbl_mp (double, mp_no *, int);
+void __add (const mp_no *, const mp_no *, mp_no *, int);
+void __sub (const mp_no *, const mp_no *, mp_no *, int);
+void __mul (const mp_no *, const mp_no *, mp_no *, int);
+void __sqr (const mp_no *, mp_no *, int);
+void __dvd (const mp_no *, const mp_no *, mp_no *, int);
+
+extern void __mpatan (mp_no *, mp_no *, int);
+extern void __mpatan2 (mp_no *, mp_no *, mp_no *, int);
+extern void __mpsqrt (mp_no *, mp_no *, int);
+extern void __mpexp (mp_no *, mp_no *, int);
+extern void __c32 (mp_no *, mp_no *, mp_no *, int);
+extern int __mpranred (double, mp_no *, int);
+
+/* Given a power POW, build a multiprecision number 2^POW.  */
+static inline void
+__pow_mp (int pow, mp_no *y, int p)
+{
+  int i, rem;
+
+  /* The exponent is E such that E is a factor of 2^24.  The remainder (of the
+     form 2^x) goes entirely into the first digit of the mantissa as it is
+     always less than 2^24.  */
+  EY = pow / 24;
+  rem = pow - EY * 24;
+  EY++;
+
+  /* If the remainder is negative, it means that POW was negative since
+     |EY * 24| <= |pow|.  Adjust so that REM is positive and still less than
+     24 because of which, the mantissa digit is less than 2^24.  */
+  if (rem < 0)
+    {
+      EY--;
+      rem += 24;
+    }
+  /* The sign of any 2^x is always positive.  */
+  Y[0] = 1;
+  Y[1] = 1 << rem;
+
+  /* Everything else is 0.  */
+  for (i = 2; i <= p; i++)
+    Y[i] = 0;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.c
new file mode 100644
index 0000000000..b84fbc5e41
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.c
@@ -0,0 +1,116 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU  Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:mpatan.c                                           */
+/*                                                                */
+/* FUNCTIONS:mpatan                                               */
+/*                                                                */
+/* FILES NEEDED: mpa.h endian.h mpatan.h                          */
+/*               mpa.c                                            */
+/*                                                                */
+/* Multi-Precision Atan function subroutine, for precision p >= 4.*/
+/* The relative error of the result is bounded by 34.32*r**(1-p), */
+/* where r=2**24.                                                 */
+/******************************************************************/
+
+#include "endian.h"
+#include "mpa.h"
+#include <math.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+#include "mpatan.h"
+
+void
+SECTION
+__mpatan (mp_no *x, mp_no *y, int p)
+{
+  int i, m, n;
+  double dx;
+  mp_no mptwoim1 =
+  {
+    0,
+    {
+      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
+      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
+    }
+  };
+
+  mp_no mps, mpsm, mpt, mpt1, mpt2, mpt3;
+
+  /* Choose m and initiate mptwoim1.  */
+  if (EX > 0)
+    m = 7;
+  else if (EX < 0)
+    m = 0;
+  else
+    {
+      __mp_dbl (x, &dx, p);
+      dx = fabs (dx);
+      for (m = 6; m > 0; m--)
+	{
+	  if (dx > __atan_xm[m].d)
+	    break;
+	}
+    }
+  mptwoim1.e = 1;
+  mptwoim1.d[0] = 1;
+
+  /* Reduce x m times.  */
+  __sqr (x, &mpsm, p);
+  if (m == 0)
+    __cpy (x, &mps, p);
+  else
+    {
+      for (i = 0; i < m; i++)
+	{
+	  __add (&__mpone, &mpsm, &mpt1, p);
+	  __mpsqrt (&mpt1, &mpt2, p);
+	  __add (&mpt2, &mpt2, &mpt1, p);
+	  __add (&__mptwo, &mpsm, &mpt2, p);
+	  __add (&mpt1, &mpt2, &mpt3, p);
+	  __dvd (&mpsm, &mpt3, &mpt1, p);
+	  __cpy (&mpt1, &mpsm, p);
+	}
+      __mpsqrt (&mpsm, &mps, p);
+      mps.d[0] = X[0];
+    }
+
+  /* Evaluate a truncated power series for Atan(s).  */
+  n = __atan_np[p];
+  mptwoim1.d[1] = __atan_twonm1[p].d;
+  __dvd (&mpsm, &mptwoim1, &mpt, p);
+  for (i = n - 1; i > 1; i--)
+    {
+      mptwoim1.d[1] -= 2;
+      __dvd (&mpsm, &mptwoim1, &mpt1, p);
+      __mul (&mpsm, &mpt, &mpt2, p);
+      __sub (&mpt1, &mpt2, &mpt, p);
+    }
+  __mul (&mps, &mpt, &mpt1, p);
+  __sub (&mps, &mpt1, &mpt, p);
+
+  /* Compute Atan(x).  */
+  mptwoim1.d[1] = 1 << m;
+  __mul (&mptwoim1, &mpt, y, p);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.h b/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.h
new file mode 100644
index 0000000000..65c856be17
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan.h
@@ -0,0 +1,145 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:mpatan.h                                           */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef MPATAN_H
+#define MPATAN_H
+
+extern const number __atan_xm[8] attribute_hidden;
+extern const number __atan_twonm1[33] attribute_hidden;
+extern const number __atan_twom[8] attribute_hidden;
+extern const int __atan_np[33] attribute_hidden;
+
+
+#ifndef AVOID_MPATAN_H
+#ifdef BIG_ENDI
+  const number
+	    __atan_xm[8] = {                         /* x[m]   */
+/**/                  {{0x00000000, 0x00000000} }, /* 0.0    */
+/**/                  {{0x3f8930be, 0x00000000} }, /* 0.0123 */
+/**/                  {{0x3f991687, 0x00000000} }, /* 0.0245 */
+/**/                  {{0x3fa923a2, 0x00000000} }, /* 0.0491 */
+/**/                  {{0x3fb930be, 0x00000000} }, /* 0.0984 */
+/**/                  {{0x3fc95810, 0x00000000} }, /* 0.198  */
+/**/                  {{0x3fda7ef9, 0x00000000} }, /* 0.414  */
+/**/                  {{0x3ff00000, 0x00000000} }, /* 1.0    */
+		    };
+  const number
+ __atan_twonm1[33] = {                             /* 2n-1   */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x40260000, 0x00000000} }, /* 11     */
+/**/                  {{0x402e0000, 0x00000000} }, /* 15     */
+/**/                  {{0x40330000, 0x00000000} }, /* 19     */
+/**/                  {{0x40350000, 0x00000000} }, /* 21     */
+/**/                  {{0x40390000, 0x00000000} }, /* 25     */
+/**/                  {{0x403d0000, 0x00000000} }, /* 29     */
+/**/                  {{0x40408000, 0x00000000} }, /* 33     */
+/**/                  {{0x40428000, 0x00000000} }, /* 37     */
+/**/                  {{0x40448000, 0x00000000} }, /* 41     */
+/**/                  {{0x40468000, 0x00000000} }, /* 45     */
+/**/                  {{0x40488000, 0x00000000} }, /* 49     */
+/**/                  {{0x404a8000, 0x00000000} }, /* 53     */
+/**/                  {{0x404b8000, 0x00000000} }, /* 55     */
+/**/                  {{0x404d8000, 0x00000000} }, /* 59     */
+/**/                  {{0x404f8000, 0x00000000} }, /* 63     */
+/**/                  {{0x4050c000, 0x00000000} }, /* 67     */
+/**/                  {{0x4051c000, 0x00000000} }, /* 71     */
+/**/                  {{0x4052c000, 0x00000000} }, /* 75     */
+/**/                  {{0x4053c000, 0x00000000} }, /* 79     */
+/**/                  {{0x4054c000, 0x00000000} }, /* 83     */
+/**/                  {{0x40554000, 0x00000000} }, /* 85     */
+/**/                  {{0x40564000, 0x00000000} }, /* 89     */
+/**/                  {{0x40574000, 0x00000000} }, /* 93     */
+/**/                  {{0x40584000, 0x00000000} }, /* 97     */
+/**/                  {{0x40594000, 0x00000000} }, /* 101    */
+/**/                  {{0x405a4000, 0x00000000} }, /* 105    */
+/**/                  {{0x405b4000, 0x00000000} }, /* 109    */
+/**/                  {{0x405c4000, 0x00000000} }, /* 113    */
+/**/                  {{0x405d4000, 0x00000000} }, /* 117    */
+		    };
+
+#else
+#ifdef LITTLE_ENDI
+
+  const number
+      __atan_xm[8] = {                             /* x[m]   */
+/**/                  {{0x00000000, 0x00000000} }, /* 0.0    */
+/**/                  {{0x00000000, 0x3f8930be} }, /* 0.0123 */
+/**/                  {{0x00000000, 0x3f991687} }, /* 0.0245 */
+/**/                  {{0x00000000, 0x3fa923a2} }, /* 0.0491 */
+/**/                  {{0x00000000, 0x3fb930be} }, /* 0.0984 */
+/**/                  {{0x00000000, 0x3fc95810} }, /* 0.198  */
+/**/                  {{0x00000000, 0x3fda7ef9} }, /* 0.414  */
+/**/                  {{0x00000000, 0x3ff00000} }, /* 1.0    */
+		    };
+  const number
+__atan_twonm1[33] = {                             /* 2n-1   */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x00000000, 0x00000000} }, /* 0      */
+/**/                  {{0x00000000, 0x40260000} }, /* 11     */
+/**/                  {{0x00000000, 0x402e0000} }, /* 15     */
+/**/                  {{0x00000000, 0x40330000} }, /* 19     */
+/**/                  {{0x00000000, 0x40350000} }, /* 21     */
+/**/                  {{0x00000000, 0x40390000} }, /* 25     */
+/**/                  {{0x00000000, 0x403d0000} }, /* 29     */
+/**/                  {{0x00000000, 0x40408000} }, /* 33     */
+/**/                  {{0x00000000, 0x40428000} }, /* 37     */
+/**/                  {{0x00000000, 0x40448000} }, /* 41     */
+/**/                  {{0x00000000, 0x40468000} }, /* 45     */
+/**/                  {{0x00000000, 0x40488000} }, /* 49     */
+/**/                  {{0x00000000, 0x404a8000} }, /* 53     */
+/**/                  {{0x00000000, 0x404b8000} }, /* 55     */
+/**/                  {{0x00000000, 0x404d8000} }, /* 59     */
+/**/                  {{0x00000000, 0x404f8000} }, /* 63     */
+/**/                  {{0x00000000, 0x4050c000} }, /* 67     */
+/**/                  {{0x00000000, 0x4051c000} }, /* 71     */
+/**/                  {{0x00000000, 0x4052c000} }, /* 75     */
+/**/                  {{0x00000000, 0x4053c000} }, /* 79     */
+/**/                  {{0x00000000, 0x4054c000} }, /* 83     */
+/**/                  {{0x00000000, 0x40554000} }, /* 85     */
+/**/                  {{0x00000000, 0x40564000} }, /* 89     */
+/**/                  {{0x00000000, 0x40574000} }, /* 93     */
+/**/                  {{0x00000000, 0x40584000} }, /* 97     */
+/**/                  {{0x00000000, 0x40594000} }, /* 101    */
+/**/                  {{0x00000000, 0x405a4000} }, /* 105    */
+/**/                  {{0x00000000, 0x405b4000} }, /* 109    */
+/**/                  {{0x00000000, 0x405c4000} }, /* 113    */
+/**/                  {{0x00000000, 0x405d4000} }, /* 117    */
+		    };
+
+#endif
+#endif
+
+  const int
+    __atan_np[33] = { 0, 0, 0, 0, 6, 8,10,11,13,15,17,19,21,23,25,27,28,
+		      30,32,34,36,38,40,42,43,45,47,49,51,53,55,57,59};
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan2.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan2.c
new file mode 100644
index 0000000000..94e4a66148
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpatan2.c
@@ -0,0 +1,67 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/******************************************************************/
+/*  MODULE_NAME: mpatan2.c                                        */
+/*                                                                */
+/*  FUNCTIONS:mpatan2                                             */
+/*                                                                */
+/*  FILES NEEDED: mpa.h                                           */
+/*                mpa.c mpatan.c mpsqrt.c                         */
+/*                                                                */
+/* Multi-Precision Atan2(y,x) function subroutine,                */
+/* for precision p >= 4.                                          */
+/* y=0 is not permitted if x<=0. No error messages are given.     */
+/* The relative error of the result is bounded by 44.84*r**(1-p)  */
+/* if x <= 0,  y != 0 and by 37.33*r**(1-p) if x>0. here r=2**24. */
+/*                                                                */
+/******************************************************************/
+
+#include "mpa.h"
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+/* Multi-Precision Atan2 (y, x) function subroutine, for p >= 4.
+   y = 0 is not permitted if x <= 0. No error messages are given.  */
+void
+SECTION
+__mpatan2 (mp_no *y, mp_no *x, mp_no *z, int p)
+{
+  mp_no mpt1, mpt2, mpt3;
+
+  if (X[0] <= 0)
+    {
+      __dvd (x, y, &mpt1, p);
+      __mul (&mpt1, &mpt1, &mpt2, p);
+      if (mpt1.d[0] != 0)
+	mpt1.d[0] = 1;
+      __add (&mpt2, &__mpone, &mpt3, p);
+      __mpsqrt (&mpt3, &mpt2, p);
+      __add (&mpt1, &mpt2, &mpt3, p);
+      mpt3.d[0] = Y[0];
+      __mpatan (&mpt3, &mpt1, p);
+      __add (&mpt1, &mpt1, z, p);
+    }
+  else
+    {
+      __dvd (y, x, &mpt1, p);
+      __mpatan (&mpt1, z, p);
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpexp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mpexp.c
new file mode 100644
index 0000000000..e08f424133
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpexp.c
@@ -0,0 +1,163 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU  Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/*************************************************************************/
+/*   MODULE_NAME:mpexp.c                                                 */
+/*                                                                       */
+/*   FUNCTIONS: mpexp                                                    */
+/*                                                                       */
+/*   FILES NEEDED: mpa.h endian.h mpexp.h                                */
+/*                 mpa.c                                                 */
+/*                                                                       */
+/* Multi-Precision exponential function subroutine                       */
+/*   (  for p >= 4, 2**(-55) <= abs(x) <= 1024     ).                    */
+/*************************************************************************/
+
+#include "endian.h"
+#include "mpa.h"
+#include <assert.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+/* Multi-Precision exponential function subroutine (for p >= 4,
+   2**(-55) <= abs(x) <= 1024).  */
+void
+SECTION
+__mpexp (mp_no *x, mp_no *y, int p)
+{
+  int i, j, k, m, m1, m2, n;
+  mantissa_t b;
+  static const int np[33] =
+    {
+      0, 0, 0, 0, 3, 3, 4, 4, 5, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6,
+      6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8
+    };
+
+  static const int m1p[33] =
+    {
+      0, 0, 0, 0,
+      17, 23, 23, 28,
+      27, 38, 42, 39,
+      43, 47, 43, 47,
+      50, 54, 57, 60,
+      64, 67, 71, 74,
+      68, 71, 74, 77,
+      70, 73, 76, 78,
+      81
+    };
+  static const int m1np[7][18] =
+    {
+      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 36, 48, 60, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 24, 32, 40, 48, 56, 64, 72, 0, 0, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 17, 23, 29, 35, 41, 47, 53, 59, 65, 0, 0, 0, 0, 0},
+      {0, 0, 0, 0, 0, 0, 23, 28, 33, 38, 42, 47, 52, 57, 62, 66, 0, 0},
+      {0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 39, 43, 47, 51, 55, 59, 63},
+      {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 47, 50, 54}
+    };
+  mp_no mps, mpk, mpt1, mpt2;
+
+  /* Choose m,n and compute a=2**(-m).  */
+  n = np[p];
+  m1 = m1p[p];
+  b = X[1];
+  m2 = 24 * EX;
+  for (; b < HALFRAD; m2--)
+    b *= 2;
+  if (b == HALFRAD)
+    {
+      for (i = 2; i <= p; i++)
+	{
+	  if (X[i] != 0)
+	    break;
+	}
+      if (i == p + 1)
+	m2--;
+    }
+
+  m = m1 + m2;
+  if (__glibc_unlikely (m <= 0))
+    {
+      /* The m1np array which is used to determine if we can reduce the
+	 polynomial expansion iterations, has only 18 elements.  Besides,
+	 numbers smaller than those required by p >= 18 should not come here
+	 at all since the fast phase of exp returns 1.0 for anything less
+	 than 2^-55.  */
+      assert (p < 18);
+      m = 0;
+      for (i = n - 1; i > 0; i--, n--)
+	if (m1np[i][p] + m2 > 0)
+	  break;
+    }
+
+  /* Compute s=x*2**(-m). Put result in mps.  This is the range-reduced input
+     that we will use to compute e^s.  For the final result, simply raise it
+     to 2^m.  */
+  __pow_mp (-m, &mpt1, p);
+  __mul (x, &mpt1, &mps, p);
+
+  /* Compute the Taylor series for e^s:
+
+         1 + x/1! + x^2/2! + x^3/3! ...
+
+     for N iterations.  We compute this as:
+
+         e^x = 1 + (x * n!/1! + x^2 * n!/2! + x^3 * n!/3!) / n!
+             = 1 + (x * (n!/1! + x * (n!/2! + x * (n!/3! + x ...)))) / n!
+
+     k! is computed on the fly as KF and at the end of the polynomial loop, KF
+     is n!, which can be used directly.  */
+  __cpy (&mps, &mpt2, p);
+
+  double kf = 1.0;
+
+  /* Evaluate the rest.  The result will be in mpt2.  */
+  for (k = n - 1; k > 0; k--)
+    {
+      /* n! / k! = n * (n - 1) ... * (n - k + 1) */
+      kf *= k + 1;
+
+      __dbl_mp (kf, &mpk, p);
+      __add (&mpt2, &mpk, &mpt1, p);
+      __mul (&mps, &mpt1, &mpt2, p);
+    }
+  __dbl_mp (kf, &mpk, p);
+  __dvd (&mpt2, &mpk, &mpt1, p);
+  __add (&__mpone, &mpt1, &mpt2, p);
+
+  /* Raise polynomial value to the power of 2**m. Put result in y.  */
+  for (k = 0, j = 0; k < m;)
+    {
+      __sqr (&mpt2, &mpt1, p);
+      k++;
+      if (k == m)
+	{
+	  j = 1;
+	  break;
+	}
+      __sqr (&mpt1, &mpt2, p);
+      k++;
+    }
+  if (j)
+    __cpy (&mpt1, y, p);
+  else
+    __cpy (&mpt2, y, p);
+  return;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mplog.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mplog.c
new file mode 100644
index 0000000000..5b03117d07
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mplog.c
@@ -0,0 +1,65 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/************************************************************************/
+/*                                                                      */
+/*     MODULE_NAME:mplog.c                                              */
+/*                                                                      */
+/*     FUNCTIONS:  mplog                                                */
+/*                                                                      */
+/*     FILES NEEDED: endian.h mpa.h  mplog.h                            */
+/*                    mpexp.c                                           */
+/*                                                                      */
+/* Multi-Precision logarithm function subroutine (for precision p >= 4, */
+/* 2**(-1024) < x < 2**1024) and x is outside of the interval           */
+/* [1-2**(-54),1+2**(-54)]. Upon entry, x should be set to the          */
+/* multi-precision value of the input and y should be set into a multi- */
+/* precision value of an approximation of log(x) with relative error    */
+/* bound of at most 2**(-52). The routine improves the accuracy of y.   */
+/*                                                                      */
+/************************************************************************/
+#include "endian.h"
+#include "mpa.h"
+
+void
+__mplog (mp_no *x, mp_no *y, int p)
+{
+  int i, m;
+  static const int mp[33] =
+    {
+      0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
+      4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
+    };
+  mp_no mpt1, mpt2;
+
+  /* Choose m.  */
+  m = mp[p];
+
+  /* Perform m newton iterations to solve for y: exp(y) - x = 0.  The
+     iterations formula is:  y(n + 1) = y(n) + (x * exp(-y(n)) - 1).   */
+  __cpy (y, &mpt1, p);
+  for (i = 0; i < m; i++)
+    {
+      mpt1.d[0] = -mpt1.d[0];
+      __mpexp (&mpt1, &mpt2, p);
+      __mul (x, &mpt2, &mpt1, p);
+      __sub (&mpt1, &__mpone, &mpt2, p);
+      __add (y, &mpt2, &mpt1, p);
+      __cpy (&mpt1, y, p);
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpn2dbl.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mpn2dbl.c
new file mode 100644
index 0000000000..1fec0ce920
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpn2dbl.c
@@ -0,0 +1,47 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include <ieee754.h>
+#include <float.h>
+
+/* Convert a multi-precision integer of the needed number of bits (53 for
+   double) and an integral power of two to a `double' in IEEE754 double-
+   precision format.  */
+
+double
+__mpn_construct_double (mp_srcptr frac_ptr, int expt, int negative)
+{
+  union ieee754_double u;
+
+  u.ieee.negative = negative;
+  u.ieee.exponent = expt + IEEE754_DOUBLE_BIAS;
+#if BITS_PER_MP_LIMB == 32
+  u.ieee.mantissa1 = frac_ptr[0];
+  u.ieee.mantissa0 = frac_ptr[1] & (((mp_limb_t) 1
+				     << (DBL_MANT_DIG - 32)) - 1);
+#elif BITS_PER_MP_LIMB == 64
+  u.ieee.mantissa1 = frac_ptr[0] & (((mp_limb_t) 1 << 32) - 1);
+  u.ieee.mantissa0 = (frac_ptr[0] >> 32) & (((mp_limb_t) 1
+					     << (DBL_MANT_DIG - 32)) - 1);
+#else
+  # error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+
+  return u.d;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.c
new file mode 100644
index 0000000000..be6d01eeef
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.c
@@ -0,0 +1,111 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/****************************************************************************/
+/*  MODULE_NAME:mpsqrt.c                                                    */
+/*                                                                          */
+/*  FUNCTION:mpsqrt                                                         */
+/*           fastiroot                                                      */
+/*                                                                          */
+/* FILES NEEDED:endian.h mpa.h mpsqrt.h                                     */
+/*              mpa.c                                                       */
+/* Multi-Precision square root function subroutine for precision p >= 4.    */
+/* The relative error is bounded by 3.501*r**(1-p), where r=2**24.          */
+/*                                                                          */
+/****************************************************************************/
+#include "endian.h"
+#include "mpa.h"
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+#include "mpsqrt.h"
+
+/****************************************************************************/
+/* Multi-Precision square root function subroutine for precision p >= 4.    */
+/* The relative error is bounded by 3.501*r**(1-p), where r=2**24.          */
+/* Routine receives two pointers to  Multi Precision numbers:               */
+/* x (left argument) and y (next argument). Routine also receives precision */
+/* p as integer. Routine computes sqrt(*x) and stores result in *y          */
+/****************************************************************************/
+
+static double fastiroot (double);
+
+void
+SECTION
+__mpsqrt (mp_no *x, mp_no *y, int p)
+{
+  int i, m, ey;
+  double dx, dy;
+  static const mp_no mphalf = {0, {1.0, HALFRAD}};
+  static const mp_no mp3halfs = {1, {1.0, 1.0, HALFRAD}};
+  mp_no mpxn, mpz, mpu, mpt1, mpt2;
+
+  ey = EX / 2;
+  __cpy (x, &mpxn, p);
+  mpxn.e -= (ey + ey);
+  __mp_dbl (&mpxn, &dx, p);
+  dy = fastiroot (dx);
+  __dbl_mp (dy, &mpu, p);
+  __mul (&mpxn, &mphalf, &mpz, p);
+
+  m = __mpsqrt_mp[p];
+  for (i = 0; i < m; i++)
+    {
+      __sqr (&mpu, &mpt1, p);
+      __mul (&mpt1, &mpz, &mpt2, p);
+      __sub (&mp3halfs, &mpt2, &mpt1, p);
+      __mul (&mpu, &mpt1, &mpt2, p);
+      __cpy (&mpt2, &mpu, p);
+    }
+  __mul (&mpxn, &mpu, y, p);
+  EY += ey;
+}
+
+/***********************************************************/
+/* Compute a double precision approximation for 1/sqrt(x)  */
+/* with the relative error bounded by 2**-51.              */
+/***********************************************************/
+static double
+SECTION
+fastiroot (double x)
+{
+  union
+  {
+    int i[2];
+    double d;
+  } p, q;
+  double y, z, t;
+  int n;
+  static const double c0 = 0.99674, c1 = -0.53380;
+  static const double c2 = 0.45472, c3 = -0.21553;
+
+  p.d = x;
+  p.i[HIGH_HALF] = (p.i[HIGH_HALF] & 0x3FFFFFFF) | 0x3FE00000;
+  q.d = x;
+  y = p.d;
+  z = y - 1.0;
+  n = (q.i[HIGH_HALF] - p.i[HIGH_HALF]) >> 1;
+  z = ((c3 * z + c2) * z + c1) * z + c0;	/* 2**-7         */
+  z = z * (1.5 - 0.5 * y * z * z);		/* 2**-14        */
+  p.d = z * (1.5 - 0.5 * y * z * z);		/* 2**-28        */
+  p.i[HIGH_HALF] -= n;
+  t = x * p.d;
+  return p.d * (1.5 - 0.5 * p.d * t);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.h b/REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.h
new file mode 100644
index 0000000000..66c3dc684f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mpsqrt.h
@@ -0,0 +1,38 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:mpatan.h                                           */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef MPSQRT_H
+#define MPSQRT_H
+
+extern const int __mpsqrt_mp[33] attribute_hidden;
+
+
+#ifndef AVOID_MPSQRT_H
+  const int __mpsqrt_mp[33] = {0,0,0,0,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,
+			     4,4,4,4,4,4,4,4,4};
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mptan.c b/REORG.TODO/sysdeps/ieee754/dbl-64/mptan.c
new file mode 100644
index 0000000000..6976028f8f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mptan.c
@@ -0,0 +1,63 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/**********************************************************************/
+/* MODULE_NAME:mptan.c                                                */
+/*                                                                    */
+/* FUNCTION: mptan                                                    */
+/*                                                                    */
+/* FILES NEEDED: endian.h  mpa.h                                      */
+/*               mpa.c  sincos32.c branred.c                          */
+/*                                                                    */
+/* Multi-Precision tan() function subroutine, for p=32.  It is based  */
+/* on the routines mpranred() and c32(). mpranred() performs range    */
+/* reduction of a double number x into a multiple precision number    */
+/* y, such that y=x-n*pi/2, abs(y)<pi/4, n=0,+-1,+-2,....  c32()      */
+/* computes both sin(y), cos(y).  tan(x) is either sin(y)/cos(y)      */
+/* or -cos(y)/sin(y). The precision of the result is of about 559     */
+/* significant bits.                                                  */
+/*                                                                    */
+/**********************************************************************/
+#include "endian.h"
+#include "mpa.h"
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+void
+SECTION
+__mptan (double x, mp_no *mpy, int p)
+{
+  int n;
+  mp_no mpw, mpc, mps;
+
+  /* Negative or positive result.  */
+  n = __mpranred (x, &mpw, p) & 0x00000001;
+  /* Computing sin(x) and cos(x).  */
+  __c32 (&mpw, &mpc, &mps, p);
+  /* Second or fourth quarter of unit circle.  */
+  if (n)
+    {
+      __dvd (&mpc, &mps, mpy, p);
+      mpy->d[0] *= -1;
+    }
+  /* tan is negative in this area.  */
+  else
+    __dvd (&mps, &mpc, mpy, p);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/mydefs.h b/REORG.TODO/sysdeps/ieee754/dbl-64/mydefs.h
new file mode 100644
index 0000000000..027398e861
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/mydefs.h
@@ -0,0 +1,35 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:mydefs.h                                           */
+/*                                                                */
+/* common data and definition                                     */
+/******************************************************************/
+
+#ifndef MY_H
+#define MY_H
+
+typedef int int4;
+typedef union { int4 i[2]; double x; } mynumber;
+
+#define max(x, y)  (((y) > (x)) ? (y) : (x))
+#define min(x, y)  (((y) < (x)) ? (y) : (x))
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/powtwo.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/powtwo.tbl
new file mode 100644
index 0000000000..7d5ae52174
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/powtwo.tbl
@@ -0,0 +1,31 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/****************************************************************/
+/* TABLES FOR THE upow() FUNCTION                               */
+/****************************************************************/
+
+
+
+static const double powtwo[] = { 1.0,  2.0,  4.0,
+         8.0,          16.0,          32.0,          64.0,         128.0,
+       256.0,         512.0,        1024.0,        2048.0,        4096.0,
+      8192.0,       16384.0,       32768.0,       65536.0,      131072.0,
+    262144.0,      524288.0,     1048576.0,     2097152.0,     4194304.0,
+   8388608.0,    16777216.0,    33554432.0,    67108864.0,   134217728.0 };
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/root.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/root.tbl
new file mode 100644
index 0000000000..6d2760aa1f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/root.tbl
@@ -0,0 +1,57 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/****************************************************************/
+/* TABLES FOR THE usqrt() FUNCTION                              */
+/****************************************************************/
+
+
+static const double inroot[128] = {
+  1.40872145012100,  1.39792649065766,  1.38737595123859,  1.37706074531819,
+  1.36697225234682,  1.35710228748795,  1.34744307370643,  1.33798721601135,
+  1.32872767765984,  1.31965775814772,  1.31077107283046,  1.30206153403386,
+  1.29352333352711,  1.28515092624400,  1.27693901514820,  1.26888253714903,
+  1.26097664998256,  1.25321671998073,  1.24559831065844,  1.23811717205462,
+  1.23076923076923,  1.22355058064300,  1.21645747403153,  1.20948631362953,
+  1.20263364480453,  1.19589614840310,  1.18927063399547,  1.18275403352732,
+  1.17634339535009,  1.17003587860341,  1.16382874792529,  1.15771936846787,
+  1.15170520119791,  1.14578379846309,  1.13995279980655,  1.13420992801334,
+  1.12855298537376,  1.12297985014975,  1.11748847323133,  1.11207687497107,
+  1.10674314218572,  1.10148542531442,  1.09630193572405,  1.09119094315276,
+  1.08615077328341,  1.08117980543918,  1.07627647039410,  1.07143924829188,
+  1.06666666666667,  1.06195729855996,  1.05730976072814,  1.05272271193563,
+  1.04819485132867,  1.04372491688551,  1.03931168393861,  1.03495396376504,
+  1.03065060224133,  1.02640047855933,  1.02220250399990,  1.01805562076124,
+  1.01395880083916,  1.00991104495649,  1.00591138153909,  1.00195886573624,
+  0.99611649018350,  0.98848330114434,  0.98102294317595,  0.97372899112030,
+  0.96659534932828,  0.95961623024651,  0.95278613468066,  0.94609983358253,
+  0.93955235122353,  0.93313894963169,  0.92685511418159,  0.92069654023750,
+  0.91465912076005,  0.90873893479530,  0.90293223677296,  0.89723544654727,
+  0.89164514012056,  0.88615804099474,  0.88077101210109,  0.87548104826333,
+  0.87028526915267,  0.86518091269740,  0.86016532891275,  0.85523597411976,
+  0.85039040552437,  0.84562627613070,  0.84094132996422,  0.83633339758291,
+  0.83180039185606,  0.82734030399203,  0.82295119979782,  0.81863121615464,
+  0.81437855769486,  0.81019149366693,  0.80606835497581,  0.80200753138734,
+  0.79800746888611,  0.79406666717674,  0.79018367731967,  0.78635709949278,
+  0.78258558087123,  0.77886781361798,  0.77520253297841,  0.77158851547266,
+  0.76802457717971,  0.76450957210799,  0.76104239064719,  0.75762195809661,
+  0.75424723326565,  0.75091720714229,  0.74763090162560,  0.74438736831878,
+  0.74118568737933,  0.73802496642311,  0.73490433947940,  0.73182296599416,
+  0.72878002987884,  0.72577473860242,  0.72280632232420,  0.71987403306536,
+  0.71697714391715,  0.71411494828392,  0.71128675915902,  0.70849190843208 };
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_asinh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_asinh.c
new file mode 100644
index 0000000000..9193301b5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_asinh.c
@@ -0,0 +1,72 @@
+/* @(#)s_asinh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* asinh(x)
+ * Method :
+ *	Based on
+ *		asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
+ *	we have
+ *	asinh(x) := x  if  1+x*x=1,
+ *		 := sign(x)*(log(x)+ln2)) for large |x|, else
+ *		 := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else
+ *		 := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+  ln2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */
+  huge = 1.00000000000000000000e+300;
+
+double
+__asinh (double x)
+{
+  double w;
+  int32_t hx, ix;
+  GET_HIGH_WORD (hx, x);
+  ix = hx & 0x7fffffff;
+  if (__glibc_unlikely (ix < 0x3e300000))                  /* |x|<2**-28 */
+    {
+      math_check_force_underflow (x);
+      if (huge + x > one)
+	return x;                       /* return x inexact except 0 */
+    }
+  if (__glibc_unlikely (ix > 0x41b00000))                  /* |x| > 2**28 */
+    {
+      if (ix >= 0x7ff00000)
+	return x + x;                           /* x is inf or NaN */
+      w = __ieee754_log (fabs (x)) + ln2;
+    }
+  else
+    {
+      double xa = fabs (x);
+      if (ix > 0x40000000)              /* 2**28 > |x| > 2.0 */
+	{
+	  w = __ieee754_log (2.0 * xa + one / (__ieee754_sqrt (xa * xa + one) +
+              xa));
+	}
+      else                      /* 2.0 > |x| > 2**-28 */
+	{
+	  double t = xa * xa;
+	  w = __log1p (xa + t / (one + __ieee754_sqrt (one + t)));
+	}
+    }
+  return __copysign (w, x);
+}
+weak_alias (__asinh, asinh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__asinh, __asinhl)
+weak_alias (__asinh, asinhl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_atan.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_atan.c
new file mode 100644
index 0000000000..3641a35ce1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_atan.c
@@ -0,0 +1,328 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/************************************************************************/
+/*  MODULE_NAME: atnat.c                                                */
+/*                                                                      */
+/*  FUNCTIONS:  uatan                                                   */
+/*              atanMp                                                  */
+/*              signArctan                                              */
+/*                                                                      */
+/*                                                                      */
+/*  FILES NEEDED: dla.h endian.h mpa.h mydefs.h atnat.h                 */
+/*                mpatan.c mpatan2.c mpsqrt.c                           */
+/*                uatan.tbl                                             */
+/*                                                                      */
+/* An ultimate atan() routine. Given an IEEE double machine number x    */
+/* it computes the correctly rounded (to nearest) value of atan(x).     */
+/*                                                                      */
+/* Assumption: Machine arithmetic operations are performed in           */
+/* round to nearest mode of IEEE 754 standard.                          */
+/*                                                                      */
+/************************************************************************/
+
+#include <dla.h>
+#include "mpa.h"
+#include "MathLib.h"
+#include "uatan.tbl"
+#include "atnat.h"
+#include <fenv.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <stap-probe.h>
+
+void __mpatan (mp_no *, mp_no *, int);	/* see definition in mpatan.c */
+static double atanMp (double, const int[]);
+
+  /* Fix the sign of y and return */
+static double
+__signArctan (double x, double y)
+{
+  return __copysign (y, x);
+}
+
+
+/* An ultimate atan() routine. Given an IEEE double machine number x,    */
+/* routine computes the correctly rounded (to nearest) value of atan(x). */
+double
+atan (double x)
+{
+  double cor, s1, ss1, s2, ss2, t1, t2, t3, t7, t8, t9, t10, u, u2, u3,
+	 v, vv, w, ww, y, yy, z, zz;
+#ifndef DLA_FMS
+  double t4, t5, t6;
+#endif
+  int i, ux, dx;
+  static const int pr[M] = { 6, 8, 10, 32 };
+  number num;
+
+  num.d = x;
+  ux = num.i[HIGH_HALF];
+  dx = num.i[LOW_HALF];
+
+  /* x=NaN */
+  if (((ux & 0x7ff00000) == 0x7ff00000)
+      && (((ux & 0x000fffff) | dx) != 0x00000000))
+    return x + x;
+
+  /* Regular values of x, including denormals +-0 and +-INF */
+  SET_RESTORE_ROUND (FE_TONEAREST);
+  u = (x < 0) ? -x : x;
+  if (u < C)
+    {
+      if (u < B)
+	{
+	  if (u < A)
+	    {
+	      math_check_force_underflow_nonneg (u);
+	      return x;
+	    }
+	  else
+	    {			/* A <= u < B */
+	      v = x * x;
+	      yy = d11.d + v * d13.d;
+	      yy = d9.d + v * yy;
+	      yy = d7.d + v * yy;
+	      yy = d5.d + v * yy;
+	      yy = d3.d + v * yy;
+	      yy *= x * v;
+
+	      if ((y = x + (yy - U1 * x)) == x + (yy + U1 * x))
+		return y;
+
+	      EMULV (x, x, v, vv, t1, t2, t3, t4, t5);	/* v+vv=x^2 */
+
+	      s1 = f17.d + v * f19.d;
+	      s1 = f15.d + v * s1;
+	      s1 = f13.d + v * s1;
+	      s1 = f11.d + v * s1;
+	      s1 *= v;
+
+	      ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      MUL2 (x, 0, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7,
+		    t8);
+	      ADD2 (x, 0, s2, ss2, s1, ss1, t1, t2);
+	      if ((y = s1 + (ss1 - U5 * s1)) == s1 + (ss1 + U5 * s1))
+		return y;
+
+	      return atanMp (x, pr);
+	    }
+	}
+      else
+	{			/* B <= u < C */
+	  i = (TWO52 + TWO8 * u) - TWO52;
+	  i -= 16;
+	  z = u - cij[i][0].d;
+	  yy = cij[i][5].d + z * cij[i][6].d;
+	  yy = cij[i][4].d + z * yy;
+	  yy = cij[i][3].d + z * yy;
+	  yy = cij[i][2].d + z * yy;
+	  yy *= z;
+
+	  t1 = cij[i][1].d;
+	  if (i < 112)
+	    {
+	      if (i < 48)
+		u2 = U21;	/* u < 1/4        */
+	      else
+		u2 = U22;
+	    }			/* 1/4 <= u < 1/2 */
+	  else
+	    {
+	      if (i < 176)
+		u2 = U23;	/* 1/2 <= u < 3/4 */
+	      else
+		u2 = U24;
+	    }			/* 3/4 <= u <= 1  */
+	  if ((y = t1 + (yy - u2 * t1)) == t1 + (yy + u2 * t1))
+	    return __signArctan (x, y);
+
+	  z = u - hij[i][0].d;
+
+	  s1 = hij[i][14].d + z * hij[i][15].d;
+	  s1 = hij[i][13].d + z * s1;
+	  s1 = hij[i][12].d + z * s1;
+	  s1 = hij[i][11].d + z * s1;
+	  s1 *= z;
+
+	  ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+	  MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (z, 0, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+	  if ((y = s2 + (ss2 - U6 * s2)) == s2 + (ss2 + U6 * s2))
+	    return __signArctan (x, y);
+
+	  return atanMp (x, pr);
+	}
+    }
+  else
+    {
+      if (u < D)
+	{			/* C <= u < D */
+	  w = 1 / u;
+	  EMULV (w, u, t1, t2, t3, t4, t5, t6, t7);
+	  ww = w * ((1 - t1) - t2);
+	  i = (TWO52 + TWO8 * w) - TWO52;
+	  i -= 16;
+	  z = (w - cij[i][0].d) + ww;
+
+	  yy = cij[i][5].d + z * cij[i][6].d;
+	  yy = cij[i][4].d + z * yy;
+	  yy = cij[i][3].d + z * yy;
+	  yy = cij[i][2].d + z * yy;
+	  yy = HPI1 - z * yy;
+
+	  t1 = HPI - cij[i][1].d;
+	  if (i < 112)
+	    u3 = U31;           /* w <  1/2 */
+	  else
+	    u3 = U32;           /* w >= 1/2 */
+	  if ((y = t1 + (yy - u3)) == t1 + (yy + u3))
+	    return __signArctan (x, y);
+
+	  DIV2 (1, 0, u, 0, w, ww, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+		t10);
+	  t1 = w - hij[i][0].d;
+	  EADD (t1, ww, z, zz);
+
+	  s1 = hij[i][14].d + z * hij[i][15].d;
+	  s1 = hij[i][13].d + z * s1;
+	  s1 = hij[i][12].d + z * s1;
+	  s1 = hij[i][11].d + z * s1;
+	  s1 *= z;
+
+	  ADD2 (hij[i][9].d, hij[i][10].d, s1, 0, s2, ss2, t1, t2);
+	  MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][7].d, hij[i][8].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][5].d, hij[i][6].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][3].d, hij[i][4].d, s1, ss1, s2, ss2, t1, t2);
+	  MUL2 (z, zz, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (hij[i][1].d, hij[i][2].d, s1, ss1, s2, ss2, t1, t2);
+	  SUB2 (HPI, HPI1, s2, ss2, s1, ss1, t1, t2);
+	  if ((y = s1 + (ss1 - U7)) == s1 + (ss1 + U7))
+	    return __signArctan (x, y);
+
+	  return atanMp (x, pr);
+	}
+      else
+	{
+	  if (u < E)
+	    {                   /* D <= u < E */
+	      w = 1 / u;
+	      v = w * w;
+	      EMULV (w, u, t1, t2, t3, t4, t5, t6, t7);
+
+	      yy = d11.d + v * d13.d;
+	      yy = d9.d + v * yy;
+	      yy = d7.d + v * yy;
+	      yy = d5.d + v * yy;
+	      yy = d3.d + v * yy;
+	      yy *= w * v;
+
+	      ww = w * ((1 - t1) - t2);
+	      ESUB (HPI, w, t3, cor);
+	      yy = ((HPI1 + cor) - ww) - yy;
+	      if ((y = t3 + (yy - U4)) == t3 + (yy + U4))
+		return __signArctan (x, y);
+
+	      DIV2 (1, 0, u, 0, w, ww, t1, t2, t3, t4, t5, t6, t7, t8,
+		    t9, t10);
+	      MUL2 (w, ww, w, ww, v, vv, t1, t2, t3, t4, t5, t6, t7, t8);
+
+	      s1 = f17.d + v * f19.d;
+	      s1 = f15.d + v * s1;
+	      s1 = f13.d + v * s1;
+	      s1 = f11.d + v * s1;
+	      s1 *= v;
+
+	      ADD2 (f9.d, ff9.d, s1, 0, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f7.d, ff7.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f5.d, ff5.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (f3.d, ff3.d, s1, ss1, s2, ss2, t1, t2);
+	      MUL2 (v, vv, s2, ss2, s1, ss1, t1, t2, t3, t4, t5, t6, t7, t8);
+	      MUL2 (w, ww, s1, ss1, s2, ss2, t1, t2, t3, t4, t5, t6, t7, t8);
+	      ADD2 (w, ww, s2, ss2, s1, ss1, t1, t2);
+	      SUB2 (HPI, HPI1, s1, ss1, s2, ss2, t1, t2);
+
+	      if ((y = s2 + (ss2 - U8)) == s2 + (ss2 + U8))
+		return __signArctan (x, y);
+
+	      return atanMp (x, pr);
+	    }
+	  else
+	    {
+	      /* u >= E */
+	      if (x > 0)
+		return HPI;
+	      else
+		return MHPI;
+	    }
+	}
+    }
+}
+
+ /* Final stages. Compute atan(x) by multiple precision arithmetic */
+static double
+atanMp (double x, const int pr[])
+{
+  mp_no mpx, mpy, mpy2, mperr, mpt1, mpy1;
+  double y1, y2;
+  int i, p;
+
+  for (i = 0; i < M; i++)
+    {
+      p = pr[i];
+      __dbl_mp (x, &mpx, p);
+      __mpatan (&mpx, &mpy, p);
+      __dbl_mp (u9[i].d, &mpt1, p);
+      __mul (&mpy, &mpt1, &mperr, p);
+      __add (&mpy, &mperr, &mpy1, p);
+      __sub (&mpy, &mperr, &mpy2, p);
+      __mp_dbl (&mpy1, &y1, p);
+      __mp_dbl (&mpy2, &y2, p);
+      if (y1 == y2)
+	{
+	  LIBC_PROBE (slowatan, 3, &p, &x, &y1);
+	  return y1;
+	}
+    }
+  LIBC_PROBE (slowatan_inexact, 3, &p, &x, &y1);
+  return y1;			/*if impossible to do exact computing */
+}
+
+#ifdef NO_LONG_DOUBLE
+weak_alias (atan, atanl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_cbrt.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_cbrt.c
new file mode 100644
index 0000000000..689abc89ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_cbrt.c
@@ -0,0 +1,76 @@
+/* Compute cubic root of double value.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
+   Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+
+#define CBRT2 1.2599210498948731648		/* 2^(1/3) */
+#define SQR_CBRT2 1.5874010519681994748		/* 2^(2/3) */
+
+static const double factor[5] =
+{
+  1.0 / SQR_CBRT2,
+  1.0 / CBRT2,
+  1.0,
+  CBRT2,
+  SQR_CBRT2
+};
+
+
+double
+__cbrt (double x)
+{
+  double xm, ym, u, t2;
+  int xe;
+
+  /* Reduce X.  XM now is an range 1.0 to 0.5.  */
+  xm = __frexp (fabs (x), &xe);
+
+  /* If X is not finite or is null return it (with raising exceptions
+     if necessary.
+     Note: *Our* version of `frexp' sets XE to zero if the argument is
+     Inf or NaN.  This is not portable but faster.  */
+  if (xe == 0 && fpclassify (x) <= FP_ZERO)
+    return x + x;
+
+  u = (0.354895765043919860
+       + ((1.50819193781584896
+	   + ((-2.11499494167371287
+	       + ((2.44693122563534430
+		   + ((-1.83469277483613086
+		       + (0.784932344976639262 - 0.145263899385486377 * xm)
+	                  * xm)
+		      * xm))
+		  * xm))
+	      * xm))
+	  * xm));
+
+  t2 = u * u * u;
+
+  ym = u * (t2 + 2.0 * xm) / (2.0 * t2 + xm) * factor[2 + xe % 3];
+
+  return __ldexp (x > 0.0 ? ym : -ym, xe / 3);
+}
+weak_alias (__cbrt, cbrt)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__cbrt, __cbrtl)
+weak_alias (__cbrt, cbrtl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_ceil.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_ceil.c
new file mode 100644
index 0000000000..c291c26f57
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_ceil.c
@@ -0,0 +1,89 @@
+/* @(#)s_ceil.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * ceil(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ *	Bit twiddling.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+double
+__ceil (double x)
+{
+  int32_t i0, i1, j0;
+  u_int32_t i, j;
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  if (j0 < 20)
+    {
+      if (j0 < 0)
+	{
+	  /* return 0*sign(x) if |x|<1 */
+	  if (i0 < 0)
+	    {
+	      i0 = 0x80000000; i1 = 0;
+	    }
+	  else if ((i0 | i1) != 0)
+	    {
+	      i0 = 0x3ff00000; i1 = 0;
+	    }
+	}
+      else
+	{
+	  i = (0x000fffff) >> j0;
+	  if (((i0 & i) | i1) == 0)
+	    return x;                        /* x is integral */
+	  if (i0 > 0)
+	    i0 += (0x00100000) >> j0;
+	  i0 &= (~i); i1 = 0;
+	}
+    }
+  else if (j0 > 51)
+    {
+      if (j0 == 0x400)
+	return x + x;                   /* inf or NaN */
+      else
+	return x;                       /* x is integral */
+    }
+  else
+    {
+      i = ((u_int32_t) (0xffffffff)) >> (j0 - 20);
+      if ((i1 & i) == 0)
+	return x;                       /* x is integral */
+      if (i0 > 0)
+	{
+	  if (j0 == 20)
+	    i0 += 1;
+	  else
+	    {
+	      j = i1 + (1 << (52 - j0));
+	      if (j < i1)
+		i0 += 1;                /* got a carry */
+	      i1 = j;
+	    }
+	}
+      i1 &= (~i);
+    }
+  INSERT_WORDS (x, i0, i1);
+  return x;
+}
+#ifndef __ceil
+weak_alias (__ceil, ceil)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__ceil, __ceill)
+weak_alias (__ceil, ceill)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_copysign.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_copysign.c
new file mode 100644
index 0000000000..9caf24e8f2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_copysign.c
@@ -0,0 +1,39 @@
+/* @(#)s_copysign.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_copysign.c,v 1.8 1995/05/10 20:46:57 jtc Exp $";
+#endif
+
+/*
+ * copysign(double x, double y)
+ * copysign(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+double
+__copysign (double x, double y)
+{
+  u_int32_t hx, hy;
+  GET_HIGH_WORD (hx, x);
+  GET_HIGH_WORD (hy, y);
+  SET_HIGH_WORD (x, (hx & 0x7fffffff) | (hy & 0x80000000));
+  return x;
+}
+weak_alias (__copysign, copysign)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__copysign, __copysignl)
+weak_alias (__copysign, copysignl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_cos.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_cos.c
new file mode 100644
index 0000000000..4be1276ccb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_cos.c
@@ -0,0 +1 @@
+/* In s_sin.c.  */
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_erf.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_erf.c
new file mode 100644
index 0000000000..b4975a8af8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_erf.c
@@ -0,0 +1,428 @@
+/* @(#)s_erf.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/* Modified by Naohiko Shimizu/Tokai University, Japan 1997/08/25,
+   for performance improvement on pipelined processors.
+*/
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_erf.c,v 1.8 1995/05/10 20:47:05 jtc Exp $";
+#endif
+
+/* double erf(double x)
+ * double erfc(double x)
+ *			     x
+ *		      2      |\
+ *     erf(x)  =  ---------  | exp(-t*t)dt
+ *	 	   sqrt(pi) \|
+ *			     0
+ *
+ *     erfc(x) =  1-erf(x)
+ *  Note that
+ *		erf(-x) = -erf(x)
+ *		erfc(-x) = 2 - erfc(x)
+ *
+ * Method:
+ *	1. For |x| in [0, 0.84375]
+ *	    erf(x)  = x + x*R(x^2)
+ *          erfc(x) = 1 - erf(x)           if x in [-.84375,0.25]
+ *                  = 0.5 + ((0.5-x)-x*R)  if x in [0.25,0.84375]
+ *	   where R = P/Q where P is an odd poly of degree 8 and
+ *	   Q is an odd poly of degree 10.
+ *						 -57.90
+ *			| R - (erf(x)-x)/x | <= 2
+ *
+ *
+ *	   Remark. The formula is derived by noting
+ *          erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
+ *	   and that
+ *          2/sqrt(pi) = 1.128379167095512573896158903121545171688
+ *	   is close to one. The interval is chosen because the fix
+ *	   point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is
+ *	   near 0.6174), and by some experiment, 0.84375 is chosen to
+ * 	   guarantee the error is less than one ulp for erf.
+ *
+ *      2. For |x| in [0.84375,1.25], let s = |x| - 1, and
+ *         c = 0.84506291151 rounded to single (24 bits)
+ *         	erf(x)  = sign(x) * (c  + P1(s)/Q1(s))
+ *         	erfc(x) = (1-c)  - P1(s)/Q1(s) if x > 0
+ *			  1+(c+P1(s)/Q1(s))    if x < 0
+ *         	|P1/Q1 - (erf(|x|)-c)| <= 2**-59.06
+ *	   Remark: here we use the taylor series expansion at x=1.
+ *		erf(1+s) = erf(1) + s*Poly(s)
+ *			 = 0.845.. + P1(s)/Q1(s)
+ *	   That is, we use rational approximation to approximate
+ *			erf(1+s) - (c = (single)0.84506291151)
+ *	   Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
+ *	   where
+ *		P1(s) = degree 6 poly in s
+ *		Q1(s) = degree 6 poly in s
+ *
+ *      3. For x in [1.25,1/0.35(~2.857143)],
+ *         	erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1)
+ *         	erf(x)  = 1 - erfc(x)
+ *	   where
+ *		R1(z) = degree 7 poly in z, (z=1/x^2)
+ *		S1(z) = degree 8 poly in z
+ *
+ *      4. For x in [1/0.35,28]
+ *         	erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0
+ *			= 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6<x<0
+ *			= 2.0 - tiny		(if x <= -6)
+ *         	erf(x)  = sign(x)*(1.0 - erfc(x)) if x < 6, else
+ *         	erf(x)  = sign(x)*(1.0 - tiny)
+ *	   where
+ *		R2(z) = degree 6 poly in z, (z=1/x^2)
+ *		S2(z) = degree 7 poly in z
+ *
+ *      Note1:
+ *	   To compute exp(-x*x-0.5625+R/S), let s be a single
+ *	   precision number and s := x; then
+ *		-x*x = -s*s + (s-x)*(s+x)
+ *	        exp(-x*x-0.5626+R/S) =
+ *			exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
+ *      Note2:
+ *	   Here 4 and 5 make use of the asymptotic series
+ *			  exp(-x*x)
+ *		erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
+ *			  x*sqrt(pi)
+ *	   We use rational approximation to approximate
+ *      	g(s)=f(1/x^2) = log(erfc(x)*x) - x*x + 0.5625
+ *	   Here is the error bound for R1/S1 and R2/S2
+ *      	|R1/S1 - f(x)|  < 2**(-62.57)
+ *      	|R2/S2 - f(x)|  < 2**(-61.52)
+ *
+ *      5. For inf > x >= 28
+ *         	erf(x)  = sign(x) *(1 - tiny)  (raise inexact)
+ *         	erfc(x) = tiny*tiny (raise underflow) if x > 0
+ *			= 2 - tiny if x<0
+ *
+ *      7. Special case:
+ *         	erf(0)  = 0, erf(inf)  = 1, erf(-inf) = -1,
+ *         	erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
+ *	   	erfc/erf(NaN) is NaN
+ */
+
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+static const double
+  tiny = 1e-300,
+  half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+  one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+  two = 2.00000000000000000000e+00, /* 0x40000000, 0x00000000 */
+/* c = (float)0.84506291151 */
+  erx = 8.45062911510467529297e-01, /* 0x3FEB0AC1, 0x60000000 */
+/*
+ * Coefficients for approximation to  erf on [0,0.84375]
+ */
+  efx = 1.28379167095512586316e-01, /* 0x3FC06EBA, 0x8214DB69 */
+  pp[] = { 1.28379167095512558561e-01, /* 0x3FC06EBA, 0x8214DB68 */
+	   -3.25042107247001499370e-01, /* 0xBFD4CD7D, 0x691CB913 */
+	   -2.84817495755985104766e-02, /* 0xBF9D2A51, 0xDBD7194F */
+	   -5.77027029648944159157e-03, /* 0xBF77A291, 0x236668E4 */
+	   -2.37630166566501626084e-05 }, /* 0xBEF8EAD6, 0x120016AC */
+  qq[] = { 0.0, 3.97917223959155352819e-01, /* 0x3FD97779, 0xCDDADC09 */
+	   6.50222499887672944485e-02, /* 0x3FB0A54C, 0x5536CEBA */
+	   5.08130628187576562776e-03, /* 0x3F74D022, 0xC4D36B0F */
+	   1.32494738004321644526e-04, /* 0x3F215DC9, 0x221C1A10 */
+	   -3.96022827877536812320e-06 }, /* 0xBED09C43, 0x42A26120 */
+/*
+ * Coefficients for approximation to  erf  in [0.84375,1.25]
+ */
+  pa[] = { -2.36211856075265944077e-03, /* 0xBF6359B8, 0xBEF77538 */
+	   4.14856118683748331666e-01, /* 0x3FDA8D00, 0xAD92B34D */
+	   -3.72207876035701323847e-01, /* 0xBFD7D240, 0xFBB8C3F1 */
+	   3.18346619901161753674e-01, /* 0x3FD45FCA, 0x805120E4 */
+	   -1.10894694282396677476e-01, /* 0xBFBC6398, 0x3D3E28EC */
+	   3.54783043256182359371e-02, /* 0x3FA22A36, 0x599795EB */
+	   -2.16637559486879084300e-03 }, /* 0xBF61BF38, 0x0A96073F */
+  qa[] = { 0.0, 1.06420880400844228286e-01, /* 0x3FBB3E66, 0x18EEE323 */
+	   5.40397917702171048937e-01, /* 0x3FE14AF0, 0x92EB6F33 */
+	   7.18286544141962662868e-02, /* 0x3FB2635C, 0xD99FE9A7 */
+	   1.26171219808761642112e-01, /* 0x3FC02660, 0xE763351F */
+	   1.36370839120290507362e-02, /* 0x3F8BEDC2, 0x6B51DD1C */
+	   1.19844998467991074170e-02 }, /* 0x3F888B54, 0x5735151D */
+/*
+ * Coefficients for approximation to  erfc in [1.25,1/0.35]
+ */
+  ra[] = { -9.86494403484714822705e-03, /* 0xBF843412, 0x600D6435 */
+	   -6.93858572707181764372e-01, /* 0xBFE63416, 0xE4BA7360 */
+	   -1.05586262253232909814e+01, /* 0xC0251E04, 0x41B0E726 */
+	   -6.23753324503260060396e+01, /* 0xC04F300A, 0xE4CBA38D */
+	   -1.62396669462573470355e+02, /* 0xC0644CB1, 0x84282266 */
+	   -1.84605092906711035994e+02, /* 0xC067135C, 0xEBCCABB2 */
+	   -8.12874355063065934246e+01, /* 0xC0545265, 0x57E4D2F2 */
+	   -9.81432934416914548592e+00 }, /* 0xC023A0EF, 0xC69AC25C */
+  sa[] = { 0.0, 1.96512716674392571292e+01, /* 0x4033A6B9, 0xBD707687 */
+	   1.37657754143519042600e+02, /* 0x4061350C, 0x526AE721 */
+	   4.34565877475229228821e+02, /* 0x407B290D, 0xD58A1A71 */
+	   6.45387271733267880336e+02, /* 0x40842B19, 0x21EC2868 */
+	   4.29008140027567833386e+02, /* 0x407AD021, 0x57700314 */
+	   1.08635005541779435134e+02, /* 0x405B28A3, 0xEE48AE2C */
+	   6.57024977031928170135e+00, /* 0x401A47EF, 0x8E484A93 */
+	   -6.04244152148580987438e-02 }, /* 0xBFAEEFF2, 0xEE749A62 */
+/*
+ * Coefficients for approximation to  erfc in [1/.35,28]
+ */
+  rb[] = { -9.86494292470009928597e-03, /* 0xBF843412, 0x39E86F4A */
+	   -7.99283237680523006574e-01, /* 0xBFE993BA, 0x70C285DE */
+	   -1.77579549177547519889e+01, /* 0xC031C209, 0x555F995A */
+	   -1.60636384855821916062e+02, /* 0xC064145D, 0x43C5ED98 */
+	   -6.37566443368389627722e+02, /* 0xC083EC88, 0x1375F228 */
+	   -1.02509513161107724954e+03, /* 0xC0900461, 0x6A2E5992 */
+	   -4.83519191608651397019e+02 }, /* 0xC07E384E, 0x9BDC383F */
+  sb[] = { 0.0, 3.03380607434824582924e+01, /* 0x403E568B, 0x261D5190 */
+	   3.25792512996573918826e+02, /* 0x40745CAE, 0x221B9F0A */
+	   1.53672958608443695994e+03, /* 0x409802EB, 0x189D5118 */
+	   3.19985821950859553908e+03, /* 0x40A8FFB7, 0x688C246A */
+	   2.55305040643316442583e+03, /* 0x40A3F219, 0xCEDF3BE6 */
+	   4.74528541206955367215e+02, /* 0x407DA874, 0xE79FE763 */
+	   -2.24409524465858183362e+01 }; /* 0xC03670E2, 0x42712D62 */
+
+double
+__erf (double x)
+{
+  int32_t hx, ix, i;
+  double R, S, P, Q, s, y, z, r;
+  GET_HIGH_WORD (hx, x);
+  ix = hx & 0x7fffffff;
+  if (ix >= 0x7ff00000)                 /* erf(nan)=nan */
+    {
+      i = ((u_int32_t) hx >> 31) << 1;
+      return (double) (1 - i) + one / x; /* erf(+-inf)=+-1 */
+    }
+
+  if (ix < 0x3feb0000)                  /* |x|<0.84375 */
+    {
+      double r1, r2, s1, s2, s3, z2, z4;
+      if (ix < 0x3e300000)              /* |x|<2**-28 */
+	{
+	  if (ix < 0x00800000)
+	    {
+	      /* Avoid spurious underflow.  */
+	      double ret = 0.0625 * (16.0 * x + (16.0 * efx) * x);
+	      math_check_force_underflow (ret);
+	      return ret;
+	    }
+	  return x + efx * x;
+	}
+      z = x * x;
+      r1 = pp[0] + z * pp[1]; z2 = z * z;
+      r2 = pp[2] + z * pp[3]; z4 = z2 * z2;
+      s1 = one + z * qq[1];
+      s2 = qq[2] + z * qq[3];
+      s3 = qq[4] + z * qq[5];
+      r = r1 + z2 * r2 + z4 * pp[4];
+      s = s1 + z2 * s2 + z4 * s3;
+      y = r / s;
+      return x + x * y;
+    }
+  if (ix < 0x3ff40000)                  /* 0.84375 <= |x| < 1.25 */
+    {
+      double s2, s4, s6, P1, P2, P3, P4, Q1, Q2, Q3, Q4;
+      s = fabs (x) - one;
+      P1 = pa[0] + s * pa[1]; s2 = s * s;
+      Q1 = one + s * qa[1];   s4 = s2 * s2;
+      P2 = pa[2] + s * pa[3]; s6 = s4 * s2;
+      Q2 = qa[2] + s * qa[3];
+      P3 = pa[4] + s * pa[5];
+      Q3 = qa[4] + s * qa[5];
+      P4 = pa[6];
+      Q4 = qa[6];
+      P = P1 + s2 * P2 + s4 * P3 + s6 * P4;
+      Q = Q1 + s2 * Q2 + s4 * Q3 + s6 * Q4;
+      if (hx >= 0)
+	return erx + P / Q;
+      else
+	return -erx - P / Q;
+    }
+  if (ix >= 0x40180000)                 /* inf>|x|>=6 */
+    {
+      if (hx >= 0)
+	return one - tiny;
+      else
+	return tiny - one;
+    }
+  x = fabs (x);
+  s = one / (x * x);
+  if (ix < 0x4006DB6E)          /* |x| < 1/0.35 */
+    {
+      double R1, R2, R3, R4, S1, S2, S3, S4, s2, s4, s6, s8;
+      R1 = ra[0] + s * ra[1]; s2 = s * s;
+      S1 = one + s * sa[1];  s4 = s2 * s2;
+      R2 = ra[2] + s * ra[3]; s6 = s4 * s2;
+      S2 = sa[2] + s * sa[3]; s8 = s4 * s4;
+      R3 = ra[4] + s * ra[5];
+      S3 = sa[4] + s * sa[5];
+      R4 = ra[6] + s * ra[7];
+      S4 = sa[6] + s * sa[7];
+      R = R1 + s2 * R2 + s4 * R3 + s6 * R4;
+      S = S1 + s2 * S2 + s4 * S3 + s6 * S4 + s8 * sa[8];
+    }
+  else                  /* |x| >= 1/0.35 */
+    {
+      double R1, R2, R3, S1, S2, S3, S4, s2, s4, s6;
+      R1 = rb[0] + s * rb[1]; s2 = s * s;
+      S1 = one + s * sb[1];  s4 = s2 * s2;
+      R2 = rb[2] + s * rb[3]; s6 = s4 * s2;
+      S2 = sb[2] + s * sb[3];
+      R3 = rb[4] + s * rb[5];
+      S3 = sb[4] + s * sb[5];
+      S4 = sb[6] + s * sb[7];
+      R = R1 + s2 * R2 + s4 * R3 + s6 * rb[6];
+      S = S1 + s2 * S2 + s4 * S3 + s6 * S4;
+    }
+  z = x;
+  SET_LOW_WORD (z, 0);
+  r = __ieee754_exp (-z * z - 0.5625) *
+      __ieee754_exp ((z - x) * (z + x) + R / S);
+  if (hx >= 0)
+    return one - r / x;
+  else
+    return r / x - one;
+}
+weak_alias (__erf, erf)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__erf, __erfl)
+weak_alias (__erf, erfl)
+#endif
+
+double
+__erfc (double x)
+{
+  int32_t hx, ix;
+  double R, S, P, Q, s, y, z, r;
+  GET_HIGH_WORD (hx, x);
+  ix = hx & 0x7fffffff;
+  if (ix >= 0x7ff00000)                         /* erfc(nan)=nan */
+    {                                           /* erfc(+-inf)=0,2 */
+      double ret = (double) (((u_int32_t) hx >> 31) << 1) + one / x;
+      if (FIX_INT_FP_CONVERT_ZERO && ret == 0.0)
+	return 0.0;
+      return ret;
+    }
+
+  if (ix < 0x3feb0000)                  /* |x|<0.84375 */
+    {
+      double r1, r2, s1, s2, s3, z2, z4;
+      if (ix < 0x3c700000)              /* |x|<2**-56 */
+	return one - x;
+      z = x * x;
+      r1 = pp[0] + z * pp[1]; z2 = z * z;
+      r2 = pp[2] + z * pp[3]; z4 = z2 * z2;
+      s1 = one + z * qq[1];
+      s2 = qq[2] + z * qq[3];
+      s3 = qq[4] + z * qq[5];
+      r = r1 + z2 * r2 + z4 * pp[4];
+      s = s1 + z2 * s2 + z4 * s3;
+      y = r / s;
+      if (hx < 0x3fd00000)              /* x<1/4 */
+	{
+	  return one - (x + x * y);
+	}
+      else
+	{
+	  r = x * y;
+	  r += (x - half);
+	  return half - r;
+	}
+    }
+  if (ix < 0x3ff40000)                  /* 0.84375 <= |x| < 1.25 */
+    {
+      double s2, s4, s6, P1, P2, P3, P4, Q1, Q2, Q3, Q4;
+      s = fabs (x) - one;
+      P1 = pa[0] + s * pa[1]; s2 = s * s;
+      Q1 = one + s * qa[1];   s4 = s2 * s2;
+      P2 = pa[2] + s * pa[3]; s6 = s4 * s2;
+      Q2 = qa[2] + s * qa[3];
+      P3 = pa[4] + s * pa[5];
+      Q3 = qa[4] + s * qa[5];
+      P4 = pa[6];
+      Q4 = qa[6];
+      P = P1 + s2 * P2 + s4 * P3 + s6 * P4;
+      Q = Q1 + s2 * Q2 + s4 * Q3 + s6 * Q4;
+      if (hx >= 0)
+	{
+	  z = one - erx; return z - P / Q;
+	}
+      else
+	{
+	  z = erx + P / Q; return one + z;
+	}
+    }
+  if (ix < 0x403c0000)                  /* |x|<28 */
+    {
+      x = fabs (x);
+      s = one / (x * x);
+      if (ix < 0x4006DB6D)              /* |x| < 1/.35 ~ 2.857143*/
+	{
+	  double R1, R2, R3, R4, S1, S2, S3, S4, s2, s4, s6, s8;
+	  R1 = ra[0] + s * ra[1]; s2 = s * s;
+	  S1 = one + s * sa[1];  s4 = s2 * s2;
+	  R2 = ra[2] + s * ra[3]; s6 = s4 * s2;
+	  S2 = sa[2] + s * sa[3]; s8 = s4 * s4;
+	  R3 = ra[4] + s * ra[5];
+	  S3 = sa[4] + s * sa[5];
+	  R4 = ra[6] + s * ra[7];
+	  S4 = sa[6] + s * sa[7];
+	  R = R1 + s2 * R2 + s4 * R3 + s6 * R4;
+	  S = S1 + s2 * S2 + s4 * S3 + s6 * S4 + s8 * sa[8];
+	}
+      else                              /* |x| >= 1/.35 ~ 2.857143 */
+	{
+	  double R1, R2, R3, S1, S2, S3, S4, s2, s4, s6;
+	  if (hx < 0 && ix >= 0x40180000)
+	    return two - tiny;                           /* x < -6 */
+	  R1 = rb[0] + s * rb[1]; s2 = s * s;
+	  S1 = one + s * sb[1];  s4 = s2 * s2;
+	  R2 = rb[2] + s * rb[3]; s6 = s4 * s2;
+	  S2 = sb[2] + s * sb[3];
+	  R3 = rb[4] + s * rb[5];
+	  S3 = sb[4] + s * sb[5];
+	  S4 = sb[6] + s * sb[7];
+	  R = R1 + s2 * R2 + s4 * R3 + s6 * rb[6];
+	  S = S1 + s2 * S2 + s4 * S3 + s6 * S4;
+	}
+      z = x;
+      SET_LOW_WORD (z, 0);
+      r = __ieee754_exp (-z * z - 0.5625) *
+	  __ieee754_exp ((z - x) * (z + x) + R / S);
+      if (hx > 0)
+	{
+	  double ret = math_narrow_eval (r / x);
+	  if (ret == 0)
+	    __set_errno (ERANGE);
+	  return ret;
+	}
+      else
+	return two - r / x;
+    }
+  else
+    {
+      if (hx > 0)
+	{
+	  __set_errno (ERANGE);
+	  return tiny * tiny;
+	}
+      else
+	return two - tiny;
+    }
+}
+weak_alias (__erfc, erfc)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__erfc, __erfcl)
+weak_alias (__erfc, erfcl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_expm1.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_expm1.c
new file mode 100644
index 0000000000..54d771007a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_expm1.c
@@ -0,0 +1,262 @@
+/* @(#)s_expm1.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/* Modified by Naohiko Shimizu/Tokai University, Japan 1997/08/25,
+   for performance improvement on pipelined processors.
+ */
+
+/* expm1(x)
+ * Returns exp(x)-1, the exponential of x minus 1.
+ *
+ * Method
+ *   1. Argument reduction:
+ *	Given x, find r and integer k such that
+ *
+ *               x = k*ln2 + r,  |r| <= 0.5*ln2 ~ 0.34658
+ *
+ *      Here a correction term c will be computed to compensate
+ *	the error in r when rounded to a floating-point number.
+ *
+ *   2. Approximating expm1(r) by a special rational function on
+ *	the interval [0,0.34658]:
+ *	Since
+ *	    r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ...
+ *	we define R1(r*r) by
+ *	    r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r)
+ *	That is,
+ *	    R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
+ *		     = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
+ *		     = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
+ *      We use a special Reme algorithm on [0,0.347] to generate
+ *	a polynomial of degree 5 in r*r to approximate R1. The
+ *	maximum error of this polynomial approximation is bounded
+ *	by 2**-61. In other words,
+ *	    R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5
+ *	where	Q1  =  -1.6666666666666567384E-2,
+ *		Q2  =   3.9682539681370365873E-4,
+ *		Q3  =  -9.9206344733435987357E-6,
+ *		Q4  =   2.5051361420808517002E-7,
+ *		Q5  =  -6.2843505682382617102E-9;
+ *	(where z=r*r, and the values of Q1 to Q5 are listed below)
+ *	with error bounded by
+ *	    |                  5           |     -61
+ *	    | 1.0+Q1*z+...+Q5*z   -  R1(z) | <= 2
+ *	    |                              |
+ *
+ *	expm1(r) = exp(r)-1 is then computed by the following
+ *	specific way which minimize the accumulation rounding error:
+ *			       2     3
+ *			      r     r    [ 3 - (R1 + R1*r/2)  ]
+ *	      expm1(r) = r + --- + --- * [--------------------]
+ *			      2     2    [ 6 - r*(3 - R1*r/2) ]
+ *
+ *	To compensate the error in the argument reduction, we use
+ *		expm1(r+c) = expm1(r) + c + expm1(r)*c
+ *			   ~ expm1(r) + c + r*c
+ *	Thus c+r*c will be added in as the correction terms for
+ *	expm1(r+c). Now rearrange the term to avoid optimization
+ *	screw up:
+ *			(      2                                    2 )
+ *			({  ( r    [ R1 -  (3 - R1*r/2) ]  )  }    r  )
+ *	 expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- )
+ *			({  ( 2    [ 6 - r*(3 - R1*r/2) ]  )  }    2  )
+ *                      (                                             )
+ *
+ *		   = r - E
+ *   3. Scale back to obtain expm1(x):
+ *	From step 1, we have
+ *	   expm1(x) = either 2^k*[expm1(r)+1] - 1
+ *		    = or     2^k*[expm1(r) + (1-2^-k)]
+ *   4. Implementation notes:
+ *	(A). To save one multiplication, we scale the coefficient Qi
+ *	     to Qi*2^i, and replace z by (x^2)/2.
+ *	(B). To achieve maximum accuracy, we compute expm1(x) by
+ *	  (i)   if x < -56*ln2, return -1.0, (raise inexact if x!=inf)
+ *	  (ii)  if k=0, return r-E
+ *	  (iii) if k=-1, return 0.5*(r-E)-0.5
+ *        (iv)	if k=1 if r < -0.25, return 2*((r+0.5)- E)
+ *		       else	     return  1.0+2.0*(r-E);
+ *	  (v)   if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1)
+ *	  (vi)  if k <= 20, return 2^k((1-2^-k)-(E-r)), else
+ *	  (vii) return 2^k(1-((E+2^-k)-r))
+ *
+ * Special cases:
+ *	expm1(INF) is INF, expm1(NaN) is NaN;
+ *	expm1(-INF) is -1, and
+ *	for finite argument, only expm1(0)=0 is exact.
+ *
+ * Accuracy:
+ *	according to an error analysis, the error is always less than
+ *	1 ulp (unit in the last place).
+ *
+ * Misc. info.
+ *	For IEEE double
+ *	    if x >  7.09782712893383973096e+02 then expm1(x) overflow
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#define one Q[0]
+static const double
+  huge = 1.0e+300,
+  tiny = 1.0e-300,
+  o_threshold = 7.09782712893383973096e+02,  /* 0x40862E42, 0xFEFA39EF */
+  ln2_hi = 6.93147180369123816490e-01,       /* 0x3fe62e42, 0xfee00000 */
+  ln2_lo = 1.90821492927058770002e-10,       /* 0x3dea39ef, 0x35793c76 */
+  invln2 = 1.44269504088896338700e+00,       /* 0x3ff71547, 0x652b82fe */
+/* scaled coefficients related to expm1 */
+  Q[] = { 1.0, -3.33333333333331316428e-02, /* BFA11111 111110F4 */
+	  1.58730158725481460165e-03, /* 3F5A01A0 19FE5585 */
+	  -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */
+	  4.00821782732936239552e-06, /* 3ED0CFCA 86E65239 */
+	  -2.01099218183624371326e-07 }; /* BE8AFDB7 6E09C32D */
+
+double
+__expm1 (double x)
+{
+  double y, hi, lo, c, t, e, hxs, hfx, r1, h2, h4, R1, R2, R3;
+  int32_t k, xsb;
+  u_int32_t hx;
+
+  GET_HIGH_WORD (hx, x);
+  xsb = hx & 0x80000000;                /* sign bit of x */
+  if (xsb == 0)
+    y = x;
+  else
+    y = -x;                             /* y = |x| */
+  hx &= 0x7fffffff;                     /* high word of |x| */
+
+  /* filter out huge and non-finite argument */
+  if (hx >= 0x4043687A)                         /* if |x|>=56*ln2 */
+    {
+      if (hx >= 0x40862E42)                     /* if |x|>=709.78... */
+	{
+	  if (hx >= 0x7ff00000)
+	    {
+	      u_int32_t low;
+	      GET_LOW_WORD (low, x);
+	      if (((hx & 0xfffff) | low) != 0)
+		return x + x;            /* NaN */
+	      else
+		return (xsb == 0) ? x : -1.0;    /* exp(+-inf)={inf,-1} */
+	    }
+	  if (x > o_threshold)
+	    {
+	      __set_errno (ERANGE);
+	      return huge * huge;   /* overflow */
+	    }
+	}
+      if (xsb != 0)      /* x < -56*ln2, return -1.0 with inexact */
+	{
+	  math_force_eval (x + tiny);           /* raise inexact */
+	  return tiny - one;            /* return -1 */
+	}
+    }
+
+  /* argument reduction */
+  if (hx > 0x3fd62e42)                  /* if  |x| > 0.5 ln2 */
+    {
+      if (hx < 0x3FF0A2B2)              /* and |x| < 1.5 ln2 */
+	{
+	  if (xsb == 0)
+	    {
+	      hi = x - ln2_hi; lo = ln2_lo;  k = 1;
+	    }
+	  else
+	    {
+	      hi = x + ln2_hi; lo = -ln2_lo;  k = -1;
+	    }
+	}
+      else
+	{
+	  k = invln2 * x + ((xsb == 0) ? 0.5 : -0.5);
+	  t = k;
+	  hi = x - t * ln2_hi;          /* t*ln2_hi is exact here */
+	  lo = t * ln2_lo;
+	}
+      x = hi - lo;
+      c = (hi - x) - lo;
+    }
+  else if (hx < 0x3c900000)             /* when |x|<2**-54, return x */
+    {
+      math_check_force_underflow (x);
+      t = huge + x;     /* return x with inexact flags when x!=0 */
+      return x - (t - (huge + x));
+    }
+  else
+    k = 0;
+
+  /* x is now in primary range */
+  hfx = 0.5 * x;
+  hxs = x * hfx;
+  R1 = one + hxs * Q[1]; h2 = hxs * hxs;
+  R2 = Q[2] + hxs * Q[3]; h4 = h2 * h2;
+  R3 = Q[4] + hxs * Q[5];
+  r1 = R1 + h2 * R2 + h4 * R3;
+  t = 3.0 - r1 * hfx;
+  e = hxs * ((r1 - t) / (6.0 - x * t));
+  if (k == 0)
+    return x - (x * e - hxs);                   /* c is 0 */
+  else
+    {
+      e = (x * (e - c) - c);
+      e -= hxs;
+      if (k == -1)
+	return 0.5 * (x - e) - 0.5;
+      if (k == 1)
+	{
+	  if (x < -0.25)
+	    return -2.0 * (e - (x + 0.5));
+	  else
+	    return one + 2.0 * (x - e);
+	}
+      if (k <= -2 || k > 56)         /* suffice to return exp(x)-1 */
+	{
+	  u_int32_t high;
+	  y = one - (e - x);
+	  GET_HIGH_WORD (high, y);
+	  SET_HIGH_WORD (y, high + (k << 20));  /* add k to y's exponent */
+	  return y - one;
+	}
+      t = one;
+      if (k < 20)
+	{
+	  u_int32_t high;
+	  SET_HIGH_WORD (t, 0x3ff00000 - (0x200000 >> k));    /* t=1-2^-k */
+	  y = t - (e - x);
+	  GET_HIGH_WORD (high, y);
+	  SET_HIGH_WORD (y, high + (k << 20));  /* add k to y's exponent */
+	}
+      else
+	{
+	  u_int32_t high;
+	  SET_HIGH_WORD (t, ((0x3ff - k) << 20));       /* 2^-k */
+	  y = x - (e + t);
+	  y += one;
+	  GET_HIGH_WORD (high, y);
+	  SET_HIGH_WORD (y, high + (k << 20));  /* add k to y's exponent */
+	}
+    }
+  return y;
+}
+weak_alias (__expm1, expm1)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__expm1, __expm1l)
+weak_alias (__expm1, expm1l)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_fabs.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fabs.c
new file mode 100644
index 0000000000..73c09a269e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fabs.c
@@ -0,0 +1,32 @@
+/* @(#)s_fabs.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_fabs.c,v 1.7 1995/05/10 20:47:13 jtc Exp $";
+#endif
+
+/*
+ * fabs(x) returns the absolute value of x.
+ */
+
+#include <math.h>
+
+double
+__fabs (double x)
+{
+  return __builtin_fabs (x);
+}
+weak_alias (__fabs, fabs)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fabs, __fabsl)
+weak_alias (__fabs, fabsl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_finite.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_finite.c
new file mode 100644
index 0000000000..69141db75d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_finite.c
@@ -0,0 +1,50 @@
+/* @(#)s_finite.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
+#endif
+
+/*
+ * finite(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <shlib-compat.h>
+
+#undef __finite
+
+#ifndef FINITE
+# define FINITE __finite
+#endif
+
+int FINITE(double x)
+{
+  int32_t hx;
+  GET_HIGH_WORD (hx, x);
+  return (int) ((u_int32_t) ((hx & 0x7ff00000) - 0x7ff00000) >> 31);
+}
+hidden_def (__finite)
+weak_alias (__finite, finite)
+#ifdef NO_LONG_DOUBLE
+# ifdef LDBL_CLASSIFY_COMPAT
+#  if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
+#  endif
+#  if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_23)
+compat_symbol (libm, __finite, __finitel, GLIBC_2_1);
+#  endif
+# endif
+weak_alias (__finite, finitel)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_floor.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_floor.c
new file mode 100644
index 0000000000..8f86aa31ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_floor.c
@@ -0,0 +1,89 @@
+/* @(#)s_floor.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * floor(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ *	Bit twiddling.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+double
+__floor (double x)
+{
+  int32_t i0, i1, j0;
+  u_int32_t i, j;
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  if (j0 < 20)
+    {
+      if (j0 < 0)
+	{
+	  /* return 0*sign(x) if |x|<1 */
+	  if (i0 >= 0)
+	    {
+	      i0 = i1 = 0;
+	    }
+	  else if (((i0 & 0x7fffffff) | i1) != 0)
+	    {
+	      i0 = 0xbff00000; i1 = 0;
+	    }
+	}
+      else
+	{
+	  i = (0x000fffff) >> j0;
+	  if (((i0 & i) | i1) == 0)
+	    return x;                        /* x is integral */
+	  if (i0 < 0)
+	    i0 += (0x00100000) >> j0;
+	  i0 &= (~i); i1 = 0;
+	}
+    }
+  else if (j0 > 51)
+    {
+      if (j0 == 0x400)
+	return x + x;                   /* inf or NaN */
+      else
+	return x;                       /* x is integral */
+    }
+  else
+    {
+      i = ((u_int32_t) (0xffffffff)) >> (j0 - 20);
+      if ((i1 & i) == 0)
+	return x;                       /* x is integral */
+      if (i0 < 0)
+	{
+	  if (j0 == 20)
+	    i0 += 1;
+	  else
+	    {
+	      j = i1 + (1 << (52 - j0));
+	      if (j < i1)
+		i0 += 1;                /* got a carry */
+	      i1 = j;
+	    }
+	}
+      i1 &= (~i);
+    }
+  INSERT_WORDS (x, i0, i1);
+  return x;
+}
+#ifndef __floor
+weak_alias (__floor, floor)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__floor, __floorl)
+weak_alias (__floor, floorl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_fma.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fma.c
new file mode 100644
index 0000000000..68c8515fb1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fma.c
@@ -0,0 +1,301 @@
+/* Compute x * y + z as ternary operation.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <fenv.h>
+#include <ieee754.h>
+#include <math_private.h>
+#include <tininess.h>
+
+/* This implementation uses rounding to odd to avoid problems with
+   double rounding.  See a paper by Boldo and Melquiond:
+   http://www.lri.fr/~melquion/doc/08-tc.pdf  */
+
+double
+__fma (double x, double y, double z)
+{
+  union ieee754_double u, v, w;
+  int adjust = 0;
+  u.d = x;
+  v.d = y;
+  w.d = z;
+  if (__builtin_expect (u.ieee.exponent + v.ieee.exponent
+			>= 0x7ff + IEEE754_DOUBLE_BIAS - DBL_MANT_DIG, 0)
+      || __builtin_expect (u.ieee.exponent >= 0x7ff - DBL_MANT_DIG, 0)
+      || __builtin_expect (v.ieee.exponent >= 0x7ff - DBL_MANT_DIG, 0)
+      || __builtin_expect (w.ieee.exponent >= 0x7ff - DBL_MANT_DIG, 0)
+      || __builtin_expect (u.ieee.exponent + v.ieee.exponent
+			   <= IEEE754_DOUBLE_BIAS + DBL_MANT_DIG, 0))
+    {
+      /* If z is Inf, but x and y are finite, the result should be
+	 z rather than NaN.  */
+      if (w.ieee.exponent == 0x7ff
+	  && u.ieee.exponent != 0x7ff
+	  && v.ieee.exponent != 0x7ff)
+	return (z + x) + y;
+      /* If z is zero and x are y are nonzero, compute the result
+	 as x * y to avoid the wrong sign of a zero result if x * y
+	 underflows to 0.  */
+      if (z == 0 && x != 0 && y != 0)
+	return x * y;
+      /* If x or y or z is Inf/NaN, or if x * y is zero, compute as
+	 x * y + z.  */
+      if (u.ieee.exponent == 0x7ff
+	  || v.ieee.exponent == 0x7ff
+	  || w.ieee.exponent == 0x7ff
+	  || x == 0
+	  || y == 0)
+	return x * y + z;
+      /* If fma will certainly overflow, compute as x * y.  */
+      if (u.ieee.exponent + v.ieee.exponent > 0x7ff + IEEE754_DOUBLE_BIAS)
+	return x * y;
+      /* If x * y is less than 1/4 of DBL_TRUE_MIN, neither the
+	 result nor whether there is underflow depends on its exact
+	 value, only on its sign.  */
+      if (u.ieee.exponent + v.ieee.exponent
+	  < IEEE754_DOUBLE_BIAS - DBL_MANT_DIG - 2)
+	{
+	  int neg = u.ieee.negative ^ v.ieee.negative;
+	  double tiny = neg ? -0x1p-1074 : 0x1p-1074;
+	  if (w.ieee.exponent >= 3)
+	    return tiny + z;
+	  /* Scaling up, adding TINY and scaling down produces the
+	     correct result, because in round-to-nearest mode adding
+	     TINY has no effect and in other modes double rounding is
+	     harmless.  But it may not produce required underflow
+	     exceptions.  */
+	  v.d = z * 0x1p54 + tiny;
+	  if (TININESS_AFTER_ROUNDING
+	      ? v.ieee.exponent < 55
+	      : (w.ieee.exponent == 0
+		 || (w.ieee.exponent == 1
+		     && w.ieee.negative != neg
+		     && w.ieee.mantissa1 == 0
+		     && w.ieee.mantissa0 == 0)))
+	    {
+	      double force_underflow = x * y;
+	      math_force_eval (force_underflow);
+	    }
+	  return v.d * 0x1p-54;
+	}
+      if (u.ieee.exponent + v.ieee.exponent
+	  >= 0x7ff + IEEE754_DOUBLE_BIAS - DBL_MANT_DIG)
+	{
+	  /* Compute 1p-53 times smaller result and multiply
+	     at the end.  */
+	  if (u.ieee.exponent > v.ieee.exponent)
+	    u.ieee.exponent -= DBL_MANT_DIG;
+	  else
+	    v.ieee.exponent -= DBL_MANT_DIG;
+	  /* If x + y exponent is very large and z exponent is very small,
+	     it doesn't matter if we don't adjust it.  */
+	  if (w.ieee.exponent > DBL_MANT_DIG)
+	    w.ieee.exponent -= DBL_MANT_DIG;
+	  adjust = 1;
+	}
+      else if (w.ieee.exponent >= 0x7ff - DBL_MANT_DIG)
+	{
+	  /* Similarly.
+	     If z exponent is very large and x and y exponents are
+	     very small, adjust them up to avoid spurious underflows,
+	     rather than down.  */
+	  if (u.ieee.exponent + v.ieee.exponent
+	      <= IEEE754_DOUBLE_BIAS + 2 * DBL_MANT_DIG)
+	    {
+	      if (u.ieee.exponent > v.ieee.exponent)
+		u.ieee.exponent += 2 * DBL_MANT_DIG + 2;
+	      else
+		v.ieee.exponent += 2 * DBL_MANT_DIG + 2;
+	    }
+	  else if (u.ieee.exponent > v.ieee.exponent)
+	    {
+	      if (u.ieee.exponent > DBL_MANT_DIG)
+		u.ieee.exponent -= DBL_MANT_DIG;
+	    }
+	  else if (v.ieee.exponent > DBL_MANT_DIG)
+	    v.ieee.exponent -= DBL_MANT_DIG;
+	  w.ieee.exponent -= DBL_MANT_DIG;
+	  adjust = 1;
+	}
+      else if (u.ieee.exponent >= 0x7ff - DBL_MANT_DIG)
+	{
+	  u.ieee.exponent -= DBL_MANT_DIG;
+	  if (v.ieee.exponent)
+	    v.ieee.exponent += DBL_MANT_DIG;
+	  else
+	    v.d *= 0x1p53;
+	}
+      else if (v.ieee.exponent >= 0x7ff - DBL_MANT_DIG)
+	{
+	  v.ieee.exponent -= DBL_MANT_DIG;
+	  if (u.ieee.exponent)
+	    u.ieee.exponent += DBL_MANT_DIG;
+	  else
+	    u.d *= 0x1p53;
+	}
+      else /* if (u.ieee.exponent + v.ieee.exponent
+		  <= IEEE754_DOUBLE_BIAS + DBL_MANT_DIG) */
+	{
+	  if (u.ieee.exponent > v.ieee.exponent)
+	    u.ieee.exponent += 2 * DBL_MANT_DIG + 2;
+	  else
+	    v.ieee.exponent += 2 * DBL_MANT_DIG + 2;
+	  if (w.ieee.exponent <= 4 * DBL_MANT_DIG + 6)
+	    {
+	      if (w.ieee.exponent)
+		w.ieee.exponent += 2 * DBL_MANT_DIG + 2;
+	      else
+		w.d *= 0x1p108;
+	      adjust = -1;
+	    }
+	  /* Otherwise x * y should just affect inexact
+	     and nothing else.  */
+	}
+      x = u.d;
+      y = v.d;
+      z = w.d;
+    }
+
+  /* Ensure correct sign of exact 0 + 0.  */
+  if (__glibc_unlikely ((x == 0 || y == 0) && z == 0))
+    {
+      x = math_opt_barrier (x);
+      return x * y + z;
+    }
+
+  fenv_t env;
+  libc_feholdexcept_setround (&env, FE_TONEAREST);
+
+  /* Multiplication m1 + m2 = x * y using Dekker's algorithm.  */
+#define C ((1 << (DBL_MANT_DIG + 1) / 2) + 1)
+  double x1 = x * C;
+  double y1 = y * C;
+  double m1 = x * y;
+  x1 = (x - x1) + x1;
+  y1 = (y - y1) + y1;
+  double x2 = x - x1;
+  double y2 = y - y1;
+  double m2 = (((x1 * y1 - m1) + x1 * y2) + x2 * y1) + x2 * y2;
+
+  /* Addition a1 + a2 = z + m1 using Knuth's algorithm.  */
+  double a1 = z + m1;
+  double t1 = a1 - z;
+  double t2 = a1 - t1;
+  t1 = m1 - t1;
+  t2 = z - t2;
+  double a2 = t1 + t2;
+  /* Ensure the arithmetic is not scheduled after feclearexcept call.  */
+  math_force_eval (m2);
+  math_force_eval (a2);
+  feclearexcept (FE_INEXACT);
+
+  /* If the result is an exact zero, ensure it has the correct sign.  */
+  if (a1 == 0 && m2 == 0)
+    {
+      libc_feupdateenv (&env);
+      /* Ensure that round-to-nearest value of z + m1 is not reused.  */
+      z = math_opt_barrier (z);
+      return z + m1;
+    }
+
+  libc_fesetround (FE_TOWARDZERO);
+
+  /* Perform m2 + a2 addition with round to odd.  */
+  u.d = a2 + m2;
+
+  if (__glibc_unlikely (adjust < 0))
+    {
+      if ((u.ieee.mantissa1 & 1) == 0)
+	u.ieee.mantissa1 |= libc_fetestexcept (FE_INEXACT) != 0;
+      v.d = a1 + u.d;
+      /* Ensure the addition is not scheduled after fetestexcept call.  */
+      math_force_eval (v.d);
+    }
+
+  /* Reset rounding mode and test for inexact simultaneously.  */
+  int j = libc_feupdateenv_test (&env, FE_INEXACT) != 0;
+
+  if (__glibc_likely (adjust == 0))
+    {
+      if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7ff)
+	u.ieee.mantissa1 |= j;
+      /* Result is a1 + u.d.  */
+      return a1 + u.d;
+    }
+  else if (__glibc_likely (adjust > 0))
+    {
+      if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7ff)
+	u.ieee.mantissa1 |= j;
+      /* Result is a1 + u.d, scaled up.  */
+      return (a1 + u.d) * 0x1p53;
+    }
+  else
+    {
+      /* If a1 + u.d is exact, the only rounding happens during
+	 scaling down.  */
+      if (j == 0)
+	return v.d * 0x1p-108;
+      /* If result rounded to zero is not subnormal, no double
+	 rounding will occur.  */
+      if (v.ieee.exponent > 108)
+	return (a1 + u.d) * 0x1p-108;
+      /* If v.d * 0x1p-108 with round to zero is a subnormal above
+	 or equal to DBL_MIN / 2, then v.d * 0x1p-108 shifts mantissa
+	 down just by 1 bit, which means v.ieee.mantissa1 |= j would
+	 change the round bit, not sticky or guard bit.
+	 v.d * 0x1p-108 never normalizes by shifting up,
+	 so round bit plus sticky bit should be already enough
+	 for proper rounding.  */
+      if (v.ieee.exponent == 108)
+	{
+	  /* If the exponent would be in the normal range when
+	     rounding to normal precision with unbounded exponent
+	     range, the exact result is known and spurious underflows
+	     must be avoided on systems detecting tininess after
+	     rounding.  */
+	  if (TININESS_AFTER_ROUNDING)
+	    {
+	      w.d = a1 + u.d;
+	      if (w.ieee.exponent == 109)
+		return w.d * 0x1p-108;
+	    }
+	  /* v.ieee.mantissa1 & 2 is LSB bit of the result before rounding,
+	     v.ieee.mantissa1 & 1 is the round bit and j is our sticky
+	     bit.  */
+	  w.d = 0.0;
+	  w.ieee.mantissa1 = ((v.ieee.mantissa1 & 3) << 1) | j;
+	  w.ieee.negative = v.ieee.negative;
+	  v.ieee.mantissa1 &= ~3U;
+	  v.d *= 0x1p-108;
+	  w.d *= 0x1p-2;
+	  return v.d + w.d;
+	}
+      v.ieee.mantissa1 |= j;
+      return v.d * 0x1p-108;
+    }
+}
+#ifndef __fma
+weak_alias (__fma, fma)
+#endif
+
+#ifdef NO_LONG_DOUBLE
+strong_alias (__fma, __fmal)
+weak_alias (__fmal, fmal)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_fmaf.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fmaf.c
new file mode 100644
index 0000000000..e6c0fed64d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fmaf.c
@@ -0,0 +1,64 @@
+/* Compute x * y + z as ternary operation.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <fenv.h>
+#include <ieee754.h>
+#include <math_private.h>
+
+/* This implementation relies on double being more than twice as
+   precise as float and uses rounding to odd in order to avoid problems
+   with double rounding.
+   See a paper by Boldo and Melquiond:
+   http://www.lri.fr/~melquion/doc/08-tc.pdf  */
+
+float
+__fmaf (float x, float y, float z)
+{
+  fenv_t env;
+
+  /* Multiplication is always exact.  */
+  double temp = (double) x * (double) y;
+
+  /* Ensure correct sign of an exact zero result by performing the
+     addition in the original rounding mode in that case.  */
+  if (temp == -z)
+    return (float) temp + z;
+
+  union ieee754_double u;
+
+  libc_feholdexcept_setround (&env, FE_TOWARDZERO);
+
+  /* Perform addition with round to odd.  */
+  u.d = temp + (double) z;
+  /* Ensure the addition is not scheduled after fetestexcept call.  */
+  math_force_eval (u.d);
+
+  /* Reset rounding mode and test for inexact simultaneously.  */
+  int j = libc_feupdateenv_test (&env, FE_INEXACT) != 0;
+
+  if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7ff)
+    u.ieee.mantissa1 |= j;
+
+  /* And finally truncation with round to nearest.  */
+  return (float) u.d;
+}
+#ifndef __fmaf
+weak_alias (__fmaf, fmaf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_fpclassify.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fpclassify.c
new file mode 100644
index 0000000000..3fa9117ff0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fpclassify.c
@@ -0,0 +1,43 @@
+/* Return classification value corresponding to argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+int
+__fpclassify (double x)
+{
+  u_int32_t hx, lx;
+  int retval = FP_NORMAL;
+
+  EXTRACT_WORDS (hx, lx, x);
+  lx |= hx & 0xfffff;
+  hx &= 0x7ff00000;
+  if ((hx | lx) == 0)
+    retval = FP_ZERO;
+  else if (hx == 0)
+    retval = FP_SUBNORMAL;
+  else if (hx == 0x7ff00000)
+    retval = lx != 0 ? FP_NAN : FP_INFINITE;
+
+  return retval;
+}
+libm_hidden_def (__fpclassify)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_frexp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_frexp.c
new file mode 100644
index 0000000000..874214ec7c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_frexp.c
@@ -0,0 +1,58 @@
+/* @(#)s_frexp.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_frexp.c,v 1.9 1995/05/10 20:47:24 jtc Exp $";
+#endif
+
+/*
+ * for non-zero x
+ *	x = frexp(arg,&exp);
+ * return a double fp quantity x such that 0.5 <= |x| <1.0
+ * and the corresponding binary exponent "exp". That is
+ *	arg = x*2^exp.
+ * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg
+ * with *exp=0.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  two54 = 1.80143985094819840000e+16; /* 0x43500000, 0x00000000 */
+
+double
+__frexp (double x, int *eptr)
+{
+  int32_t hx, ix, lx;
+  EXTRACT_WORDS (hx, lx, x);
+  ix = 0x7fffffff & hx;
+  *eptr = 0;
+  if (ix >= 0x7ff00000 || ((ix | lx) == 0))
+    return x + x;                                           /* 0,inf,nan */
+  if (ix < 0x00100000)                  /* subnormal */
+    {
+      x *= two54;
+      GET_HIGH_WORD (hx, x);
+      ix = hx & 0x7fffffff;
+      *eptr = -54;
+    }
+  *eptr += (ix >> 20) - 1022;
+  hx = (hx & 0x800fffff) | 0x3fe00000;
+  SET_HIGH_WORD (x, hx);
+  return x;
+}
+weak_alias (__frexp, frexp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__frexp, __frexpl)
+weak_alias (__frexp, frexpl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp.c
new file mode 100644
index 0000000000..92fbe0c162
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp.c
@@ -0,0 +1,7 @@
+#define UNSIGNED 0
+#define INEXACT 0
+#define FUNC fromfp
+#include <s_fromfp_main.c>
+#ifdef NO_LONG_DOUBLE
+weak_alias (fromfp, fromfpl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp_main.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp_main.c
new file mode 100644
index 0000000000..ca0aa82092
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfp_main.c
@@ -0,0 +1,82 @@
+/* Round to integer type.  dbl-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#define BIAS 0x3ff
+#define MANT_DIG 53
+
+#if UNSIGNED
+# define RET_TYPE uintmax_t
+#else
+# define RET_TYPE intmax_t
+#endif
+
+#include <fromfp.h>
+
+RET_TYPE
+FUNC (double x, int round, unsigned int width)
+{
+  if (width > INTMAX_WIDTH)
+    width = INTMAX_WIDTH;
+  uint64_t ix;
+  EXTRACT_WORDS64 (ix, x);
+  bool negative = (ix & 0x8000000000000000ULL) != 0;
+  if (width == 0)
+    return fromfp_domain_error (negative, width);
+  ix &= 0x7fffffffffffffffULL;
+  if (ix == 0)
+    return 0;
+  int exponent = ix >> (MANT_DIG - 1);
+  exponent -= BIAS;
+  int max_exponent = fromfp_max_exponent (negative, width);
+  if (exponent > max_exponent)
+    return fromfp_domain_error (negative, width);
+
+  ix &= ((1ULL << (MANT_DIG - 1)) - 1);
+  ix |= 1ULL << (MANT_DIG - 1);
+  uintmax_t uret;
+  bool half_bit, more_bits;
+  if (exponent >= MANT_DIG - 1)
+    {
+      uret = ix;
+      uret <<= exponent - (MANT_DIG - 1);
+      half_bit = false;
+      more_bits = false;
+    }
+  else if (exponent >= -1)
+    {
+      uint64_t h = 1ULL << (MANT_DIG - 2 - exponent);
+      half_bit = (ix & h) != 0;
+      more_bits = (ix & (h - 1)) != 0;
+      uret = ix >> (MANT_DIG - 1 - exponent);
+    }
+  else
+    {
+      uret = 0;
+      half_bit = false;
+      more_bits = true;
+    }
+  return fromfp_round_and_return (negative, uret, half_bit, more_bits, round,
+				  exponent, max_exponent, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfpx.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfpx.c
new file mode 100644
index 0000000000..bbfb969813
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_fromfpx.c
@@ -0,0 +1,7 @@
+#define UNSIGNED 0
+#define INEXACT 1
+#define FUNC fromfpx
+#include <s_fromfp_main.c>
+#ifdef NO_LONG_DOUBLE
+weak_alias (fromfpx, fromfpxl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_getpayload.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_getpayload.c
new file mode 100644
index 0000000000..63288e0f45
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_getpayload.c
@@ -0,0 +1,37 @@
+/* Get NaN payload.  dbl-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fix-int-fp-convert-zero.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+double
+getpayload (const double *x)
+{
+  uint32_t hx, lx;
+  EXTRACT_WORDS (hx, lx, *x);
+  hx &= 0x7ffff;
+  uint64_t ix = ((uint64_t) hx << 32) | lx;
+  if (FIX_INT_FP_CONVERT_ZERO && ix == 0)
+    return 0.0f;
+  return (double) ix;
+}
+#ifdef NO_LONG_DOUBLE
+weak_alias (getpayload, getpayloadl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_isinf.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_isinf.c
new file mode 100644
index 0000000000..c0ad54538a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_isinf.c
@@ -0,0 +1,36 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Changed to return -1 for -Inf by Ulrich Drepper <drepper@cygnus.com>.
+ * Public domain.
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_isinf.c,v 1.3 1995/05/11 23:20:14 jtc Exp $";
+#endif
+
+/*
+ * isinf(x) returns 1 is x is inf, -1 if x is -inf, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <shlib-compat.h>
+
+int
+__isinf (double x)
+{
+  int32_t hx, lx;
+  EXTRACT_WORDS (hx, lx, x);
+  lx |= (hx & 0x7fffffff) ^ 0x7ff00000;
+  lx |= -lx;
+  return ~(lx >> 31) & (hx >> 30);
+}
+hidden_def (__isinf)
+weak_alias (__isinf, isinf)
+#ifdef NO_LONG_DOUBLE
+# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
+# endif
+weak_alias (__isinf, isinfl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_isnan.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_isnan.c
new file mode 100644
index 0000000000..2174d988d8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_isnan.c
@@ -0,0 +1,44 @@
+/* @(#)s_isnan.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_isnan.c,v 1.8 1995/05/10 20:47:36 jtc Exp $";
+#endif
+
+/*
+ * isnan(x) returns 1 is x is nan, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <shlib-compat.h>
+
+#undef __isnan
+int
+__isnan (double x)
+{
+  int32_t hx, lx;
+  EXTRACT_WORDS (hx, lx, x);
+  hx &= 0x7fffffff;
+  hx |= (u_int32_t) (lx | (-lx)) >> 31;
+  hx = 0x7ff00000 - hx;
+  return (int) (((u_int32_t) hx) >> 31);
+}
+hidden_def (__isnan)
+weak_alias (__isnan, isnan)
+#ifdef NO_LONG_DOUBLE
+# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+# endif
+weak_alias (__isnan, isnanl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_issignaling.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_issignaling.c
new file mode 100644
index 0000000000..09e12f9a6a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_issignaling.c
@@ -0,0 +1,47 @@
+/* Test for signaling NaN.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+
+int
+__issignaling (double x)
+{
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  u_int32_t hxi;
+  GET_HIGH_WORD (hxi, x);
+  /* We only have to care about the high-order bit of x's significand, because
+     having it set (sNaN) already makes the significand different from that
+     used to designate infinity.  */
+  return (hxi & 0x7ff80000) == 0x7ff80000;
+#else
+  u_int32_t hxi, lxi;
+  EXTRACT_WORDS (hxi, lxi, x);
+  /* To keep the following comparison simple, toggle the quiet/signaling bit,
+     so that it is set for sNaNs.  This is inverse to IEEE 754-2008 (as well as
+     common practice for IEEE 754-1985).  */
+  hxi ^= 0x00080000;
+  /* If lxi != 0, then set any suitable bit of the significand in hxi.  */
+  hxi |= (lxi | -lxi) >> 31;
+  /* We have to compare for greater (instead of greater or equal), because x's
+     significand being all-zero designates infinity not NaN.  */
+  return (hxi & 0x7fffffff) > 0x7ff80000;
+#endif
+}
+libm_hidden_def (__issignaling)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_llrint.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_llrint.c
new file mode 100644
index 0000000000..08781c3acd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_llrint.c
@@ -0,0 +1,103 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+static const double two52[2] =
+{
+  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+
+long long int
+__llrint (double x)
+{
+  int32_t j0;
+  u_int32_t i1, i0;
+  long long int result;
+  double w;
+  double t;
+  int sx;
+
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  sx = i0 >> 31;
+  i0 &= 0xfffff;
+  i0 |= 0x100000;
+
+  if (j0 < 20)
+    {
+      w = math_narrow_eval (two52[sx] + x);
+      t = w - two52[sx];
+      EXTRACT_WORDS (i0, i1, t);
+      j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+      i0 &= 0xfffff;
+      i0 |= 0x100000;
+
+      result = (j0 < 0 ? 0 : i0 >> (20 - j0));
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+      if (j0 >= 52)
+	result = (((long long int) i0 << 32) | i1) << (j0 - 52);
+      else
+	{
+	  w = math_narrow_eval (two52[sx] + x);
+	  t = w - two52[sx];
+	  EXTRACT_WORDS (i0, i1, t);
+	  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+	  i0 &= 0xfffff;
+	  i0 |= 0x100000;
+
+	  if (j0 == 20)
+	    result = (long long int) i0;
+	  else
+	    result = ((long long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
+	}
+    }
+  else
+    {
+#ifdef FE_INVALID
+      /* The number is too large.  Unless it rounds to LLONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+      if (FIX_DBL_LLONG_CONVERT_OVERFLOW && x != (double) LLONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sx == 0 ? LLONG_MAX : LLONG_MIN;
+	}
+#endif
+      return (long long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__llrint, llrint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__llrint, __llrintl)
+weak_alias (__llrint, llrintl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_llround.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_llround.c
new file mode 100644
index 0000000000..8790e9df57
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_llround.c
@@ -0,0 +1,91 @@
+/* Round double value to long long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+
+long long int
+__llround (double x)
+{
+  int32_t j0;
+  u_int32_t i1, i0;
+  long long int result;
+  int sign;
+
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  sign = (i0 & 0x80000000) != 0 ? -1 : 1;
+  i0 &= 0xfffff;
+  i0 |= 0x100000;
+
+  if (j0 < 20)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else
+	{
+	  i0 += 0x80000 >> j0;
+
+	  result = i0 >> (20 - j0);
+	}
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+      if (j0 >= 52)
+	result = (((long long int) i0 << 32) | i1) << (j0 - 52);
+      else
+	{
+	  u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
+	  if (j < i1)
+	    ++i0;
+
+	  if (j0 == 20)
+	    result = (long long int) i0;
+	  else
+	    result = ((long long int) i0 << (j0 - 20)) | (j >> (52 - j0));
+	}
+    }
+  else
+    {
+#ifdef FE_INVALID
+      /* The number is too large.  Unless it rounds to LLONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+      if (FIX_DBL_LLONG_CONVERT_OVERFLOW && x != (double) LLONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sign == 1 ? LLONG_MAX : LLONG_MIN;
+	}
+#endif
+      return (long long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__llround, llround)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__llround, __llroundl)
+weak_alias (__llround, llroundl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_log1p.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_log1p.c
new file mode 100644
index 0000000000..340f6377f7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_log1p.c
@@ -0,0 +1,195 @@
+/* @(#)s_log1p.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+/* Modified by Naohiko Shimizu/Tokai University, Japan 1997/08/25,
+   for performance improvement on pipelined processors.
+ */
+
+/* double log1p(double x)
+ *
+ * Method :
+ *   1. Argument Reduction: find k and f such that
+ *			1+x = 2^k * (1+f),
+ *	   where  sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ *      Note. If k=0, then f=x is exact. However, if k!=0, then f
+ *	may not be representable exactly. In that case, a correction
+ *	term is need. Let u=1+x rounded. Let c = (1+x)-u, then
+ *	log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u),
+ *	and add back the correction term c/u.
+ *	(Note: when x > 2**53, one can simply return log(x))
+ *
+ *   2. Approximation of log1p(f).
+ *	Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ *		 = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ *		 = 2s + s*R
+ *      We use a special Reme algorithm on [0,0.1716] to generate
+ *	a polynomial of degree 14 to approximate R The maximum error
+ *	of this polynomial approximation is bounded by 2**-58.45. In
+ *	other words,
+ *			2      4      6      8      10      12      14
+ *	    R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s  +Lp6*s  +Lp7*s
+ *	(the values of Lp1 to Lp7 are listed in the program)
+ *	and
+ *	    |      2          14          |     -58.45
+ *	    | Lp1*s +...+Lp7*s    -  R(z) | <= 2
+ *	    |                             |
+ *	Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ *	In order to guarantee error in log below 1ulp, we compute log
+ *	by
+ *		log1p(f) = f - (hfsq - s*(hfsq+R)).
+ *
+ *	3. Finally, log1p(x) = k*ln2 + log1p(f).
+ *			     = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
+ *	   Here ln2 is split into two floating point number:
+ *			ln2_hi + ln2_lo,
+ *	   where n*ln2_hi is always exact for |n| < 2000.
+ *
+ * Special cases:
+ *	log1p(x) is NaN with signal if x < -1 (including -INF) ;
+ *	log1p(+INF) is +INF; log1p(-1) is -INF with signal;
+ *	log1p(NaN) is that NaN with no signal.
+ *
+ * Accuracy:
+ *	according to an error analysis, the error is always less than
+ *	1 ulp (unit in the last place).
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ *
+ * Note: Assuming log() return accurate answer, the following
+ *	 algorithm can be used to compute log1p(x) to within a few ULP:
+ *
+ *		u = 1+x;
+ *		if(u==1.0) return x ; else
+ *			   return log(u)*(x/(u-1.0));
+ *
+ *	 See HP-15C Advanced Functions Handbook, p.193.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  ln2_hi = 6.93147180369123816490e-01,  /* 3fe62e42 fee00000 */
+  ln2_lo = 1.90821492927058770002e-10,  /* 3dea39ef 35793c76 */
+  two54 = 1.80143985094819840000e+16,   /* 43500000 00000000 */
+  Lp[] = { 0.0, 6.666666666666735130e-01, /* 3FE55555 55555593 */
+	   3.999999999940941908e-01, /* 3FD99999 9997FA04 */
+	   2.857142874366239149e-01, /* 3FD24924 94229359 */
+	   2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */
+	   1.818357216161805012e-01, /* 3FC74664 96CB03DE */
+	   1.531383769920937332e-01, /* 3FC39A09 D078C69F */
+	   1.479819860511658591e-01 }; /* 3FC2F112 DF3E5244 */
+
+static const double zero = 0.0;
+
+double
+__log1p (double x)
+{
+  double hfsq, f, c, s, z, R, u, z2, z4, z6, R1, R2, R3, R4;
+  int32_t k, hx, hu, ax;
+
+  GET_HIGH_WORD (hx, x);
+  ax = hx & 0x7fffffff;
+
+  k = 1;
+  if (hx < 0x3FDA827A)                          /* x < 0.41422  */
+    {
+      if (__glibc_unlikely (ax >= 0x3ff00000))           /* x <= -1.0 */
+	{
+	  if (x == -1.0)
+	    return -two54 / zero;               /* log1p(-1)=-inf */
+	  else
+	    return (x - x) / (x - x);           /* log1p(x<-1)=NaN */
+	}
+      if (__glibc_unlikely (ax < 0x3e200000))           /* |x| < 2**-29 */
+	{
+	  math_force_eval (two54 + x);          /* raise inexact */
+	  if (ax < 0x3c900000)                  /* |x| < 2**-54 */
+	    {
+	      math_check_force_underflow (x);
+	      return x;
+	    }
+	  else
+	    return x - x * x * 0.5;
+	}
+      if (hx > 0 || hx <= ((int32_t) 0xbfd2bec3))
+	{
+	  k = 0; f = x; hu = 1;
+	}                       /* -0.2929<x<0.41422 */
+    }
+  else if (__glibc_unlikely (hx >= 0x7ff00000))
+    return x + x;
+  if (k != 0)
+    {
+      if (hx < 0x43400000)
+	{
+	  u = 1.0 + x;
+	  GET_HIGH_WORD (hu, u);
+	  k = (hu >> 20) - 1023;
+	  c = (k > 0) ? 1.0 - (u - x) : x - (u - 1.0); /* correction term */
+	  c /= u;
+	}
+      else
+	{
+	  u = x;
+	  GET_HIGH_WORD (hu, u);
+	  k = (hu >> 20) - 1023;
+	  c = 0;
+	}
+      hu &= 0x000fffff;
+      if (hu < 0x6a09e)
+	{
+	  SET_HIGH_WORD (u, hu | 0x3ff00000);   /* normalize u */
+	}
+      else
+	{
+	  k += 1;
+	  SET_HIGH_WORD (u, hu | 0x3fe00000);   /* normalize u/2 */
+	  hu = (0x00100000 - hu) >> 2;
+	}
+      f = u - 1.0;
+    }
+  hfsq = 0.5 * f * f;
+  if (hu == 0)          /* |f| < 2**-20 */
+    {
+      if (f == zero)
+	{
+	  if (k == 0)
+	    return zero;
+	  else
+	    {
+	      c += k * ln2_lo; return k * ln2_hi + c;
+	    }
+	}
+      R = hfsq * (1.0 - 0.66666666666666666 * f);
+      if (k == 0)
+	return f - R;
+      else
+	return k * ln2_hi - ((R - (k * ln2_lo + c)) - f);
+    }
+  s = f / (2.0 + f);
+  z = s * s;
+  R1 = z * Lp[1]; z2 = z * z;
+  R2 = Lp[2] + z * Lp[3]; z4 = z2 * z2;
+  R3 = Lp[4] + z * Lp[5]; z6 = z4 * z2;
+  R4 = Lp[6] + z * Lp[7];
+  R = R1 + z2 * R2 + z4 * R3 + z6 * R4;
+  if (k == 0)
+    return f - (hfsq - s * (hfsq + R));
+  else
+    return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_logb.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_logb.c
new file mode 100644
index 0000000000..3a26b18f78
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_logb.c
@@ -0,0 +1,52 @@
+/* @(#)s_logb.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * double logb(x)
+ * IEEE 754 logb. Included to pass IEEE test suite. Not recommend.
+ * Use ilogb instead.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+double
+__logb (double x)
+{
+  int32_t lx, ix, rix;
+
+  EXTRACT_WORDS (ix, lx, x);
+  ix &= 0x7fffffff;             /* high |x| */
+  if ((ix | lx) == 0)
+    return -1.0 / fabs (x);
+  if (ix >= 0x7ff00000)
+    return x * x;
+  if (__glibc_unlikely ((rix = ix >> 20) == 0))
+    {
+      /* POSIX specifies that denormal number is treated as
+         though it were normalized.  */
+      int ma;
+      if (ix == 0)
+	ma = __builtin_clz (lx) + 32;
+      else
+	ma = __builtin_clz (ix);
+      rix -= ma - 12;
+    }
+  if (FIX_INT_FP_CONVERT_ZERO && rix == 1023)
+    return 0.0;
+  return (double) (rix - 1023);
+}
+weak_alias (__logb, logb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__logb, __logbl) weak_alias (__logb, logbl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_lrint.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_lrint.c
new file mode 100644
index 0000000000..ac610bfbd0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_lrint.c
@@ -0,0 +1,127 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+static const double two52[2] =
+{
+  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+
+long int
+__lrint (double x)
+{
+  int32_t j0;
+  u_int32_t i0, i1;
+  double w;
+  double t;
+  long int result;
+  int sx;
+
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  sx = i0 >> 31;
+  i0 &= 0xfffff;
+  i0 |= 0x100000;
+
+  if (j0 < 20)
+    {
+      w = math_narrow_eval (two52[sx] + x);
+      t = w - two52[sx];
+      EXTRACT_WORDS (i0, i1, t);
+      j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+      i0 &= 0xfffff;
+      i0 |= 0x100000;
+
+      result = (j0 < 0 ? 0 : i0 >> (20 - j0));
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 >= 52)
+	result = ((long int) i0 << (j0 - 20)) | ((long int) i1 << (j0 - 52));
+      else
+	{
+#if defined FE_INVALID || defined FE_INEXACT
+	  /* X < LONG_MAX + 1 implied by J0 < 31.  */
+	  if (sizeof (long int) == 4
+	      && x > (double) LONG_MAX)
+	    {
+	      /* In the event of overflow we must raise the "invalid"
+		 exception, but not "inexact".  */
+	      t = __nearbyint (x);
+	      feraiseexcept (t == LONG_MAX ? FE_INEXACT : FE_INVALID);
+	    }
+	  else
+#endif
+	    {
+	      w = math_narrow_eval (two52[sx] + x);
+	      t = w - two52[sx];
+	    }
+	  EXTRACT_WORDS (i0, i1, t);
+	  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+	  i0 &= 0xfffff;
+	  i0 |= 0x100000;
+
+	  if (j0 == 20)
+	    result = (long int) i0;
+	  else
+	    result = ((long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#if defined FE_INVALID || defined FE_INEXACT
+      if (sizeof (long int) == 4
+	  && x < (double) LONG_MIN
+	  && x > (double) LONG_MIN - 1.0)
+	{
+	  /* If truncation produces LONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  t = __nearbyint (x);
+	  feraiseexcept (t == LONG_MIN ? FE_INEXACT : FE_INVALID);
+	  return LONG_MIN;
+	}
+      else if (FIX_DBL_LONG_CONVERT_OVERFLOW && x != (double) LONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sx == 0 ? LONG_MAX : LONG_MIN;
+	}
+#endif
+      return (long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__lrint, lrint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lrint, __lrintl)
+weak_alias (__lrint, lrintl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_lround.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_lround.c
new file mode 100644
index 0000000000..df4775e344
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_lround.c
@@ -0,0 +1,113 @@
+/* Round double value to long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+
+long int
+__lround (double x)
+{
+  int32_t j0;
+  u_int32_t i1, i0;
+  long int result;
+  int sign;
+
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  sign = (i0 & 0x80000000) != 0 ? -1 : 1;
+  i0 &= 0xfffff;
+  i0 |= 0x100000;
+
+  if (j0 < 20)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else
+	{
+	  i0 += 0x80000 >> j0;
+
+	  result = i0 >> (20 - j0);
+	}
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 >= 52)
+	result = ((long int) i0 << (j0 - 20)) | ((long int) i1 << (j0 - 52));
+      else
+	{
+	  u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
+	  if (j < i1)
+	    ++i0;
+
+	  if (j0 == 20)
+	    result = (long int) i0;
+	  else
+	    {
+	      result = ((long int) i0 << (j0 - 20)) | (j >> (52 - j0));
+#ifdef FE_INVALID
+	      if (sizeof (long int) == 4
+		  && sign == 1
+		  && result == LONG_MIN)
+		/* Rounding brought the value out of range.  */
+		feraiseexcept (FE_INVALID);
+#endif
+	    }
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#ifdef FE_INVALID
+      if (FIX_DBL_LONG_CONVERT_OVERFLOW
+	  && !(sign == -1
+	       && (sizeof (long int) == 4
+		   ? x > (double) LONG_MIN - 0.5
+		   : x >= (double) LONG_MIN)))
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sign == 1 ? LONG_MAX : LONG_MIN;
+	}
+      else if (!FIX_DBL_LONG_CONVERT_OVERFLOW
+	       && sizeof (long int) == 4
+	       && x <= (double) LONG_MIN - 0.5)
+	{
+	  /* If truncation produces LONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  feraiseexcept (FE_INVALID);
+	  return LONG_MIN;
+	}
+#endif
+      return (long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__lround, lround)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__lround, __lroundl)
+weak_alias (__lround, lroundl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_modf.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_modf.c
new file mode 100644
index 0000000000..0a1e13008f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_modf.c
@@ -0,0 +1,86 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * modf(double x, double *iptr)
+ * return fraction part of x, and return x's integral part in *iptr.
+ * Method:
+ *	Bit twiddling.
+ *
+ * Exception:
+ *	No exception.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double one = 1.0;
+
+double
+__modf (double x, double *iptr)
+{
+  int32_t i0, i1, j0;
+  u_int32_t i;
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;    /* exponent of x */
+  if (j0 < 20)                          /* integer part in high x */
+    {
+      if (j0 < 0)                       /* |x|<1 */
+	{
+	  INSERT_WORDS (*iptr, i0 & 0x80000000, 0);     /* *iptr = +-0 */
+	  return x;
+	}
+      else
+	{
+	  i = (0x000fffff) >> j0;
+	  if (((i0 & i) | i1) == 0)             /* x is integral */
+	    {
+	      *iptr = x;
+	      INSERT_WORDS (x, i0 & 0x80000000, 0);     /* return +-0 */
+	      return x;
+	    }
+	  else
+	    {
+	      INSERT_WORDS (*iptr, i0 & (~i), 0);
+	      return x - *iptr;
+	    }
+	}
+    }
+  else if (__glibc_unlikely (j0 > 51))              /* no fraction part */
+    {
+      *iptr = x * one;
+      /* We must handle NaNs separately.  */
+      if (j0 == 0x400 && ((i0 & 0xfffff) | i1))
+	return x * one;
+      INSERT_WORDS (x, i0 & 0x80000000, 0);     /* return +-0 */
+      return x;
+    }
+  else                                  /* fraction part in low x */
+    {
+      i = ((u_int32_t) (0xffffffff)) >> (j0 - 20);
+      if ((i1 & i) == 0)                /* x is integral */
+	{
+	  *iptr = x;
+	  INSERT_WORDS (x, i0 & 0x80000000, 0);         /* return +-0 */
+	  return x;
+	}
+      else
+	{
+	  INSERT_WORDS (*iptr, i0, i1 & (~i));
+	  return x - *iptr;
+	}
+    }
+}
+weak_alias (__modf, modf)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__modf, __modfl)
+weak_alias (__modf, modfl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_nearbyint.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_nearbyint.c
new file mode 100644
index 0000000000..dec0c5d6ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_nearbyint.c
@@ -0,0 +1,78 @@
+/* Adapted for use as nearbyint by Ulrich Drepper <drepper@cygnus.com>.  */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_rint.c,v 1.8 1995/05/10 20:48:04 jtc Exp $";
+#endif
+
+/*
+ * rint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ *	Using floating addition.
+ * Exception:
+ *	Inexact flag raised if x not equal to rint(x).
+ */
+
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  TWO52[2] = {
+  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+double
+__nearbyint (double x)
+{
+  fenv_t env;
+  int32_t i0, j0, sx;
+  double w, t;
+  GET_HIGH_WORD (i0, x);
+  sx = (i0 >> 31) & 1;
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  if (j0 < 52)
+    {
+      if (j0 < 0)
+	{
+	  libc_feholdexcept (&env);
+	  w = TWO52[sx] + x;
+	  t = w - TWO52[sx];
+	  math_force_eval (t);
+	  libc_fesetenv (&env);
+	  GET_HIGH_WORD (i0, t);
+	  SET_HIGH_WORD (t, (i0 & 0x7fffffff) | (sx << 31));
+	  return t;
+	}
+    }
+  else
+    {
+      if (j0 == 0x400)
+	return x + x;                   /* inf or NaN */
+      else
+	return x;                       /* x is integral */
+    }
+  libc_feholdexcept (&env);
+  w = TWO52[sx] + x;
+  t = w - TWO52[sx];
+  math_force_eval (t);
+  libc_fesetenv (&env);
+  return t;
+}
+weak_alias (__nearbyint, nearbyint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__nearbyint, __nearbyintl)
+weak_alias (__nearbyint, nearbyintl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_nexttoward.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_nexttoward.c
new file mode 100644
index 0000000000..c68ba98cb3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_nexttoward.c
@@ -0,0 +1 @@
+/* This function is the same as nextafter so we use an alias there.  */
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_nextup.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_nextup.c
new file mode 100644
index 0000000000..983bd662b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_nextup.c
@@ -0,0 +1,58 @@
+/* Return the least floating-point number greater than X.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Return the least floating-point number greater than X.  */
+double
+__nextup (double x)
+{
+  int32_t hx, ix;
+  u_int32_t lx;
+
+  EXTRACT_WORDS (hx, lx, x);
+  ix = hx & 0x7fffffff;
+
+  if (((ix >= 0x7ff00000) && ((ix - 0x7ff00000) | lx) != 0))  /* x is nan.  */
+    return x + x;
+  if ((ix | lx) == 0)
+    return DBL_TRUE_MIN;
+  if (hx >= 0)
+    {				/* x > 0.  */
+      if (isinf (x))
+        return x;
+      lx += 1;
+      if (lx == 0)
+        hx += 1;
+    }
+  else
+    {				/* x < 0.  */
+      if (lx == 0)
+        hx -= 1;
+      lx -= 1;
+    }
+  INSERT_WORDS (x, hx, lx);
+  return x;
+}
+
+weak_alias (__nextup, nextup)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__nextup, __nextupl)
+weak_alias (__nextup, nextupl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_remquo.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_remquo.c
new file mode 100644
index 0000000000..2693c0e62c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_remquo.c
@@ -0,0 +1,115 @@
+/* Compute remainder and a congruent to the quotient.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+static const double zero = 0.0;
+
+
+double
+__remquo (double x, double y, int *quo)
+{
+  int32_t hx, hy;
+  u_int32_t sx, lx, ly;
+  int cquo, qs;
+
+  EXTRACT_WORDS (hx, lx, x);
+  EXTRACT_WORDS (hy, ly, y);
+  sx = hx & 0x80000000;
+  qs = sx ^ (hy & 0x80000000);
+  hy &= 0x7fffffff;
+  hx &= 0x7fffffff;
+
+  /* Purge off exception values.  */
+  if ((hy | ly) == 0)
+    return (x * y) / (x * y);                   /* y = 0 */
+  if ((hx >= 0x7ff00000)                        /* x not finite */
+      || ((hy >= 0x7ff00000)                    /* p is NaN */
+	  && (((hy - 0x7ff00000) | ly) != 0)))
+    return (x * y) / (x * y);
+
+  if (hy <= 0x7fbfffff)
+    x = __ieee754_fmod (x, 8 * y);              /* now x < 8y */
+
+  if (((hx - hy) | (lx - ly)) == 0)
+    {
+      *quo = qs ? -1 : 1;
+      return zero * x;
+    }
+
+  x = fabs (x);
+  y = fabs (y);
+  cquo = 0;
+
+  if (hy <= 0x7fcfffff && x >= 4 * y)
+    {
+      x -= 4 * y;
+      cquo += 4;
+    }
+  if (hy <= 0x7fdfffff && x >= 2 * y)
+    {
+      x -= 2 * y;
+      cquo += 2;
+    }
+
+  if (hy < 0x00200000)
+    {
+      if (x + x > y)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x + x >= y)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+  else
+    {
+      double y_half = 0.5 * y;
+      if (x > y_half)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x >= y_half)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+
+  *quo = qs ? -cquo : cquo;
+
+  /* Ensure correct sign of zero result in round-downward mode.  */
+  if (x == 0.0)
+    x = 0.0;
+  if (sx)
+    x = -x;
+  return x;
+}
+weak_alias (__remquo, remquo)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__remquo, __remquol)
+weak_alias (__remquo, remquol)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_rint.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_rint.c
new file mode 100644
index 0000000000..a9c0d27842
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_rint.c
@@ -0,0 +1,67 @@
+/* @(#)s_rint.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * rint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ *	Using floating addition.
+ * Exception:
+ *	Inexact flag raised if x not equal to rint(x).
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  TWO52[2] = {
+  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+double
+__rint (double x)
+{
+  int32_t i0, j0, sx;
+  double w, t;
+  GET_HIGH_WORD (i0, x);
+  sx = (i0 >> 31) & 1;
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  if (j0 < 52)
+    {
+      if (j0 < 0)
+	{
+	  w = TWO52[sx] + x;
+	  t = w - TWO52[sx];
+	  GET_HIGH_WORD (i0, t);
+	  SET_HIGH_WORD (t, (i0 & 0x7fffffff) | (sx << 31));
+	  return t;
+	}
+    }
+  else
+    {
+      if (j0 == 0x400)
+	return x + x;                   /* inf or NaN */
+      else
+	return x;                       /* x is integral */
+    }
+  w = TWO52[sx] + x;
+  return w - TWO52[sx];
+}
+#ifndef __rint
+weak_alias (__rint, rint)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__rint, __rintl)
+weak_alias (__rint, rintl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_round.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_round.c
new file mode 100644
index 0000000000..390e3f7180
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_round.c
@@ -0,0 +1,83 @@
+/* Round double to integer away from zero.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+double
+__round (double x)
+{
+  int32_t i0, j0;
+  u_int32_t i1;
+
+  EXTRACT_WORDS (i0, i1, x);
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  if (j0 < 20)
+    {
+      if (j0 < 0)
+	{
+	  i0 &= 0x80000000;
+	  if (j0 == -1)
+	    i0 |= 0x3ff00000;
+	  i1 = 0;
+	}
+      else
+	{
+	  u_int32_t i = 0x000fffff >> j0;
+	  if (((i0 & i) | i1) == 0)
+	    /* X is integral.  */
+	    return x;
+
+	  i0 += 0x00080000 >> j0;
+	  i0 &= ~i;
+	  i1 = 0;
+	}
+    }
+  else if (j0 > 51)
+    {
+      if (j0 == 0x400)
+	/* Inf or NaN.  */
+	return x + x;
+      else
+	return x;
+    }
+  else
+    {
+      u_int32_t i = 0xffffffff >> (j0 - 20);
+      if ((i1 & i) == 0)
+	/* X is integral.  */
+	return x;
+
+      u_int32_t j = i1 + (1 << (51 - j0));
+      if (j < i1)
+	i0 += 1;
+      i1 = j;
+      i1 &= ~i;
+    }
+
+  INSERT_WORDS (x, i0, i1);
+  return x;
+}
+weak_alias (__round, round)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__round, __roundl)
+weak_alias (__round, roundl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_roundeven.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_roundeven.c
new file mode 100644
index 0000000000..78d81a070c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_roundeven.c
@@ -0,0 +1,106 @@
+/* Round to nearest integer value, rounding halfway cases to even.
+   dbl-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+#define BIAS 0x3ff
+#define MANT_DIG 53
+#define MAX_EXP (2 * BIAS + 1)
+
+double
+roundeven (double x)
+{
+  uint32_t hx, lx, uhx;
+  EXTRACT_WORDS (hx, lx, x);
+  uhx = hx & 0x7fffffff;
+  int exponent = uhx >> (MANT_DIG - 1 - 32);
+  if (exponent >= BIAS + MANT_DIG - 1)
+    {
+      /* Integer, infinity or NaN.  */
+      if (exponent == MAX_EXP)
+	/* Infinity or NaN; quiet signaling NaNs.  */
+	return x + x;
+      else
+	return x;
+    }
+  else if (exponent >= BIAS + MANT_DIG - 32)
+    {
+      /* Not necessarily an integer; integer bit is in low word.
+	 Locate the bits with exponents 0 and -1.  */
+      int int_pos = (BIAS + MANT_DIG - 1) - exponent;
+      int half_pos = int_pos - 1;
+      uint32_t half_bit = 1U << half_pos;
+      uint32_t int_bit = 1U << int_pos;
+      if ((lx & (int_bit | (half_bit - 1))) != 0)
+	{
+	  /* Carry into the exponent works correctly.  No need to test
+	     whether HALF_BIT is set.  */
+	  lx += half_bit;
+	  hx += lx < half_bit;
+	}
+      lx &= ~(int_bit - 1);
+    }
+  else if (exponent == BIAS + MANT_DIG - 33)
+    {
+      /* Not necessarily an integer; integer bit is bottom of high
+	 word, half bit is top of low word.  */
+      if (((hx & 1) | (lx & 0x7fffffff)) != 0)
+	{
+	  lx += 0x80000000;
+	  hx += lx < 0x80000000;
+	}
+      lx = 0;
+    }
+  else if (exponent >= BIAS)
+    {
+      /* At least 1; not necessarily an integer, integer bit and half
+	 bit are in the high word.  Locate the bits with exponents 0
+	 and -1 (when the unbiased exponent is 0, the bit with
+	 exponent 0 is implicit, but as the bias is odd it is OK to
+	 take it from the low bit of the exponent).  */
+      int int_pos = (BIAS + MANT_DIG - 33) - exponent;
+      int half_pos = int_pos - 1;
+      uint32_t half_bit = 1U << half_pos;
+      uint32_t int_bit = 1U << int_pos;
+      if (((hx & (int_bit | (half_bit - 1))) | lx) != 0)
+	hx += half_bit;
+      hx &= ~(int_bit - 1);
+      lx = 0;
+    }
+  else if (exponent == BIAS - 1 && (uhx > 0x3fe00000 || lx != 0))
+    {
+      /* Interval (0.5, 1).  */
+      hx = (hx & 0x80000000) | 0x3ff00000;
+      lx = 0;
+    }
+  else
+    {
+      /* Rounds to 0.  */
+      hx &= 0x80000000;
+      lx = 0;
+    }
+  INSERT_WORDS (x, hx, lx);
+  return x;
+}
+hidden_def (roundeven)
+#ifdef NO_LONG_DOUBLE
+weak_alias (roundeven, roundevenl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbln.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbln.c
new file mode 100644
index 0000000000..32cd12e3b0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbln.c
@@ -0,0 +1,63 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * scalbn (double x, int n)
+ * scalbn(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  two54 = 1.80143985094819840000e+16,  /* 0x43500000, 0x00000000 */
+  twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
+  huge = 1.0e+300,
+  tiny = 1.0e-300;
+
+double
+__scalbln (double x, long int n)
+{
+  int32_t k, hx, lx;
+  EXTRACT_WORDS (hx, lx, x);
+  k = (hx & 0x7ff00000) >> 20;                  /* extract exponent */
+  if (__glibc_unlikely (k == 0))                   /* 0 or subnormal x */
+    {
+      if ((lx | (hx & 0x7fffffff)) == 0)
+	return x;                                  /* +-0 */
+      x *= two54;
+      GET_HIGH_WORD (hx, x);
+      k = ((hx & 0x7ff00000) >> 20) - 54;
+    }
+  if (__glibc_unlikely (k == 0x7ff))
+    return x + x;                                       /* NaN or Inf */
+  if (__glibc_unlikely (n < -50000))
+    return tiny * __copysign (tiny, x);   /*underflow*/
+  if (__glibc_unlikely (n > 50000 || k + n > 0x7fe))
+    return huge * __copysign (huge, x);   /* overflow  */
+  /* Now k and n are bounded we know that k = k+n does not
+     overflow.  */
+  k = k + n;
+  if (__glibc_likely (k > 0))                    /* normal result */
+    {
+      SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20)); return x;
+    }
+  if (k <= -54)
+    return tiny * __copysign (tiny, x);         /*underflow*/
+  k += 54;                                      /* subnormal result */
+  SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20));
+  return x * twom54;
+}
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalbln, __scalblnl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbn.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbn.c
new file mode 100644
index 0000000000..58c7e1b33a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_scalbn.c
@@ -0,0 +1,63 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * scalbn (double x, int n)
+ * scalbn(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+  two54 = 1.80143985094819840000e+16,  /* 0x43500000, 0x00000000 */
+  twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
+  huge = 1.0e+300,
+  tiny = 1.0e-300;
+
+double
+__scalbn (double x, int n)
+{
+  int32_t k, hx, lx;
+  EXTRACT_WORDS (hx, lx, x);
+  k = (hx & 0x7ff00000) >> 20;                  /* extract exponent */
+  if (__glibc_unlikely (k == 0))                   /* 0 or subnormal x */
+    {
+      if ((lx | (hx & 0x7fffffff)) == 0)
+	return x;                                  /* +-0 */
+      x *= two54;
+      GET_HIGH_WORD (hx, x);
+      k = ((hx & 0x7ff00000) >> 20) - 54;
+    }
+  if (__glibc_unlikely (k == 0x7ff))
+    return x + x;                                       /* NaN or Inf */
+  if (__glibc_unlikely (n < -50000))
+    return tiny * __copysign (tiny, x);   /*underflow*/
+  if (__glibc_unlikely (n > 50000 || k + n > 0x7fe))
+    return huge * __copysign (huge, x);   /* overflow  */
+  /* Now k and n are bounded we know that k = k+n does not
+     overflow.  */
+  k = k + n;
+  if (__glibc_likely (k > 0))                    /* normal result */
+    {
+      SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20)); return x;
+    }
+  if (k <= -54)
+    return tiny * __copysign (tiny, x);         /*underflow*/
+  k += 54;                                      /* subnormal result */
+  SET_HIGH_WORD (x, (hx & 0x800fffff) | (k << 20));
+  return x * twom54;
+}
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalbn, __scalbnl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload.c
new file mode 100644
index 0000000000..5ab70dee73
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload.c
@@ -0,0 +1,6 @@
+#define SIG 0
+#define FUNC setpayload
+#include <s_setpayload_main.c>
+#ifdef NO_LONG_DOUBLE
+weak_alias (setpayload, setpayloadl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload_main.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload_main.c
new file mode 100644
index 0000000000..c6128c7fe4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayload_main.c
@@ -0,0 +1,69 @@
+/* Set NaN payload.  dbl-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+#define SET_HIGH_BIT (HIGH_ORDER_BIT_IS_SET_FOR_SNAN ? SIG : !SIG)
+#define BIAS 0x3ff
+#define PAYLOAD_DIG 51
+#define EXPLICIT_MANT_DIG 52
+
+int
+FUNC (double *x, double payload)
+{
+  uint32_t hx, lx;
+  EXTRACT_WORDS (hx, lx, payload);
+  int exponent = hx >> (EXPLICIT_MANT_DIG - 32);
+  /* Test if argument is (a) negative or too large; (b) too small,
+     except for 0 when allowed; (c) not an integer.  */
+  if (exponent >= BIAS + PAYLOAD_DIG
+      || (exponent < BIAS && !(SET_HIGH_BIT && hx == 0 && lx == 0)))
+    {
+      INSERT_WORDS (*x, 0, 0);
+      return 1;
+    }
+  int shift = BIAS + EXPLICIT_MANT_DIG - exponent;
+  if (shift < 32
+      ? (lx & ((1U << shift) - 1)) != 0
+      : (lx != 0 || (hx & ((1U << (shift - 32)) - 1)) != 0))
+    {
+      INSERT_WORDS (*x, 0, 0);
+      return 1;
+    }
+  if (exponent != 0)
+    {
+      hx &= (1U << (EXPLICIT_MANT_DIG - 32)) - 1;
+      hx |= 1U << (EXPLICIT_MANT_DIG - 32);
+      if (shift >= 32)
+	{
+	  lx = hx >> (shift - 32);
+	  hx = 0;
+	}
+      else if (shift != 0)
+	{
+	  lx = (lx >> shift) | (hx << (32 - shift));
+	  hx >>= shift;
+	}
+    }
+  hx |= 0x7ff00000 | (SET_HIGH_BIT ? 0x80000 : 0);
+  INSERT_WORDS (*x, hx, lx);
+  return 0;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayloadsig.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayloadsig.c
new file mode 100644
index 0000000000..c3d1ba1e6e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_setpayloadsig.c
@@ -0,0 +1,6 @@
+#define SIG 1
+#define FUNC setpayloadsig
+#include <s_setpayload_main.c>
+#ifdef NO_LONG_DOUBLE
+weak_alias (setpayloadsig, setpayloadsigl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_signbit.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_signbit.c
new file mode 100644
index 0000000000..1beab1025c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_signbit.c
@@ -0,0 +1,26 @@
+/* Return nonzero value if number is negative.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+int
+__signbit (double x)
+{
+  return __builtin_signbit (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_sin.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_sin.c
new file mode 100644
index 0000000000..c258d39e49
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_sin.c
@@ -0,0 +1,927 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU  Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/****************************************************************************/
+/*                                                                          */
+/* MODULE_NAME:usncs.c                                                      */
+/*                                                                          */
+/* FUNCTIONS: usin                                                          */
+/*            ucos                                                          */
+/*            slow                                                          */
+/*            slow1                                                         */
+/*            slow2                                                         */
+/*            sloww                                                         */
+/*            sloww1                                                        */
+/*            sloww2                                                        */
+/*            bsloww                                                        */
+/*            bsloww1                                                       */
+/*            bsloww2                                                       */
+/*            cslow2                                                        */
+/* FILES NEEDED: dla.h endian.h mpa.h mydefs.h  usncs.h                     */
+/*               branred.c sincos32.c dosincos.c mpa.c                      */
+/*               sincos.tbl                                                 */
+/*                                                                          */
+/* An ultimate sin and  routine. Given an IEEE double machine number x       */
+/* it computes the correctly rounded (to nearest) value of sin(x) or cos(x) */
+/* Assumption: Machine arithmetic operations are performed in               */
+/* round to nearest mode of IEEE 754 standard.                              */
+/*                                                                          */
+/****************************************************************************/
+
+
+#include <errno.h>
+#include <float.h>
+#include "endian.h"
+#include "mydefs.h"
+#include "usncs.h"
+#include "MathLib.h"
+#include <math.h>
+#include <math_private.h>
+#include <fenv.h>
+
+/* Helper macros to compute sin of the input values.  */
+#define POLYNOMIAL2(xx) ((((s5 * (xx) + s4) * (xx) + s3) * (xx) + s2) * (xx))
+
+#define POLYNOMIAL(xx) (POLYNOMIAL2 (xx) + s1)
+
+/* The computed polynomial is a variation of the Taylor series expansion for
+   sin(a):
+
+   a - a^3/3! + a^5/5! - a^7/7! + a^9/9! + (1 - a^2) * da / 2
+
+   The constants s1, s2, s3, etc. are pre-computed values of 1/3!, 1/5! and so
+   on.  The result is returned to LHS and correction in COR.  */
+#define TAYLOR_SIN(xx, a, da, cor) \
+({									      \
+  double t = ((POLYNOMIAL (xx)  * (a) - 0.5 * (da))  * (xx) + (da));	      \
+  double res = (a) + t;							      \
+  (cor) = ((a) - res) + t;						      \
+  res;									      \
+})
+
+/* This is again a variation of the Taylor series expansion with the term
+   x^3/3! expanded into the following for better accuracy:
+
+   bb * x ^ 3 + 3 * aa * x * x1 * x2 + aa * x1 ^ 3 + aa * x2 ^ 3
+
+   The correction term is dx and bb + aa = -1/3!
+   */
+#define TAYLOR_SLOW(x0, dx, cor) \
+({									      \
+  static const double th2_36 = 206158430208.0;	/*    1.5*2**37   */	      \
+  double xx = (x0) * (x0);						      \
+  double x1 = ((x0) + th2_36) - th2_36;					      \
+  double y = aa * x1 * x1 * x1;						      \
+  double r = (x0) + y;							      \
+  double x2 = ((x0) - x1) + (dx);					      \
+  double t = (((POLYNOMIAL2 (xx) + bb) * xx + 3.0 * aa * x1 * x2)	      \
+	      * (x0)  + aa * x2 * x2 * x2 + (dx));			      \
+  t = (((x0) - r) + y) + t;						      \
+  double res = r + t;							      \
+  (cor) = (r - res) + t;						      \
+  res;									      \
+})
+
+#define SINCOS_TABLE_LOOKUP(u, sn, ssn, cs, ccs) \
+({									      \
+  int4 k = u.i[LOW_HALF] << 2;						      \
+  sn = __sincostab.x[k];						      \
+  ssn = __sincostab.x[k + 1];						      \
+  cs = __sincostab.x[k + 2];						      \
+  ccs = __sincostab.x[k + 3];						      \
+})
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+extern const union
+{
+  int4 i[880];
+  double x[440];
+} __sincostab attribute_hidden;
+
+static const double
+  sn3 = -1.66666666666664880952546298448555E-01,
+  sn5 = 8.33333214285722277379541354343671E-03,
+  cs2 = 4.99999999999999999999950396842453E-01,
+  cs4 = -4.16666666666664434524222570944589E-02,
+  cs6 = 1.38888874007937613028114285595617E-03;
+
+static const double t22 = 0x1.8p22;
+
+void __dubsin (double x, double dx, double w[]);
+void __docos (double x, double dx, double w[]);
+double __mpsin (double x, double dx, bool reduce_range);
+double __mpcos (double x, double dx, bool reduce_range);
+static double slow (double x);
+static double slow1 (double x);
+static double slow2 (double x);
+static double sloww (double x, double dx, double orig, bool shift_quadrant);
+static double sloww1 (double x, double dx, double orig, bool shift_quadrant);
+static double sloww2 (double x, double dx, double orig, int n);
+static double bsloww (double x, double dx, double orig, int n);
+static double bsloww1 (double x, double dx, double orig, int n);
+static double bsloww2 (double x, double dx, double orig, int n);
+int __branred (double x, double *a, double *aa);
+static double cslow2 (double x);
+
+/* Given a number partitioned into X and DX, this function computes the cosine
+   of the number by combining the sin and cos of X (as computed by a variation
+   of the Taylor series) with the values looked up from the sin/cos table to
+   get the result in RES and a correction value in COR.  */
+static inline double
+__always_inline
+do_cos (double x, double dx, double *corp)
+{
+  mynumber u;
+
+  if (x < 0)
+    dx = -dx;
+
+  u.x = big + fabs (x);
+  x = fabs (x) - (u.x - big) + dx;
+
+  double xx, s, sn, ssn, c, cs, ccs, res, cor;
+  xx = x * x;
+  s = x + x * xx * (sn3 + xx * sn5);
+  c = xx * (cs2 + xx * (cs4 + xx * cs6));
+  SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
+  cor = (ccs - s * ssn - cs * c) - sn * s;
+  res = cs + cor;
+  cor = (cs - res) + cor;
+  *corp = cor;
+  return res;
+}
+
+/* A more precise variant of DO_COS.  EPS is the adjustment to the correction
+   COR.  */
+static inline double
+__always_inline
+do_cos_slow (double x, double dx, double eps, double *corp)
+{
+  mynumber u;
+
+  if (x <= 0)
+    dx = -dx;
+
+  u.x = big + fabs (x);
+  x = fabs (x) - (u.x - big);
+
+  double xx, y, x1, x2, e1, e2, res, cor;
+  double s, sn, ssn, c, cs, ccs;
+  xx = x * x;
+  s = x * xx * (sn3 + xx * sn5);
+  c = x * dx + xx * (cs2 + xx * (cs4 + xx * cs6));
+  SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
+  x1 = (x + t22) - t22;
+  x2 = (x - x1) + dx;
+  e1 = (sn + t22) - t22;
+  e2 = (sn - e1) + ssn;
+  cor = (ccs - cs * c - e1 * x2 - e2 * x) - sn * s;
+  y = cs - e1 * x1;
+  cor = cor + ((cs - y) - e1 * x1);
+  res = y + cor;
+  cor = (y - res) + cor;
+  cor = 1.0005 * cor + __copysign (eps, cor);
+  *corp = cor;
+  return res;
+}
+
+/* Given a number partitioned into X and DX, this function computes the sine of
+   the number by combining the sin and cos of X (as computed by a variation of
+   the Taylor series) with the values looked up from the sin/cos table to get
+   the result in RES and a correction value in COR.  */
+static inline double
+__always_inline
+do_sin (double x, double dx, double *corp)
+{
+  mynumber u;
+
+  if (x <= 0)
+    dx = -dx;
+  u.x = big + fabs (x);
+  x = fabs (x) - (u.x - big);
+
+  double xx, s, sn, ssn, c, cs, ccs, cor, res;
+  xx = x * x;
+  s = x + (dx + x * xx * (sn3 + xx * sn5));
+  c = x * dx + xx * (cs2 + xx * (cs4 + xx * cs6));
+  SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
+  cor = (ssn + s * ccs - sn * c) + cs * s;
+  res = sn + cor;
+  cor = (sn - res) + cor;
+  *corp = cor;
+  return res;
+}
+
+/* A more precise variant of DO_SIN.  EPS is the adjustment to the correction
+   COR.  */
+static inline double
+__always_inline
+do_sin_slow (double x, double dx, double eps, double *corp)
+{
+  mynumber u;
+
+  if (x <= 0)
+    dx = -dx;
+  u.x = big + fabs (x);
+  x = fabs (x) - (u.x - big);
+
+  double xx, y, x1, x2, c1, c2, res, cor;
+  double s, sn, ssn, c, cs, ccs;
+  xx = x * x;
+  s = x * xx * (sn3 + xx * sn5);
+  c = xx * (cs2 + xx * (cs4 + xx * cs6));
+  SINCOS_TABLE_LOOKUP (u, sn, ssn, cs, ccs);
+  x1 = (x + t22) - t22;
+  x2 = (x - x1) + dx;
+  c1 = (cs + t22) - t22;
+  c2 = (cs - c1) + ccs;
+  cor = (ssn + s * ccs + cs * s + c2 * x + c1 * x2 - sn * x * dx) - sn * c;
+  y = sn + c1 * x1;
+  cor = cor + ((sn - y) + c1 * x1);
+  res = y + cor;
+  cor = (y - res) + cor;
+  cor = 1.0005 * cor + __copysign (eps, cor);
+  *corp = cor;
+  return res;
+}
+
+/* Reduce range of X and compute sin of a + da. When SHIFT_QUADRANT is true,
+   the routine returns the cosine of a + da by rotating the quadrant once and
+   computing the sine of the result.  */
+static inline double
+__always_inline
+reduce_and_compute (double x, bool shift_quadrant)
+{
+  double retval = 0, a, da;
+  unsigned int n = __branred (x, &a, &da);
+  int4 k = (n + shift_quadrant) % 4;
+  switch (k)
+    {
+    case 2:
+      a = -a;
+      da = -da;
+      /* Fall through.  */
+    case 0:
+      if (a * a < 0.01588)
+	retval = bsloww (a, da, x, n);
+      else
+	retval = bsloww1 (a, da, x, n);
+      break;
+
+    case 1:
+    case 3:
+      retval = bsloww2 (a, da, x, n);
+      break;
+    }
+  return retval;
+}
+
+static inline int4
+__always_inline
+reduce_sincos_1 (double x, double *a, double *da)
+{
+  mynumber v;
+
+  double t = (x * hpinv + toint);
+  double xn = t - toint;
+  v.x = t;
+  double y = (x - xn * mp1) - xn * mp2;
+  int4 n = v.i[LOW_HALF] & 3;
+  double db = xn * mp3;
+  double b = y - db;
+  db = (y - b) - db;
+
+  *a = b;
+  *da = db;
+
+  return n;
+}
+
+/* Compute sin (A + DA).  cos can be computed by passing SHIFT_QUADRANT as
+   true, which results in shifting the quadrant N clockwise.  */
+static double
+__always_inline
+do_sincos_1 (double a, double da, double x, int4 n, bool shift_quadrant)
+{
+  double xx, retval, res, cor;
+  double eps = fabs (x) * 1.2e-30;
+
+  int k1 = (n + shift_quadrant) & 3;
+  switch (k1)
+    {			/* quarter of unit circle */
+    case 2:
+      a = -a;
+      da = -da;
+      /* Fall through.  */
+    case 0:
+      xx = a * a;
+      if (xx < 0.01588)
+	{
+	  /* Taylor series.  */
+	  res = TAYLOR_SIN (xx, a, da, cor);
+	  cor = 1.02 * cor + __copysign (eps, cor);
+	  retval = (res == res + cor) ? res : sloww (a, da, x, shift_quadrant);
+	}
+      else
+	{
+	  res = do_sin (a, da, &cor);
+	  cor = 1.035 * cor + __copysign (eps, cor);
+	  retval = ((res == res + cor) ? __copysign (res, a)
+		    : sloww1 (a, da, x, shift_quadrant));
+	}
+      break;
+
+    case 1:
+    case 3:
+      res = do_cos (a, da, &cor);
+      cor = 1.025 * cor + __copysign (eps, cor);
+      retval = ((res == res + cor) ? ((n & 2) ? -res : res)
+		: sloww2 (a, da, x, n));
+      break;
+    }
+
+  return retval;
+}
+
+static inline int4
+__always_inline
+reduce_sincos_2 (double x, double *a, double *da)
+{
+  mynumber v;
+
+  double t = (x * hpinv + toint);
+  double xn = t - toint;
+  v.x = t;
+  double xn1 = (xn + 8.0e22) - 8.0e22;
+  double xn2 = xn - xn1;
+  double y = ((((x - xn1 * mp1) - xn1 * mp2) - xn2 * mp1) - xn2 * mp2);
+  int4 n = v.i[LOW_HALF] & 3;
+  double db = xn1 * pp3;
+  t = y - db;
+  db = (y - t) - db;
+  db = (db - xn2 * pp3) - xn * pp4;
+  double b = t + db;
+  db = (t - b) + db;
+
+  *a = b;
+  *da = db;
+
+  return n;
+}
+
+/* Compute sin (A + DA).  cos can be computed by passing SHIFT_QUADRANT as
+   true, which results in shifting the quadrant N clockwise.  */
+static double
+__always_inline
+do_sincos_2 (double a, double da, double x, int4 n, bool shift_quadrant)
+{
+  double res, retval, cor, xx;
+
+  double eps = 1.0e-24;
+
+  int4 k = (n + shift_quadrant) & 3;
+
+  switch (k)
+    {
+    case 2:
+      a = -a;
+      da = -da;
+      /* Fall through.  */
+    case 0:
+      xx = a * a;
+      if (xx < 0.01588)
+	{
+	  /* Taylor series.  */
+	  res = TAYLOR_SIN (xx, a, da, cor);
+	  cor = 1.02 * cor + __copysign (eps, cor);
+	  retval = (res == res + cor) ? res : bsloww (a, da, x, n);
+	}
+      else
+	{
+	  res = do_sin (a, da, &cor);
+	  cor = 1.035 * cor + __copysign (eps, cor);
+	  retval = ((res == res + cor) ? __copysign (res, a)
+		    : bsloww1 (a, da, x, n));
+	}
+      break;
+
+    case 1:
+    case 3:
+      res = do_cos (a, da, &cor);
+      cor = 1.025 * cor + __copysign (eps, cor);
+      retval = ((res == res + cor) ? ((n & 2) ? -res : res)
+		: bsloww2 (a, da, x, n));
+      break;
+    }
+
+  return retval;
+}
+
+/*******************************************************************/
+/* An ultimate sin routine. Given an IEEE double machine number x   */
+/* it computes the correctly rounded (to nearest) value of sin(x)  */
+/*******************************************************************/
+#ifdef IN_SINCOS
+static double
+#else
+double
+SECTION
+#endif
+__sin (double x)
+{
+  double xx, res, t, cor;
+  mynumber u;
+  int4 k, m;
+  double retval = 0;
+
+#ifndef IN_SINCOS
+  SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
+#endif
+
+  u.x = x;
+  m = u.i[HIGH_HALF];
+  k = 0x7fffffff & m;		/* no sign           */
+  if (k < 0x3e500000)		/* if x->0 =>sin(x)=x */
+    {
+      math_check_force_underflow (x);
+      retval = x;
+    }
+ /*---------------------------- 2^-26 < |x|< 0.25 ----------------------*/
+  else if (k < 0x3fd00000)
+    {
+      xx = x * x;
+      /* Taylor series.  */
+      t = POLYNOMIAL (xx) * (xx * x);
+      res = x + t;
+      cor = (x - res) + t;
+      retval = (res == res + 1.07 * cor) ? res : slow (x);
+    }				/*  else  if (k < 0x3fd00000)    */
+/*---------------------------- 0.25<|x|< 0.855469---------------------- */
+  else if (k < 0x3feb6000)
+    {
+      res = do_sin (x, 0, &cor);
+      retval = (res == res + 1.096 * cor) ? res : slow1 (x);
+      retval = __copysign (retval, x);
+    }				/*   else  if (k < 0x3feb6000)    */
+
+/*----------------------- 0.855469  <|x|<2.426265  ----------------------*/
+  else if (k < 0x400368fd)
+    {
+
+      t = hp0 - fabs (x);
+      res = do_cos (t, hp1, &cor);
+      retval = (res == res + 1.020 * cor) ? res : slow2 (x);
+      retval = __copysign (retval, x);
+    }				/*   else  if (k < 0x400368fd)    */
+
+#ifndef IN_SINCOS
+/*-------------------------- 2.426265<|x|< 105414350 ----------------------*/
+  else if (k < 0x419921FB)
+    {
+      double a, da;
+      int4 n = reduce_sincos_1 (x, &a, &da);
+      retval = do_sincos_1 (a, da, x, n, false);
+    }				/*   else  if (k <  0x419921FB )    */
+
+/*---------------------105414350 <|x|< 281474976710656 --------------------*/
+  else if (k < 0x42F00000)
+    {
+      double a, da;
+
+      int4 n = reduce_sincos_2 (x, &a, &da);
+      retval = do_sincos_2 (a, da, x, n, false);
+    }				/*   else  if (k <  0x42F00000 )   */
+
+/* -----------------281474976710656 <|x| <2^1024----------------------------*/
+  else if (k < 0x7ff00000)
+    retval = reduce_and_compute (x, false);
+
+/*--------------------- |x| > 2^1024 ----------------------------------*/
+  else
+    {
+      if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
+	__set_errno (EDOM);
+      retval = x / x;
+    }
+#endif
+
+  return retval;
+}
+
+
+/*******************************************************************/
+/* An ultimate cos routine. Given an IEEE double machine number x   */
+/* it computes the correctly rounded (to nearest) value of cos(x)  */
+/*******************************************************************/
+
+#ifdef IN_SINCOS
+static double
+#else
+double
+SECTION
+#endif
+__cos (double x)
+{
+  double y, xx, res, cor, a, da;
+  mynumber u;
+  int4 k, m;
+
+  double retval = 0;
+
+#ifndef IN_SINCOS
+  SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
+#endif
+
+  u.x = x;
+  m = u.i[HIGH_HALF];
+  k = 0x7fffffff & m;
+
+  /* |x|<2^-27 => cos(x)=1 */
+  if (k < 0x3e400000)
+    retval = 1.0;
+
+  else if (k < 0x3feb6000)
+    {				/* 2^-27 < |x| < 0.855469 */
+      res = do_cos (x, 0, &cor);
+      retval = (res == res + 1.020 * cor) ? res : cslow2 (x);
+    }				/*   else  if (k < 0x3feb6000)    */
+
+  else if (k < 0x400368fd)
+    { /* 0.855469  <|x|<2.426265  */ ;
+      y = hp0 - fabs (x);
+      a = y + hp1;
+      da = (y - a) + hp1;
+      xx = a * a;
+      if (xx < 0.01588)
+	{
+	  res = TAYLOR_SIN (xx, a, da, cor);
+	  cor = 1.02 * cor + __copysign (1.0e-31, cor);
+	  retval = (res == res + cor) ? res : sloww (a, da, x, true);
+	}
+      else
+	{
+	  res = do_sin (a, da, &cor);
+	  cor = 1.035 * cor + __copysign (1.0e-31, cor);
+	  retval = ((res == res + cor) ? __copysign (res, a)
+		    : sloww1 (a, da, x, true));
+	}
+
+    }				/*   else  if (k < 0x400368fd)    */
+
+
+#ifndef IN_SINCOS
+  else if (k < 0x419921FB)
+    {				/* 2.426265<|x|< 105414350 */
+      double a, da;
+      int4 n = reduce_sincos_1 (x, &a, &da);
+      retval = do_sincos_1 (a, da, x, n, true);
+    }				/*   else  if (k <  0x419921FB )    */
+
+  else if (k < 0x42F00000)
+    {
+      double a, da;
+
+      int4 n = reduce_sincos_2 (x, &a, &da);
+      retval = do_sincos_2 (a, da, x, n, true);
+    }				/*   else  if (k <  0x42F00000 )    */
+
+  /* 281474976710656 <|x| <2^1024 */
+  else if (k < 0x7ff00000)
+    retval = reduce_and_compute (x, true);
+
+  else
+    {
+      if (k == 0x7ff00000 && u.i[LOW_HALF] == 0)
+	__set_errno (EDOM);
+      retval = x / x;		/* |x| > 2^1024 */
+    }
+#endif
+
+  return retval;
+}
+
+/************************************************************************/
+/*  Routine compute sin(x) for  2^-26 < |x|< 0.25 by  Taylor with more   */
+/* precision  and if still doesn't accurate enough by mpsin   or dubsin */
+/************************************************************************/
+
+static inline double
+__always_inline
+slow (double x)
+{
+  double res, cor, w[2];
+  res = TAYLOR_SLOW (x, 0, cor);
+  if (res == res + 1.0007 * cor)
+    return res;
+
+  __dubsin (fabs (x), 0, w);
+  if (w[0] == w[0] + 1.000000001 * w[1])
+    return __copysign (w[0], x);
+
+  return __copysign (__mpsin (fabs (x), 0, false), x);
+}
+
+/*******************************************************************************/
+/* Routine compute sin(x) for 0.25<|x|< 0.855469 by __sincostab.tbl and Taylor */
+/* and if result still doesn't accurate enough by mpsin   or dubsin            */
+/*******************************************************************************/
+
+static inline double
+__always_inline
+slow1 (double x)
+{
+  double w[2], cor, res;
+
+  res = do_sin_slow (x, 0, 0, &cor);
+  if (res == res + cor)
+    return res;
+
+  __dubsin (fabs (x), 0, w);
+  if (w[0] == w[0] + 1.000000005 * w[1])
+    return w[0];
+
+  return __mpsin (fabs (x), 0, false);
+}
+
+/**************************************************************************/
+/*  Routine compute sin(x) for   0.855469  <|x|<2.426265  by  __sincostab.tbl  */
+/* and if result still doesn't accurate enough by mpsin   or dubsin       */
+/**************************************************************************/
+static inline double
+__always_inline
+slow2 (double x)
+{
+  double w[2], y, y1, y2, cor, res;
+
+  double t = hp0 - fabs (x);
+  res = do_cos_slow (t, hp1, 0, &cor);
+  if (res == res + cor)
+    return res;
+
+  y = fabs (x) - hp0;
+  y1 = y - hp1;
+  y2 = (y - y1) - hp1;
+  __docos (y1, y2, w);
+  if (w[0] == w[0] + 1.000000005 * w[1])
+    return w[0];
+
+  return __mpsin (fabs (x), 0, false);
+}
+
+/* Compute sin(x + dx) where X is small enough to use Taylor series around zero
+   and (x + dx) in the first or third quarter of the unit circle.  ORIG is the
+   original value of X for computing error of the result.  If the result is not
+   accurate enough, the routine calls mpsin or dubsin.  SHIFT_QUADRANT rotates
+   the unit circle by 1 to compute the cosine instead of sine.  */
+static inline double
+__always_inline
+sloww (double x, double dx, double orig, bool shift_quadrant)
+{
+  double y, t, res, cor, w[2], a, da, xn;
+  mynumber v;
+  int4 n;
+  res = TAYLOR_SLOW (x, dx, cor);
+
+  double eps = fabs (orig) * 3.1e-30;
+
+  cor = 1.0005 * cor + __copysign (eps, cor);
+
+  if (res == res + cor)
+    return res;
+
+  a = fabs (x);
+  da = (x > 0) ? dx : -dx;
+  __dubsin (a, da, w);
+  eps = fabs (orig) * 1.1e-30;
+  cor = 1.000000001 * w[1] + __copysign (eps, w[1]);
+
+  if (w[0] == w[0] + cor)
+    return __copysign (w[0], x);
+
+  t = (orig * hpinv + toint);
+  xn = t - toint;
+  v.x = t;
+  y = (orig - xn * mp1) - xn * mp2;
+  n = (v.i[LOW_HALF] + shift_quadrant) & 3;
+  da = xn * pp3;
+  t = y - da;
+  da = (y - t) - da;
+  y = xn * pp4;
+  a = t - y;
+  da = ((t - a) - y) + da;
+
+  if (n & 2)
+    {
+      a = -a;
+      da = -da;
+    }
+  x = fabs (a);
+  dx = (a > 0) ? da : -da;
+  __dubsin (x, dx, w);
+  eps = fabs (orig) * 1.1e-40;
+  cor = 1.000000001 * w[1] + __copysign (eps, w[1]);
+
+  if (w[0] == w[0] + cor)
+    return __copysign (w[0], a);
+
+  return shift_quadrant ? __mpcos (orig, 0, true) : __mpsin (orig, 0, true);
+}
+
+/* Compute sin(x + dx) where X is in the first or third quarter of the unit
+   circle.  ORIG is the original value of X for computing error of the result.
+   If the result is not accurate enough, the routine calls mpsin or dubsin.
+   SHIFT_QUADRANT rotates the unit circle by 1 to compute the cosine instead of
+   sine.  */
+static inline double
+__always_inline
+sloww1 (double x, double dx, double orig, bool shift_quadrant)
+{
+  double w[2], cor, res;
+
+  res = do_sin_slow (x, dx, 3.1e-30 * fabs (orig), &cor);
+
+  if (res == res + cor)
+    return __copysign (res, x);
+
+  dx = (x > 0 ? dx : -dx);
+  __dubsin (fabs (x), dx, w);
+
+  double eps = 1.1e-30 * fabs (orig);
+  cor = 1.000000005 * w[1] + __copysign (eps, w[1]);
+
+  if (w[0] == w[0] + cor)
+    return __copysign (w[0], x);
+
+  return shift_quadrant ? __mpcos (orig, 0, true) : __mpsin (orig, 0, true);
+}
+
+/***************************************************************************/
+/*  Routine compute sin(x+dx)   (Double-Length number) where x in second or */
+/*  fourth quarter of unit circle.Routine receive also  the  original value */
+/* and quarter(n= 1or 3)of x for computing error of result.And if result not*/
+/* accurate enough routine calls  mpsin1   or dubsin                       */
+/***************************************************************************/
+
+static inline double
+__always_inline
+sloww2 (double x, double dx, double orig, int n)
+{
+  double w[2], cor, res;
+
+  res = do_cos_slow (x, dx, 3.1e-30 * fabs (orig), &cor);
+
+  if (res == res + cor)
+    return (n & 2) ? -res : res;
+
+  dx = x > 0 ? dx : -dx;
+  __docos (fabs (x), dx, w);
+
+  double eps = 1.1e-30 * fabs (orig);
+  cor = 1.000000005 * w[1] + __copysign (eps, w[1]);
+
+  if (w[0] == w[0] + cor)
+    return (n & 2) ? -w[0] : w[0];
+
+  return (n & 1) ? __mpsin (orig, 0, true) : __mpcos (orig, 0, true);
+}
+
+/***************************************************************************/
+/*  Routine compute sin(x+dx) or cos(x+dx) (Double-Length number) where x   */
+/* is small enough to use Taylor series around zero and   (x+dx)            */
+/* in first or third quarter of unit circle.Routine receive also            */
+/* (right argument) the  original   value of x for computing error of      */
+/* result.And if result not accurate enough routine calls other routines    */
+/***************************************************************************/
+
+static inline double
+__always_inline
+bsloww (double x, double dx, double orig, int n)
+{
+  double res, cor, w[2], a, da;
+
+  res = TAYLOR_SLOW (x, dx, cor);
+  cor = 1.0005 * cor + __copysign (1.1e-24, cor);
+  if (res == res + cor)
+    return res;
+
+  a = fabs (x);
+  da = (x > 0) ? dx : -dx;
+  __dubsin (a, da, w);
+  cor = 1.000000001 * w[1] + __copysign (1.1e-24, w[1]);
+
+  if (w[0] == w[0] + cor)
+    return __copysign (w[0], x);
+
+  return (n & 1) ? __mpcos (orig, 0, true) : __mpsin (orig, 0, true);
+}
+
+/***************************************************************************/
+/*  Routine compute sin(x+dx)  or cos(x+dx) (Double-Length number) where x  */
+/* in first or third quarter of unit circle.Routine receive also            */
+/* (right argument) the original  value of x for computing error of result.*/
+/* And if result not  accurate enough routine calls  other routines         */
+/***************************************************************************/
+
+static inline double
+__always_inline
+bsloww1 (double x, double dx, double orig, int n)
+{
+  double w[2], cor, res;
+
+  res = do_sin_slow (x, dx, 1.1e-24, &cor);
+  if (res == res + cor)
+    return (x > 0) ? res : -res;
+
+  dx = (x > 0) ? dx : -dx;
+  __dubsin (fabs (x), dx, w);
+
+  cor = 1.000000005 * w[1] + __copysign (1.1e-24, w[1]);
+
+  if (w[0] == w[0] + cor)
+    return __copysign (w[0], x);
+
+  return (n & 1) ? __mpcos (orig, 0, true) : __mpsin (orig, 0, true);
+}
+
+/***************************************************************************/
+/*  Routine compute sin(x+dx)  or cos(x+dx) (Double-Length number) where x  */
+/* in second or fourth quarter of unit circle.Routine receive also  the     */
+/* original value and quarter(n= 1or 3)of x for computing error of result.  */
+/* And if result not accurate enough routine calls  other routines          */
+/***************************************************************************/
+
+static inline double
+__always_inline
+bsloww2 (double x, double dx, double orig, int n)
+{
+  double w[2], cor, res;
+
+  res = do_cos_slow (x, dx, 1.1e-24, &cor);
+  if (res == res + cor)
+    return (n & 2) ? -res : res;
+
+  dx = (x > 0) ? dx : -dx;
+  __docos (fabs (x), dx, w);
+
+  cor = 1.000000005 * w[1] + __copysign (1.1e-24, w[1]);
+
+  if (w[0] == w[0] + cor)
+    return (n & 2) ? -w[0] : w[0];
+
+  return (n & 1) ? __mpsin (orig, 0, true) : __mpcos (orig, 0, true);
+}
+
+/************************************************************************/
+/*  Routine compute cos(x) for  2^-27 < |x|< 0.25 by  Taylor with more   */
+/* precision  and if still doesn't accurate enough by mpcos   or docos  */
+/************************************************************************/
+
+static inline double
+__always_inline
+cslow2 (double x)
+{
+  double w[2], cor, res;
+
+  res = do_cos_slow (x, 0, 0, &cor);
+  if (res == res + cor)
+    return res;
+
+  __docos (fabs (x), 0, w);
+  if (w[0] == w[0] + 1.000000005 * w[1])
+    return w[0];
+
+  return __mpcos (x, 0, false);
+}
+
+#ifndef __cos
+weak_alias (__cos, cos)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__cos, __cosl)
+weak_alias (__cos, cosl)
+# endif
+#endif
+#ifndef __sin
+weak_alias (__sin, sin)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__sin, __sinl)
+weak_alias (__sin, sinl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_sincos.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_sincos.c
new file mode 100644
index 0000000000..05cff50ce8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_sincos.c
@@ -0,0 +1,113 @@
+/* Compute sine and cosine of argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <math.h>
+
+#include <math_private.h>
+
+#define __sin __sin_local
+#define __cos __cos_local
+#define IN_SINCOS 1
+#include "s_sin.c"
+
+/* Consolidated version of reduce_and_compute in s_sin.c that does range
+   reduction only once and computes sin and cos together.  */
+static inline void
+__always_inline
+reduce_and_compute_sincos (double x, double *sinx, double *cosx)
+{
+  double a, da;
+  unsigned int n = __branred (x, &a, &da);
+
+  n = n & 3;
+
+  if (n == 1 || n == 2)
+    {
+      a = -a;
+      da = -da;
+    }
+
+  if (n & 1)
+    {
+      double *temp = cosx;
+      cosx = sinx;
+      sinx = temp;
+    }
+
+  if (a * a < 0.01588)
+    *sinx = bsloww (a, da, x, n);
+  else
+    *sinx = bsloww1 (a, da, x, n);
+  *cosx = bsloww2 (a, da, x, n);
+}
+
+void
+__sincos (double x, double *sinx, double *cosx)
+{
+  mynumber u;
+  int k;
+
+  SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
+
+  u.x = x;
+  k = 0x7fffffff & u.i[HIGH_HALF];
+
+  if (k < 0x400368fd)
+    {
+      *sinx = __sin_local (x);
+      *cosx = __cos_local (x);
+      return;
+    }
+  if (k < 0x419921FB)
+    {
+      double a, da;
+      int4 n = reduce_sincos_1 (x, &a, &da);
+
+      *sinx = do_sincos_1 (a, da, x, n, false);
+      *cosx = do_sincos_1 (a, da, x, n, true);
+
+      return;
+    }
+  if (k < 0x42F00000)
+    {
+      double a, da;
+      int4 n = reduce_sincos_2 (x, &a, &da);
+
+      *sinx = do_sincos_2 (a, da, x, n, false);
+      *cosx = do_sincos_2 (a, da, x, n, true);
+
+      return;
+    }
+  if (k < 0x7ff00000)
+    {
+      reduce_and_compute_sincos (x, sinx, cosx);
+      return;
+    }
+
+  if (isinf (x))
+    __set_errno (EDOM);
+
+  *sinx = *cosx = x / x;
+}
+weak_alias (__sincos, sincos)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__sincos, __sincosl)
+weak_alias (__sincos, sincosl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_tan.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_tan.c
new file mode 100644
index 0000000000..b2a8681a6d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_tan.c
@@ -0,0 +1,848 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/*********************************************************************/
+/*  MODULE_NAME: utan.c                                              */
+/*                                                                   */
+/*  FUNCTIONS: utan                                                  */
+/*             tanMp                                                 */
+/*                                                                   */
+/*  FILES NEEDED:dla.h endian.h mpa.h mydefs.h utan.h                */
+/*               branred.c sincos32.c mptan.c                        */
+/*               utan.tbl                                            */
+/*                                                                   */
+/* An ultimate tan routine. Given an IEEE double machine number x    */
+/* it computes the correctly rounded (to nearest) value of tan(x).   */
+/* Assumption: Machine arithmetic operations are performed in        */
+/* round to nearest mode of IEEE 754 standard.                       */
+/*                                                                   */
+/*********************************************************************/
+
+#include <errno.h>
+#include <float.h>
+#include "endian.h"
+#include <dla.h>
+#include "mpa.h"
+#include "MathLib.h"
+#include <math.h>
+#include <math_private.h>
+#include <fenv.h>
+#include <stap-probe.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+static double tanMp (double);
+void __mptan (double, mp_no *, int);
+
+double
+SECTION
+tan (double x)
+{
+#include "utan.h"
+#include "utan.tbl"
+
+  int ux, i, n;
+  double a, da, a2, b, db, c, dc, c1, cc1, c2, cc2, c3, cc3, fi, ffi, gi, pz,
+	 s, sy, t, t1, t2, t3, t4, t7, t8, t9, t10, w, x2, xn, xx2, y, ya,
+         yya, z0, z, zz, z2, zz2;
+#ifndef DLA_FMS
+  double t5, t6;
+#endif
+  int p;
+  number num, v;
+  mp_no mpa, mpt1, mpt2;
+
+  double retval;
+
+  int __branred (double, double *, double *);
+  int __mpranred (double, mp_no *, int);
+
+  SET_RESTORE_ROUND_53BIT (FE_TONEAREST);
+
+  /* x=+-INF, x=NaN */
+  num.d = x;
+  ux = num.i[HIGH_HALF];
+  if ((ux & 0x7ff00000) == 0x7ff00000)
+    {
+      if ((ux & 0x7fffffff) == 0x7ff00000)
+	__set_errno (EDOM);
+      retval = x - x;
+      goto ret;
+    }
+
+  w = (x < 0.0) ? -x : x;
+
+  /* (I) The case abs(x) <= 1.259e-8 */
+  if (w <= g1.d)
+    {
+      math_check_force_underflow_nonneg (w);
+      retval = x;
+      goto ret;
+    }
+
+  /* (II) The case 1.259e-8 < abs(x) <= 0.0608 */
+  if (w <= g2.d)
+    {
+      /* First stage */
+      x2 = x * x;
+
+      t2 = d9.d + x2 * d11.d;
+      t2 = d7.d + x2 * t2;
+      t2 = d5.d + x2 * t2;
+      t2 = d3.d + x2 * t2;
+      t2 *= x * x2;
+
+      if ((y = x + (t2 - u1.d * t2)) == x + (t2 + u1.d * t2))
+	{
+	  retval = y;
+	  goto ret;
+	}
+
+      /* Second stage */
+      c1 = a25.d + x2 * a27.d;
+      c1 = a23.d + x2 * c1;
+      c1 = a21.d + x2 * c1;
+      c1 = a19.d + x2 * c1;
+      c1 = a17.d + x2 * c1;
+      c1 = a15.d + x2 * c1;
+      c1 *= x2;
+
+      EMULV (x, x, x2, xx2, t1, t2, t3, t4, t5);
+      ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      MUL2 (x, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (x, 0.0, c2, cc2, c1, cc1, t1, t2);
+      if ((y = c1 + (cc1 - u2.d * c1)) == c1 + (cc1 + u2.d * c1))
+	{
+	  retval = y;
+	  goto ret;
+	}
+      retval = tanMp (x);
+      goto ret;
+    }
+
+  /* (III) The case 0.0608 < abs(x) <= 0.787 */
+  if (w <= g3.d)
+    {
+      /* First stage */
+      i = ((int) (mfftnhf.d + TWO8 * w));
+      z = w - xfg[i][0].d;
+      z2 = z * z;
+      s = (x < 0.0) ? -1 : 1;
+      pz = z + z * z2 * (e0.d + z2 * e1.d);
+      fi = xfg[i][1].d;
+      gi = xfg[i][2].d;
+      t2 = pz * (gi + fi) / (gi - pz);
+      if ((y = fi + (t2 - fi * u3.d)) == fi + (t2 + fi * u3.d))
+	{
+	  retval = (s * y);
+	  goto ret;
+	}
+      t3 = (t2 < 0.0) ? -t2 : t2;
+      t4 = fi * ua3.d + t3 * ub3.d;
+      if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+	{
+	  retval = (s * y);
+	  goto ret;
+	}
+
+      /* Second stage */
+      ffi = xfg[i][3].d;
+      c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+      EMULV (z, z, z2, zz2, t1, t2, t3, t4, t5);
+      ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+      MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      MUL2 (z, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (z, 0.0, c2, cc2, c1, cc1, t1, t2);
+
+      ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+      SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+      DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+	    t10);
+
+      if ((y = c3 + (cc3 - u4.d * c3)) == c3 + (cc3 + u4.d * c3))
+	{
+	  retval = (s * y);
+	  goto ret;
+	}
+      retval = tanMp (x);
+      goto ret;
+    }
+
+  /* (---) The case 0.787 < abs(x) <= 25 */
+  if (w <= g4.d)
+    {
+      /* Range reduction by algorithm i */
+      t = (x * hpinv.d + toint.d);
+      xn = t - toint.d;
+      v.d = t;
+      t1 = (x - xn * mp1.d) - xn * mp2.d;
+      n = v.i[LOW_HALF] & 0x00000001;
+      da = xn * mp3.d;
+      a = t1 - da;
+      da = (t1 - a) - da;
+      if (a < 0.0)
+	{
+	  ya = -a;
+	  yya = -da;
+	  sy = -1;
+	}
+      else
+	{
+	  ya = a;
+	  yya = da;
+	  sy = 1;
+	}
+
+      /* (IV),(V) The case 0.787 < abs(x) <= 25,    abs(y) <= 1e-7 */
+      if (ya <= gy1.d)
+	{
+	  retval = tanMp (x);
+	  goto ret;
+	}
+
+      /* (VI) The case 0.787 < abs(x) <= 25,    1e-7 < abs(y) <= 0.0608 */
+      if (ya <= gy2.d)
+	{
+	  a2 = a * a;
+	  t2 = d9.d + a2 * d11.d;
+	  t2 = d7.d + a2 * t2;
+	  t2 = d5.d + a2 * t2;
+	  t2 = d3.d + a2 * t2;
+	  t2 = da + a * a2 * t2;
+
+	  if (n)
+	    {
+	      /* First stage -cot */
+	      EADD (a, t2, b, db);
+	      DIV2 (1.0, 0.0, b, db, c, dc, t1, t2, t3, t4, t5, t6, t7, t8,
+		    t9, t10);
+	      if ((y = c + (dc - u6.d * c)) == c + (dc + u6.d * c))
+		{
+		  retval = (-y);
+		  goto ret;
+		}
+	    }
+	  else
+	    {
+	      /* First stage tan */
+	      if ((y = a + (t2 - u5.d * a)) == a + (t2 + u5.d * a))
+		{
+		  retval = y;
+		  goto ret;
+		}
+	    }
+	  /* Second stage */
+	  /* Range reduction by algorithm ii */
+	  t = (x * hpinv.d + toint.d);
+	  xn = t - toint.d;
+	  v.d = t;
+	  t1 = (x - xn * mp1.d) - xn * mp2.d;
+	  n = v.i[LOW_HALF] & 0x00000001;
+	  da = xn * pp3.d;
+	  t = t1 - da;
+	  da = (t1 - t) - da;
+	  t1 = xn * pp4.d;
+	  a = t - t1;
+	  da = ((t - a) - t1) + da;
+
+	  /* Second stage */
+	  EADD (a, da, t1, t2);
+	  a = t1;
+	  da = t2;
+	  MUL2 (a, da, a, da, x2, xx2, t1, t2, t3, t4, t5, t6, t7, t8);
+
+	  c1 = a25.d + x2 * a27.d;
+	  c1 = a23.d + x2 * c1;
+	  c1 = a21.d + x2 * c1;
+	  c1 = a19.d + x2 * c1;
+	  c1 = a17.d + x2 * c1;
+	  c1 = a15.d + x2 * c1;
+	  c1 *= x2;
+
+	  ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  MUL2 (a, da, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a, da, c2, cc2, c1, cc1, t1, t2);
+
+	  if (n)
+	    {
+	      /* Second stage -cot */
+	      DIV2 (1.0, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7,
+		    t8, t9, t10);
+	      if ((y = c2 + (cc2 - u8.d * c2)) == c2 + (cc2 + u8.d * c2))
+		{
+		  retval = (-y);
+		  goto ret;
+		}
+	    }
+	  else
+	    {
+	      /* Second stage tan */
+	      if ((y = c1 + (cc1 - u7.d * c1)) == c1 + (cc1 + u7.d * c1))
+		{
+		  retval = y;
+		  goto ret;
+		}
+	    }
+	  retval = tanMp (x);
+	  goto ret;
+	}
+
+      /* (VII) The case 0.787 < abs(x) <= 25,    0.0608 < abs(y) <= 0.787 */
+
+      /* First stage */
+      i = ((int) (mfftnhf.d + TWO8 * ya));
+      z = (z0 = (ya - xfg[i][0].d)) + yya;
+      z2 = z * z;
+      pz = z + z * z2 * (e0.d + z2 * e1.d);
+      fi = xfg[i][1].d;
+      gi = xfg[i][2].d;
+
+      if (n)
+	{
+	  /* -cot */
+	  t2 = pz * (fi + gi) / (fi + pz);
+	  if ((y = gi - (t2 - gi * u10.d)) == gi - (t2 + gi * u10.d))
+	    {
+	      retval = (-sy * y);
+	      goto ret;
+	    }
+	  t3 = (t2 < 0.0) ? -t2 : t2;
+	  t4 = gi * ua10.d + t3 * ub10.d;
+	  if ((y = gi - (t2 - t4)) == gi - (t2 + t4))
+	    {
+	      retval = (-sy * y);
+	      goto ret;
+	    }
+	}
+      else
+	{
+	  /* tan */
+	  t2 = pz * (gi + fi) / (gi - pz);
+	  if ((y = fi + (t2 - fi * u9.d)) == fi + (t2 + fi * u9.d))
+	    {
+	      retval = (sy * y);
+	      goto ret;
+	    }
+	  t3 = (t2 < 0.0) ? -t2 : t2;
+	  t4 = fi * ua9.d + t3 * ub9.d;
+	  if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+	    {
+	      retval = (sy * y);
+	      goto ret;
+	    }
+	}
+
+      /* Second stage */
+      ffi = xfg[i][3].d;
+      EADD (z0, yya, z, zz)
+      MUL2 (z, zz, z, zz, z2, zz2, t1, t2, t3, t4, t5, t6, t7, t8);
+      c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+      ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+      MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      MUL2 (z, zz, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (z, zz, c2, cc2, c1, cc1, t1, t2);
+
+      ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+      SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+
+      if (n)
+	{
+	  /* -cot */
+	  DIV2 (c1, cc1, c2, cc2, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+		t10);
+	  if ((y = c3 + (cc3 - u12.d * c3)) == c3 + (cc3 + u12.d * c3))
+	    {
+	      retval = (-sy * y);
+	      goto ret;
+	    }
+	}
+      else
+	{
+	  /* tan */
+	  DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+		t10);
+	  if ((y = c3 + (cc3 - u11.d * c3)) == c3 + (cc3 + u11.d * c3))
+	    {
+	      retval = (sy * y);
+	      goto ret;
+	    }
+	}
+
+      retval = tanMp (x);
+      goto ret;
+    }
+
+  /* (---) The case 25 < abs(x) <= 1e8 */
+  if (w <= g5.d)
+    {
+      /* Range reduction by algorithm ii */
+      t = (x * hpinv.d + toint.d);
+      xn = t - toint.d;
+      v.d = t;
+      t1 = (x - xn * mp1.d) - xn * mp2.d;
+      n = v.i[LOW_HALF] & 0x00000001;
+      da = xn * pp3.d;
+      t = t1 - da;
+      da = (t1 - t) - da;
+      t1 = xn * pp4.d;
+      a = t - t1;
+      da = ((t - a) - t1) + da;
+      EADD (a, da, t1, t2);
+      a = t1;
+      da = t2;
+      if (a < 0.0)
+	{
+	  ya = -a;
+	  yya = -da;
+	  sy = -1;
+	}
+      else
+	{
+	  ya = a;
+	  yya = da;
+	  sy = 1;
+	}
+
+      /* (+++) The case 25 < abs(x) <= 1e8,    abs(y) <= 1e-7 */
+      if (ya <= gy1.d)
+	{
+	  retval = tanMp (x);
+	  goto ret;
+	}
+
+      /* (VIII) The case 25 < abs(x) <= 1e8,    1e-7 < abs(y) <= 0.0608 */
+      if (ya <= gy2.d)
+	{
+	  a2 = a * a;
+	  t2 = d9.d + a2 * d11.d;
+	  t2 = d7.d + a2 * t2;
+	  t2 = d5.d + a2 * t2;
+	  t2 = d3.d + a2 * t2;
+	  t2 = da + a * a2 * t2;
+
+	  if (n)
+	    {
+	      /* First stage -cot */
+	      EADD (a, t2, b, db);
+	      DIV2 (1.0, 0.0, b, db, c, dc, t1, t2, t3, t4, t5, t6, t7, t8,
+		    t9, t10);
+	      if ((y = c + (dc - u14.d * c)) == c + (dc + u14.d * c))
+		{
+		  retval = (-y);
+		  goto ret;
+		}
+	    }
+	  else
+	    {
+	      /* First stage tan */
+	      if ((y = a + (t2 - u13.d * a)) == a + (t2 + u13.d * a))
+		{
+		  retval = y;
+		  goto ret;
+		}
+	    }
+
+	  /* Second stage */
+	  MUL2 (a, da, a, da, x2, xx2, t1, t2, t3, t4, t5, t6, t7, t8);
+	  c1 = a25.d + x2 * a27.d;
+	  c1 = a23.d + x2 * c1;
+	  c1 = a21.d + x2 * c1;
+	  c1 = a19.d + x2 * c1;
+	  c1 = a17.d + x2 * c1;
+	  c1 = a15.d + x2 * c1;
+	  c1 *= x2;
+
+	  ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+	  MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+	  MUL2 (a, da, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+	  ADD2 (a, da, c2, cc2, c1, cc1, t1, t2);
+
+	  if (n)
+	    {
+	      /* Second stage -cot */
+	      DIV2 (1.0, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7,
+		    t8, t9, t10);
+	      if ((y = c2 + (cc2 - u16.d * c2)) == c2 + (cc2 + u16.d * c2))
+		{
+		  retval = (-y);
+		  goto ret;
+		}
+	    }
+	  else
+	    {
+	      /* Second stage tan */
+	      if ((y = c1 + (cc1 - u15.d * c1)) == c1 + (cc1 + u15.d * c1))
+		{
+		  retval = (y);
+		  goto ret;
+		}
+	    }
+	  retval = tanMp (x);
+	  goto ret;
+	}
+
+      /* (IX) The case 25 < abs(x) <= 1e8,    0.0608 < abs(y) <= 0.787 */
+      /* First stage */
+      i = ((int) (mfftnhf.d + TWO8 * ya));
+      z = (z0 = (ya - xfg[i][0].d)) + yya;
+      z2 = z * z;
+      pz = z + z * z2 * (e0.d + z2 * e1.d);
+      fi = xfg[i][1].d;
+      gi = xfg[i][2].d;
+
+      if (n)
+	{
+	  /* -cot */
+	  t2 = pz * (fi + gi) / (fi + pz);
+	  if ((y = gi - (t2 - gi * u18.d)) == gi - (t2 + gi * u18.d))
+	    {
+	      retval = (-sy * y);
+	      goto ret;
+	    }
+	  t3 = (t2 < 0.0) ? -t2 : t2;
+	  t4 = gi * ua18.d + t3 * ub18.d;
+	  if ((y = gi - (t2 - t4)) == gi - (t2 + t4))
+	    {
+	      retval = (-sy * y);
+	      goto ret;
+	    }
+	}
+      else
+	{
+	  /* tan */
+	  t2 = pz * (gi + fi) / (gi - pz);
+	  if ((y = fi + (t2 - fi * u17.d)) == fi + (t2 + fi * u17.d))
+	    {
+	      retval = (sy * y);
+	      goto ret;
+	    }
+	  t3 = (t2 < 0.0) ? -t2 : t2;
+	  t4 = fi * ua17.d + t3 * ub17.d;
+	  if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+	    {
+	      retval = (sy * y);
+	      goto ret;
+	    }
+	}
+
+      /* Second stage */
+      ffi = xfg[i][3].d;
+      EADD (z0, yya, z, zz);
+      MUL2 (z, zz, z, zz, z2, zz2, t1, t2, t3, t4, t5, t6, t7, t8);
+      c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+      ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+      MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      MUL2 (z, zz, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (z, zz, c2, cc2, c1, cc1, t1, t2);
+
+      ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+      SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+
+      if (n)
+	{
+	  /* -cot */
+	  DIV2 (c1, cc1, c2, cc2, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+		t10);
+	  if ((y = c3 + (cc3 - u20.d * c3)) == c3 + (cc3 + u20.d * c3))
+	    {
+	      retval = (-sy * y);
+	      goto ret;
+	    }
+	}
+      else
+	{
+	  /* tan */
+	  DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+		t10);
+	  if ((y = c3 + (cc3 - u19.d * c3)) == c3 + (cc3 + u19.d * c3))
+	    {
+	      retval = (sy * y);
+	      goto ret;
+	    }
+	}
+      retval = tanMp (x);
+      goto ret;
+    }
+
+  /* (---) The case 1e8 < abs(x) < 2**1024 */
+  /* Range reduction by algorithm iii */
+  n = (__branred (x, &a, &da)) & 0x00000001;
+  EADD (a, da, t1, t2);
+  a = t1;
+  da = t2;
+  if (a < 0.0)
+    {
+      ya = -a;
+      yya = -da;
+      sy = -1;
+    }
+  else
+    {
+      ya = a;
+      yya = da;
+      sy = 1;
+    }
+
+  /* (+++) The case 1e8 < abs(x) < 2**1024,    abs(y) <= 1e-7 */
+  if (ya <= gy1.d)
+    {
+      retval = tanMp (x);
+      goto ret;
+    }
+
+  /* (X) The case 1e8 < abs(x) < 2**1024,    1e-7 < abs(y) <= 0.0608 */
+  if (ya <= gy2.d)
+    {
+      a2 = a * a;
+      t2 = d9.d + a2 * d11.d;
+      t2 = d7.d + a2 * t2;
+      t2 = d5.d + a2 * t2;
+      t2 = d3.d + a2 * t2;
+      t2 = da + a * a2 * t2;
+      if (n)
+	{
+	  /* First stage -cot */
+	  EADD (a, t2, b, db);
+	  DIV2 (1.0, 0.0, b, db, c, dc, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+		t10);
+	  if ((y = c + (dc - u22.d * c)) == c + (dc + u22.d * c))
+	    {
+	      retval = (-y);
+	      goto ret;
+	    }
+	}
+      else
+	{
+	  /* First stage tan */
+	  if ((y = a + (t2 - u21.d * a)) == a + (t2 + u21.d * a))
+	    {
+	      retval = y;
+	      goto ret;
+	    }
+	}
+
+      /* Second stage */
+      /* Reduction by algorithm iv */
+      p = 10;
+      n = (__mpranred (x, &mpa, p)) & 0x00000001;
+      __mp_dbl (&mpa, &a, p);
+      __dbl_mp (a, &mpt1, p);
+      __sub (&mpa, &mpt1, &mpt2, p);
+      __mp_dbl (&mpt2, &da, p);
+
+      MUL2 (a, da, a, da, x2, xx2, t1, t2, t3, t4, t5, t6, t7, t8);
+
+      c1 = a25.d + x2 * a27.d;
+      c1 = a23.d + x2 * c1;
+      c1 = a21.d + x2 * c1;
+      c1 = a19.d + x2 * c1;
+      c1 = a17.d + x2 * c1;
+      c1 = a15.d + x2 * c1;
+      c1 *= x2;
+
+      ADD2 (a13.d, aa13.d, c1, 0.0, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a11.d, aa11.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a9.d, aa9.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a7.d, aa7.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a5.d, aa5.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+      MUL2 (x2, xx2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+      MUL2 (a, da, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+      ADD2 (a, da, c2, cc2, c1, cc1, t1, t2);
+
+      if (n)
+	{
+	  /* Second stage -cot */
+	  DIV2 (1.0, 0.0, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8,
+		t9, t10);
+	  if ((y = c2 + (cc2 - u24.d * c2)) == c2 + (cc2 + u24.d * c2))
+	    {
+	      retval = (-y);
+	      goto ret;
+	    }
+	}
+      else
+	{
+	  /* Second stage tan */
+	  if ((y = c1 + (cc1 - u23.d * c1)) == c1 + (cc1 + u23.d * c1))
+	    {
+	      retval = y;
+	      goto ret;
+	    }
+	}
+      retval = tanMp (x);
+      goto ret;
+    }
+
+  /* (XI) The case 1e8 < abs(x) < 2**1024,    0.0608 < abs(y) <= 0.787 */
+  /* First stage */
+  i = ((int) (mfftnhf.d + TWO8 * ya));
+  z = (z0 = (ya - xfg[i][0].d)) + yya;
+  z2 = z * z;
+  pz = z + z * z2 * (e0.d + z2 * e1.d);
+  fi = xfg[i][1].d;
+  gi = xfg[i][2].d;
+
+  if (n)
+    {
+      /* -cot */
+      t2 = pz * (fi + gi) / (fi + pz);
+      if ((y = gi - (t2 - gi * u26.d)) == gi - (t2 + gi * u26.d))
+	{
+	  retval = (-sy * y);
+	  goto ret;
+	}
+      t3 = (t2 < 0.0) ? -t2 : t2;
+      t4 = gi * ua26.d + t3 * ub26.d;
+      if ((y = gi - (t2 - t4)) == gi - (t2 + t4))
+	{
+	  retval = (-sy * y);
+	  goto ret;
+	}
+    }
+  else
+    {
+      /* tan */
+      t2 = pz * (gi + fi) / (gi - pz);
+      if ((y = fi + (t2 - fi * u25.d)) == fi + (t2 + fi * u25.d))
+	{
+	  retval = (sy * y);
+	  goto ret;
+	}
+      t3 = (t2 < 0.0) ? -t2 : t2;
+      t4 = fi * ua25.d + t3 * ub25.d;
+      if ((y = fi + (t2 - t4)) == fi + (t2 + t4))
+	{
+	  retval = (sy * y);
+	  goto ret;
+	}
+    }
+
+  /* Second stage */
+  ffi = xfg[i][3].d;
+  EADD (z0, yya, z, zz);
+  MUL2 (z, zz, z, zz, z2, zz2, t1, t2, t3, t4, t5, t6, t7, t8);
+  c1 = z2 * (a7.d + z2 * (a9.d + z2 * a11.d));
+  ADD2 (a5.d, aa5.d, c1, 0.0, c2, cc2, t1, t2);
+  MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (a3.d, aa3.d, c1, cc1, c2, cc2, t1, t2);
+  MUL2 (z2, zz2, c2, cc2, c1, cc1, t1, t2, t3, t4, t5, t6, t7, t8);
+  MUL2 (z, zz, c1, cc1, c2, cc2, t1, t2, t3, t4, t5, t6, t7, t8);
+  ADD2 (z, zz, c2, cc2, c1, cc1, t1, t2);
+
+  ADD2 (fi, ffi, c1, cc1, c2, cc2, t1, t2);
+  MUL2 (fi, ffi, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8);
+  SUB2 (1.0, 0.0, c3, cc3, c1, cc1, t1, t2);
+
+  if (n)
+    {
+      /* -cot */
+      DIV2 (c1, cc1, c2, cc2, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+	    t10);
+      if ((y = c3 + (cc3 - u28.d * c3)) == c3 + (cc3 + u28.d * c3))
+	{
+	  retval = (-sy * y);
+	  goto ret;
+	}
+    }
+  else
+    {
+      /* tan */
+      DIV2 (c2, cc2, c1, cc1, c3, cc3, t1, t2, t3, t4, t5, t6, t7, t8, t9,
+	    t10);
+      if ((y = c3 + (cc3 - u27.d * c3)) == c3 + (cc3 + u27.d * c3))
+	{
+	  retval = (sy * y);
+	  goto ret;
+	}
+    }
+  retval = tanMp (x);
+  goto ret;
+
+ret:
+  return retval;
+}
+
+/* multiple precision stage                                              */
+/* Convert x to multi precision number,compute tan(x) by mptan() routine */
+/* and converts result back to double                                    */
+static double
+SECTION
+tanMp (double x)
+{
+  int p;
+  double y;
+  mp_no mpy;
+  p = 32;
+  __mptan (x, &mpy, p);
+  __mp_dbl (&mpy, &y, p);
+  LIBC_PROBE (slowtan, 2, &x, &y);
+  return y;
+}
+
+#ifdef NO_LONG_DOUBLE
+weak_alias (tan, tanl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_tanh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_tanh.c
new file mode 100644
index 0000000000..344a2f0330
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_tanh.c
@@ -0,0 +1,98 @@
+/* @(#)s_tanh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_tanh.c,v 1.7 1995/05/10 20:48:22 jtc Exp $";
+#endif
+
+/* Tanh(x)
+ * Return the Hyperbolic Tangent of x
+ *
+ * Method :
+ *				       x    -x
+ *				      e  - e
+ *	0. tanh(x) is defined to be -----------
+ *				       x    -x
+ *				      e  + e
+ *	1. reduce x to non-negative by tanh(-x) = -tanh(x).
+ *	2.  0      <= x <= 2**-55 : tanh(x) := x*(one+x)
+ *					        -t
+ *	    2**-55 <  x <=  1     : tanh(x) := -----; t = expm1(-2x)
+ *					       t + 2
+ *						     2
+ *	    1      <= x <=  22.0  : tanh(x) := 1-  ----- ; t=expm1(2x)
+ *						   t + 2
+ *	    22.0   <  x <= INF    : tanh(x) := 1.
+ *
+ * Special cases:
+ *	tanh(NaN) is NaN;
+ *	only tanh(0)=0 is exact for finite argument.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double one = 1.0, two = 2.0, tiny = 1.0e-300;
+
+double
+__tanh (double x)
+{
+  double t, z;
+  int32_t jx, ix, lx;
+
+  /* High word of |x|. */
+  EXTRACT_WORDS (jx, lx, x);
+  ix = jx & 0x7fffffff;
+
+  /* x is INF or NaN */
+  if (ix >= 0x7ff00000)
+    {
+      if (jx >= 0)
+	return one / x + one;               /* tanh(+-inf)=+-1 */
+      else
+	return one / x - one;               /* tanh(NaN) = NaN */
+    }
+
+  /* |x| < 22 */
+  if (ix < 0x40360000)                  /* |x|<22 */
+    {
+      if ((ix | lx) == 0)
+	return x;                       /* x == +-0 */
+      if (ix < 0x3c800000)              /* |x|<2**-55 */
+	{
+	  math_check_force_underflow (x);
+	  return x * (one + x);           /* tanh(small) = small */
+	}
+      if (ix >= 0x3ff00000)             /* |x|>=1  */
+	{
+	  t = __expm1 (two * fabs (x));
+	  z = one - two / (t + two);
+	}
+      else
+	{
+	  t = __expm1 (-two * fabs (x));
+	  z = -t / (t + two);
+	}
+      /* |x| > 22, return +-1 */
+    }
+  else
+    {
+      z = one - tiny;                   /* raised inexact flag */
+    }
+  return (jx >= 0) ? z : -z;
+}
+weak_alias (__tanh, tanh)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__tanh, __tanhl)
+weak_alias (__tanh, tanhl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_totalorder.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_totalorder.c
new file mode 100644
index 0000000000..f229119c27
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_totalorder.c
@@ -0,0 +1,54 @@
+/* Total order operation.  dbl-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalorder (double x, double y)
+{
+  int32_t hx, hy;
+  uint32_t lx, ly;
+  EXTRACT_WORDS (hx, lx, x);
+  EXTRACT_WORDS (hy, ly, y);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  uint32_t uhx = hx & 0x7fffffff, uhy = hy & 0x7fffffff;
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the arguments interpreted as
+     sign-magnitude integers.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if ((uhx > 0x7ff00000 || (uhx == 0x7ff00000 && lx != 0))
+      && (uhy > 0x7ff00000 || (uhy == 0x7ff00000 && ly != 0)))
+    {
+      hx ^= 0x00080000;
+      hy ^= 0x00080000;
+    }
+#endif
+  uint32_t hx_sign = hx >> 31;
+  uint32_t hy_sign = hy >> 31;
+  hx ^= hx_sign >> 1;
+  lx ^= hx_sign;
+  hy ^= hy_sign >> 1;
+  ly ^= hy_sign;
+  return hx < hy || (hx == hy && lx <= ly);
+}
+#ifdef NO_LONG_DOUBLE
+weak_alias (totalorder, totalorderl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_totalordermag.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_totalordermag.c
new file mode 100644
index 0000000000..b1bdd833db
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_totalordermag.c
@@ -0,0 +1,49 @@
+/* Total order operation on absolute values.  dbl-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalordermag (double x, double y)
+{
+  uint32_t hx, hy;
+  uint32_t lx, ly;
+  EXTRACT_WORDS (hx, lx, x);
+  EXTRACT_WORDS (hy, ly, y);
+  hx &= 0x7fffffff;
+  hy &= 0x7fffffff;
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the absolute values of the
+     arguments.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if ((hx > 0x7ff00000 || (hx == 0x7ff00000 && lx != 0))
+      && (hy > 0x7ff00000 || (hy == 0x7ff00000 && ly != 0)))
+    {
+      hx ^= 0x00080000;
+      hy ^= 0x00080000;
+    }
+#endif
+  return hx < hy || (hx == hy && lx <= ly);
+}
+#ifdef NO_LONG_DOUBLE
+weak_alias (totalordermag, totalordermagl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_trunc.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_trunc.c
new file mode 100644
index 0000000000..730c1b377c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_trunc.c
@@ -0,0 +1,62 @@
+/* Truncate argument to nearest integral value not larger than the argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+double
+__trunc (double x)
+{
+  int32_t i0, j0;
+  u_int32_t i1;
+  int sx;
+
+  EXTRACT_WORDS (i0, i1, x);
+  sx = i0 & 0x80000000;
+  j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
+  if (j0 < 20)
+    {
+      if (j0 < 0)
+	/* The magnitude of the number is < 1 so the result is +-0.  */
+	INSERT_WORDS (x, sx, 0);
+      else
+	INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> j0)), 0);
+    }
+  else if (j0 > 51)
+    {
+      if (j0 == 0x400)
+	/* x is inf or NaN.  */
+	return x + x;
+    }
+  else
+    {
+      INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (j0 - 20)));
+    }
+
+  return x;
+}
+#ifndef __trunc
+weak_alias (__trunc, trunc)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__trunc, __truncl)
+weak_alias (__trunc, truncl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfp.c
new file mode 100644
index 0000000000..c3d9047930
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfp.c
@@ -0,0 +1,7 @@
+#define UNSIGNED 1
+#define INEXACT 0
+#define FUNC ufromfp
+#include <s_fromfp_main.c>
+#ifdef NO_LONG_DOUBLE
+weak_alias (ufromfp, ufromfpl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfpx.c b/REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfpx.c
new file mode 100644
index 0000000000..dee607f8c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/s_ufromfpx.c
@@ -0,0 +1,7 @@
+#define UNSIGNED 1
+#define INEXACT 1
+#define FUNC ufromfpx
+#include <s_fromfp_main.c>
+#ifdef NO_LONG_DOUBLE
+weak_alias (ufromfpx, ufromfpxl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.c b/REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.c
new file mode 100644
index 0000000000..9cd8e2f97f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.c
@@ -0,0 +1,369 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/****************************************************************/
+/*  MODULE_NAME: sincos32.c                                     */
+/*                                                              */
+/*  FUNCTIONS: ss32                                             */
+/*             cc32                                             */
+/*             c32                                              */
+/*             sin32                                            */
+/*             cos32                                            */
+/*             mpsin                                            */
+/*             mpcos                                            */
+/*             mpranred                                         */
+/*             mpsin1                                           */
+/*             mpcos1                                           */
+/*                                                              */
+/* FILES NEEDED: endian.h mpa.h sincos32.h                      */
+/*               mpa.c                                          */
+/*                                                              */
+/* Multi Precision sin() and cos() function with p=32  for sin()*/
+/* cos() arcsin() and arccos() routines                         */
+/* In addition mpranred() routine  performs range  reduction of */
+/* a double number x into multi precision number   y,           */
+/* such that y=x-n*pi/2, abs(y)<pi/4,  n=0,+-1,+-2,....         */
+/****************************************************************/
+#include "endian.h"
+#include "mpa.h"
+#include "sincos32.h"
+#include <math.h>
+#include <math_private.h>
+#include <stap-probe.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+/* Compute Multi-Precision sin() function for given p.  Receive Multi Precision
+   number x and result stored at y.  */
+static void
+SECTION
+ss32 (mp_no *x, mp_no *y, int p)
+{
+  int i;
+  double a;
+  mp_no mpt1, x2, gor, sum, mpk = {1, {1.0}};
+  for (i = 1; i <= p; i++)
+    mpk.d[i] = 0;
+
+  __sqr (x, &x2, p);
+  __cpy (&oofac27, &gor, p);
+  __cpy (&gor, &sum, p);
+  for (a = 27.0; a > 1.0; a -= 2.0)
+    {
+      mpk.d[1] = a * (a - 1.0);
+      __mul (&gor, &mpk, &mpt1, p);
+      __cpy (&mpt1, &gor, p);
+      __mul (&x2, &sum, &mpt1, p);
+      __sub (&gor, &mpt1, &sum, p);
+    }
+  __mul (x, &sum, y, p);
+}
+
+/* Compute Multi-Precision cos() function for given p. Receive Multi Precision
+   number x and result stored at y.  */
+static void
+SECTION
+cc32 (mp_no *x, mp_no *y, int p)
+{
+  int i;
+  double a;
+  mp_no mpt1, x2, gor, sum, mpk = {1, {1.0}};
+  for (i = 1; i <= p; i++)
+    mpk.d[i] = 0;
+
+  __sqr (x, &x2, p);
+  mpk.d[1] = 27.0;
+  __mul (&oofac27, &mpk, &gor, p);
+  __cpy (&gor, &sum, p);
+  for (a = 26.0; a > 2.0; a -= 2.0)
+    {
+      mpk.d[1] = a * (a - 1.0);
+      __mul (&gor, &mpk, &mpt1, p);
+      __cpy (&mpt1, &gor, p);
+      __mul (&x2, &sum, &mpt1, p);
+      __sub (&gor, &mpt1, &sum, p);
+    }
+  __mul (&x2, &sum, y, p);
+}
+
+/* Compute both sin(x), cos(x) as Multi precision numbers.  */
+void
+SECTION
+__c32 (mp_no *x, mp_no *y, mp_no *z, int p)
+{
+  mp_no u, t, t1, t2, c, s;
+  int i;
+  __cpy (x, &u, p);
+  u.e = u.e - 1;
+  cc32 (&u, &c, p);
+  ss32 (&u, &s, p);
+  for (i = 0; i < 24; i++)
+    {
+      __mul (&c, &s, &t, p);
+      __sub (&s, &t, &t1, p);
+      __add (&t1, &t1, &s, p);
+      __sub (&__mptwo, &c, &t1, p);
+      __mul (&t1, &c, &t2, p);
+      __add (&t2, &t2, &c, p);
+    }
+  __sub (&__mpone, &c, y, p);
+  __cpy (&s, z, p);
+}
+
+/* Receive double x and two double results of sin(x) and return result which is
+   more accurate, computing sin(x) with multi precision routine c32.  */
+double
+SECTION
+__sin32 (double x, double res, double res1)
+{
+  int p;
+  mp_no a, b, c;
+  p = 32;
+  __dbl_mp (res, &a, p);
+  __dbl_mp (0.5 * (res1 - res), &b, p);
+  __add (&a, &b, &c, p);
+  if (x > 0.8)
+    {
+      __sub (&hp, &c, &a, p);
+      __c32 (&a, &b, &c, p);
+    }
+  else
+    __c32 (&c, &a, &b, p);	/* b=sin(0.5*(res+res1))  */
+  __dbl_mp (x, &c, p);		/* c = x  */
+  __sub (&b, &c, &a, p);
+  /* if a > 0 return min (res, res1), otherwise return max (res, res1).  */
+  if ((a.d[0] > 0 && res >= res1) || (a.d[0] <= 0 && res <= res1))
+    res = res1;
+  LIBC_PROBE (slowasin, 2, &res, &x);
+  return res;
+}
+
+/* Receive double x and two double results of cos(x) and return result which is
+   more accurate, computing cos(x) with multi precision routine c32.  */
+double
+SECTION
+__cos32 (double x, double res, double res1)
+{
+  int p;
+  mp_no a, b, c;
+  p = 32;
+  __dbl_mp (res, &a, p);
+  __dbl_mp (0.5 * (res1 - res), &b, p);
+  __add (&a, &b, &c, p);
+  if (x > 2.4)
+    {
+      __sub (&pi, &c, &a, p);
+      __c32 (&a, &b, &c, p);
+      b.d[0] = -b.d[0];
+    }
+  else if (x > 0.8)
+    {
+      __sub (&hp, &c, &a, p);
+      __c32 (&a, &c, &b, p);
+    }
+  else
+    __c32 (&c, &b, &a, p);	/* b=cos(0.5*(res+res1))  */
+  __dbl_mp (x, &c, p);		/* c = x                  */
+  __sub (&b, &c, &a, p);
+  /* if a > 0 return max (res, res1), otherwise return min (res, res1).  */
+  if ((a.d[0] > 0 && res <= res1) || (a.d[0] <= 0 && res >= res1))
+    res = res1;
+  LIBC_PROBE (slowacos, 2, &res, &x);
+  return res;
+}
+
+/* Compute sin() of double-length number (X + DX) as Multi Precision number and
+   return result as double.  If REDUCE_RANGE is true, X is assumed to be the
+   original input and DX is ignored.  */
+double
+SECTION
+__mpsin (double x, double dx, bool reduce_range)
+{
+  double y;
+  mp_no a, b, c, s;
+  int n;
+  int p = 32;
+
+  if (reduce_range)
+    {
+      n = __mpranred (x, &a, p);	/* n is 0, 1, 2 or 3.  */
+      __c32 (&a, &c, &s, p);
+    }
+  else
+    {
+      n = -1;
+      __dbl_mp (x, &b, p);
+      __dbl_mp (dx, &c, p);
+      __add (&b, &c, &a, p);
+      if (x > 0.8)
+        {
+          __sub (&hp, &a, &b, p);
+          __c32 (&b, &s, &c, p);
+        }
+      else
+        __c32 (&a, &c, &s, p);	/* b = sin(x+dx)  */
+    }
+
+  /* Convert result based on which quarter of unit circle y is in.  */
+  switch (n)
+    {
+    case 1:
+      __mp_dbl (&c, &y, p);
+      break;
+
+    case 3:
+      __mp_dbl (&c, &y, p);
+      y = -y;
+      break;
+
+    case 2:
+      __mp_dbl (&s, &y, p);
+      y = -y;
+      break;
+
+    /* Quadrant not set, so the result must be sin (X + DX), which is also in
+       S.  */
+    case 0:
+    default:
+      __mp_dbl (&s, &y, p);
+    }
+  LIBC_PROBE (slowsin, 3, &x, &dx, &y);
+  return y;
+}
+
+/* Compute cos() of double-length number (X + DX) as Multi Precision number and
+   return result as double.  If REDUCE_RANGE is true, X is assumed to be the
+   original input and DX is ignored.  */
+double
+SECTION
+__mpcos (double x, double dx, bool reduce_range)
+{
+  double y;
+  mp_no a, b, c, s;
+  int n;
+  int p = 32;
+
+  if (reduce_range)
+    {
+      n = __mpranred (x, &a, p);	/* n is 0, 1, 2 or 3.  */
+      __c32 (&a, &c, &s, p);
+    }
+  else
+    {
+      n = -1;
+      __dbl_mp (x, &b, p);
+      __dbl_mp (dx, &c, p);
+      __add (&b, &c, &a, p);
+      if (x > 0.8)
+        {
+          __sub (&hp, &a, &b, p);
+          __c32 (&b, &s, &c, p);
+        }
+      else
+        __c32 (&a, &c, &s, p);	/* a = cos(x+dx)     */
+    }
+
+  /* Convert result based on which quarter of unit circle y is in.  */
+  switch (n)
+    {
+    case 1:
+      __mp_dbl (&s, &y, p);
+      y = -y;
+      break;
+
+    case 3:
+      __mp_dbl (&s, &y, p);
+      break;
+
+    case 2:
+      __mp_dbl (&c, &y, p);
+      y = -y;
+      break;
+
+    /* Quadrant not set, so the result must be cos (X + DX), which is also
+       stored in C.  */
+    case 0:
+    default:
+      __mp_dbl (&c, &y, p);
+    }
+  LIBC_PROBE (slowcos, 3, &x, &dx, &y);
+  return y;
+}
+
+/* Perform range reduction of a double number x into multi precision number y,
+   such that y = x - n * pi / 2, abs (y) < pi / 4, n = 0, +-1, +-2, ...
+   Return int which indicates in which quarter of circle x is.  */
+int
+SECTION
+__mpranred (double x, mp_no *y, int p)
+{
+  number v;
+  double t, xn;
+  int i, k, n;
+  mp_no a, b, c;
+
+  if (fabs (x) < 2.8e14)
+    {
+      t = (x * hpinv.d + toint.d);
+      xn = t - toint.d;
+      v.d = t;
+      n = v.i[LOW_HALF] & 3;
+      __dbl_mp (xn, &a, p);
+      __mul (&a, &hp, &b, p);
+      __dbl_mp (x, &c, p);
+      __sub (&c, &b, y, p);
+      return n;
+    }
+  else
+    {
+      /* If x is very big more precision required.  */
+      __dbl_mp (x, &a, p);
+      a.d[0] = 1.0;
+      k = a.e - 5;
+      if (k < 0)
+	k = 0;
+      b.e = -k;
+      b.d[0] = 1.0;
+      for (i = 0; i < p; i++)
+	b.d[i + 1] = toverp[i + k];
+      __mul (&a, &b, &c, p);
+      t = c.d[c.e];
+      for (i = 1; i <= p - c.e; i++)
+	c.d[i] = c.d[i + c.e];
+      for (i = p + 1 - c.e; i <= p; i++)
+	c.d[i] = 0;
+      c.e = 0;
+      if (c.d[1] >= HALFRAD)
+	{
+	  t += 1.0;
+	  __sub (&c, &__mpone, &b, p);
+	  __mul (&b, &hp, y, p);
+	}
+      else
+	__mul (&c, &hp, y, p);
+      n = (int) t;
+      if (x < 0)
+	{
+	  y->d[0] = -y->d[0];
+	  n = -n;
+	}
+      return (n & 3);
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.h b/REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.h
new file mode 100644
index 0000000000..8265a23e77
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/sincos32.h
@@ -0,0 +1,81 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:sincos32.h                                         */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef SINCOS32_H
+#define SINCCOS32_H
+
+#ifdef BIG_ENDI
+static const number
+/**/          hpinv = {{0x3FE45F30, 0x6DC9C883}}, /*  0.63661977236758138    */
+/**/          toint = {{0x43380000, 0x00000000}}; /*  6755399441055744       */
+
+#else
+#ifdef LITTLE_ENDI
+static const number
+/**/          hpinv = {{0x6DC9C883, 0x3FE45F30}}, /*  0.63661977236758138    */
+/**/          toint = {{0x00000000, 0x43380000}}; /*  6755399441055744       */
+
+#endif
+#endif
+
+static const mp_no
+  oofac27 = {-3,{1.0,7.0,4631664.0,12006312.0,13118056.0,6538613.0,646354.0,
+   8508025.0,9131256.0,7548776.0,2529842.0,8864927.0,660489.0,15595125.0,12777885.0,
+   11618489.0,13348664.0,5486686.0,514518.0,11275535.0,4727621.0,3575562.0,
+   13579710.0,5829745.0,7531862.0,9507898.0,6915060.0,4079264.0,1907586.0,
+   6078398.0,13789314.0,5504104.0,14136.0}},
+  pi = {1,{1.0,3.0,
+    2375530.0,8947107.0,578323.0,1673774.0,225395.0,4498441.0,3678761.0,
+    10432976.0,536314.0,10021966.0,7113029.0,2630118.0,3723283.0,7847508.0,
+    6737716.0,15273068.0,12626985.0,12044668.0,5299519.0,8705461.0,11880201.0,
+    1544726.0,14014857.0,7994139.0,13709579.0,10918111.0,11906095.0,16610011.0,
+    13638367.0,12040417.0,11529578.0,2522774.0}},
+   hp = {1,{1.0, 1.0,
+    9576373.0,4473553.0,8677769.0,9225495.0,112697.0,10637828.0,
+    10227988.0,13605096.0,268157.0,5010983.0,3556514.0,9703667.0,
+    1861641.0,12312362.0,3368858.0,7636534.0,6313492.0,14410942.0,
+    2649759.0,12741338.0,14328708.0,9160971.0,7007428.0,12385677.0,
+    15243397.0,13847663.0,14341655.0,16693613.0,15207791.0,14408816.0,
+    14153397.0,1261387.0,6110792.0,2291862.0,4181138.0,5295267.0}};
+
+static const double toverp[75] = {
+  10680707.0,  7228996.0,  1387004.0,  2578385.0, 16069853.0,
+  12639074.0,  9804092.0,  4427841.0, 16666979.0, 11263675.0,
+  12935607.0,  2387514.0,  4345298.0, 14681673.0,  3074569.0,
+  13734428.0, 16653803.0,  1880361.0, 10960616.0,  8533493.0,
+   3062596.0,  8710556.0,  7349940.0,  6258241.0,  3772886.0,
+   3769171.0,  3798172.0,  8675211.0, 12450088.0,  3874808.0,
+   9961438.0,   366607.0, 15675153.0,  9132554.0,  7151469.0,
+   3571407.0,  2607881.0, 12013382.0,  4155038.0,  6285869.0,
+   7677882.0, 13102053.0, 15825725.0,   473591.0,  9065106.0,
+  15363067.0,  6271263.0,  9264392.0,  5636912.0,  4652155.0,
+   7056368.0, 13614112.0, 10155062.0,  1944035.0,  9527646.0,
+  15080200.0,  6658437.0,  6231200.0,  6832269.0, 16767104.0,
+   5075751.0,  3212806.0,  1398474.0,  7579849.0,  6349435.0,
+  12618859.0,  4703257.0, 12806093.0, 14477321.0,  2786137.0,
+  12875403.0,  9837734.0, 14528324.0, 13719321.0,   343717.0 };
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/sincostab.c b/REORG.TODO/sysdeps/ieee754/dbl-64/sincostab.c
new file mode 100644
index 0000000000..b3e06bfebd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/sincostab.c
@@ -0,0 +1,914 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <mydefs.h>
+#include <endian.h>
+
+/****************************************************************/
+/* TABLES FOR THE usin() and ucos()   FUNCTION                  */
+/****************************************************************/
+
+
+#ifdef BIG_ENDI
+const union {int4 i[880]; double x[440];}__sincostab = { .i = {
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x3FF00000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x3F7FFFEA, 0xAAAEEEEF,
+/**/                   0xBC1E45E2, 0xEC67B77C,
+/**/                   0x3FEFFFC0, 0x00155552,
+/**/                   0x3C8F4A01, 0xA0196DAE,
+/**/                   0x3F8FFFAA, 0xAAEEEED5,
+/**/                   0xBC02AB63, 0x9A9F0777,
+/**/                   0x3FEFFF00, 0x0155549F,
+/**/                   0x3C828A28, 0xA03A5EF3,
+/**/                   0x3F97FF70, 0x01033255,
+/**/                   0x3BFEFE2B, 0x51527336,
+/**/                   0x3FEFFDC0, 0x06BFF7E6,
+/**/                   0x3C8AE6DA, 0xE86977BD,
+/**/                   0x3F9FFEAA, 0xAEEEE86F,
+/**/                   0xBC3CD406, 0xFB224AE2,
+/**/                   0x3FEFFC00, 0x155527D3,
+/**/                   0xBC83B544, 0x92D89B5B,
+/**/                   0x3FA3FEB2, 0xB12D45D5,
+/**/                   0x3C34EC54, 0x203D1C11,
+/**/                   0x3FEFF9C0, 0x3414A7BA,
+/**/                   0x3C6991F4, 0xBE6C59BF,
+/**/                   0x3FA7FDC0, 0x1032FBA9,
+/**/                   0xBC4599BD, 0xF46E997A,
+/**/                   0x3FEFF700, 0x6BFDF99F,
+/**/                   0xBC78B3B5, 0x60648D5F,
+/**/                   0x3FABFC6D, 0x78586DAC,
+/**/                   0x3C18E4FD, 0x03DBF236,
+/**/                   0x3FEFF3C0, 0xC8103A31,
+/**/                   0x3C74856D, 0xBDDC0E66,
+/**/                   0x3FAFFAAA, 0xEEED4EDB,
+/**/                   0xBC42D16D, 0x32684B69,
+/**/                   0x3FEFF001, 0x5549F4D3,
+/**/                   0x3C832838, 0x7B99426F,
+/**/                   0x3FB1FC34, 0x3D808BEF,
+/**/                   0xBC5F3D32, 0xE6F3BE4F,
+/**/                   0x3FEFEBC2, 0x22A8EF9F,
+/**/                   0x3C579349, 0x34F54C77,
+/**/                   0x3FB3FACB, 0x12D1755B,
+/**/                   0xBC592191, 0x5299468C,
+/**/                   0x3FEFE703, 0x4129EF6F,
+/**/                   0xBC6CBF43, 0x37C96F97,
+/**/                   0x3FB5F911, 0xFD10B737,
+/**/                   0xBC50184F, 0x02BE9102,
+/**/                   0x3FEFE1C4, 0xC3C873EB,
+/**/                   0xBC35A9C9, 0x057C4A02,
+/**/                   0x3FB7F701, 0x032550E4,
+/**/                   0x3C3AFC2D, 0x1800501A,
+/**/                   0x3FEFDC06, 0xBF7E6B9B,
+/**/                   0x3C831902, 0xB535F8DB,
+/**/                   0x3FB9F490, 0x2D55D1F9,
+/**/                   0x3C52696D, 0x7EAC1DC1,
+/**/                   0x3FEFD5C9, 0x4B43E000,
+/**/                   0xBC62E768, 0xCB4F92F9,
+/**/                   0x3FBBF1B7, 0x8568391D,
+/**/                   0x3C5E9184, 0x1DEA4CC8,
+/**/                   0x3FEFCF0C, 0x800E99B1,
+/**/                   0x3C6EA3D7, 0x86D186AC,
+/**/                   0x3FBDEE6F, 0x16C1CCE6,
+/**/                   0xBC450F8E, 0x2FB71673,
+/**/                   0x3FEFC7D0, 0x78D1BC88,
+/**/                   0x3C8075D2, 0x447DB685,
+/**/                   0x3FBFEAAE, 0xEE86EE36,
+/**/                   0xBC4AFCB2, 0xBCC6F03B,
+/**/                   0x3FEFC015, 0x527D5BD3,
+/**/                   0x3C8B68F3, 0x5094EFB8,
+/**/                   0x3FC0F337, 0x8DDD71D1,
+/**/                   0x3C6D8468, 0x724F0F9E,
+/**/                   0x3FEFB7DB, 0x2BFE0695,
+/**/                   0x3C821DAD, 0xF4F65AB1,
+/**/                   0x3FC1F0D3, 0xD7AFCEAF,
+/**/                   0xBC66EF95, 0x099769A5,
+/**/                   0x3FEFAF22, 0x263C4BD3,
+/**/                   0xBC552ACE, 0x133A2769,
+/**/                   0x3FC2EE28, 0x5E4AB88F,
+/**/                   0xBC6E4D0F, 0x05DEE058,
+/**/                   0x3FEFA5EA, 0x641C36F2,
+/**/                   0x3C404DA6, 0xED17CC7C,
+/**/                   0x3FC3EB31, 0x2C5D66CB,
+/**/                   0x3C647D66, 0x6B66CB91,
+/**/                   0x3FEF9C34, 0x0A7CC428,
+/**/                   0x3C8C5B6B, 0x063B7462,
+/**/                   0x3FC4E7EA, 0x4DC5F27B,
+/**/                   0x3C5949DB, 0x2AC072FC,
+/**/                   0x3FEF91FF, 0x40374D01,
+/**/                   0xBC67D03F, 0x4D3A9E4C,
+/**/                   0x3FC5E44F, 0xCFA126F3,
+/**/                   0xBC66F443, 0x063F89B6,
+/**/                   0x3FEF874C, 0x2E1EECF6,
+/**/                   0xBC8C6514, 0xE1332B16,
+/**/                   0x3FC6E05D, 0xC05A4D4C,
+/**/                   0xBBD32C5C, 0x8B81C940,
+/**/                   0x3FEF7C1A, 0xFEFFDE24,
+/**/                   0xBC78F55B, 0xC47540B1,
+/**/                   0x3FC7DC10, 0x2FBAF2B5,
+/**/                   0x3C45AB50, 0xE23C97C3,
+/**/                   0x3FEF706B, 0xDF9ECE1C,
+/**/                   0xBC8698C8, 0x0C36DCB4,
+/**/                   0x3FC8D763, 0x2EFAA944,
+/**/                   0xBC620FA2, 0x62CBB953,
+/**/                   0x3FEF643E, 0xFEB82ACD,
+/**/                   0x3C76B00A, 0xC1FE28AC,
+/**/                   0x3FC9D252, 0xD0CEC312,
+/**/                   0x3C59C43D, 0x80B1137D,
+/**/                   0x3FEF5794, 0x8CFF6797,
+/**/                   0x3C6E3A0D, 0x3E03B1D5,
+/**/                   0x3FCACCDB, 0x297A0765,
+/**/                   0xBC59883B, 0x57D6CDEB,
+/**/                   0x3FEF4A6C, 0xBD1E3A79,
+/**/                   0x3C813DF0, 0xEDAEBB57,
+/**/                   0x3FCBC6F8, 0x4EDC6199,
+/**/                   0x3C69C1A5, 0x6A7B0CAB,
+/**/                   0x3FEF3CC7, 0xC3B3D16E,
+/**/                   0xBC621A3A, 0xD28A3494,
+/**/                   0x3FCCC0A6, 0x588289A3,
+/**/                   0xBC6868D0, 0x9BC87C6B,
+/**/                   0x3FEF2EA5, 0xD753FFED,
+/**/                   0x3C8CC421, 0x5F56D583,
+/**/                   0x3FCDB9E1, 0x5FB5A5D0,
+/**/                   0xBC632E20, 0xD6CC6FC2,
+/**/                   0x3FEF2007, 0x3086649F,
+/**/                   0x3C7B9404, 0x16C1984B,
+/**/                   0x3FCEB2A5, 0x7F8AE5A3,
+/**/                   0xBC60BE06, 0xAF572CEB,
+/**/                   0x3FEF10EC, 0x09C5873B,
+/**/                   0x3C8D9072, 0x762C1283,
+/**/                   0x3FCFAAEE, 0xD4F31577,
+/**/                   0xBC615D88, 0x508E32B8,
+/**/                   0x3FEF0154, 0x9F7DEEA1,
+/**/                   0x3C8D3C1E, 0x99E5CAFD,
+/**/                   0x3FD0515C, 0xBF65155C,
+/**/                   0xBC79B8C2, 0x9DFD8EC8,
+/**/                   0x3FEEF141, 0x300D2F26,
+/**/                   0xBC82AA1B, 0x08DED372,
+/**/                   0x3FD0CD00, 0xCEF36436,
+/**/                   0xBC79FB0A, 0x0C93E2B5,
+/**/                   0x3FEEE0B1, 0xFBC0F11C,
+/**/                   0xBC4BFD23, 0x80BBC3B1,
+/**/                   0x3FD14861, 0xAA94DDEB,
+/**/                   0xBC6BE881, 0xB5B615A4,
+/**/                   0x3FEECFA7, 0x44D5EFA1,
+/**/                   0xBC556D0A, 0x4AF541D0,
+/**/                   0x3FD1C37D, 0x64C6B876,
+/**/                   0x3C746076, 0xFE0DCFF5,
+/**/                   0x3FEEBE21, 0x4F76EFA8,
+/**/                   0xBC802F9F, 0x12BA543E,
+/**/                   0x3FD23E52, 0x111AAF36,
+/**/                   0xBC74F080, 0x334EFF18,
+/**/                   0x3FEEAC20, 0x61BBAF4F,
+/**/                   0x3C62C1D5, 0x3E94658D,
+/**/                   0x3FD2B8DD, 0xC43EB49F,
+/**/                   0x3C615538, 0x99F2D807,
+/**/                   0x3FEE99A4, 0xC3A7CD83,
+/**/                   0xBC82264B, 0x1BC53CE8,
+/**/                   0x3FD3331E, 0x94049F87,
+/**/                   0x3C7E0CB6, 0xB40C302C,
+/**/                   0x3FEE86AE, 0xBF29A9ED,
+/**/                   0x3C89397A, 0xFDBB58A7,
+/**/                   0x3FD3AD12, 0x9769D3D8,
+/**/                   0x3C003D55, 0x04878398,
+/**/                   0x3FEE733E, 0xA0193D40,
+/**/                   0xBC86428B, 0x3546CE13,
+/**/                   0x3FD426B7, 0xE69EE697,
+/**/                   0xBC7F09C7, 0x5705C59F,
+/**/                   0x3FEE5F54, 0xB436E9D0,
+/**/                   0x3C87EB0F, 0xD02FC8BC,
+/**/                   0x3FD4A00C, 0x9B0F3D20,
+/**/                   0x3C7823BA, 0x6BB08EAD,
+/**/                   0x3FEE4AF1, 0x4B2A449C,
+/**/                   0xBC868CA0, 0x2E8A6833,
+/**/                   0x3FD5190E, 0xCF68A77A,
+/**/                   0x3C7B3571, 0x55EEF0F3,
+/**/                   0x3FEE3614, 0xB680D6A5,
+/**/                   0xBC727793, 0xAA015237,
+/**/                   0x3FD591BC, 0x9FA2F597,
+/**/                   0x3C67C74B, 0xAC3FE0CB,
+/**/                   0x3FEE20BF, 0x49ACD6C1,
+/**/                   0xBC5660AE, 0xC7EF636C,
+/**/                   0x3FD60A14, 0x29078775,
+/**/                   0x3C5B1FD8, 0x0BA89133,
+/**/                   0x3FEE0AF1, 0x5A03DBCE,
+/**/                   0x3C5FE8E7, 0x02771AE6,
+/**/                   0x3FD68213, 0x8A38D7F7,
+/**/                   0xBC7D8892, 0x02444AAD,
+/**/                   0x3FEDF4AB, 0x3EBD875E,
+/**/                   0xBC8E2D8A, 0x7E6736C4,
+/**/                   0x3FD6F9B8, 0xE33A0255,
+/**/                   0x3C742BC1, 0x4EE9DA0D,
+/**/                   0x3FEDDDED, 0x50F228D6,
+/**/                   0xBC6E80C8, 0xD42BA2BF,
+/**/                   0x3FD77102, 0x55764214,
+/**/                   0xBC66EAD7, 0x314BB6CE,
+/**/                   0x3FEDC6B7, 0xEB995912,
+/**/                   0x3C54B364, 0x776DCD35,
+/**/                   0x3FD7E7EE, 0x03C86D4E,
+/**/                   0xBC7B63BC, 0xDABF5AF2,
+/**/                   0x3FEDAF0B, 0x6B888E83,
+/**/                   0x3C8A249E, 0x2B5E5CEA,
+/**/                   0x3FD85E7A, 0x12826949,
+/**/                   0x3C78A40E, 0x9B5FACE0,
+/**/                   0x3FED96E8, 0x2F71A9DC,
+/**/                   0x3C8FF61B, 0xD5D2039D,
+/**/                   0x3FD8D4A4, 0xA774992F,
+/**/                   0x3C744A02, 0xEA766326,
+/**/                   0x3FED7E4E, 0x97E17B4A,
+/**/                   0xBC63B770, 0x352BED94,
+/**/                   0x3FD94A6B, 0xE9F546C5,
+/**/                   0xBC769CE1, 0x3E683F58,
+/**/                   0x3FED653F, 0x073E4040,
+/**/                   0xBC876236, 0x434BEC37,
+/**/                   0x3FD9BFCE, 0x02E80510,
+/**/                   0x3C709E39, 0xA320B0A4,
+/**/                   0x3FED4BB9, 0xE1C619E0,
+/**/                   0x3C8F34BB, 0x77858F61,
+/**/                   0x3FDA34C9, 0x1CC50CCA,
+/**/                   0xBC5A310E, 0x3B50CECD,
+/**/                   0x3FED31BF, 0x8D8D7C06,
+/**/                   0x3C7E60DD, 0x3089CBDD,
+/**/                   0x3FDAA95B, 0x63A09277,
+/**/                   0xBC66293E, 0xB13C0381,
+/**/                   0x3FED1750, 0x727D94F0,
+/**/                   0x3C80D52B, 0x1EC1A48E,
+/**/                   0x3FDB1D83, 0x05321617,
+/**/                   0xBC7AE242, 0xCB99F519,
+/**/                   0x3FECFC6C, 0xFA52AD9F,
+/**/                   0x3C88B5B5, 0x508F2A0D,
+/**/                   0x3FDB913E, 0x30DBAC43,
+/**/                   0xBC7E38AD, 0x2F6C3FF1,
+/**/                   0x3FECE115, 0x909A82E5,
+/**/                   0x3C81F139, 0xBB31109A,
+/**/                   0x3FDC048B, 0x17B140A3,
+/**/                   0x3C619FE6, 0x757E9FA7,
+/**/                   0x3FECC54A, 0xA2B2972E,
+/**/                   0x3C64EE16, 0x2BA83A98,
+/**/                   0x3FDC7767, 0xEC7FD19E,
+/**/                   0xBC5EB14D, 0x1A3D5826,
+/**/                   0x3FECA90C, 0x9FC67D0B,
+/**/                   0xBC646A81, 0x485E3462,
+/**/                   0x3FDCE9D2, 0xE3D4A51F,
+/**/                   0xBC62FC8A, 0x12DAE298,
+/**/                   0x3FEC8C5B, 0xF8CE1A84,
+/**/                   0x3C7AB3D1, 0xA1590123,
+/**/                   0x3FDD5BCA, 0x34047661,
+/**/                   0x3C728A44, 0xA75FC29C,
+/**/                   0x3FEC6F39, 0x208BE53B,
+/**/                   0xBC8741DB, 0xFBAADB42,
+/**/                   0x3FDDCD4C, 0x15329C9A,
+/**/                   0x3C70D4C6, 0xE171FD9A,
+/**/                   0x3FEC51A4, 0x8B8B175E,
+/**/                   0xBC61BBB4, 0x3B9AA880,
+/**/                   0x3FDE3E56, 0xC1582A69,
+/**/                   0xBC50A482, 0x1099F88F,
+/**/                   0x3FEC339E, 0xB01DDD81,
+/**/                   0xBC8CAAF5, 0xEE82C5C0,
+/**/                   0x3FDEAEE8, 0x744B05F0,
+/**/                   0xBC5789B4, 0x3C9B027D,
+/**/                   0x3FEC1528, 0x065B7D50,
+/**/                   0xBC889211, 0x1312E828,
+/**/                   0x3FDF1EFF, 0x6BC4F97B,
+/**/                   0x3C717212, 0xF8A7525C,
+/**/                   0x3FEBF641, 0x081E7536,
+/**/                   0x3C8B7BD7, 0x1628A9A1,
+/**/                   0x3FDF8E99, 0xE76ABC97,
+/**/                   0x3C59D950, 0xAF2D00A3,
+/**/                   0x3FEBD6EA, 0x310294F5,
+/**/                   0x3C731BBC, 0xC88C109D,
+/**/                   0x3FDFFDB6, 0x28D2F57A,
+/**/                   0x3C6F4A99, 0x2E905B6A,
+/**/                   0x3FEBB723, 0xFE630F32,
+/**/                   0x3C772BD2, 0x452D0A39,
+/**/                   0x3FE03629, 0x39C69955,
+/**/                   0xBC82D8CD, 0x78397B01,
+/**/                   0x3FEB96EE, 0xEF58840E,
+/**/                   0x3C545A3C, 0xC78FADE0,
+/**/                   0x3FE06D36, 0x86946E5B,
+/**/                   0x3C83F5AE, 0x4538FF1B,
+/**/                   0x3FEB764B, 0x84B704C2,
+/**/                   0xBC8F5848, 0xC21B389B,
+/**/                   0x3FE0A402, 0x1E9E1001,
+/**/                   0xBC86F643, 0xA13914F6,
+/**/                   0x3FEB553A, 0x410C104E,
+/**/                   0x3C58FF79, 0x47027A16,
+/**/                   0x3FE0DA8B, 0x26B5672E,
+/**/                   0xBC8A58DE, 0xF0BEE909,
+/**/                   0x3FEB33BB, 0xA89C8948,
+/**/                   0x3C8EA6A5, 0x1D1F6CA9,
+/**/                   0x3FE110D0, 0xC4B69C3B,
+/**/                   0x3C8D9189, 0x98809981,
+/**/                   0x3FEB11D0, 0x4162A4C6,
+/**/                   0x3C71DD56, 0x1EFBC0C2,
+/**/                   0x3FE146D2, 0x1F8B7F82,
+/**/                   0x3C7BF953, 0x5E2739A8,
+/**/                   0x3FEAEF78, 0x930BD275,
+/**/                   0xBC7F8362, 0x79746F94,
+/**/                   0x3FE17C8E, 0x5F2EEDB0,
+/**/                   0x3C635E57, 0x102E2488,
+/**/                   0x3FEACCB5, 0x26F69DE5,
+/**/                   0x3C88FB6A, 0x8DD6B6CC,
+/**/                   0x3FE1B204, 0xACB02FDD,
+/**/                   0xBC5F190C, 0x70CBB5FF,
+/**/                   0x3FEAA986, 0x88308913,
+/**/                   0xBC0B83D6, 0x07CD5070,
+/**/                   0x3FE1E734, 0x3236574C,
+/**/                   0x3C722A3F, 0xA4F41D5A,
+/**/                   0x3FEA85ED, 0x4373E02D,
+/**/                   0x3C69BE06, 0x385EC792,
+/**/                   0x3FE21C1C, 0x1B0394CF,
+/**/                   0x3C5E5B32, 0x4B23AA31,
+/**/                   0x3FEA61E9, 0xE72586AF,
+/**/                   0x3C858330, 0xE2FD453F,
+/**/                   0x3FE250BB, 0x93788BBB,
+/**/                   0x3C7EA3D0, 0x2457BCCE,
+/**/                   0x3FEA3D7D, 0x0352BDCF,
+/**/                   0xBC868DBA, 0xECA19669,
+/**/                   0x3FE28511, 0xC917A067,
+/**/                   0xBC801DF1, 0xD9A16B70,
+/**/                   0x3FEA18A7, 0x29AEE445,
+/**/                   0x3C395E25, 0x736C0358,
+/**/                   0x3FE2B91D, 0xEA88421E,
+/**/                   0xBC8FA371, 0xDB216AB0,
+/**/                   0x3FE9F368, 0xED912F85,
+/**/                   0xBC81D200, 0xC5791606,
+/**/                   0x3FE2ECDF, 0x279A3082,
+/**/                   0x3C8D3557, 0xE0E7E37E,
+/**/                   0x3FE9CDC2, 0xE3F25E5C,
+/**/                   0x3C83F991, 0x12993F62,
+/**/                   0x3FE32054, 0xB148BC4F,
+/**/                   0x3C8F6B42, 0x095A135B,
+/**/                   0x3FE9A7B5, 0xA36A6514,
+/**/                   0x3C8722CF, 0xCC9FA7A9,
+/**/                   0x3FE3537D, 0xB9BE0367,
+/**/                   0x3C6B327E, 0x7AF040F0,
+/**/                   0x3FE98141, 0xC42E1310,
+/**/                   0x3C8D1FF8, 0x0488F08D,
+/**/                   0x3FE38659, 0x7456282B,
+/**/                   0xBC710FAD, 0xA93B07A8,
+/**/                   0x3FE95A67, 0xE00CB1FD,
+/**/                   0xBC80BEFD, 0xA21F862D,
+/**/                   0x3FE3B8E7, 0x15A2840A,
+/**/                   0xBC797653, 0xA7D2F07B,
+/**/                   0x3FE93328, 0x926D9E92,
+/**/                   0xBC8BB770, 0x03600CDA,
+/**/                   0x3FE3EB25, 0xD36CD53A,
+/**/                   0xBC5BE570, 0xE1570FC0,
+/**/                   0x3FE90B84, 0x784DDAF7,
+/**/                   0xBC70FEB1, 0x0AB93B87,
+/**/                   0x3FE41D14, 0xE4BA6790,
+/**/                   0x3C84608F, 0xD287ECF5,
+/**/                   0x3FE8E37C, 0x303D9AD1,
+/**/                   0xBC6463A4, 0xB53D4BF8,
+/**/                   0x3FE44EB3, 0x81CF386B,
+/**/                   0xBC83ED6C, 0x1E6A5505,
+/**/                   0x3FE8BB10, 0x5A5DC900,
+/**/                   0x3C8863E0, 0x3E9474C1,
+/**/                   0x3FE48000, 0xE431159F,
+/**/                   0xBC8B194A, 0x7463ED10,
+/**/                   0x3FE89241, 0x985D871F,
+/**/                   0x3C8C48D9, 0xC413ED84,
+/**/                   0x3FE4B0FC, 0x46AAB761,
+/**/                   0x3C20DA05, 0x738CC59A,
+/**/                   0x3FE86910, 0x8D77A6C6,
+/**/                   0x3C7338FF, 0xE2BFE9DD,
+/**/                   0x3FE4E1A4, 0xE54ED51B,
+/**/                   0xBC8A492F, 0x89B7C76A,
+/**/                   0x3FE83F7D, 0xDE701CA0,
+/**/                   0xBC4152CF, 0x609BC6E8,
+/**/                   0x3FE511F9, 0xFD7B351C,
+/**/                   0xBC85C0E8, 0x61C48831,
+/**/                   0x3FE8158A, 0x31916D5D,
+/**/                   0xBC6DE8B9, 0x0B8228DE,
+/**/                   0x3FE541FA, 0xCDDBB724,
+/**/                   0x3C7232C2, 0x8520D391,
+/**/                   0x3FE7EB36, 0x2EAA1488,
+/**/                   0x3C5A1D65, 0xA4A5959F,
+/**/                   0x3FE571A6, 0x966D59B3,
+/**/                   0x3C5C843B, 0x4D0FB198,
+/**/                   0x3FE7C082, 0x7F09E54F,
+/**/                   0xBC6C73D6, 0xD72AEE68,
+/**/                   0x3FE5A0FC, 0x98813A12,
+/**/                   0xBC8D82E2, 0xB7D4227B,
+/**/                   0x3FE7956F, 0xCD7F6543,
+/**/                   0xBC8AB276, 0xE9D45AE4,
+/**/                   0x3FE5CFFC, 0x16BF8F0D,
+/**/                   0x3C896CB3, 0x70EB578A,
+/**/                   0x3FE769FE, 0xC655211F,
+/**/                   0xBC6827D5, 0xCF8C68C5,
+/**/                   0x3FE5FEA4, 0x552A9E57,
+/**/                   0x3C80B6CE, 0xF7EE20B7,
+/**/                   0x3FE73E30, 0x174EFBA1,
+/**/                   0xBC65D3AE, 0x3D94AD5F,
+/**/                   0x3FE62CF4, 0x9921AC79,
+/**/                   0xBC8EDD98, 0x55B6241A,
+/**/                   0x3FE71204, 0x6FA77678,
+/**/                   0x3C8425B0, 0xA5029C81,
+/**/                   0x3FE65AEC, 0x2963E755,
+/**/                   0x3C8126F9, 0x6B71053C,
+/**/                   0x3FE6E57C, 0x800CF55E,
+/**/                   0x3C860286, 0xDEDBD0A6,
+/**/                   0x3FE6888A, 0x4E134B2F,
+/**/                   0xBC86B7D3, 0x7644D5E6,
+/**/                   0x3FE6B898, 0xFA9EFB5D,
+/**/                   0x3C715AC7, 0x86CCF4B2,
+/**/                   0x3FE6B5CE, 0x50B7821A,
+/**/                   0xBC65D515, 0x8F702E0F,
+/**/                   0x3FE68B5A, 0x92EB6253,
+/**/                   0xBC89A91A, 0xD985F89C,
+/**/                   0x3FE6E2B7, 0x7C40BDE1,
+/**/                   0xBC70E729, 0x857FAD53,
+/**/                   0x3FE65DC1, 0xFDEB8CBA,
+/**/                   0xBC597C1B, 0x47337C77,
+/**/                   0x3FE70F45, 0x1D0A8C40,
+/**/                   0x3C697EDE, 0x3885770D,
+/**/                   0x3FE62FCF, 0xF20191C7,
+/**/                   0x3C6D9143, 0x895756EF,
+/**/                   0x3FE73B76, 0x80DEA578,
+/**/                   0xBC722483, 0x06DC12A2,
+/**/                   0x3FE60185, 0x26F563DF,
+/**/                   0x3C846CA5, 0xE0E432D0,
+/**/                   0x3FE7674A, 0xF6F7B524,
+/**/                   0x3C7E9D3F, 0x94AC84A8,
+/**/                   0x3FE5D2E2, 0x55F1F17A,
+/**/                   0x3C803141, 0x04C8892B,
+/**/                   0x3FE792C1, 0xD0041D52,
+/**/                   0xBC8ABF05, 0xEEB354EB,
+/**/                   0x3FE5A3E8, 0x39824077,
+/**/                   0x3C8428AA, 0x2759BE62,
+/**/                   0x3FE7BDDA, 0x5E28B3C2,
+/**/                   0x3C4AD119, 0x7CCD0393,
+/**/                   0x3FE57497, 0x8D8E83F2,
+/**/                   0x3C8F4714, 0xAF282D23,
+/**/                   0x3FE7E893, 0xF5037959,
+/**/                   0x3C80EEFB, 0xAA650C4C,
+/**/                   0x3FE544F1, 0x0F592CA5,
+/**/                   0xBC8E7AE8, 0xE6C7A62F,
+/**/                   0x3FE812ED, 0xE9AE4BA4,
+/**/                   0xBC87830A, 0xDF402DDA,
+/**/                   0x3FE514F5, 0x7D7BF3DA,
+/**/                   0x3C747A10, 0x8073C259 } };
+#else
+#ifdef LITTLE_ENDI
+const union {int4 i[880]; double x[440];} __sincostab = { .i = {
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x3FF00000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0xAAAEEEEF, 0x3F7FFFEA,
+/**/                   0xEC67B77C, 0xBC1E45E2,
+/**/                   0x00155552, 0x3FEFFFC0,
+/**/                   0xA0196DAE, 0x3C8F4A01,
+/**/                   0xAAEEEED5, 0x3F8FFFAA,
+/**/                   0x9A9F0777, 0xBC02AB63,
+/**/                   0x0155549F, 0x3FEFFF00,
+/**/                   0xA03A5EF3, 0x3C828A28,
+/**/                   0x01033255, 0x3F97FF70,
+/**/                   0x51527336, 0x3BFEFE2B,
+/**/                   0x06BFF7E6, 0x3FEFFDC0,
+/**/                   0xE86977BD, 0x3C8AE6DA,
+/**/                   0xAEEEE86F, 0x3F9FFEAA,
+/**/                   0xFB224AE2, 0xBC3CD406,
+/**/                   0x155527D3, 0x3FEFFC00,
+/**/                   0x92D89B5B, 0xBC83B544,
+/**/                   0xB12D45D5, 0x3FA3FEB2,
+/**/                   0x203D1C11, 0x3C34EC54,
+/**/                   0x3414A7BA, 0x3FEFF9C0,
+/**/                   0xBE6C59BF, 0x3C6991F4,
+/**/                   0x1032FBA9, 0x3FA7FDC0,
+/**/                   0xF46E997A, 0xBC4599BD,
+/**/                   0x6BFDF99F, 0x3FEFF700,
+/**/                   0x60648D5F, 0xBC78B3B5,
+/**/                   0x78586DAC, 0x3FABFC6D,
+/**/                   0x03DBF236, 0x3C18E4FD,
+/**/                   0xC8103A31, 0x3FEFF3C0,
+/**/                   0xBDDC0E66, 0x3C74856D,
+/**/                   0xEEED4EDB, 0x3FAFFAAA,
+/**/                   0x32684B69, 0xBC42D16D,
+/**/                   0x5549F4D3, 0x3FEFF001,
+/**/                   0x7B99426F, 0x3C832838,
+/**/                   0x3D808BEF, 0x3FB1FC34,
+/**/                   0xE6F3BE4F, 0xBC5F3D32,
+/**/                   0x22A8EF9F, 0x3FEFEBC2,
+/**/                   0x34F54C77, 0x3C579349,
+/**/                   0x12D1755B, 0x3FB3FACB,
+/**/                   0x5299468C, 0xBC592191,
+/**/                   0x4129EF6F, 0x3FEFE703,
+/**/                   0x37C96F97, 0xBC6CBF43,
+/**/                   0xFD10B737, 0x3FB5F911,
+/**/                   0x02BE9102, 0xBC50184F,
+/**/                   0xC3C873EB, 0x3FEFE1C4,
+/**/                   0x057C4A02, 0xBC35A9C9,
+/**/                   0x032550E4, 0x3FB7F701,
+/**/                   0x1800501A, 0x3C3AFC2D,
+/**/                   0xBF7E6B9B, 0x3FEFDC06,
+/**/                   0xB535F8DB, 0x3C831902,
+/**/                   0x2D55D1F9, 0x3FB9F490,
+/**/                   0x7EAC1DC1, 0x3C52696D,
+/**/                   0x4B43E000, 0x3FEFD5C9,
+/**/                   0xCB4F92F9, 0xBC62E768,
+/**/                   0x8568391D, 0x3FBBF1B7,
+/**/                   0x1DEA4CC8, 0x3C5E9184,
+/**/                   0x800E99B1, 0x3FEFCF0C,
+/**/                   0x86D186AC, 0x3C6EA3D7,
+/**/                   0x16C1CCE6, 0x3FBDEE6F,
+/**/                   0x2FB71673, 0xBC450F8E,
+/**/                   0x78D1BC88, 0x3FEFC7D0,
+/**/                   0x447DB685, 0x3C8075D2,
+/**/                   0xEE86EE36, 0x3FBFEAAE,
+/**/                   0xBCC6F03B, 0xBC4AFCB2,
+/**/                   0x527D5BD3, 0x3FEFC015,
+/**/                   0x5094EFB8, 0x3C8B68F3,
+/**/                   0x8DDD71D1, 0x3FC0F337,
+/**/                   0x724F0F9E, 0x3C6D8468,
+/**/                   0x2BFE0695, 0x3FEFB7DB,
+/**/                   0xF4F65AB1, 0x3C821DAD,
+/**/                   0xD7AFCEAF, 0x3FC1F0D3,
+/**/                   0x099769A5, 0xBC66EF95,
+/**/                   0x263C4BD3, 0x3FEFAF22,
+/**/                   0x133A2769, 0xBC552ACE,
+/**/                   0x5E4AB88F, 0x3FC2EE28,
+/**/                   0x05DEE058, 0xBC6E4D0F,
+/**/                   0x641C36F2, 0x3FEFA5EA,
+/**/                   0xED17CC7C, 0x3C404DA6,
+/**/                   0x2C5D66CB, 0x3FC3EB31,
+/**/                   0x6B66CB91, 0x3C647D66,
+/**/                   0x0A7CC428, 0x3FEF9C34,
+/**/                   0x063B7462, 0x3C8C5B6B,
+/**/                   0x4DC5F27B, 0x3FC4E7EA,
+/**/                   0x2AC072FC, 0x3C5949DB,
+/**/                   0x40374D01, 0x3FEF91FF,
+/**/                   0x4D3A9E4C, 0xBC67D03F,
+/**/                   0xCFA126F3, 0x3FC5E44F,
+/**/                   0x063F89B6, 0xBC66F443,
+/**/                   0x2E1EECF6, 0x3FEF874C,
+/**/                   0xE1332B16, 0xBC8C6514,
+/**/                   0xC05A4D4C, 0x3FC6E05D,
+/**/                   0x8B81C940, 0xBBD32C5C,
+/**/                   0xFEFFDE24, 0x3FEF7C1A,
+/**/                   0xC47540B1, 0xBC78F55B,
+/**/                   0x2FBAF2B5, 0x3FC7DC10,
+/**/                   0xE23C97C3, 0x3C45AB50,
+/**/                   0xDF9ECE1C, 0x3FEF706B,
+/**/                   0x0C36DCB4, 0xBC8698C8,
+/**/                   0x2EFAA944, 0x3FC8D763,
+/**/                   0x62CBB953, 0xBC620FA2,
+/**/                   0xFEB82ACD, 0x3FEF643E,
+/**/                   0xC1FE28AC, 0x3C76B00A,
+/**/                   0xD0CEC312, 0x3FC9D252,
+/**/                   0x80B1137D, 0x3C59C43D,
+/**/                   0x8CFF6797, 0x3FEF5794,
+/**/                   0x3E03B1D5, 0x3C6E3A0D,
+/**/                   0x297A0765, 0x3FCACCDB,
+/**/                   0x57D6CDEB, 0xBC59883B,
+/**/                   0xBD1E3A79, 0x3FEF4A6C,
+/**/                   0xEDAEBB57, 0x3C813DF0,
+/**/                   0x4EDC6199, 0x3FCBC6F8,
+/**/                   0x6A7B0CAB, 0x3C69C1A5,
+/**/                   0xC3B3D16E, 0x3FEF3CC7,
+/**/                   0xD28A3494, 0xBC621A3A,
+/**/                   0x588289A3, 0x3FCCC0A6,
+/**/                   0x9BC87C6B, 0xBC6868D0,
+/**/                   0xD753FFED, 0x3FEF2EA5,
+/**/                   0x5F56D583, 0x3C8CC421,
+/**/                   0x5FB5A5D0, 0x3FCDB9E1,
+/**/                   0xD6CC6FC2, 0xBC632E20,
+/**/                   0x3086649F, 0x3FEF2007,
+/**/                   0x16C1984B, 0x3C7B9404,
+/**/                   0x7F8AE5A3, 0x3FCEB2A5,
+/**/                   0xAF572CEB, 0xBC60BE06,
+/**/                   0x09C5873B, 0x3FEF10EC,
+/**/                   0x762C1283, 0x3C8D9072,
+/**/                   0xD4F31577, 0x3FCFAAEE,
+/**/                   0x508E32B8, 0xBC615D88,
+/**/                   0x9F7DEEA1, 0x3FEF0154,
+/**/                   0x99E5CAFD, 0x3C8D3C1E,
+/**/                   0xBF65155C, 0x3FD0515C,
+/**/                   0x9DFD8EC8, 0xBC79B8C2,
+/**/                   0x300D2F26, 0x3FEEF141,
+/**/                   0x08DED372, 0xBC82AA1B,
+/**/                   0xCEF36436, 0x3FD0CD00,
+/**/                   0x0C93E2B5, 0xBC79FB0A,
+/**/                   0xFBC0F11C, 0x3FEEE0B1,
+/**/                   0x80BBC3B1, 0xBC4BFD23,
+/**/                   0xAA94DDEB, 0x3FD14861,
+/**/                   0xB5B615A4, 0xBC6BE881,
+/**/                   0x44D5EFA1, 0x3FEECFA7,
+/**/                   0x4AF541D0, 0xBC556D0A,
+/**/                   0x64C6B876, 0x3FD1C37D,
+/**/                   0xFE0DCFF5, 0x3C746076,
+/**/                   0x4F76EFA8, 0x3FEEBE21,
+/**/                   0x12BA543E, 0xBC802F9F,
+/**/                   0x111AAF36, 0x3FD23E52,
+/**/                   0x334EFF18, 0xBC74F080,
+/**/                   0x61BBAF4F, 0x3FEEAC20,
+/**/                   0x3E94658D, 0x3C62C1D5,
+/**/                   0xC43EB49F, 0x3FD2B8DD,
+/**/                   0x99F2D807, 0x3C615538,
+/**/                   0xC3A7CD83, 0x3FEE99A4,
+/**/                   0x1BC53CE8, 0xBC82264B,
+/**/                   0x94049F87, 0x3FD3331E,
+/**/                   0xB40C302C, 0x3C7E0CB6,
+/**/                   0xBF29A9ED, 0x3FEE86AE,
+/**/                   0xFDBB58A7, 0x3C89397A,
+/**/                   0x9769D3D8, 0x3FD3AD12,
+/**/                   0x04878398, 0x3C003D55,
+/**/                   0xA0193D40, 0x3FEE733E,
+/**/                   0x3546CE13, 0xBC86428B,
+/**/                   0xE69EE697, 0x3FD426B7,
+/**/                   0x5705C59F, 0xBC7F09C7,
+/**/                   0xB436E9D0, 0x3FEE5F54,
+/**/                   0xD02FC8BC, 0x3C87EB0F,
+/**/                   0x9B0F3D20, 0x3FD4A00C,
+/**/                   0x6BB08EAD, 0x3C7823BA,
+/**/                   0x4B2A449C, 0x3FEE4AF1,
+/**/                   0x2E8A6833, 0xBC868CA0,
+/**/                   0xCF68A77A, 0x3FD5190E,
+/**/                   0x55EEF0F3, 0x3C7B3571,
+/**/                   0xB680D6A5, 0x3FEE3614,
+/**/                   0xAA015237, 0xBC727793,
+/**/                   0x9FA2F597, 0x3FD591BC,
+/**/                   0xAC3FE0CB, 0x3C67C74B,
+/**/                   0x49ACD6C1, 0x3FEE20BF,
+/**/                   0xC7EF636C, 0xBC5660AE,
+/**/                   0x29078775, 0x3FD60A14,
+/**/                   0x0BA89133, 0x3C5B1FD8,
+/**/                   0x5A03DBCE, 0x3FEE0AF1,
+/**/                   0x02771AE6, 0x3C5FE8E7,
+/**/                   0x8A38D7F7, 0x3FD68213,
+/**/                   0x02444AAD, 0xBC7D8892,
+/**/                   0x3EBD875E, 0x3FEDF4AB,
+/**/                   0x7E6736C4, 0xBC8E2D8A,
+/**/                   0xE33A0255, 0x3FD6F9B8,
+/**/                   0x4EE9DA0D, 0x3C742BC1,
+/**/                   0x50F228D6, 0x3FEDDDED,
+/**/                   0xD42BA2BF, 0xBC6E80C8,
+/**/                   0x55764214, 0x3FD77102,
+/**/                   0x314BB6CE, 0xBC66EAD7,
+/**/                   0xEB995912, 0x3FEDC6B7,
+/**/                   0x776DCD35, 0x3C54B364,
+/**/                   0x03C86D4E, 0x3FD7E7EE,
+/**/                   0xDABF5AF2, 0xBC7B63BC,
+/**/                   0x6B888E83, 0x3FEDAF0B,
+/**/                   0x2B5E5CEA, 0x3C8A249E,
+/**/                   0x12826949, 0x3FD85E7A,
+/**/                   0x9B5FACE0, 0x3C78A40E,
+/**/                   0x2F71A9DC, 0x3FED96E8,
+/**/                   0xD5D2039D, 0x3C8FF61B,
+/**/                   0xA774992F, 0x3FD8D4A4,
+/**/                   0xEA766326, 0x3C744A02,
+/**/                   0x97E17B4A, 0x3FED7E4E,
+/**/                   0x352BED94, 0xBC63B770,
+/**/                   0xE9F546C5, 0x3FD94A6B,
+/**/                   0x3E683F58, 0xBC769CE1,
+/**/                   0x073E4040, 0x3FED653F,
+/**/                   0x434BEC37, 0xBC876236,
+/**/                   0x02E80510, 0x3FD9BFCE,
+/**/                   0xA320B0A4, 0x3C709E39,
+/**/                   0xE1C619E0, 0x3FED4BB9,
+/**/                   0x77858F61, 0x3C8F34BB,
+/**/                   0x1CC50CCA, 0x3FDA34C9,
+/**/                   0x3B50CECD, 0xBC5A310E,
+/**/                   0x8D8D7C06, 0x3FED31BF,
+/**/                   0x3089CBDD, 0x3C7E60DD,
+/**/                   0x63A09277, 0x3FDAA95B,
+/**/                   0xB13C0381, 0xBC66293E,
+/**/                   0x727D94F0, 0x3FED1750,
+/**/                   0x1EC1A48E, 0x3C80D52B,
+/**/                   0x05321617, 0x3FDB1D83,
+/**/                   0xCB99F519, 0xBC7AE242,
+/**/                   0xFA52AD9F, 0x3FECFC6C,
+/**/                   0x508F2A0D, 0x3C88B5B5,
+/**/                   0x30DBAC43, 0x3FDB913E,
+/**/                   0x2F6C3FF1, 0xBC7E38AD,
+/**/                   0x909A82E5, 0x3FECE115,
+/**/                   0xBB31109A, 0x3C81F139,
+/**/                   0x17B140A3, 0x3FDC048B,
+/**/                   0x757E9FA7, 0x3C619FE6,
+/**/                   0xA2B2972E, 0x3FECC54A,
+/**/                   0x2BA83A98, 0x3C64EE16,
+/**/                   0xEC7FD19E, 0x3FDC7767,
+/**/                   0x1A3D5826, 0xBC5EB14D,
+/**/                   0x9FC67D0B, 0x3FECA90C,
+/**/                   0x485E3462, 0xBC646A81,
+/**/                   0xE3D4A51F, 0x3FDCE9D2,
+/**/                   0x12DAE298, 0xBC62FC8A,
+/**/                   0xF8CE1A84, 0x3FEC8C5B,
+/**/                   0xA1590123, 0x3C7AB3D1,
+/**/                   0x34047661, 0x3FDD5BCA,
+/**/                   0xA75FC29C, 0x3C728A44,
+/**/                   0x208BE53B, 0x3FEC6F39,
+/**/                   0xFBAADB42, 0xBC8741DB,
+/**/                   0x15329C9A, 0x3FDDCD4C,
+/**/                   0xE171FD9A, 0x3C70D4C6,
+/**/                   0x8B8B175E, 0x3FEC51A4,
+/**/                   0x3B9AA880, 0xBC61BBB4,
+/**/                   0xC1582A69, 0x3FDE3E56,
+/**/                   0x1099F88F, 0xBC50A482,
+/**/                   0xB01DDD81, 0x3FEC339E,
+/**/                   0xEE82C5C0, 0xBC8CAAF5,
+/**/                   0x744B05F0, 0x3FDEAEE8,
+/**/                   0x3C9B027D, 0xBC5789B4,
+/**/                   0x065B7D50, 0x3FEC1528,
+/**/                   0x1312E828, 0xBC889211,
+/**/                   0x6BC4F97B, 0x3FDF1EFF,
+/**/                   0xF8A7525C, 0x3C717212,
+/**/                   0x081E7536, 0x3FEBF641,
+/**/                   0x1628A9A1, 0x3C8B7BD7,
+/**/                   0xE76ABC97, 0x3FDF8E99,
+/**/                   0xAF2D00A3, 0x3C59D950,
+/**/                   0x310294F5, 0x3FEBD6EA,
+/**/                   0xC88C109D, 0x3C731BBC,
+/**/                   0x28D2F57A, 0x3FDFFDB6,
+/**/                   0x2E905B6A, 0x3C6F4A99,
+/**/                   0xFE630F32, 0x3FEBB723,
+/**/                   0x452D0A39, 0x3C772BD2,
+/**/                   0x39C69955, 0x3FE03629,
+/**/                   0x78397B01, 0xBC82D8CD,
+/**/                   0xEF58840E, 0x3FEB96EE,
+/**/                   0xC78FADE0, 0x3C545A3C,
+/**/                   0x86946E5B, 0x3FE06D36,
+/**/                   0x4538FF1B, 0x3C83F5AE,
+/**/                   0x84B704C2, 0x3FEB764B,
+/**/                   0xC21B389B, 0xBC8F5848,
+/**/                   0x1E9E1001, 0x3FE0A402,
+/**/                   0xA13914F6, 0xBC86F643,
+/**/                   0x410C104E, 0x3FEB553A,
+/**/                   0x47027A16, 0x3C58FF79,
+/**/                   0x26B5672E, 0x3FE0DA8B,
+/**/                   0xF0BEE909, 0xBC8A58DE,
+/**/                   0xA89C8948, 0x3FEB33BB,
+/**/                   0x1D1F6CA9, 0x3C8EA6A5,
+/**/                   0xC4B69C3B, 0x3FE110D0,
+/**/                   0x98809981, 0x3C8D9189,
+/**/                   0x4162A4C6, 0x3FEB11D0,
+/**/                   0x1EFBC0C2, 0x3C71DD56,
+/**/                   0x1F8B7F82, 0x3FE146D2,
+/**/                   0x5E2739A8, 0x3C7BF953,
+/**/                   0x930BD275, 0x3FEAEF78,
+/**/                   0x79746F94, 0xBC7F8362,
+/**/                   0x5F2EEDB0, 0x3FE17C8E,
+/**/                   0x102E2488, 0x3C635E57,
+/**/                   0x26F69DE5, 0x3FEACCB5,
+/**/                   0x8DD6B6CC, 0x3C88FB6A,
+/**/                   0xACB02FDD, 0x3FE1B204,
+/**/                   0x70CBB5FF, 0xBC5F190C,
+/**/                   0x88308913, 0x3FEAA986,
+/**/                   0x07CD5070, 0xBC0B83D6,
+/**/                   0x3236574C, 0x3FE1E734,
+/**/                   0xA4F41D5A, 0x3C722A3F,
+/**/                   0x4373E02D, 0x3FEA85ED,
+/**/                   0x385EC792, 0x3C69BE06,
+/**/                   0x1B0394CF, 0x3FE21C1C,
+/**/                   0x4B23AA31, 0x3C5E5B32,
+/**/                   0xE72586AF, 0x3FEA61E9,
+/**/                   0xE2FD453F, 0x3C858330,
+/**/                   0x93788BBB, 0x3FE250BB,
+/**/                   0x2457BCCE, 0x3C7EA3D0,
+/**/                   0x0352BDCF, 0x3FEA3D7D,
+/**/                   0xECA19669, 0xBC868DBA,
+/**/                   0xC917A067, 0x3FE28511,
+/**/                   0xD9A16B70, 0xBC801DF1,
+/**/                   0x29AEE445, 0x3FEA18A7,
+/**/                   0x736C0358, 0x3C395E25,
+/**/                   0xEA88421E, 0x3FE2B91D,
+/**/                   0xDB216AB0, 0xBC8FA371,
+/**/                   0xED912F85, 0x3FE9F368,
+/**/                   0xC5791606, 0xBC81D200,
+/**/                   0x279A3082, 0x3FE2ECDF,
+/**/                   0xE0E7E37E, 0x3C8D3557,
+/**/                   0xE3F25E5C, 0x3FE9CDC2,
+/**/                   0x12993F62, 0x3C83F991,
+/**/                   0xB148BC4F, 0x3FE32054,
+/**/                   0x095A135B, 0x3C8F6B42,
+/**/                   0xA36A6514, 0x3FE9A7B5,
+/**/                   0xCC9FA7A9, 0x3C8722CF,
+/**/                   0xB9BE0367, 0x3FE3537D,
+/**/                   0x7AF040F0, 0x3C6B327E,
+/**/                   0xC42E1310, 0x3FE98141,
+/**/                   0x0488F08D, 0x3C8D1FF8,
+/**/                   0x7456282B, 0x3FE38659,
+/**/                   0xA93B07A8, 0xBC710FAD,
+/**/                   0xE00CB1FD, 0x3FE95A67,
+/**/                   0xA21F862D, 0xBC80BEFD,
+/**/                   0x15A2840A, 0x3FE3B8E7,
+/**/                   0xA7D2F07B, 0xBC797653,
+/**/                   0x926D9E92, 0x3FE93328,
+/**/                   0x03600CDA, 0xBC8BB770,
+/**/                   0xD36CD53A, 0x3FE3EB25,
+/**/                   0xE1570FC0, 0xBC5BE570,
+/**/                   0x784DDAF7, 0x3FE90B84,
+/**/                   0x0AB93B87, 0xBC70FEB1,
+/**/                   0xE4BA6790, 0x3FE41D14,
+/**/                   0xD287ECF5, 0x3C84608F,
+/**/                   0x303D9AD1, 0x3FE8E37C,
+/**/                   0xB53D4BF8, 0xBC6463A4,
+/**/                   0x81CF386B, 0x3FE44EB3,
+/**/                   0x1E6A5505, 0xBC83ED6C,
+/**/                   0x5A5DC900, 0x3FE8BB10,
+/**/                   0x3E9474C1, 0x3C8863E0,
+/**/                   0xE431159F, 0x3FE48000,
+/**/                   0x7463ED10, 0xBC8B194A,
+/**/                   0x985D871F, 0x3FE89241,
+/**/                   0xC413ED84, 0x3C8C48D9,
+/**/                   0x46AAB761, 0x3FE4B0FC,
+/**/                   0x738CC59A, 0x3C20DA05,
+/**/                   0x8D77A6C6, 0x3FE86910,
+/**/                   0xE2BFE9DD, 0x3C7338FF,
+/**/                   0xE54ED51B, 0x3FE4E1A4,
+/**/                   0x89B7C76A, 0xBC8A492F,
+/**/                   0xDE701CA0, 0x3FE83F7D,
+/**/                   0x609BC6E8, 0xBC4152CF,
+/**/                   0xFD7B351C, 0x3FE511F9,
+/**/                   0x61C48831, 0xBC85C0E8,
+/**/                   0x31916D5D, 0x3FE8158A,
+/**/                   0x0B8228DE, 0xBC6DE8B9,
+/**/                   0xCDDBB724, 0x3FE541FA,
+/**/                   0x8520D391, 0x3C7232C2,
+/**/                   0x2EAA1488, 0x3FE7EB36,
+/**/                   0xA4A5959F, 0x3C5A1D65,
+/**/                   0x966D59B3, 0x3FE571A6,
+/**/                   0x4D0FB198, 0x3C5C843B,
+/**/                   0x7F09E54F, 0x3FE7C082,
+/**/                   0xD72AEE68, 0xBC6C73D6,
+/**/                   0x98813A12, 0x3FE5A0FC,
+/**/                   0xB7D4227B, 0xBC8D82E2,
+/**/                   0xCD7F6543, 0x3FE7956F,
+/**/                   0xE9D45AE4, 0xBC8AB276,
+/**/                   0x16BF8F0D, 0x3FE5CFFC,
+/**/                   0x70EB578A, 0x3C896CB3,
+/**/                   0xC655211F, 0x3FE769FE,
+/**/                   0xCF8C68C5, 0xBC6827D5,
+/**/                   0x552A9E57, 0x3FE5FEA4,
+/**/                   0xF7EE20B7, 0x3C80B6CE,
+/**/                   0x174EFBA1, 0x3FE73E30,
+/**/                   0x3D94AD5F, 0xBC65D3AE,
+/**/                   0x9921AC79, 0x3FE62CF4,
+/**/                   0x55B6241A, 0xBC8EDD98,
+/**/                   0x6FA77678, 0x3FE71204,
+/**/                   0xA5029C81, 0x3C8425B0,
+/**/                   0x2963E755, 0x3FE65AEC,
+/**/                   0x6B71053C, 0x3C8126F9,
+/**/                   0x800CF55E, 0x3FE6E57C,
+/**/                   0xDEDBD0A6, 0x3C860286,
+/**/                   0x4E134B2F, 0x3FE6888A,
+/**/                   0x7644D5E6, 0xBC86B7D3,
+/**/                   0xFA9EFB5D, 0x3FE6B898,
+/**/                   0x86CCF4B2, 0x3C715AC7,
+/**/                   0x50B7821A, 0x3FE6B5CE,
+/**/                   0x8F702E0F, 0xBC65D515,
+/**/                   0x92EB6253, 0x3FE68B5A,
+/**/                   0xD985F89C, 0xBC89A91A,
+/**/                   0x7C40BDE1, 0x3FE6E2B7,
+/**/                   0x857FAD53, 0xBC70E729,
+/**/                   0xFDEB8CBA, 0x3FE65DC1,
+/**/                   0x47337C77, 0xBC597C1B,
+/**/                   0x1D0A8C40, 0x3FE70F45,
+/**/                   0x3885770D, 0x3C697EDE,
+/**/                   0xF20191C7, 0x3FE62FCF,
+/**/                   0x895756EF, 0x3C6D9143,
+/**/                   0x80DEA578, 0x3FE73B76,
+/**/                   0x06DC12A2, 0xBC722483,
+/**/                   0x26F563DF, 0x3FE60185,
+/**/                   0xE0E432D0, 0x3C846CA5,
+/**/                   0xF6F7B524, 0x3FE7674A,
+/**/                   0x94AC84A8, 0x3C7E9D3F,
+/**/                   0x55F1F17A, 0x3FE5D2E2,
+/**/                   0x04C8892B, 0x3C803141,
+/**/                   0xD0041D52, 0x3FE792C1,
+/**/                   0xEEB354EB, 0xBC8ABF05,
+/**/                   0x39824077, 0x3FE5A3E8,
+/**/                   0x2759BE62, 0x3C8428AA,
+/**/                   0x5E28B3C2, 0x3FE7BDDA,
+/**/                   0x7CCD0393, 0x3C4AD119,
+/**/                   0x8D8E83F2, 0x3FE57497,
+/**/                   0xAF282D23, 0x3C8F4714,
+/**/                   0xF5037959, 0x3FE7E893,
+/**/                   0xAA650C4C, 0x3C80EEFB,
+/**/                   0x0F592CA5, 0x3FE544F1,
+/**/                   0xE6C7A62F, 0xBC8E7AE8,
+/**/                   0xE9AE4BA4, 0x3FE812ED,
+/**/                   0xDF402DDA, 0xBC87830A,
+/**/                   0x7D7BF3DA, 0x3FE514F5,
+/**/                   0x8073C259, 0x3C747A10 } };
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/slowexp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/slowexp.c
new file mode 100644
index 0000000000..e8fa2e263b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/slowexp.c
@@ -0,0 +1,86 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/**************************************************************************/
+/*  MODULE_NAME:slowexp.c                                                 */
+/*                                                                        */
+/*  FUNCTION:slowexp                                                      */
+/*                                                                        */
+/*  FILES NEEDED:mpa.h                                                    */
+/*               mpa.c mpexp.c                                            */
+/*                                                                        */
+/*Converting from double precision to Multi-precision and calculating     */
+/* e^x                                                                    */
+/**************************************************************************/
+#include <math_private.h>
+
+#include <stap-probe.h>
+
+#ifndef USE_LONG_DOUBLE_FOR_MP
+# include "mpa.h"
+void __mpexp (mp_no *x, mp_no *y, int p);
+#endif
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+/*Converting from double precision to Multi-precision and calculating  e^x */
+double
+SECTION
+__slowexp (double x)
+{
+#ifndef USE_LONG_DOUBLE_FOR_MP
+  double w, z, res, eps = 3.0e-26;
+  int p;
+  mp_no mpx, mpy, mpz, mpw, mpeps, mpcor;
+
+  /* Use the multiple precision __MPEXP function to compute the exponential
+     First at 144 bits and if it is not accurate enough, at 768 bits.  */
+  p = 6;
+  __dbl_mp (x, &mpx, p);
+  __mpexp (&mpx, &mpy, p);
+  __dbl_mp (eps, &mpeps, p);
+  __mul (&mpeps, &mpy, &mpcor, p);
+  __add (&mpy, &mpcor, &mpw, p);
+  __sub (&mpy, &mpcor, &mpz, p);
+  __mp_dbl (&mpw, &w, p);
+  __mp_dbl (&mpz, &z, p);
+  if (w == z)
+    {
+      /* Track how often we get to the slow exp code plus
+	 its input/output values.  */
+      LIBC_PROBE (slowexp_p6, 2, &x, &w);
+      return w;
+    }
+  else
+    {
+      p = 32;
+      __dbl_mp (x, &mpx, p);
+      __mpexp (&mpx, &mpy, p);
+      __mp_dbl (&mpy, &res, p);
+
+      /* Track how often we get to the uber-slow exp code plus
+	 its input/output values.  */
+      LIBC_PROBE (slowexp_p32, 2, &x, &res);
+      return res;
+    }
+#else
+  return (double) __ieee754_expl((long double)x);
+#endif
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/slowpow.c b/REORG.TODO/sysdeps/ieee754/dbl-64/slowpow.c
new file mode 100644
index 0000000000..1176b2689c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/slowpow.c
@@ -0,0 +1,125 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/*************************************************************************/
+/* MODULE_NAME:slowpow.c                                                 */
+/*                                                                       */
+/* FUNCTION:slowpow                                                      */
+/*                                                                       */
+/*FILES NEEDED:mpa.h                                                     */
+/*             mpa.c mpexp.c mplog.c halfulp.c                           */
+/*                                                                       */
+/* Given two IEEE double machine numbers y,x , routine  computes the     */
+/* correctly  rounded (to nearest) value of x^y. Result calculated  by   */
+/* multiplication (in halfulp.c) or if result isn't accurate enough      */
+/* then routine converts x and y into multi-precision doubles     and    */
+/* calls to mpexp routine                                                */
+/*************************************************************************/
+
+#include "mpa.h"
+#include <math_private.h>
+
+#include <stap-probe.h>
+
+#ifndef SECTION
+# define SECTION
+#endif
+
+void __mpexp (mp_no *x, mp_no *y, int p);
+void __mplog (mp_no *x, mp_no *y, int p);
+double ulog (double);
+double __halfulp (double x, double y);
+
+double
+SECTION
+__slowpow (double x, double y, double z)
+{
+  double res, res1;
+  mp_no mpx, mpy, mpz, mpw, mpp, mpr, mpr1;
+  static const mp_no eps = {-3, {1.0, 4.0}};
+  int p;
+
+  /* __HALFULP returns -10 or X^Y.  */
+  res = __halfulp (x, y);
+
+  /* Return if the result was computed by __HALFULP.  */
+  if (res >= 0)
+    return res;
+
+  /* Compute pow as long double.  This is currently only used by powerpc, where
+     one may get 106 bits of accuracy.  */
+#ifdef USE_LONG_DOUBLE_FOR_MP
+  long double ldw, ldz, ldpp;
+  static const long double ldeps = 0x4.0p-96;
+
+  ldz = __ieee754_logl ((long double) x);
+  ldw = (long double) y *ldz;
+  ldpp = __ieee754_expl (ldw);
+  res = (double) (ldpp + ldeps);
+  res1 = (double) (ldpp - ldeps);
+
+  /* Return the result if it is accurate enough.  */
+  if (res == res1)
+    return res;
+#endif
+
+  /* Or else, calculate using multiple precision.  P = 10 implies accuracy of
+     240 bits accuracy, since MP_NO has a radix of 2^24.  */
+  p = 10;
+  __dbl_mp (x, &mpx, p);
+  __dbl_mp (y, &mpy, p);
+  __dbl_mp (z, &mpz, p);
+
+  /* z = x ^ y
+     log (z) = y * log (x)
+     z = exp (y * log (x))  */
+  __mplog (&mpx, &mpz, p);
+  __mul (&mpy, &mpz, &mpw, p);
+  __mpexp (&mpw, &mpp, p);
+
+  /* Add and subtract EPS to ensure that the result remains unchanged, i.e. we
+     have last bit accuracy.  */
+  __add (&mpp, &eps, &mpr, p);
+  __mp_dbl (&mpr, &res, p);
+  __sub (&mpp, &eps, &mpr1, p);
+  __mp_dbl (&mpr1, &res1, p);
+  if (res == res1)
+    {
+      /* Track how often we get to the slow pow code plus
+	 its input/output values.  */
+      LIBC_PROBE (slowpow_p10, 4, &x, &y, &z, &res);
+      return res;
+    }
+
+  /* If we don't, then we repeat using a higher precision.  768 bits of
+     precision ought to be enough for anybody.  */
+  p = 32;
+  __dbl_mp (x, &mpx, p);
+  __dbl_mp (y, &mpy, p);
+  __dbl_mp (z, &mpz, p);
+  __mplog (&mpx, &mpz, p);
+  __mul (&mpy, &mpz, &mpw, p);
+  __mpexp (&mpw, &mpp, p);
+  __mp_dbl (&mpp, &res, p);
+
+  /* Track how often we get to the uber-slow pow code plus
+     its input/output values.  */
+  LIBC_PROBE (slowpow_p32, 4, &x, &y, &z, &res);
+
+  return res;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/t_exp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/t_exp.c
new file mode 100644
index 0000000000..58866e7794
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/t_exp.c
@@ -0,0 +1,435 @@
+/* Accurate tables for exp().
+   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Geoffrey Keating <geoffk@ozemail.com.au>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This table has the property that, for all integers -177 <= i <= 177,
+   exp(i/512.0 + __exp_deltatable[abs(i)]) == __exp_atable[i+177] + r
+   for some -2^-64 < r < 2^-64 (abs(r) < 2^-65 if i <= 0); and that
+   __exp_deltatable[abs(i)] == t * 2^-60
+   for integer t so that abs(t) <= 8847927 * 2^8.  */
+
+#define W52 (2.22044605e-16)
+#define W55 (2.77555756e-17)
+#define W58 (3.46944695e-18)
+#define W59 (1.73472348e-18)
+#define W60 (8.67361738e-19)
+const float __exp_deltatable[178] = {
+         0*W60,  16558714*W60, -10672149*W59,   1441652*W60,
+ -15787963*W55,    462888*W60,   7291806*W60,   1698880*W60,
+ -14375103*W58,  -2021016*W60,    728829*W60,  -3759654*W60,
+   3202123*W60, -10916019*W58,   -251570*W60,  -1043086*W60,
+   8207536*W60,   -409964*W60,  -5993931*W60,   -475500*W60,
+   2237522*W60,    324170*W60,   -244117*W60,     32077*W60,
+    123907*W60,  -1019734*W60,      -143*W60,    813077*W60,
+    743345*W60,    462461*W60,    629794*W60,   2125066*W60,
+  -2339121*W60,   -337951*W60,   9922067*W60,   -648704*W60,
+    149407*W60,  -2687209*W60,   -631608*W60,   2128280*W60,
+  -4882082*W60,   2001360*W60,    175074*W60,   2923216*W60,
+   -538947*W60,  -1212193*W60,  -1920926*W60,  -1080577*W60,
+   3690196*W60,   2643367*W60,   2911937*W60,    671455*W60,
+  -1128674*W60,    593282*W60,  -5219347*W60,  -1941490*W60,
+  11007953*W60,    239609*W60,  -2969658*W60,  -1183650*W60,
+    942998*W60,    699063*W60,    450569*W60,   -329250*W60,
+  -7257875*W60,   -312436*W60,     51626*W60,    555877*W60,
+   -641761*W60,   1565666*W60,    884327*W60, -10960035*W60,
+  -2004679*W60,   -995793*W60,  -2229051*W60,   -146179*W60,
+   -510327*W60,   1453482*W60,  -3778852*W60,  -2238056*W60,
+  -4895983*W60,   3398883*W60,   -252738*W60,   1230155*W60,
+    346918*W60,   1109352*W60,    268941*W60,  -2930483*W60,
+  -1036263*W60,  -1159280*W60,   1328176*W60,   2937642*W60,
+  -9371420*W60,  -6902650*W60,  -1419134*W60,   1442904*W60,
+  -1319056*W60,    -16369*W60,    696555*W60,   -279987*W60,
+  -7919763*W60,    252741*W60,    459711*W60,  -1709645*W60,
+    354913*W60,   6025867*W60,   -421460*W60,   -853103*W60,
+   -338649*W60,    962151*W60,    955965*W60,    784419*W60,
+  -3633653*W60,   2277133*W60,  -8847927*W52,   1223028*W60,
+   5907079*W60,    623167*W60,   5142888*W60,   2599099*W60,
+   1214280*W60,   4870359*W60,    593349*W60,    -57705*W60,
+   7761209*W60,  -5564097*W60,   2051261*W60,   6216869*W60,
+   4692163*W60,    601691*W60,  -5264906*W60,   1077872*W60,
+  -3205949*W60,   1833082*W60,   2081746*W60,   -987363*W60,
+  -1049535*W60,   2015244*W60,    874230*W60,   2168259*W60,
+  -1740124*W60, -10068269*W60,    -18242*W60,  -3013583*W60,
+    580601*W60,  -2547161*W60,   -535689*W60,   2220815*W60,
+   1285067*W60,   2806933*W60,   -983086*W60,  -1729097*W60,
+  -1162985*W60,  -2561904*W60,    801988*W60,    244351*W60,
+   1441893*W60,  -7517981*W60,    271781*W60, -15021588*W60,
+  -2341588*W60,   -919198*W60,   1642232*W60,   4771771*W60,
+  -1220099*W60,  -3062372*W60,    628624*W60,   1278114*W60,
+  13083513*W60, -10521925*W60,   3180310*W60,  -1659307*W60,
+   3543773*W60,   2501203*W60,      4151*W60,   -340748*W60,
+  -2285625*W60,   2495202*W60
+};
+
+const double __exp_atable[355] /* __attribute__((mode(DF))) */ = {
+ 0.707722561055888932371, /* 0x0.b52d4e46605c27ffd */
+ 0.709106182438804188967, /* 0x0.b587fb96f75097ffb */
+ 0.710492508843861281234, /* 0x0.b5e2d649899167ffd */
+ 0.711881545564593931623, /* 0x0.b63dde74d36bdfffe */
+ 0.713273297897442870573, /* 0x0.b699142f945f87ffc */
+ 0.714667771153751463236, /* 0x0.b6f477909c4ea0001 */
+ 0.716064970655995725059, /* 0x0.b75008aec758f8004 */
+ 0.717464901723956938193, /* 0x0.b7abc7a0eea7e0002 */
+ 0.718867569715736398602, /* 0x0.b807b47e1586c7ff8 */
+ 0.720272979947266023271, /* 0x0.b863cf5d10e380003 */
+ 0.721681137825144314297, /* 0x0.b8c01855195c37ffb */
+ 0.723092048691992950199, /* 0x0.b91c8f7d213740004 */
+ 0.724505717938892290800, /* 0x0.b97934ec5002d0007 */
+ 0.725922150953176470431, /* 0x0.b9d608b9c92ea7ffc */
+ 0.727341353138962865022, /* 0x0.ba330afcc29e98003 */
+ 0.728763329918453162104, /* 0x0.ba903bcc8618b7ffc */
+ 0.730188086709957051568, /* 0x0.baed9b40591ba0000 */
+ 0.731615628948127705309, /* 0x0.bb4b296f931e30002 */
+ 0.733045962086486091436, /* 0x0.bba8e671a05617ff9 */
+ 0.734479091556371366251, /* 0x0.bc06d25dd49568001 */
+ 0.735915022857225542529, /* 0x0.bc64ed4bce8f6fff9 */
+ 0.737353761441304711410, /* 0x0.bcc33752f915d7ff9 */
+ 0.738795312814142124419, /* 0x0.bd21b08af98e78005 */
+ 0.740239682467211168593, /* 0x0.bd80590b65e9a8000 */
+ 0.741686875913991849885, /* 0x0.bddf30ebec4a10000 */
+ 0.743136898669507939299, /* 0x0.be3e38443c84e0007 */
+ 0.744589756269486091620, /* 0x0.be9d6f2c1d32a0002 */
+ 0.746045454254026796384, /* 0x0.befcd5bb59baf8004 */
+ 0.747503998175051087583, /* 0x0.bf5c6c09ca84c0003 */
+ 0.748965393601880857739, /* 0x0.bfbc322f5b18b7ff8 */
+ 0.750429646104262104698, /* 0x0.c01c2843f776fffff */
+ 0.751896761271877989160, /* 0x0.c07c4e5fa18b88002 */
+ 0.753366744698445112140, /* 0x0.c0dca49a5fb18fffd */
+ 0.754839601988627206827, /* 0x0.c13d2b0c444db0005 */
+ 0.756315338768691947122, /* 0x0.c19de1cd798578006 */
+ 0.757793960659406629066, /* 0x0.c1fec8f623723fffd */
+ 0.759275473314173443536, /* 0x0.c25fe09e8a0f47ff8 */
+ 0.760759882363831851927, /* 0x0.c2c128dedc88f8000 */
+ 0.762247193485956486805, /* 0x0.c322a1cf7d6e7fffa */
+ 0.763737412354726363781, /* 0x0.c3844b88cb9347ffc */
+ 0.765230544649828092739, /* 0x0.c3e626232bd8f7ffc */
+ 0.766726596071518051729, /* 0x0.c44831b719bf18002 */
+ 0.768225572321911687194, /* 0x0.c4aa6e5d12d078001 */
+ 0.769727479119219348810, /* 0x0.c50cdc2da64a37ffb */
+ 0.771232322196981678892, /* 0x0.c56f7b41744490001 */
+ 0.772740107296721268087, /* 0x0.c5d24bb1259e70004 */
+ 0.774250840160724651565, /* 0x0.c6354d95640dd0007 */
+ 0.775764526565368872643, /* 0x0.c6988106fec447fff */
+ 0.777281172269557396602, /* 0x0.c6fbe61eb1bd0ffff */
+ 0.778800783068235302750, /* 0x0.c75f7cf560942fffc */
+ 0.780323364758801041312, /* 0x0.c7c345a3f1983fffe */
+ 0.781848923151573727006, /* 0x0.c8274043594cb0002 */
+ 0.783377464064598849602, /* 0x0.c88b6cec94b3b7ff9 */
+ 0.784908993312207869935, /* 0x0.c8efcbb89cba27ffe */
+ 0.786443516765346961618, /* 0x0.c9545cc0a88c70003 */
+ 0.787981040257604625744, /* 0x0.c9b9201dc643bfffa */
+ 0.789521569657452682047, /* 0x0.ca1e15e92a5410007 */
+ 0.791065110849462849192, /* 0x0.ca833e3c1ae510005 */
+ 0.792611669712891875319, /* 0x0.cae8992fd84667ffd */
+ 0.794161252150049179450, /* 0x0.cb4e26ddbc207fff8 */
+ 0.795713864077794763584, /* 0x0.cbb3e75f301b60003 */
+ 0.797269511407239561694, /* 0x0.cc19dacd978cd8002 */
+ 0.798828200086368567220, /* 0x0.cc8001427e55d7ffb */
+ 0.800389937624300440456, /* 0x0.cce65ade24d360006 */
+ 0.801954725261124767840, /* 0x0.cd4ce7a5de839fffb */
+ 0.803522573691593189330, /* 0x0.cdb3a7c79a678fffd */
+ 0.805093487311204114563, /* 0x0.ce1a9b563965ffffc */
+ 0.806667472122675088819, /* 0x0.ce81c26b838db8000 */
+ 0.808244534127439906441, /* 0x0.cee91d213f8428002 */
+ 0.809824679342317166307, /* 0x0.cf50ab9144d92fff9 */
+ 0.811407913793616542005, /* 0x0.cfb86dd5758c2ffff */
+ 0.812994243520784198882, /* 0x0.d0206407c20e20005 */
+ 0.814583674571603966162, /* 0x0.d0888e4223facfff9 */
+ 0.816176213022088536960, /* 0x0.d0f0ec9eb3f7c8002 */
+ 0.817771864936188586101, /* 0x0.d1597f377d6768002 */
+ 0.819370636400374108252, /* 0x0.d1c24626a46eafff8 */
+ 0.820972533518165570298, /* 0x0.d22b41865ff1e7ff9 */
+ 0.822577562404315121269, /* 0x0.d2947170f32ec7ff9 */
+ 0.824185729164559344159, /* 0x0.d2fdd60097795fff8 */
+ 0.825797039949601741075, /* 0x0.d3676f4fb796d0001 */
+ 0.827411500902565544264, /* 0x0.d3d13d78b5f68fffb */
+ 0.829029118181348834154, /* 0x0.d43b40960546d8001 */
+ 0.830649897953322891022, /* 0x0.d4a578c222a058000 */
+ 0.832273846408250750368, /* 0x0.d50fe617a3ba78005 */
+ 0.833900969738858188772, /* 0x0.d57a88b1218e90002 */
+ 0.835531274148056613016, /* 0x0.d5e560a94048f8006 */
+ 0.837164765846411529371, /* 0x0.d6506e1aac8078003 */
+ 0.838801451086016225394, /* 0x0.d6bbb1204074e0001 */
+ 0.840441336100884561780, /* 0x0.d72729d4c28518004 */
+ 0.842084427144139224814, /* 0x0.d792d8530e12b0001 */
+ 0.843730730487052604790, /* 0x0.d7febcb61273e7fff */
+ 0.845380252404570153833, /* 0x0.d86ad718c308dfff9 */
+ 0.847032999194574087728, /* 0x0.d8d727962c69d7fff */
+ 0.848688977161248581090, /* 0x0.d943ae49621ce7ffb */
+ 0.850348192619261200615, /* 0x0.d9b06b4d832ef8005 */
+ 0.852010651900976245816, /* 0x0.da1d5ebdc22220005 */
+ 0.853676361342631029337, /* 0x0.da8a88b555baa0006 */
+ 0.855345327311054837175, /* 0x0.daf7e94f965f98004 */
+ 0.857017556155879489641, /* 0x0.db6580a7c98f7fff8 */
+ 0.858693054267390953857, /* 0x0.dbd34ed9617befff8 */
+ 0.860371828028939855647, /* 0x0.dc4153ffc8b65fff9 */
+ 0.862053883854957292436, /* 0x0.dcaf90368bfca8004 */
+ 0.863739228154875360306, /* 0x0.dd1e0399328d87ffe */
+ 0.865427867361348468455, /* 0x0.dd8cae435d303fff9 */
+ 0.867119807911702289458, /* 0x0.ddfb9050b1cee8006 */
+ 0.868815056264353846599, /* 0x0.de6aa9dced8448001 */
+ 0.870513618890481399881, /* 0x0.ded9fb03db7320006 */
+ 0.872215502247877139094, /* 0x0.df4983e1380657ff8 */
+ 0.873920712852848668986, /* 0x0.dfb94490ffff77ffd */
+ 0.875629257204025623884, /* 0x0.e0293d2f1cb01fff9 */
+ 0.877341141814212965880, /* 0x0.e0996dd786fff0007 */
+ 0.879056373217612985183, /* 0x0.e109d6a64f5d57ffc */
+ 0.880774957955916648615, /* 0x0.e17a77b78e72a7ffe */
+ 0.882496902590150900078, /* 0x0.e1eb5127722cc7ff8 */
+ 0.884222213673356738383, /* 0x0.e25c63121fb0c8006 */
+ 0.885950897802399772740, /* 0x0.e2cdad93ec5340003 */
+ 0.887682961567391237685, /* 0x0.e33f30c925fb97ffb */
+ 0.889418411575228162725, /* 0x0.e3b0ecce2d05ffff9 */
+ 0.891157254447957902797, /* 0x0.e422e1bf727718006 */
+ 0.892899496816652704641, /* 0x0.e4950fb9713fc7ffe */
+ 0.894645145323828439008, /* 0x0.e50776d8b0e60fff8 */
+ 0.896394206626591749641, /* 0x0.e57a1739c8fadfffc */
+ 0.898146687421414902124, /* 0x0.e5ecf0f97c5798007 */
+ 0.899902594367530173098, /* 0x0.e660043464e378005 */
+ 0.901661934163603406867, /* 0x0.e6d3510747e150006 */
+ 0.903424713533971135418, /* 0x0.e746d78f06cd97ffd */
+ 0.905190939194458810123, /* 0x0.e7ba97e879c91fffc */
+ 0.906960617885092856864, /* 0x0.e82e92309390b0007 */
+ 0.908733756358986566306, /* 0x0.e8a2c6845544afffa */
+ 0.910510361377119825629, /* 0x0.e9173500c8abc7ff8 */
+ 0.912290439722343249336, /* 0x0.e98bddc30f98b0002 */
+ 0.914073998177417412765, /* 0x0.ea00c0e84bc4c7fff */
+ 0.915861043547953501680, /* 0x0.ea75de8db8094fffe */
+ 0.917651582652244779397, /* 0x0.eaeb36d09d3137ffe */
+ 0.919445622318405764159, /* 0x0.eb60c9ce4ed3dffff */
+ 0.921243169397334638073, /* 0x0.ebd697a43995b0007 */
+ 0.923044230737526172328, /* 0x0.ec4ca06fc7768fffa */
+ 0.924848813220121135342, /* 0x0.ecc2e44e865b6fffb */
+ 0.926656923710931002014, /* 0x0.ed39635df34e70006 */
+ 0.928468569126343790092, /* 0x0.edb01dbbc2f5b7ffa */
+ 0.930283756368834757725, /* 0x0.ee2713859aab57ffa */
+ 0.932102492359406786818, /* 0x0.ee9e44d9342870004 */
+ 0.933924784042873379360, /* 0x0.ef15b1d4635438005 */
+ 0.935750638358567643520, /* 0x0.ef8d5a94f60f50007 */
+ 0.937580062297704630580, /* 0x0.f0053f38f345cffff */
+ 0.939413062815381727516, /* 0x0.f07d5fde3a2d98001 */
+ 0.941249646905368053689, /* 0x0.f0f5bca2d481a8004 */
+ 0.943089821583810716806, /* 0x0.f16e55a4e497d7ffe */
+ 0.944933593864477061592, /* 0x0.f1e72b028a2827ffb */
+ 0.946780970781518460559, /* 0x0.f2603cd9fb5430001 */
+ 0.948631959382661205081, /* 0x0.f2d98b497d2a87ff9 */
+ 0.950486566729423554277, /* 0x0.f353166f63e3dffff */
+ 0.952344799896018723290, /* 0x0.f3ccde6a11ae37ffe */
+ 0.954206665969085765512, /* 0x0.f446e357f66120000 */
+ 0.956072172053890279009, /* 0x0.f4c12557964f0fff9 */
+ 0.957941325265908139014, /* 0x0.f53ba48781046fffb */
+ 0.959814132734539637840, /* 0x0.f5b66106555d07ffa */
+ 0.961690601603558903308, /* 0x0.f6315af2c2027fffc */
+ 0.963570739036113010927, /* 0x0.f6ac926b8aeb80004 */
+ 0.965454552202857141381, /* 0x0.f728078f7c5008002 */
+ 0.967342048278315158608, /* 0x0.f7a3ba7d66a908001 */
+ 0.969233234469444204768, /* 0x0.f81fab543e1897ffb */
+ 0.971128118008140250896, /* 0x0.f89bda33122c78007 */
+ 0.973026706099345495256, /* 0x0.f9184738d4cf97ff8 */
+ 0.974929006031422851235, /* 0x0.f994f284d3a5c0008 */
+ 0.976835024947348973265, /* 0x0.fa11dc35bc7820002 */
+ 0.978744770239899142285, /* 0x0.fa8f046b4fb7f8007 */
+ 0.980658249138918636210, /* 0x0.fb0c6b449ab1cfff9 */
+ 0.982575468959622777535, /* 0x0.fb8a10e1088fb7ffa */
+ 0.984496437054508843888, /* 0x0.fc07f5602d79afffc */
+ 0.986421160608523028820, /* 0x0.fc8618e0e55e47ffb */
+ 0.988349647107594098099, /* 0x0.fd047b83571b1fffa */
+ 0.990281903873210800357, /* 0x0.fd831d66f4c018002 */
+ 0.992217938695037382475, /* 0x0.fe01fead3320bfff8 */
+ 0.994157757657894713987, /* 0x0.fe811f703491e8006 */
+ 0.996101369488558541238, /* 0x0.ff007fd5744490005 */
+ 0.998048781093141101932, /* 0x0.ff801ffa9b9280007 */
+ 1.000000000000000000000, /* 0x1.00000000000000000 */
+ 1.001955033605393285965, /* 0x1.0080200565d29ffff */
+ 1.003913889319761887310, /* 0x1.0100802aa0e80fff0 */
+ 1.005876574715736104818, /* 0x1.01812090377240007 */
+ 1.007843096764807100351, /* 0x1.020201541aad7fff6 */
+ 1.009813464316352327214, /* 0x1.0283229c4c9820007 */
+ 1.011787683565730677817, /* 0x1.030484836910a000e */
+ 1.013765762469146736174, /* 0x1.0386272b9c077fffe */
+ 1.015747708536026694351, /* 0x1.04080ab526304fff0 */
+ 1.017733529475172815584, /* 0x1.048a2f412375ffff0 */
+ 1.019723232714418781378, /* 0x1.050c94ef7ad5e000a */
+ 1.021716825883923762690, /* 0x1.058f3be0f1c2d0004 */
+ 1.023714316605201180057, /* 0x1.06122436442e2000e */
+ 1.025715712440059545995, /* 0x1.06954e0fec63afff2 */
+ 1.027721021151397406936, /* 0x1.0718b98f41c92fff6 */
+ 1.029730250269221158939, /* 0x1.079c66d49bb2ffff1 */
+ 1.031743407506447551857, /* 0x1.082056011a9230009 */
+ 1.033760500517691527387, /* 0x1.08a487359ebd50002 */
+ 1.035781537016238873464, /* 0x1.0928fa93490d4fff3 */
+ 1.037806524719013578963, /* 0x1.09adb03b3e5b3000d */
+ 1.039835471338248051878, /* 0x1.0a32a84e9e5760004 */
+ 1.041868384612101516848, /* 0x1.0ab7e2eea5340ffff */
+ 1.043905272300907460835, /* 0x1.0b3d603ca784f0009 */
+ 1.045946142174331239262, /* 0x1.0bc3205a042060000 */
+ 1.047991002016745332165, /* 0x1.0c4923682a086fffe */
+ 1.050039859627715177527, /* 0x1.0ccf698898f3a000d */
+ 1.052092722826109660856, /* 0x1.0d55f2dce5d1dfffb */
+ 1.054149599440827866881, /* 0x1.0ddcbf86b09a5fff6 */
+ 1.056210497317612961855, /* 0x1.0e63cfa7abc97fffd */
+ 1.058275424318780855142, /* 0x1.0eeb23619c146fffb */
+ 1.060344388322010722446, /* 0x1.0f72bad65714bffff */
+ 1.062417397220589476718, /* 0x1.0ffa9627c38d30004 */
+ 1.064494458915699715017, /* 0x1.1082b577d0eef0003 */
+ 1.066575581342167566880, /* 0x1.110b18e893a90000a */
+ 1.068660772440545025953, /* 0x1.1193c09c267610006 */
+ 1.070750040138235936705, /* 0x1.121cacb4959befff6 */
+ 1.072843392435016474095, /* 0x1.12a5dd543cf36ffff */
+ 1.074940837302467588937, /* 0x1.132f529d59552000b */
+ 1.077042382749654914030, /* 0x1.13b90cb250d08fff5 */
+ 1.079148036789447484528, /* 0x1.14430bb58da3dfff9 */
+ 1.081257807444460983297, /* 0x1.14cd4fc984c4a000e */
+ 1.083371702785017154417, /* 0x1.1557d910df9c7000e */
+ 1.085489730853784307038, /* 0x1.15e2a7ae292d30002 */
+ 1.087611899742884524772, /* 0x1.166dbbc422d8c0004 */
+ 1.089738217537583819804, /* 0x1.16f9157586772ffff */
+ 1.091868692357631731528, /* 0x1.1784b4e533cacfff0 */
+ 1.094003332327482702577, /* 0x1.18109a360fc23fff2 */
+ 1.096142145591650907149, /* 0x1.189cc58b155a70008 */
+ 1.098285140311341168136, /* 0x1.1929370751ea50002 */
+ 1.100432324652149906842, /* 0x1.19b5eecdd79cefff0 */
+ 1.102583706811727015711, /* 0x1.1a42ed01dbdba000e */
+ 1.104739294993289488947, /* 0x1.1ad031c69a2eafff0 */
+ 1.106899097422573863281, /* 0x1.1b5dbd3f66e120003 */
+ 1.109063122341542140286, /* 0x1.1beb8f8fa8150000b */
+ 1.111231377994659874592, /* 0x1.1c79a8dac6ad0fff4 */
+ 1.113403872669181282605, /* 0x1.1d0809445a97ffffc */
+ 1.115580614653132185460, /* 0x1.1d96b0effc9db000e */
+ 1.117761612217810673898, /* 0x1.1e25a001332190000 */
+ 1.119946873713312474002, /* 0x1.1eb4d69bdb2a9fff1 */
+ 1.122136407473298902480, /* 0x1.1f4454e3bfae00006 */
+ 1.124330221845670330058, /* 0x1.1fd41afcbb48bfff8 */
+ 1.126528325196519908506, /* 0x1.2064290abc98c0001 */
+ 1.128730725913251964394, /* 0x1.20f47f31c9aa7000f */
+ 1.130937432396844410880, /* 0x1.21851d95f776dfff0 */
+ 1.133148453059692917203, /* 0x1.2216045b6784efffa */
+ 1.135363796355857157764, /* 0x1.22a733a6692ae0004 */
+ 1.137583470716100553249, /* 0x1.2338ab9b3221a0004 */
+ 1.139807484614418608939, /* 0x1.23ca6c5e27aadfff7 */
+ 1.142035846532929888057, /* 0x1.245c7613b7f6c0004 */
+ 1.144268564977221958089, /* 0x1.24eec8e06b035000c */
+ 1.146505648458203463465, /* 0x1.258164e8cea85fff8 */
+ 1.148747105501412235671, /* 0x1.26144a5180d380009 */
+ 1.150992944689175123667, /* 0x1.26a7793f5de2efffa */
+ 1.153243174560058870217, /* 0x1.273af1d712179000d */
+ 1.155497803703682491111, /* 0x1.27ceb43d81d42fff1 */
+ 1.157756840726344771440, /* 0x1.2862c097a3d29000c */
+ 1.160020294239811677834, /* 0x1.28f7170a74cf4fff1 */
+ 1.162288172883275239058, /* 0x1.298bb7bb0faed0004 */
+ 1.164560485298402170388, /* 0x1.2a20a2ce920dffff4 */
+ 1.166837240167474476460, /* 0x1.2ab5d86a4631ffff6 */
+ 1.169118446164539637555, /* 0x1.2b4b58b36d5220009 */
+ 1.171404112007080167155, /* 0x1.2be123cf786790002 */
+ 1.173694246390975415341, /* 0x1.2c7739e3c0aac000d */
+ 1.175988858069749065617, /* 0x1.2d0d9b15deb58fff6 */
+ 1.178287955789017793514, /* 0x1.2da4478b627040002 */
+ 1.180591548323240091978, /* 0x1.2e3b3f69fb794fffc */
+ 1.182899644456603782686, /* 0x1.2ed282d76421d0004 */
+ 1.185212252993012693694, /* 0x1.2f6a11f96c685fff3 */
+ 1.187529382762033236513, /* 0x1.3001ecf60082ffffa */
+ 1.189851042595508889847, /* 0x1.309a13f30f28a0004 */
+ 1.192177241354644978669, /* 0x1.31328716a758cfff7 */
+ 1.194507987909589896687, /* 0x1.31cb4686e1e85fffb */
+ 1.196843291137896336843, /* 0x1.32645269dfd04000a */
+ 1.199183159977805113226, /* 0x1.32fdaae604c39000f */
+ 1.201527603343041317132, /* 0x1.339750219980dfff3 */
+ 1.203876630171082595692, /* 0x1.3431424300e480007 */
+ 1.206230249419600664189, /* 0x1.34cb8170b3fee000e */
+ 1.208588470077065268869, /* 0x1.35660dd14dbd4fffc */
+ 1.210951301134513435915, /* 0x1.3600e78b6bdfc0005 */
+ 1.213318751604272271958, /* 0x1.369c0ec5c38ebfff2 */
+ 1.215690830512196507537, /* 0x1.373783a718d29000f */
+ 1.218067546930756250870, /* 0x1.37d3465662f480007 */
+ 1.220448909901335365929, /* 0x1.386f56fa770fe0008 */
+ 1.222834928513994334780, /* 0x1.390bb5ba5fc540004 */
+ 1.225225611877684750397, /* 0x1.39a862bd3c7a8fff3 */
+ 1.227620969111500981433, /* 0x1.3a455e2a37bcafffd */
+ 1.230021009336254911271, /* 0x1.3ae2a8287dfbefff6 */
+ 1.232425741726685064472, /* 0x1.3b8040df76f39fffa */
+ 1.234835175450728295084, /* 0x1.3c1e287682e48fff1 */
+ 1.237249319699482263931, /* 0x1.3cbc5f151b86bfff8 */
+ 1.239668183679933477545, /* 0x1.3d5ae4e2cc0a8000f */
+ 1.242091776620540377629, /* 0x1.3df9ba07373bf0006 */
+ 1.244520107762172811399, /* 0x1.3e98deaa0d8cafffe */
+ 1.246953186383919165383, /* 0x1.3f3852f32973efff0 */
+ 1.249391019292643401078, /* 0x1.3fd816ffc72b90001 */
+ 1.251833623164381181797, /* 0x1.40782b17863250005 */
+ 1.254280999953110153911, /* 0x1.41188f42caf400000 */
+ 1.256733161434815393410, /* 0x1.41b943b42945bfffd */
+ 1.259190116985283935980, /* 0x1.425a4893e5f10000a */
+ 1.261651875958665236542, /* 0x1.42fb9e0a2df4c0009 */
+ 1.264118447754797758244, /* 0x1.439d443f608c4fff9 */
+ 1.266589841787181258708, /* 0x1.443f3b5bebf850008 */
+ 1.269066067469190262045, /* 0x1.44e183883e561fff7 */
+ 1.271547134259576328224, /* 0x1.45841cecf7a7a0001 */
+ 1.274033051628237434048, /* 0x1.462707b2c43020009 */
+ 1.276523829025464573684, /* 0x1.46ca44023aa410007 */
+ 1.279019475999373156531, /* 0x1.476dd2045d46ffff0 */
+ 1.281520002043128991825, /* 0x1.4811b1e1f1f19000b */
+ 1.284025416692967214122, /* 0x1.48b5e3c3edd74fff4 */
+ 1.286535729509738823464, /* 0x1.495a67d3613c8fff7 */
+ 1.289050950070396384145, /* 0x1.49ff3e396e19d000b */
+ 1.291571087985403654081, /* 0x1.4aa4671f5b401fff1 */
+ 1.294096152842774794011, /* 0x1.4b49e2ae56d19000d */
+ 1.296626154297237043484, /* 0x1.4befb10fd84a3fff4 */
+ 1.299161101984141142272, /* 0x1.4c95d26d41d84fff8 */
+ 1.301701005575179204100, /* 0x1.4d3c46f01d9f0fff3 */
+ 1.304245874766450485904, /* 0x1.4de30ec21097d0003 */
+ 1.306795719266019562007, /* 0x1.4e8a2a0ccce3d0002 */
+ 1.309350548792467483458, /* 0x1.4f3198fa10346fff5 */
+ 1.311910373099227200545, /* 0x1.4fd95bb3be8cffffd */
+ 1.314475201942565174546, /* 0x1.50817263bf0e5fffb */
+ 1.317045045107389400535, /* 0x1.5129dd3418575000e */
+ 1.319619912422941299109, /* 0x1.51d29c4f01c54ffff */
+ 1.322199813675649204855, /* 0x1.527bafde83a310009 */
+ 1.324784758729532718739, /* 0x1.5325180cfb8b3fffd */
+ 1.327374757430096474625, /* 0x1.53ced504b2bd0fff4 */
+ 1.329969819671041886272, /* 0x1.5478e6f02775e0001 */
+ 1.332569955346704748651, /* 0x1.55234df9d8a59fff8 */
+ 1.335175174370685002822, /* 0x1.55ce0a4c5a6a9fff6 */
+ 1.337785486688218616860, /* 0x1.56791c1263abefff7 */
+ 1.340400902247843806217, /* 0x1.57248376aef21fffa */
+ 1.343021431036279800211, /* 0x1.57d040a420c0bfff3 */
+ 1.345647083048053138662, /* 0x1.587c53c5a630f0002 */
+ 1.348277868295411074918, /* 0x1.5928bd063fd7bfff9 */
+ 1.350913796821875845231, /* 0x1.59d57c9110ad60006 */
+ 1.353554878672557082439, /* 0x1.5a8292913d68cfffc */
+ 1.356201123929036356254, /* 0x1.5b2fff3212db00007 */
+ 1.358852542671913132777, /* 0x1.5bddc29edcc06fff3 */
+ 1.361509145047255398051, /* 0x1.5c8bdd032ed16000f */
+ 1.364170941142184734180, /* 0x1.5d3a4e8a5bf61fff4 */
+ 1.366837941171020309735, /* 0x1.5de9176042f1effff */
+ 1.369510155261156381121, /* 0x1.5e9837b062f4e0005 */
+ 1.372187593620959988833, /* 0x1.5f47afa69436cfff1 */
+ 1.374870266463378287715, /* 0x1.5ff77f6eb3f8cfffd */
+ 1.377558184010425845733, /* 0x1.60a7a734a9742fff9 */
+ 1.380251356531521533853, /* 0x1.6158272490016000c */
+ 1.382949794301995272203, /* 0x1.6208ff6a8978a000f */
+ 1.385653507605306700170, /* 0x1.62ba3032c0a280004 */
+ 1.388362506772382154503, /* 0x1.636bb9a994784000f */
+ 1.391076802081129493127, /* 0x1.641d9bfb29a7bfff6 */
+ 1.393796403973427855412, /* 0x1.64cfd7545928b0002 */
+ 1.396521322756352656542, /* 0x1.65826be167badfff8 */
+ 1.399251568859207761660, /* 0x1.663559cf20826000c */
+ 1.401987152677323100733, /* 0x1.66e8a14a29486fffc */
+ 1.404728084651919228815, /* 0x1.679c427f5a4b6000b */
+ 1.407474375243217723560, /* 0x1.68503d9ba0add000f */
+ 1.410226034922914983815, /* 0x1.690492cbf6303fff9 */
+ 1.412983074197955213304, /* 0x1.69b9423d7b548fff6 */
+};
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/t_exp2.h b/REORG.TODO/sysdeps/ieee754/dbl-64/t_exp2.h
new file mode 100644
index 0000000000..1fd73338cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/t_exp2.h
@@ -0,0 +1,585 @@
+/* These values are accurate to 52+12 bits when represented as
+   a double.  */
+static const double exp2_accuratetable[512] = {
+0.707106781187802013759 /* 0x0.b504f333fb3f80007 */,
+0.708064712808760599040 /* 0x0.b543baa0f71b38000 */,
+0.709023942160304065938 /* 0x0.b58297d3a8d518002 */,
+0.709984470998547667624 /* 0x0.b5c18ad39b4ba0001 */,
+0.710946301084324217006 /* 0x0.b60093a85e8d30001 */,
+0.711909434180505784637 /* 0x0.b63fb25984e628005 */,
+0.712873872052760648733 /* 0x0.b67ee6eea3b5f8003 */,
+0.713839616467838999908 /* 0x0.b6be316f518c98001 */,
+0.714806669195984345523 /* 0x0.b6fd91e328d148007 */,
+0.715775032009894562898 /* 0x0.b73d0851c69e20002 */,
+0.716744706683768884058 /* 0x0.b77c94c2c9b3d0003 */,
+0.717715694995770148178 /* 0x0.b7bc373dd52eb0003 */,
+0.718687998724665488852 /* 0x0.b7fbefca8cd530004 */,
+0.719661619652575468291 /* 0x0.b83bbe70981da8001 */,
+0.720636559564428180758 /* 0x0.b87ba337a194b0006 */,
+0.721612820246623098989 /* 0x0.b8bb9e27556508004 */,
+0.722590403488338473025 /* 0x0.b8fbaf4762c798006 */,
+0.723569311081411870036 /* 0x0.b93bd69f7be1d0000 */,
+0.724549544820974333906 /* 0x0.b97c1437567828007 */,
+0.725531106502312561633 /* 0x0.b9bc6816a87ae8002 */,
+0.726513997924421062181 /* 0x0.b9fcd2452bee00000 */,
+0.727498220889519875430 /* 0x0.ba3d52ca9e6148002 */,
+0.728483777200401694265 /* 0x0.ba7de9aebe05c8003 */,
+0.729470668664712662563 /* 0x0.babe96f94e62a8002 */,
+0.730458897090379144517 /* 0x0.baff5ab2134df0004 */,
+0.731448464287988597833 /* 0x0.bb4034e0d38ab0000 */,
+0.732439372072965166897 /* 0x0.bb81258d5b2d60001 */,
+0.733431622260458326859 /* 0x0.bbc22cbf75fd28001 */,
+0.734425216668725511232 /* 0x0.bc034a7ef32c00001 */,
+0.735420157118880535324 /* 0x0.bc447ed3a50fe0005 */,
+0.736416445434497690674 /* 0x0.bc85c9c560b350001 */,
+0.737414083433310718618 /* 0x0.bcc72b5bf4b4e0000 */,
+0.738413072966152328496 /* 0x0.bd08a39f5417a8007 */,
+0.739413415848264365956 /* 0x0.bd4a32974abcd0002 */,
+0.740415113911250699637 /* 0x0.bd8bd84bb68300002 */,
+0.741418168994518067562 /* 0x0.bdcd94c47ddd30003 */,
+0.742422582936659858376 /* 0x0.be0f6809865968006 */,
+0.743428357577745613238 /* 0x0.be515222b72530003 */,
+0.744435494762383687126 /* 0x0.be935317fc6ba0002 */,
+0.745443996335090397492 /* 0x0.bed56af1423de8001 */,
+0.746453864145572798553 /* 0x0.bf1799b67a6248007 */,
+0.747465100043933849969 /* 0x0.bf59df6f970e70002 */,
+0.748477705883256683178 /* 0x0.bf9c3c248dbee8001 */,
+0.749491683518965001732 /* 0x0.bfdeafdd568308000 */,
+0.750507034813367890373 /* 0x0.c0213aa1f0fc38004 */,
+0.751523761622240105153 /* 0x0.c063dc7a559ca0003 */,
+0.752541865811731880422 /* 0x0.c0a6956e883ed8000 */,
+0.753561349247157341600 /* 0x0.c0e965868bd220006 */,
+0.754582213796583967110 /* 0x0.c12c4cca664cb8002 */,
+0.755604461332336940791 /* 0x0.c16f4b42225350006 */,
+0.756628093726406381068 /* 0x0.c1b260f5ca2c48002 */,
+0.757653112855631305506 /* 0x0.c1f58ded6d72d8001 */,
+0.758679520599333412360 /* 0x0.c238d2311e7d08001 */,
+0.759707318837184453227 /* 0x0.c27c2dc8f00368005 */,
+0.760736509456435783249 /* 0x0.c2bfa0bcfd1400000 */,
+0.761767094336480043995 /* 0x0.c3032b155818d0000 */,
+0.762799075372231349951 /* 0x0.c346ccda248cc0001 */,
+0.763832454453522768941 /* 0x0.c38a8613805488005 */,
+0.764867233473625618441 /* 0x0.c3ce56c98d1ca8005 */,
+0.765903414329434539816 /* 0x0.c4123f04708d80002 */,
+0.766940998920452976510 /* 0x0.c4563ecc532dc0001 */,
+0.767979989148100838946 /* 0x0.c49a56295f9f88006 */,
+0.769020386915772125040 /* 0x0.c4de8523c2b0a0001 */,
+0.770062194131770905170 /* 0x0.c522cbc3ae94e0003 */,
+0.771105412703856241146 /* 0x0.c5672a1154e6b8004 */,
+0.772150044545352520777 /* 0x0.c5aba014ed5f18003 */,
+0.773196091570364285606 /* 0x0.c5f02dd6b09288003 */,
+0.774243555696622731700 /* 0x0.c634d35edb1260003 */,
+0.775292438842697939641 /* 0x0.c67990b5aa5c18004 */,
+0.776342742931542928455 /* 0x0.c6be65e360bed8000 */,
+0.777394469888802008854 /* 0x0.c70352f0437f50004 */,
+0.778447621641124243320 /* 0x0.c74857e498fd00006 */,
+0.779502200118583399303 /* 0x0.c78d74c8ab5b60000 */,
+0.780558207255445668515 /* 0x0.c7d2a9a4c959f8000 */,
+0.781615644985491186966 /* 0x0.c817f681412f80002 */,
+0.782674515247667956808 /* 0x0.c85d5b6666c150006 */,
+0.783734819983036512536 /* 0x0.c8a2d85c904760003 */,
+0.784796561133562109454 /* 0x0.c8e86d6c14f850002 */,
+0.785859740645942328471 /* 0x0.c92e1a9d513ec8002 */,
+0.786924360469767103536 /* 0x0.c973dff8a4b390007 */,
+0.787990422552312885808 /* 0x0.c9b9bd866c6440007 */,
+0.789057928854407064640 /* 0x0.c9ffb34f1444b0001 */,
+0.790126881326406182996 /* 0x0.ca45c15afcc570001 */,
+0.791197281930050233534 /* 0x0.ca8be7b292db38000 */,
+0.792269132620954885659 /* 0x0.cad2265e3cbee8000 */,
+0.793342435380726906957 /* 0x0.cb187d667d3d38006 */,
+0.794417192158282659010 /* 0x0.cb5eecd3b33158006 */,
+0.795493404931386649540 /* 0x0.cba574ae5d2e80001 */,
+0.796571075671306805268 /* 0x0.cbec14fef2a348004 */,
+0.797650206352955137846 /* 0x0.cc32cdcdef0000000 */,
+0.798730798954342069432 /* 0x0.cc799f23d11d18000 */,
+0.799812855456121796232 /* 0x0.ccc089091abb28004 */,
+0.800896377841454287795 /* 0x0.cd078b86505c18003 */,
+0.801981368096190028208 /* 0x0.cd4ea6a3f97720007 */,
+0.803067828208752554378 /* 0x0.cd95da6aa057b8007 */,
+0.804155760170129796375 /* 0x0.cddd26e2d21b28001 */,
+0.805245165974338261710 /* 0x0.ce248c151f3330001 */,
+0.806336047619038653883 /* 0x0.ce6c0a0a1c1350001 */,
+0.807428407102107836855 /* 0x0.ceb3a0ca5d6be0006 */,
+0.808522246427078927792 /* 0x0.cefb505e7e2550007 */,
+0.809617567597010201484 /* 0x0.cf4318cf18a268002 */,
+0.810714372621179513182 /* 0x0.cf8afa24ce1c98004 */,
+0.811812663508675536069 /* 0x0.cfd2f4683f9810005 */,
+0.812912442272482604912 /* 0x0.d01b07a2126188003 */,
+0.814013710929394895825 /* 0x0.d06333daeff618001 */,
+0.815116471495287542325 /* 0x0.d0ab791b80d028006 */,
+0.816220725993571205593 /* 0x0.d0f3d76c75b330000 */,
+0.817326476447408967199 /* 0x0.d13c4ed67f1cf8000 */,
+0.818433724883006474832 /* 0x0.d184df6250e3b0001 */,
+0.819542473330909460055 /* 0x0.d1cd8918a3a328004 */,
+0.820652723822034690935 /* 0x0.d2164c02305fa0002 */,
+0.821764478391968422618 /* 0x0.d25f2827b53fb0005 */,
+0.822877739077315761840 /* 0x0.d2a81d91f188b8000 */,
+0.823992507918612782109 /* 0x0.d2f12c49a8d290005 */,
+0.825108786960634610365 /* 0x0.d33a5457a35e40003 */,
+0.826226578247117093869 /* 0x0.d38395c4a84848007 */,
+0.827345883828319528258 /* 0x0.d3ccf09985d958004 */,
+0.828466705754248966560 /* 0x0.d41664df0a1320005 */,
+0.829589046080638992111 /* 0x0.d45ff29e094330000 */,
+0.830712906863802391671 /* 0x0.d4a999df585a20005 */,
+0.831838290163696481037 /* 0x0.d4f35aabd04a60006 */,
+0.832965198041969556729 /* 0x0.d53d350c4be258002 */,
+0.834093632565442222342 /* 0x0.d5872909aba050007 */,
+0.835223595802037643865 /* 0x0.d5d136acd138e8006 */,
+0.836355089820669306292 /* 0x0.d61b5dfe9f7780004 */,
+0.837488116698010487424 /* 0x0.d6659f0801afa8005 */,
+0.838622678508982644113 /* 0x0.d6aff9d1e147d8004 */,
+0.839758777333464490056 /* 0x0.d6fa6e652d19e0000 */,
+0.840896415254110962690 /* 0x0.d744fccad70d00003 */,
+0.842035594355151628676 /* 0x0.d78fa50bd2c3b0000 */,
+0.843176316724478125433 /* 0x0.d7da673117e730007 */,
+0.844318584453106590905 /* 0x0.d8254343a19038003 */,
+0.845462399634695271912 /* 0x0.d870394c6dbf30003 */,
+0.846607764365415071965 /* 0x0.d8bb49547d37c0004 */,
+0.847754680744707056494 /* 0x0.d9067364d45608003 */,
+0.848903150873708822763 /* 0x0.d951b7867953b0006 */,
+0.850053176859071113491 /* 0x0.d99d15c2787a30006 */,
+0.851204760807439786431 /* 0x0.d9e88e21de11a0003 */,
+0.852357904828824897169 /* 0x0.da3420adba1508003 */,
+0.853512611037803181642 /* 0x0.da7fcd6f2184d8005 */,
+0.854668881550406100980 /* 0x0.dacb946f2afaf8000 */,
+0.855826718478671755185 /* 0x0.db1775b6e8ad48000 */,
+0.856986123964844970247 /* 0x0.db63714f8e0818006 */,
+0.858147100114499461478 /* 0x0.dbaf87422625b8000 */,
+0.859309649060962410524 /* 0x0.dbfbb797daa460002 */,
+0.860473772936213743282 /* 0x0.dc480259d3a710001 */,
+0.861639473872910177676 /* 0x0.dc9467913a0f48006 */,
+0.862806754008130227807 /* 0x0.dce0e7473b9b28003 */,
+0.863975615481124226159 /* 0x0.dd2d8185086c20006 */,
+0.865146060433749419813 /* 0x0.dd7a3653d38168005 */,
+0.866318091005120138881 /* 0x0.ddc705bcccd628000 */,
+0.867491709362415264210 /* 0x0.de13efc9434100004 */,
+0.868666917636779056818 /* 0x0.de60f4825df9b8005 */,
+0.869843717989716047624 /* 0x0.deae13f16599c0003 */,
+0.871022112578215268471 /* 0x0.defb4e1f9dc388002 */,
+0.872202103559697183859 /* 0x0.df48a3164a92f0001 */,
+0.873383693097737778847 /* 0x0.df9612deb6e878007 */,
+0.874566883362160263365 /* 0x0.dfe39d82348310001 */,
+0.875751676517234511901 /* 0x0.e031430a0f0688000 */,
+0.876938074732511840819 /* 0x0.e07f037f97e548001 */,
+0.878126080186539592654 /* 0x0.e0ccdeec2a75e0006 */,
+0.879315695055312818168 /* 0x0.e11ad5591f4078001 */,
+0.880506921518618312932 /* 0x0.e168e6cfd2f880004 */,
+0.881699761760385225541 /* 0x0.e1b71359a6df60003 */,
+0.882894217964411143207 /* 0x0.e2055afffc1178000 */,
+0.884090292325693805080 /* 0x0.e253bdcc3ffbb8001 */,
+0.885287987031581180559 /* 0x0.e2a23bc7d7a1d8002 */,
+0.886487304278189114386 /* 0x0.e2f0d4fc31ab80004 */,
+0.887688246263368285778 /* 0x0.e33f8972bea8a8005 */,
+0.888890815189881999840 /* 0x0.e38e5934f49010007 */,
+0.890095013257492739835 /* 0x0.e3dd444c460bd0007 */,
+0.891300842677948068626 /* 0x0.e42c4ac232f380000 */,
+0.892508305659222567226 /* 0x0.e47b6ca036f8b8005 */,
+0.893717404414979710310 /* 0x0.e4caa9efd40e58002 */,
+0.894928141160697743242 /* 0x0.e51a02ba8e2610007 */,
+0.896140518115016826430 /* 0x0.e5697709ecab90000 */,
+0.897354537501434679237 /* 0x0.e5b906e77c61d0006 */,
+0.898570201543732793877 /* 0x0.e608b25cca5ba8005 */,
+0.899787512470129891014 /* 0x0.e6587973688ce8002 */,
+0.901006472512270728537 /* 0x0.e6a85c34ecadb8000 */,
+0.902227083902570559127 /* 0x0.e6f85aaaed4f20006 */,
+0.903449348881299796343 /* 0x0.e74874df09a530003 */,
+0.904673269686823378091 /* 0x0.e798aadadecba0007 */,
+0.905898848559668845585 /* 0x0.e7e8fca80c3ee0001 */,
+0.907126087750156795426 /* 0x0.e8396a503c3fe0005 */,
+0.908354989505901100354 /* 0x0.e889f3dd1615b0002 */,
+0.909585556079328783087 /* 0x0.e8da9958465228007 */,
+0.910817789726044213523 /* 0x0.e92b5acb7d0578001 */,
+0.912051692703457872481 /* 0x0.e97c38406c3c30003 */,
+0.913287267274154990210 /* 0x0.e9cd31c0cbb370001 */,
+0.914524515702244578108 /* 0x0.ea1e475654d540000 */,
+0.915763440256158633982 /* 0x0.ea6f790ac5cc78001 */,
+0.917004043205012497909 /* 0x0.eac0c6e7dd8448007 */,
+0.918246326823137892807 /* 0x0.eb1230f760a428007 */,
+0.919490293387826285200 /* 0x0.eb63b7431714a8007 */,
+0.920735945178816406225 /* 0x0.ebb559d4cb6f30007 */,
+0.921983284479243714322 /* 0x0.ec0718b64c0940002 */,
+0.923232313574974705626 /* 0x0.ec58f3f16a3910002 */,
+0.924483034755387955725 /* 0x0.ecaaeb8ffb3168005 */,
+0.925735450311948926408 /* 0x0.ecfcff9bd67078000 */,
+0.926989562542820610982 /* 0x0.ed4f301edad1a0007 */,
+0.928245373740515189457 /* 0x0.eda17d22e0f9b0001 */,
+0.929502886213858126045 /* 0x0.edf3e6b1d37d40001 */,
+0.930762102264245716494 /* 0x0.ee466cd594c5c8005 */,
+0.932023024199046146183 /* 0x0.ee990f980dcdb0005 */,
+0.933285654329454095216 /* 0x0.eeebcf032bc470007 */,
+0.934549994971191289044 /* 0x0.ef3eab20e0d3c0001 */,
+0.935816048439005676599 /* 0x0.ef91a3fb1e1340004 */,
+0.937083817055075818404 /* 0x0.efe4b99bdcc618006 */,
+0.938353303143720007819 /* 0x0.f037ec0d1889b8000 */,
+0.939624509028518128972 /* 0x0.f08b3b58cc2bb8006 */,
+0.940897437041863904384 /* 0x0.f0dea788fc2a90000 */,
+0.942172089516254085427 /* 0x0.f13230a7ad21b8003 */,
+0.943448468787511540534 /* 0x0.f185d6bee754e0006 */,
+0.944726577195256100890 /* 0x0.f1d999d8b73478005 */,
+0.946006417082291717338 /* 0x0.f22d79ff2cb130000 */,
+0.947287990793413858827 /* 0x0.f281773c59ec48007 */,
+0.948571300678290207925 /* 0x0.f2d5919a566268001 */,
+0.949856349088629370320 /* 0x0.f329c9233bceb0001 */,
+0.951143138379053731954 /* 0x0.f37e1de1272068002 */,
+0.952431670908847949364 /* 0x0.f3d28fde3a6728006 */,
+0.953721949039916472305 /* 0x0.f4271f249a93f0001 */,
+0.955013975135367898520 /* 0x0.f47bcbbe6deab0001 */,
+0.956307751564417496418 /* 0x0.f4d095b5e16638004 */,
+0.957603280698967163097 /* 0x0.f5257d1524f590006 */,
+0.958900564911197350604 /* 0x0.f57a81e668d628000 */,
+0.960199606581278120057 /* 0x0.f5cfa433e60e50007 */,
+0.961500408088936442422 /* 0x0.f624e407d527a0007 */,
+0.962802971817578789903 /* 0x0.f67a416c72b760006 */,
+0.964107300155846558292 /* 0x0.f6cfbc6c011458004 */,
+0.965413395493874504368 /* 0x0.f7255510c439a8002 */,
+0.966721260225105960572 /* 0x0.f77b0b6503c5b8006 */,
+0.968030896745834645873 /* 0x0.f7d0df730a7940005 */,
+0.969342307458006424716 /* 0x0.f826d145294be8003 */,
+0.970655494764855020231 /* 0x0.f87ce0e5b29fd8000 */,
+0.971970461071268720958 /* 0x0.f8d30e5efaa8f0004 */,
+0.973287208789983648852 /* 0x0.f92959bb5e3c08001 */,
+0.974605740331924708124 /* 0x0.f97fc305383028004 */,
+0.975926058115625383329 /* 0x0.f9d64a46ebb9f8004 */,
+0.977248164559556209435 /* 0x0.fa2cef8adbfc68004 */,
+0.978572062087848637573 /* 0x0.fa83b2db7253d0007 */,
+0.979897753126343307191 /* 0x0.fada944319fda0005 */,
+0.981225240104636631254 /* 0x0.fb3193cc425870002 */,
+0.982554525455618277276 /* 0x0.fb88b1815e61d0003 */,
+0.983885611617111077747 /* 0x0.fbdfed6ce683e0007 */,
+0.985218501026348891812 /* 0x0.fc3747995282f8006 */,
+0.986553196127724962867 /* 0x0.fc8ec0112202a0005 */,
+0.987889699367056062238 /* 0x0.fce656ded63710002 */,
+0.989228013193998778636 /* 0x0.fd3e0c0cf48d50005 */,
+0.990568140061241164686 /* 0x0.fd95dfa605c7b0003 */,
+0.991910082424819927754 /* 0x0.fdedd1b4965710004 */,
+0.993253842749249660216 /* 0x0.fe45e2433bfea0000 */,
+0.994599423484053835071 /* 0x0.fe9e115c7c05f0005 */,
+0.995946827107488830167 /* 0x0.fef65f0afb4c28006 */,
+0.997296056085008264529 /* 0x0.ff4ecb59509cc8001 */,
+0.998647112892057764479 /* 0x0.ffa756521dbfd0007 */,
+1.000000000000000000000 /* 0x1.00000000000000000 */,
+1.001354719891689004659 /* 0x1.0058c86da14aa0005 */,
+1.002711275050312211844 /* 0x1.00b1afa5abead0003 */,
+1.004069667960743483835 /* 0x1.010ab5b2cc0660009 */,
+1.005429901112333324093 /* 0x1.0163da9fb2af30008 */,
+1.006791976999887428009 /* 0x1.01bd1e7716f6a0008 */,
+1.008155898118476168101 /* 0x1.02168143b03890006 */,
+1.009521666967782227439 /* 0x1.027003103ae320002 */,
+1.010889286051850133326 /* 0x1.02c9a3e7783030002 */,
+1.012258757875921233497 /* 0x1.032363d42aaa8000e */,
+1.013630084952214405194 /* 0x1.037d42e11c88d0000 */,
+1.015003269791313389451 /* 0x1.03d741191635a0001 */,
+1.016378314911229763267 /* 0x1.04315e86e84630008 */,
+1.017755222831652872635 /* 0x1.048b9b35652800002 */,
+1.019133996077934645224 /* 0x1.04e5f72f65827000b */,
+1.020514637175266248212 /* 0x1.0540727fc1cfa0006 */,
+1.021897148653734488385 /* 0x1.059b0d3157ebb0002 */,
+1.023281533050062419584 /* 0x1.05f5c74f0cfeb0002 */,
+1.024667792897328677539 /* 0x1.0650a0e3c22ee0003 */,
+1.026055930738840826806 /* 0x1.06ab99fa63e1b0008 */,
+1.027445949118511947550 /* 0x1.0706b29ddf2700009 */,
+1.028837850584049418178 /* 0x1.0761ead9253ab0009 */,
+1.030231637685799839262 /* 0x1.07bd42b72a3f80008 */,
+1.031627312979383592802 /* 0x1.0818ba42e824a000c */,
+1.033024879021186448496 /* 0x1.0874518759b0b0008 */,
+1.034424338374263729911 /* 0x1.08d0088f80ffa0006 */,
+1.035825693601787333992 /* 0x1.092bdf66604e30005 */,
+1.037228947273990842283 /* 0x1.0987d617019cd000a */,
+1.038634101961269928846 /* 0x1.09e3ecac6f199000f */,
+1.040041160239590700707 /* 0x1.0a402331b91270002 */,
+1.041450124688240164200 /* 0x1.0a9c79b1f37c3000b */,
+1.042860997889083929381 /* 0x1.0af8f038352160000 */,
+1.044273782427270314011 /* 0x1.0b5586cf986890006 */,
+1.045688480893644856116 /* 0x1.0bb23d833dfbf0006 */,
+1.047105095879385272564 /* 0x1.0c0f145e46e330007 */,
+1.048523629981608529302 /* 0x1.0c6c0b6bdaadc000f */,
+1.049944085800634585634 /* 0x1.0cc922b72470a000f */,
+1.051366465939483019223 /* 0x1.0d265a4b5238b0007 */,
+1.052790773004648849929 /* 0x1.0d83b23395e510002 */,
+1.054217009607077093512 /* 0x1.0de12a7b263970006 */,
+1.055645178360430591625 /* 0x1.0e3ec32d3cf680000 */,
+1.057075281882416506511 /* 0x1.0e9c7c55184f5000e */,
+1.058507322794714378170 /* 0x1.0efa55fdfad51000a */,
+1.059941303721639416236 /* 0x1.0f58503329fed0003 */,
+1.061377227289284297385 /* 0x1.0fb66affed37f0000 */,
+1.062815096132297298980 /* 0x1.1014a66f95540000c */,
+1.064254912884593951029 /* 0x1.1073028d725850007 */,
+1.065696680185205469411 /* 0x1.10d17f64d9ea2000b */,
+1.067140400676658718053 /* 0x1.11301d012586a0007 */,
+1.068586077004890055886 /* 0x1.118edb6db26ab0003 */,
+1.070033711820396415998 /* 0x1.11edbab5e2d6e000b */,
+1.071483307775789262099 /* 0x1.124cbae51b5ef0001 */,
+1.072934867526001312439 /* 0x1.12abdc06c3240000c */,
+1.074388393734249103080 /* 0x1.130b1e264a62e0005 */,
+1.075843889063253344684 /* 0x1.136a814f20ccd0003 */,
+1.077301356179926061823 /* 0x1.13ca058cbaaed000b */,
+1.078760797756675327056 /* 0x1.1429aaea9260e000e */,
+1.080222216468626150775 /* 0x1.148971742537c0009 */,
+1.081685614993597610617 /* 0x1.14e95934f37e8000b */,
+1.083150996013011013776 /* 0x1.1549623881762000d */,
+1.084618362213087383633 /* 0x1.15a98c8a58a6a000b */,
+1.086087716284427351384 /* 0x1.1609d8360768c0008 */,
+1.087559060917626885283 /* 0x1.166a45471c13f0008 */,
+1.089032398810997337465 /* 0x1.16cad3c92d7b50009 */,
+1.090507732647478578212 /* 0x1.172b83c7c18b5000f */,
+1.091985065182095926460 /* 0x1.178c554ead72a000c */,
+1.093464399073070136880 /* 0x1.17ed48695befe000c */,
+1.094945737045367906172 /* 0x1.184e5d23812500007 */,
+1.096429081816546080591 /* 0x1.18af9388c90e40005 */,
+1.097914436104650892651 /* 0x1.1910eba4e031a0001 */,
+1.099401802629782043408 /* 0x1.19726583755720003 */,
+1.100891184121537858001 /* 0x1.19d4013041b860007 */,
+1.102382583308144647940 /* 0x1.1a35beb6fd0cd0007 */,
+1.103876002922312915544 /* 0x1.1a979e2363fa10000 */,
+1.105371445702084232160 /* 0x1.1af99f8139025000e */,
+1.106868914387219016199 /* 0x1.1b5bc2dc408b9000e */,
+1.108368411723785085252 /* 0x1.1bbe084045eb30002 */,
+1.109869940458469095340 /* 0x1.1c206fb91524c000e */,
+1.111373503344554869449 /* 0x1.1c82f952817cc0001 */,
+1.112879103137133007859 /* 0x1.1ce5a51860344000f */,
+1.114386742595953938610 /* 0x1.1d4873168babf000e */,
+1.115896424484008608911 /* 0x1.1dab6358e1d4a000f */,
+1.117408151567338414664 /* 0x1.1e0e75eb43f9c000c */,
+1.118921926613465345265 /* 0x1.1e71aad995078000f */,
+1.120437752409564780022 /* 0x1.1ed5022fcd8600003 */,
+1.121955631720569668277 /* 0x1.1f387bf9cd88b0000 */,
+1.123475567332998359439 /* 0x1.1f9c18438cdec000a */,
+1.124997562033035469759 /* 0x1.1fffd71902f970002 */,
+1.126521618608448571713 /* 0x1.2063b88629079000e */,
+1.128047739853580200284 /* 0x1.20c7bc96ff72a0002 */,
+1.129575928566289189112 /* 0x1.212be3578a81e0006 */,
+1.131106187546149888259 /* 0x1.21902cd3d05f70007 */,
+1.132638519598779369743 /* 0x1.21f49917ddda5000c */,
+1.134172927531616359481 /* 0x1.2259282fc1c24000e */,
+1.135709414157753949251 /* 0x1.22bdda27911e90007 */,
+1.137247982292643566662 /* 0x1.2322af0b638e60007 */,
+1.138788634756517259562 /* 0x1.2387a6e755f270000 */,
+1.140331374372893558110 /* 0x1.23ecc1c788c890006 */,
+1.141876203969685699176 /* 0x1.2451ffb821639000c */,
+1.143423126377846266197 /* 0x1.24b760c5486dc0009 */,
+1.144972144431494420774 /* 0x1.251ce4fb2a0cc0005 */,
+1.146523260971646252006 /* 0x1.25828c65f9fb8000d */,
+1.148076478839068270690 /* 0x1.25e85711ebaeb0000 */,
+1.149631800883562204903 /* 0x1.264e450b3c8a30008 */,
+1.151189229953253789786 /* 0x1.26b4565e281a20003 */,
+1.152748768902654319399 /* 0x1.271a8b16f0f000002 */,
+1.154310420590433317050 /* 0x1.2780e341de2fc0001 */,
+1.155874187878668246681 /* 0x1.27e75eeb3abc90007 */,
+1.157440073633736243899 /* 0x1.284dfe1f5633e000a */,
+1.159008080725518974322 /* 0x1.28b4c0ea840d90001 */,
+1.160578212048386514965 /* 0x1.291ba75932ae60000 */,
+1.162150470417516290340 /* 0x1.2982b177796850008 */,
+1.163724858777502646494 /* 0x1.29e9df51fdd900001 */,
+1.165301379991388053320 /* 0x1.2a5130f50bf34000e */,
+1.166880036952526289469 /* 0x1.2ab8a66d10fdc0008 */,
+1.168460832550151540268 /* 0x1.2b203fc675b7a000a */,
+1.170043769683112966389 /* 0x1.2b87fd0dad7260008 */,
+1.171628851252754177681 /* 0x1.2befde4f2e3da000d */,
+1.173216080163546060084 /* 0x1.2c57e397719940002 */,
+1.174805459325657830448 /* 0x1.2cc00cf2f7491000c */,
+1.176396991650083379037 /* 0x1.2d285a6e3ff90000b */,
+1.177990680055698513602 /* 0x1.2d90cc15d4ff90005 */,
+1.179586527463262646306 /* 0x1.2df961f641c57000c */,
+1.181184536796979545103 /* 0x1.2e621c1c157cd000d */,
+1.182784710984701836994 /* 0x1.2ecafa93e35af0004 */,
+1.184387052960675701386 /* 0x1.2f33fd6a459cb0000 */,
+1.185991565661414393112 /* 0x1.2f9d24abd8fd1000e */,
+1.187598252026902612178 /* 0x1.300670653e083000a */,
+1.189207115003001469262 /* 0x1.306fe0a31bc040008 */,
+1.190818157535919796833 /* 0x1.30d9757219895000e */,
+1.192431382587621380206 /* 0x1.31432edef01a1000f */,
+1.194046793097208292195 /* 0x1.31ad0cf63f0630008 */,
+1.195664392040319823392 /* 0x1.32170fc4ce0db000c */,
+1.197284182375793593084 /* 0x1.32813757527750005 */,
+1.198906167074650808198 /* 0x1.32eb83ba8eef3000f */,
+1.200530349107333139048 /* 0x1.3355f4fb457e5000d */,
+1.202156731453099647353 /* 0x1.33c08b2641df9000c */,
+1.203785317090505513368 /* 0x1.342b46484f07b0005 */,
+1.205416109005122526928 /* 0x1.3496266e3fa270005 */,
+1.207049110184904572310 /* 0x1.35012ba4e8fa10000 */,
+1.208684323627194912036 /* 0x1.356c55f92aabb0004 */,
+1.210321752322854882437 /* 0x1.35d7a577dd33f0004 */,
+1.211961399276747286580 /* 0x1.36431a2de8748000d */,
+1.213603267492579629347 /* 0x1.36aeb4283309e000c */,
+1.215247359985374142610 /* 0x1.371a7373b00160000 */,
+1.216893679753690671322 /* 0x1.3786581d404e90000 */,
+1.218542229828181611183 /* 0x1.37f26231e82e4000c */,
+1.220193013225231215567 /* 0x1.385e91be9c2d20002 */,
+1.221846032973555429280 /* 0x1.38cae6d05e66f0000 */,
+1.223501292099485437962 /* 0x1.393761742e5830001 */,
+1.225158793636904830441 /* 0x1.39a401b713cb3000e */,
+1.226818540625497444577 /* 0x1.3a10c7a61ceae0007 */,
+1.228480536107136034131 /* 0x1.3a7db34e5a4a50003 */,
+1.230144783126481566885 /* 0x1.3aeac4bcdf8d60001 */,
+1.231811284734168454619 /* 0x1.3b57fbfec6e950008 */,
+1.233480043984379381835 /* 0x1.3bc559212e7a2000f */,
+1.235151063936380300149 /* 0x1.3c32dc3139f2a0004 */,
+1.236824347652524913647 /* 0x1.3ca0853c106ac000e */,
+1.238499898199571624970 /* 0x1.3d0e544eddd240003 */,
+1.240177718649636107175 /* 0x1.3d7c4976d3fcd0000 */,
+1.241857812073360767273 /* 0x1.3dea64c1231f70004 */,
+1.243540181554270152039 /* 0x1.3e58a63b099920005 */,
+1.245224830175077013244 /* 0x1.3ec70df1c4e46000e */,
+1.246911761022835740725 /* 0x1.3f359bf29741c000e */,
+1.248600977188942806639 /* 0x1.3fa4504ac7b800009 */,
+1.250292481770148400634 /* 0x1.40132b07a330d000a */,
+1.251986277866492969263 /* 0x1.40822c367a340000b */,
+1.253682368581898742876 /* 0x1.40f153e4a18e0000d */,
+1.255380757024939564249 /* 0x1.4160a21f73289000d */,
+1.257081446308726757662 /* 0x1.41d016f44deaa000c */,
+1.258784439550028944083 /* 0x1.423fb27094c090008 */,
+1.260489739869405489991 /* 0x1.42af74a1aec1c0006 */,
+1.262197350394008266193 /* 0x1.431f5d950a453000c */,
+1.263907274252603851764 /* 0x1.438f6d58176860004 */,
+1.265619514578811388761 /* 0x1.43ffa3f84b9eb000d */,
+1.267334074511444086425 /* 0x1.44700183221180008 */,
+1.269050957191869555296 /* 0x1.44e0860618b930006 */,
+1.270770165768063009230 /* 0x1.4551318eb4d20000e */,
+1.272491703389059036805 /* 0x1.45c2042a7cc26000b */,
+1.274215573211836316547 /* 0x1.4632fde6ffacd000d */,
+1.275941778396075143580 /* 0x1.46a41ed1cfac40001 */,
+1.277670322103555911043 /* 0x1.471566f8812ac0000 */,
+1.279401207505722393185 /* 0x1.4786d668b33260005 */,
+1.281134437771823675369 /* 0x1.47f86d3002637000a */,
+1.282870016078732078362 /* 0x1.486a2b5c13c00000e */,
+1.284607945607987078432 /* 0x1.48dc10fa916bd0004 */,
+1.286348229545787758022 /* 0x1.494e1e192aaa30007 */,
+1.288090871080605159846 /* 0x1.49c052c5913df000c */,
+1.289835873406902644341 /* 0x1.4a32af0d7d8090002 */,
+1.291583239722392528754 /* 0x1.4aa532feab5e10002 */,
+1.293332973229098792374 /* 0x1.4b17dea6db8010008 */,
+1.295085077135345708087 /* 0x1.4b8ab213d57d9000d */,
+1.296839554650994097442 /* 0x1.4bfdad53629e10003 */,
+1.298596408992440220988 /* 0x1.4c70d0735358a000d */,
+1.300355643380135983739 /* 0x1.4ce41b817c99e0001 */,
+1.302117261036232376282 /* 0x1.4d578e8bb52cb0003 */,
+1.303881265192249561154 /* 0x1.4dcb299fde2920008 */,
+1.305647659079073541490 /* 0x1.4e3eeccbd7f4c0003 */,
+1.307416445934474813521 /* 0x1.4eb2d81d8a86f000b */,
+1.309187629001237640529 /* 0x1.4f26eba2e35a5000e */,
+1.310961211525240921493 /* 0x1.4f9b2769d35090009 */,
+1.312737196755087820678 /* 0x1.500f8b804e4a30000 */,
+1.314515587949291131086 /* 0x1.508417f4530d00009 */,
+1.316296388365203462468 /* 0x1.50f8ccd3df1840003 */,
+1.318079601265708777911 /* 0x1.516daa2cf60020002 */,
+1.319865229921343141607 /* 0x1.51e2b00da3c2b0007 */,
+1.321653277603506371251 /* 0x1.5257de83f5512000d */,
+1.323443747588034513690 /* 0x1.52cd359dfc7d5000e */,
+1.325236643161341820781 /* 0x1.5342b569d6baa000f */,
+1.327031967602244177939 /* 0x1.53b85df59921b0000 */,
+1.328829724206201046165 /* 0x1.542e2f4f6b17e0006 */,
+1.330629916266568235675 /* 0x1.54a4298571b27000e */,
+1.332432547083447937938 /* 0x1.551a4ca5d97190009 */,
+1.334237619959296017340 /* 0x1.559098bed16bf0008 */,
+1.336045138203900251029 /* 0x1.56070dde90c800000 */,
+1.337855105129210686631 /* 0x1.567dac13510cd0009 */,
+1.339667524053662184301 /* 0x1.56f4736b52e2c000c */,
+1.341482398296830025383 /* 0x1.576b63f4d8333000f */,
+1.343299731186792467254 /* 0x1.57e27dbe2c40e0003 */,
+1.345119526053918823702 /* 0x1.5859c0d59cd37000f */,
+1.346941786233264881662 /* 0x1.58d12d497cd9a0005 */,
+1.348766515064854010261 /* 0x1.5948c32824b87000c */,
+1.350593715891792223641 /* 0x1.59c0827ff03890007 */,
+1.352423392064920459908 /* 0x1.5a386b5f43a3e0006 */,
+1.354255546937278120764 /* 0x1.5ab07dd485af1000c */,
+1.356090183865519494030 /* 0x1.5b28b9ee21085000f */,
+1.357927306213322804534 /* 0x1.5ba11fba8816e000b */,
+1.359766917346459269620 /* 0x1.5c19af482f8f2000f */,
+1.361609020638567812980 /* 0x1.5c9268a594cc00004 */,
+1.363453619463660171403 /* 0x1.5d0b4be135916000c */,
+1.365300717204201985683 /* 0x1.5d84590998eeb0005 */,
+1.367150317245710233754 /* 0x1.5dfd902d494e40001 */,
+1.369002422974674892971 /* 0x1.5e76f15ad22c40008 */,
+1.370857037789471544224 /* 0x1.5ef07ca0cc166000b */,
+1.372714165088220639199 /* 0x1.5f6a320dcf5280006 */,
+1.374573808273481745378 /* 0x1.5fe411b0790800009 */,
+1.376435970755022220096 /* 0x1.605e1b976e4b1000e */,
+1.378300655944092456600 /* 0x1.60d84fd155d15000e */,
+1.380167867259843417228 /* 0x1.6152ae6cdf0030003 */,
+1.382037608124419003675 /* 0x1.61cd3778bc879000d */,
+1.383909881963391264069 /* 0x1.6247eb03a4dc40009 */,
+1.385784692209972801544 /* 0x1.62c2c91c56d9b0002 */,
+1.387662042298923203992 /* 0x1.633dd1d1930ec0001 */,
+1.389541935670444372533 /* 0x1.63b90532200630004 */,
+1.391424375772021271329 /* 0x1.6434634ccc4cc0007 */,
+1.393309366052102982208 /* 0x1.64afec30677e90008 */,
+1.395196909966106124701 /* 0x1.652b9febc8e0f000d */,
+1.397087010973788290271 /* 0x1.65a77e8dcc7f10004 */,
+1.398979672539331309267 /* 0x1.66238825534170000 */,
+1.400874898129892187656 /* 0x1.669fbcc1415600008 */,
+1.402772691220124823310 /* 0x1.671c1c708328e000a */,
+1.404673055288671035301 /* 0x1.6798a7420988b000d */,
+1.406575993818903302975 /* 0x1.68155d44ca77a000f */,
+1.408481510297352468121 /* 0x1.68923e87bf70e000a */,
+1.410389608216942924956 /* 0x1.690f4b19e8f74000c */,
+1.412300291075172076232 /* 0x1.698c830a4c94c0008 */
+};
+#define S (1.0/4503599627370496.0)  /* 2^-52 */
+static const float exp2_deltatable[512] = {
+ 11527*S,  -963*S,   884*S,  -781*S, -2363*S, -3441*S,   123*S,   526*S,
+    -6*S,  1254*S, -1138*S,  1519*S,  1576*S,   -65*S,  1040*S,   793*S,
+ -1662*S, -5063*S,  -387*S,   968*S,  -941*S,   984*S, -2856*S,  -545*S,
+   495*S, -5246*S, -2109*S,  1281*S,  2075*S,   909*S, -1642*S,-78233*S,
+-31653*S,  -265*S,   130*S,   430*S,  2482*S,  -742*S,  1616*S, -2213*S,
+  -519*S,    20*S, -3134*S,-13981*S,  1343*S, -1740*S,   247*S,  1679*S,
+ -1097*S,  3131*S,   871*S, -1480*S,  1936*S, -1827*S, 17325*S,   528*S,
+  -322*S,  1404*S,  -152*S, -1845*S,  -212*S,  2639*S,  -476*S,  2960*S,
+  -962*S, -1012*S, -1231*S,  3030*S,  1659*S,  -486*S,  2154*S,  1728*S,
+ -2793*S,   699*S, -1560*S, -2125*S,  2156*S,   142*S, -1888*S,  4426*S,
+-13443*S,  1970*S,   -50*S,  1771*S,-43399*S,  4979*S, -2448*S,  -370*S,
+  1414*S,  1075*S,   232*S,   206*S,   873*S,  2141*S,  2970*S,  1279*S,
+ -2331*S,   336*S, -2595*S,   753*S, -3384*S,  -616*S,    89*S,  -818*S,
+  5755*S,  -241*S,  -528*S,  -661*S, -3777*S,  -354*S,   250*S,  3881*S,
+  2632*S, -2131*S,  2565*S,  -316*S,  1746*S, -2541*S, -1324*S,   -50*S,
+  2564*S,  -782*S,  1176*S,  6452*S, -1002*S,  1288*S,   336*S,  -185*S,
+  3063*S,  3784*S,  2169*S,   686*S,   328*S,  -400*S,   312*S, -4517*S,
+ -1457*S,  1046*S, -1530*S,  -685*S,  1328*S,-49815*S,  -895*S,  1063*S,
+ -2091*S,  -672*S, -1710*S,  -665*S,  1545*S,  1819*S,-45265*S,  3548*S,
+  -554*S,  -568*S,  4752*S, -1907*S,-13738*S,   675*S,  9611*S, -1115*S,
+  -815*S,   408*S, -1281*S,  -937*S,-16376*S, -4772*S, -1440*S,   992*S,
+   788*S, 10364*S, -1602*S,  -661*S, -1783*S,  -265*S,   -20*S, -3781*S,
+  -861*S,  -345*S,  -994*S,  1364*S, -5339*S,  1620*S,  9390*S, -1066*S,
+  -305*S,  -170*S,   175*S,  2461*S,  -490*S,  -769*S, -1450*S,  3315*S,
+  2418*S,   -45*S,  -852*S, -1295*S,  -488*S,   -96*S,  1142*S, -2639*S,
+  7905*S, -9306*S, -3859*S,   760*S,  1057*S, -1570*S,  3977*S,   209*S,
+  -514*S,  7151*S,  1646*S,   627*S,   599*S,  -774*S, -1468*S,   633*S,
+  -473*S,   851*S,  2406*S,   143*S,    74*S,  4260*S,  1177*S,  -913*S,
+  2670*S, -3298*S, -1662*S,  -120*S, -3264*S, -2148*S,   410*S,  2078*S,
+ -2098*S,  -926*S,  3580*S, -1289*S,  2450*S, -1158*S,   907*S,  -590*S,
+   986*S,  1801*S,  1145*S, -1677*S,  3455*S,   956*S,   710*S,   144*S,
+   153*S,  -255*S, -1898*S, 28102*S,  2748*S,  1194*S, -3009*S,  7076*S,
+     0*S, -2720*S,   711*S,  1225*S, -3034*S,  -473*S,   378*S, -1046*S,
+   962*S, -2006*S,  4647*S,  3206*S,  1769*S, -2665*S,  1254*S,  2025*S,
+ -2430*S,  6193*S,  1224*S,  -856*S, -1592*S,  -325*S, -1521*S,  1827*S,
+  -264*S,  2403*S, -1065*S,   967*S,  -681*S, -2106*S,  -474*S,  1333*S,
+  -893*S,  2296*S,   592*S, -1220*S,  -326*S,   990*S,   139*S,   206*S,
+  -779*S, -1683*S,  1238*S,  6098*S,   136*S,  1197*S,   790*S,  -107*S,
+ -1004*S, -2449*S,   939*S,  5568*S,   156*S,  1812*S,  2792*S, -1094*S,
+ -2677*S,  -251*S,  2297*S,   943*S, -1329*S,  2883*S,  -853*S, -2626*S,
+-105929*S, -6552*S,  1095*S, -1508*S,  1003*S,  5039*S, -2600*S,  -749*S,
+  1790*S,   890*S,  2016*S, -1073*S,   624*S, -2084*S, -1536*S, -1330*S,
+   358*S,  2444*S,  -179*S,-25759*S,  -243*S,  -552*S,  -124*S,  3766*S,
+  1192*S, -1614*S,     6*S, -1227*S,   345*S,  -981*S,  -295*S, -1006*S,
+  -995*S, -1195*S,   706*S,  2512*S, -1758*S,  -734*S, -6286*S,  -922*S,
+  1530*S,  1542*S,  1223*S,    61*S,   -83*S,   522*S,116937*S,  -914*S,
+  -418*S, -7339*S,   249*S,  -520*S,  -762*S,   426*S,  -505*S,  2664*S,
+ -1093*S, -1035*S,  2130*S,  4878*S,  1982*S,  1551*S,  2304*S,   193*S,
+  1532*S, -7268*S, 24357*S,   531*S,  2676*S, -1170*S,  1465*S, -1917*S,
+  2143*S,  1466*S,    -7*S, -7300*S,  3297*S, -1197*S,  -289*S, -1548*S,
+ 26226*S,  4401*S,  4123*S, -1588*S,  4243*S,  4069*S, -1276*S, -2010*S,
+  1407*S,  1478*S,   488*S, -2366*S, -2909*S, -2534*S, -1285*S,  7095*S,
+  -645*S, -2089*S,  -944*S,   -40*S, -1363*S,  -833*S,   917*S,  1609*S,
+  1286*S,  1677*S,  1613*S, -2295*S, -1248*S,    40*S,    26*S,  2038*S,
+   698*S,  2675*S, -1755*S, -3522*S, -1614*S, -6111*S,   270*S,  1822*S,
+  -234*S, -2844*S, -1201*S,  -830*S,  1193*S,  2354*S,    47*S,  1522*S,
+   -78*S,  -640*S,  2425*S, -1596*S,  1563*S,  1169*S, -1006*S,   -83*S,
+  2362*S, -3521*S,  -314*S,  1814*S, -1751*S,   305*S,  1715*S, -3741*S,
+  7847*S,  1291*S,  1206*S,    36*S,  1397*S, -1419*S, -1194*S, -2014*S,
+  1742*S,  -578*S,  -207*S,   875*S,  1539*S,  2826*S, -1165*S,  -909*S,
+  1849*S,   927*S,  2018*S,  -981*S,  1637*S,  -463*S,   905*S,  6618*S,
+   400*S,   630*S,  2614*S,   900*S,  2323*S, -1094*S, -1858*S,  -212*S,
+ -2069*S,   747*S,  1845*S, -1450*S,   444*S,  -213*S,  -438*S,  1158*S,
+  4738*S,  2497*S,  -370*S, -2016*S,  -518*S, -1160*S, -1510*S,   123*S
+};
+/* Maximum magnitude in above table: 116937 */
+#undef S
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/uasncs.h b/REORG.TODO/sysdeps/ieee754/dbl-64/uasncs.h
new file mode 100644
index 0000000000..d754932558
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/uasncs.h
@@ -0,0 +1,69 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:uasncs.h                                           */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef UANSNCS_H
+#define UANSNCS_H
+
+#ifdef BIG_ENDI
+ static const  mynumber
+/**/           a1 = {{0x3FC55580, 0x00000000 }},  /*  0.1666717529296875     */
+/**/           a2 = {{0xBED55555, 0x55552330 }},  /* -5.0862630208224597e-06 */
+/**/          hp0 = {{0x3FF921FB, 0x54442D18 }},  /*  1.5707963267948966     */
+/**/          hp1 = {{0x3C91A626, 0x33145C07 }};  /*  6.123233995736766e-17  */
+
+#else
+#ifdef LITTLE_ENDI
+ static const  mynumber
+/**/           a1 = {{0x00000000, 0x3FC55580 }},  /*  0.1666717529296875     */
+/**/           a2 = {{0x55552330, 0xBED55555 }},  /* -5.0862630208224597e-06 */
+/**/          hp0 = {{0x54442D18, 0x3FF921FB }},  /*  1.5707963267948966     */
+/**/          hp1 = {{0x33145C07, 0x3C91A626 }};  /*  6.123233995736766e-17  */
+
+#endif
+#endif
+
+static const double
+              f1 =  1.66666666666664110590506577996662E-01,
+              f2 =  7.50000000026122686814431784722623E-02,
+              f3 =  4.46428561421059750978517350006940E-02,
+              f4 =  3.03821268582119319911193410625235E-02,
+              f5 =  2.23551211026525610742786300334557E-02,
+              f6 =  1.81382903404565056280372531963613E-02;
+static const double
+   c2 = 0.74999999999985410757087492918602258E-01,
+   c3 = 0.44642857150311968932423372477866076E-01,
+   c4 = 0.30381942574778615766200591683810471E-01,
+   c5 = 0.22372413472984868331447708777000650E-01,
+   c6 = 0.17333630246451830686009693735025490E-01,
+   c7 = 0.14710362893628210269950864741085777E-01;
+
+static const double big = 103079215104.0, t24 = 16777216.0, t27 = 134217728.0;
+static const double
+   rt0 = 9.99999999859990725855365213134618E-01,
+   rt1 = 4.99999999495955425917856814202739E-01,
+   rt2 = 3.75017500867345182581453026130850E-01,
+   rt3 = 3.12523626554518656309172508769531E-01;
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/uatan.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/uatan.tbl
new file mode 100644
index 0000000000..06608a3edb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/uatan.tbl
@@ -0,0 +1,11134 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/****************************************************************/
+/* TABLES FOR THE uatan() FUNCTION                               */
+/****************************************************************/
+
+#include "endian.h"
+
+#ifdef BIG_ENDI
+
+  static const number
+      cij[241][7] = {                             /* x0,cij for (1/16,1) */
+/**/                 {{{0X3FB04006, 0X65E0244E} },
+/**/                  {{0X3FB03A73, 0X7B53DD20} },
+/**/                  {{0X3FEFDF1F, 0XCF5CFB72} },
+/**/                  {{0XBFB01EB3, 0XCE2AE4C2} },
+/**/                  {{0XBFD4D29E, 0XDD58A40D} },
+/**/                  {{0X3FAFDA4A, 0XD907A18A} },
+/**/                  {{0X3FC814DF, 0X4DF65B18} } },
+/**/                 {{{0X3FB0FFFD, 0XB9B88CD8} },
+/**/                  {{0X3FB0F99C, 0X63645300} },
+/**/                  {{0X3FEFDC08, 0XA3DED30F} },
+/**/                  {{0XBFB0D9DC, 0X669C1AED} },
+/**/                  {{0XBFD4C669, 0XF7138DE2} },
+/**/                  {{0X3FB0A12F, 0X29D085A7} },
+/**/                  {{0X3FC7F0EE, 0XCFD48D20} } },
+/**/                 {{{0X3FB1FFF1, 0X5A73D4F1} },
+/**/                  {{0X3FB1F85F, 0X2BEE2040} },
+/**/                  {{0X3FEFD7B3, 0X42B56D31} },
+/**/                  {{0XBFB1D2B7, 0XB69DEA40} },
+/**/                  {{0XBFD4B552, 0X3922ECC9} },
+/**/                  {{0X3FB18F93, 0X522B1A04} },
+/**/                  {{0X3FC7BEAD, 0X5660F061} } },
+/**/                 {{{0X3FB2FFFD, 0XB2524AA2} },
+/**/                  {{0X3FB2F716, 0XE71790A0} },
+/**/                  {{0X3FEFD31F, 0X53B496A4} },
+/**/                  {{0XBFB2CAD8, 0X4AAB7374} },
+/**/                  {{0XBFD4A34B, 0X58DD2FB2} },
+/**/                  {{0X3FB27C0A, 0XD0CECC18} },
+/**/                  {{0X3FC789D2, 0X5D2743D7} } },
+/**/                 {{{0X3FB3FFFE, 0X0573F3AC} },
+/**/                  {{0X3FB3F59D, 0X1702F6A0} },
+/**/                  {{0X3FEFCE4D, 0XB071ACC2} },
+/**/                  {{0XBFB3C20F, 0X64DB3686} },
+/**/                  {{0XBFD49059, 0XEB3BFE93} },
+/**/                  {{0X3FB36659, 0XCAF74FED} },
+/**/                  {{0X3FC75269, 0X1C011FB0} } },
+/**/                 {{{0X3FB4FFEF, 0X894384D6} },
+/**/                  {{0X3FB4F3ED, 0X0CE204C0} },
+/**/                  {{0X3FEFC93E, 0XA8EA5A01} },
+/**/                  {{0XBFB4B84F, 0X7B5457C9} },
+/**/                  {{0XBFD47C80, 0X7401F2F9} },
+/**/                  {{0X3FB44E64, 0XB4F67209} },
+/**/                  {{0X3FC7187D, 0X4C540B77} } },
+/**/                 {{{0X3FB5FFF8, 0XDF406528} },
+/**/                  {{0X3FB5F22B, 0X3C73D820} },
+/**/                  {{0X3FEFC3F1, 0XB1F60F13} },
+/**/                  {{0XBFB5ADB2, 0XCB7FA73B} },
+/**/                  {{0XBFD467BE, 0X2B1EB555} },
+/**/                  {{0X3FB53435, 0X99EDC463} },
+/**/                  {{0X3FC6DC1B, 0X238F5059} } },
+/**/                 {{{0X3FB7000F, 0X8C4F0D56} },
+/**/                  {{0X3FB6F04B, 0X495A2FA0} },
+/**/                  {{0X3FEFBE67, 0X340DCE97} },
+/**/                  {{0XBFB6A224, 0X4D98E1AD} },
+/**/                  {{0XBFD45216, 0X14064DF1} },
+/**/                  {{0X3FB617AA, 0X2BA78A66} },
+/**/                  {{0X3FC69D4F, 0X50A3D7AC} } },
+/**/                 {{{0X3FB8000F, 0XBB4057CF} },
+/**/                  {{0X3FB7EE27, 0XBE2CD3A0} },
+/**/                  {{0X3FEFB8A0, 0X39EC9246} },
+/**/                  {{0XBFB79577, 0X31D9C773} },
+/**/                  {{0XBFD43B8D, 0XB6DC7D72} },
+/**/                  {{0X3FB6F88A, 0XD69547DF} },
+/**/                  {{0X3FC65C26, 0XF633CE8C} } },
+/**/                 {{{0X3FB8FFF2, 0X39CF2B7F} },
+/**/                  {{0X3FB8EBB7, 0X9F979E80} },
+/**/                  {{0X3FEFB29D, 0X435506E1} },
+/**/                  {{0XBFB8879A, 0X69B9CDB5} },
+/**/                  {{0XBFD42428, 0X85FEAFA9} },
+/**/                  {{0X3FB7D6BA, 0XB6191A0E} },
+/**/                  {{0X3FC618AF, 0XA7CB8BB5} } },
+/**/                 {{{0X3FB9FFF9, 0X6E2F0772} },
+/**/                  {{0X3FB9E93A, 0XD32A9480} },
+/**/                  {{0X3FEFAC5D, 0X04A3EC40} },
+/**/                  {{0XBFB978C2, 0X53F6EA97} },
+/**/                  {{0XBFD40BE3, 0X089C36F6} },
+/**/                  {{0X3FB8B25C, 0X885AEB77} },
+/**/                  {{0X3FC5D2F7, 0X63CADCE1} } },
+/**/                 {{{0X3FBB0002, 0X6316B097} },
+/**/                  {{0X3FBAE68C, 0XCE24CC00} },
+/**/                  {{0X3FEFA5E0, 0X938C5C66} },
+/**/                  {{0XBFBA68C3, 0X76F14E4B} },
+/**/                  {{0XBFD3F2C3, 0X1696CD7C} },
+/**/                  {{0X3FB98B3B, 0X722A2CB4} },
+/**/                  {{0X3FC58B0C, 0X9067AD62} } },
+/**/                 {{{0X3FBC0008, 0X604F58B1} },
+/**/                  {{0X3FBBE3A7, 0X05650780} },
+/**/                  {{0X3FEF9F28, 0X5A7A2773} },
+/**/                  {{0XBFBB578F, 0X3D5AC0A4} },
+/**/                  {{0XBFD3D8CB, 0XF767119F} },
+/**/                  {{0X3FBA613D, 0XC7E31B88} },
+/**/                  {{0X3FC540FD, 0XF5594565} } },
+/**/                 {{{0X3FBD0002, 0X6CCA4EBA} },
+/**/                  {{0X3FBCE07E, 0XC1298A80} },
+/**/                  {{0X3FEF9834, 0XE8D36C4A} },
+/**/                  {{0XBFBC4513, 0X5BCAC5FE} },
+/**/                  {{0XBFD3BE01, 0X8B5236F1} },
+/**/                  {{0X3FBB3447, 0X2E991970} },
+/**/                  {{0X3FC4F4DA, 0XB8ADB373} } },
+/**/                 {{{0X3FBDFFF4, 0XB2B47FCA} },
+/**/                  {{0X3FBDDD16, 0X4A051D80} },
+/**/                  {{0X3FEF9106, 0X78DCC895} },
+/**/                  {{0XBFBD3149, 0XF0966844} },
+/**/                  {{0XBFD3A266, 0X744F9A5F} },
+/**/                  {{0X3FBC0446, 0XEDB7F27A} },
+/**/                  {{0X3FC4A6B2, 0X583F9ECA} } },
+/**/                 {{{0X3FBF000A, 0XA9A05BE0} },
+/**/                  {{0X3FBED996, 0XA3BDA540} },
+/**/                  {{0X3FEF899C, 0X1B8BA97F} },
+/**/                  {{0XBFBE1C51, 0X2287A677} },
+/**/                  {{0XBFD385F8, 0XEDC130BB} },
+/**/                  {{0X3FBCD14B, 0XF306FF50} },
+/**/                  {{0X3FC45694, 0XA667A72B} } },
+/**/                 {{{0X3FBFFFFA, 0XBA8F63DE} },
+/**/                  {{0X3FBFD5B5, 0X69FE4780} },
+/**/                  {{0X3FEF81F8, 0X4863DC7D} },
+/**/                  {{0XBFBF05DB, 0XD1518706} },
+/**/                  {{0XBFD368C4, 0X4687A69C} },
+/**/                  {{0X3FBD9B08, 0X1B3868DA} },
+/**/                  {{0X3FC40491, 0XC345ADFC} } },
+/**/                 {{{0X3FC07FFA, 0X6ECCADA8} },
+/**/                  {{0X3FC068D0, 0X0A396400} },
+/**/                  {{0X3FEF7A19, 0XF1FCFC6B} },
+/**/                  {{0XBFBFEE0C, 0X861DF0DF} },
+/**/                  {{0XBFD34AC6, 0X5A586C0C} },
+/**/                  {{0X3FBE618F, 0X189D637A} },
+/**/                  {{0X3FC3B0BA, 0X195779D4} } },
+/**/                 {{{0X3FC10003, 0X33432713} },
+/**/                  {{0X3FC0E6B0, 0XF203D1A0} },
+/**/                  {{0X3FEF7200, 0XFE0EB463} },
+/**/                  {{0XBFC06A72, 0XE15CB19A} },
+/**/                  {{0XBFD32C00, 0XB8DB761E} },
+/**/                  {{0X3FBF24D8, 0XA11F5E3E} },
+/**/                  {{0X3FC35B1E, 0X569E85DD} } },
+/**/                 {{{0X3FC17FFC, 0XDA1C4811} },
+/**/                  {{0X3FC16462, 0X29EBDA00} },
+/**/                  {{0X3FEF69AF, 0X7D558737} },
+/**/                  {{0XBFC0DD17, 0X0B33969B} },
+/**/                  {{0XBFD30C7D, 0X33AC50D1} },
+/**/                  {{0X3FBFE4AA, 0X9BE43F0F} },
+/**/                  {{0X3FC303CF, 0X692539CB} } },
+/**/                 {{{0X3FC1FFFF, 0X3CCA418D} },
+/**/                  {{0X3FC1E1FA, 0X3B978EA0} },
+/**/                  {{0X3FEF6124, 0X45D421A9} },
+/**/                  {{0XBFC14F03, 0XACAC8AA8} },
+/**/                  {{0XBFD2EC39, 0X62E675A3} },
+/**/                  {{0X3FC0508C, 0X2FA6B426} },
+/**/                  {{0X3FC2AADE, 0X780A6467} } },
+/**/                 {{{0X3FC27FF7, 0XD9C78922} },
+/**/                  {{0X3FC25F66, 0X1B91E640} },
+/**/                  {{0X3FEF5860, 0XF52E192C} },
+/**/                  {{0XBFC1C023, 0XE5DE2394} },
+/**/                  {{0XBFD2CB3D, 0X6BEE0ABD} },
+/**/                  {{0X3FC0ACFB, 0X5E075C1A} },
+/**/                  {{0X3FC2505C, 0XDFFE453A} } },
+/**/                 {{{0X3FC2FFF7, 0XA1FC1AAA} },
+/**/                  {{0X3FC2DCB5, 0X83257C40} },
+/**/                  {{0X3FEF4F64, 0XC719B6FB} },
+/**/                  {{0XBFC23082, 0X61514083} },
+/**/                  {{0XBFD2A988, 0X7F7B72D5} },
+/**/                  {{0X3FC107A7, 0X7C887402} },
+/**/                  {{0X3FC1F45C, 0X2C3CD6D1} } },
+/**/                 {{{0X3FC38005, 0X9D78E15E} },
+/**/                  {{0X3FC359EE, 0X6AC98EE0} },
+/**/                  {{0X3FEF462F, 0X944CEC16} },
+/**/                  {{0XBFC2A020, 0XD85B87A9} },
+/**/                  {{0XBFD2871C, 0X2E4AB369} },
+/**/                  {{0X3FC1608D, 0XC31A65D9} },
+/**/                  {{0X3FC196EE, 0X130BBE50} } },
+/**/                 {{{0X3FC40004, 0X9F431B1A} },
+/**/                  {{0X3FC3D6F3, 0X6BD65360} },
+/**/                  {{0X3FEF3CC3, 0XDD99B68A} },
+/**/                  {{0XBFC30EE1, 0XB3DD00ED} },
+/**/                  {{0XBFD26403, 0XF8482664} },
+/**/                  {{0X3FC1B792, 0XFE136626} },
+/**/                  {{0X3FC13824, 0X6EAC7440} } },
+/**/                 {{{0X3FC48004, 0XE01D95A1} },
+/**/                  {{0X3FC453D3, 0X86F00CC0} },
+/**/                  {{0X3FEF3320, 0XE3970539} },
+/**/                  {{0XBFC37CCF, 0X0A5279AA} },
+/**/                  {{0XBFD2403F, 0X3B151D5D} },
+/**/                  {{0X3FC20CBB, 0XE331C9E6} },
+/**/                  {{0X3FC0D811, 0X39E3F097} } },
+/**/                 {{{0X3FC4FFF7, 0XAA9382DD} },
+/**/                  {{0X3FC4D07F, 0X8C590A80} },
+/**/                  {{0X3FEF2948, 0X34DF28E0} },
+/**/                  {{0XBFC3E9D8, 0X5B43915C} },
+/**/                  {{0XBFD21BD5, 0XEB8845A2} },
+/**/                  {{0X3FC25FF8, 0XAC6AC8AD} },
+/**/                  {{0X3FC076C6, 0X88ED96CA} } },
+/**/                 {{{0X3FC58006, 0X352408BE} },
+/**/                  {{0X3FC54D1E, 0XC39A73E0} },
+/**/                  {{0X3FEF1F37, 0X09AE009C} },
+/**/                  {{0XBFC4561C, 0XB9BE8550} },
+/**/                  {{0XBFD1F6C0, 0X0053F52E} },
+/**/                  {{0X3FC2B15D, 0XEF783BE9} },
+/**/                  {{0X3FC01456, 0X8615239B} } },
+/**/                 {{{0X3FC5FFFF, 0X2B193F81} },
+/**/                  {{0X3FC5C980, 0X4F73E000} },
+/**/                  {{0X3FEF14F1, 0XAE110E29} },
+/**/                  {{0XBFC4C16E, 0X9098B3D2} },
+/**/                  {{0XBFD1D10F, 0X8F058241} },
+/**/                  {{0X3FC300C6, 0XA14FA897} },
+/**/                  {{0X3FBF61A6, 0XD56607C0} } },
+/**/                 {{{0X3FC68008, 0X4460E6E1} },
+/**/                  {{0X3FC645C8, 0X04A55E20} },
+/**/                  {{0X3FEF0A75, 0X8FA36EC5} },
+/**/                  {{0XBFC52BE9, 0XD62FA883} },
+/**/                  {{0XBFD1AABD, 0X69A74048} },
+/**/                  {{0X3FC34E45, 0X1679EB02} },
+/**/                  {{0X3FBE989E, 0XF7C14C3D} } },
+/**/                 {{{0X3FC6FFFB, 0X9E99A846} },
+/**/                  {{0X3FC6C1D0, 0X4B35FD40} },
+/**/                  {{0X3FEEFFC6, 0X3EF8EF95} },
+/**/                  {{0XBFC5956B, 0X76A2FE63} },
+/**/                  {{0XBFD183D8, 0XDDC78DDF} },
+/**/                  {{0X3FC399BD, 0XAC606D66} },
+/**/                  {{0X3FBDCDBA, 0X070D286A} } },
+/**/                 {{{0X3FC78008, 0X0FFCD490} },
+/**/                  {{0X3FC73DC5, 0XB55758E0} },
+/**/                  {{0X3FEEF4E0, 0X457E2065} },
+/**/                  {{0XBFC5FE16, 0X7D6FF9BC} },
+/**/                  {{0XBFD15C57, 0X9FADD384} },
+/**/                  {{0X3FC3E347, 0X73E52D32} },
+/**/                  {{0X3FBD011C, 0X9A65AE4B} } },
+/**/                 {{{0X3FC80006, 0X148E79C1} },
+/**/                  {{0X3FC7B981, 0X2B7F8CA0} },
+/**/                  {{0X3FEEE9C7, 0X701687ED} },
+/**/                  {{0XBFC665C7, 0X0E1EF36D} },
+/**/                  {{0XBFD13449, 0XCCBCBDAB} },
+/**/                  {{0X3FC42AC7, 0X5C71B3E8} },
+/**/                  {{0X3FBC32EB, 0X3E81980E} } },
+/**/                 {{{0X3FC88006, 0X0F487C17} },
+/**/                  {{0X3FC83511, 0XBC0E3640} },
+/**/                  {{0X3FEEDE7A, 0XD2D55329} },
+/**/                  {{0XBFC6CC87, 0X37E644BA} },
+/**/                  {{0XBFD10BAE, 0X60597557} },
+/**/                  {{0X3FC47043, 0X13E26FBE} },
+/**/                  {{0X3FBB634A, 0X6FB18BF4} } },
+/**/                 {{{0X3FC90004, 0XD3518D76} },
+/**/                  {{0X3FC8B073, 0X8874C100} },
+/**/                  {{0X3FEED2FB, 0X2ED6673B} },
+/**/                  {{0XBFC73251, 0X2A6EBAC3} },
+/**/                  {{0XBFD0E28A, 0X6924232F} },
+/**/                  {{0X3FC4B3B5, 0X73BCC03F} },
+/**/                  {{0X3FBA925E, 0X8C72507F} } },
+/**/                 {{{0X3FC97FFF, 0XD2F20D5C} },
+/**/                  {{0X3FC92BA3, 0X51AF5920} },
+/**/                  {{0X3FEEC749, 0X3D32449F} },
+/**/                  {{0XBFC7971F, 0XC308255F} },
+/**/                  {{0XBFD0B8E2, 0XD572D28F} },
+/**/                  {{0X3FC4F51A, 0X337448FE} },
+/**/                  {{0X3FB9C04B, 0XCFCBC620} } },
+/**/                 {{{0X3FCA0005, 0XBF80F060} },
+/**/                  {{0X3FC9A6AE, 0X6E9E8960} },
+/**/                  {{0X3FEEBB64, 0X1EF200E7} },
+/**/                  {{0XBFC7FAFB, 0X6E96E5C1} },
+/**/                  {{0XBFD08EB6, 0XEC6AD647} },
+/**/                  {{0X3FC53475, 0XF53D0BA6} },
+/**/                  {{0X3FB8ED36, 0X4433C20E} } },
+/**/                 {{{0X3FCA7FF7, 0XDEECA8E4} },
+/**/                  {{0X3FCA2176, 0X948578E0} },
+/**/                  {{0X3FEEAF4F, 0X328FF98B} },
+/**/                  {{0XBFC85DC9, 0X58149B1C} },
+/**/                  {{0XBFD06414, 0XF933A1AB} },
+/**/                  {{0X3FC571B7, 0X60C45A8F} },
+/**/                  {{0X3FB81941, 0XBE58C308} } },
+/**/                 {{{0X3FCAFFFF, 0X7DEFD553} },
+/**/                  {{0X3FCA9C22, 0X9EBA6B80} },
+/**/                  {{0X3FEEA307, 0X10A85E10} },
+/**/                  {{0XBFC8BFA6, 0X7F9DEA61} },
+/**/                  {{0XBFD038F3, 0X5A474E8F} },
+/**/                  {{0X3FC5ACF0, 0X30C225D2} },
+/**/                  {{0X3FB74491, 0XD062812F} } },
+/**/                 {{{0X3FCB7FFE, 0X669932A5} },
+/**/                  {{0X3FCB1694, 0XCFF6DFE0} },
+/**/                  {{0X3FEE968F, 0X1921D387} },
+/**/                  {{0XBFC92078, 0XE075D95A} },
+/**/                  {{0XBFD00D60, 0X526793C4} },
+/**/                  {{0X3FC5E610, 0X73842A52} },
+/**/                  {{0X3FB66F49, 0XC5331D5A} } },
+/**/                 {{{0X3FCBFFF9, 0XB44759F3} },
+/**/                  {{0X3FCB90D1, 0X5073A2A0} },
+/**/                  {{0X3FEE89E7, 0X56598313} },
+/**/                  {{0XBFC98041, 0XCFB9203D} },
+/**/                  {{0XBFCFC2BC, 0XBED91B37} },
+/**/                  {{0X3FC61D19, 0X6D4FC2FC} },
+/**/                  {{0X3FB5998C, 0X9411537E} } },
+/**/                 {{{0X3FCC8007, 0X5568F3EC} },
+/**/                  {{0X3FCC0AEC, 0X4A31DBE0} },
+/**/                  {{0X3FEE7D0E, 0X18F270A8} },
+/**/                  {{0XBFC9DF0E, 0XF522B132} },
+/**/                  {{0XBFCF69D4, 0X2179C242} },
+/**/                  {{0X3FC65213, 0X36646FCD} },
+/**/                  {{0X3FB4C37C, 0XDC699095} } },
+/**/                 {{{0X3FCCFFF8, 0X601A799F} },
+/**/                  {{0X3FCC84B8, 0X49DB66A0} },
+/**/                  {{0X3FEE7008, 0XA0EE780E} },
+/**/                  {{0XBFCA3CBB, 0X3A403934} },
+/**/                  {{0XBFCF102F, 0XD490BE32} },
+/**/                  {{0X3FC684EA, 0X037D4137} },
+/**/                  {{0X3FB3ED3C, 0XD9EC855A} } },
+/**/                 {{{0X3FCD7FF9, 0X7BBF1497} },
+/**/                  {{0X3FCCFE5F, 0X1E008CE0} },
+/**/                  {{0X3FEE62D2, 0XF04615C7} },
+/**/                  {{0XBFCA9965, 0X15AADE2C} },
+/**/                  {{0XBFCEB5B9, 0X0B44B682} },
+/**/                  {{0X3FC6B5AF, 0X92EC8D57} },
+/**/                  {{0X3FB316EE, 0X60D831AE} } },
+/**/                 {{{0X3FCE0008, 0X40209B20} },
+/**/                  {{0X3FCD77DD, 0XB145A760} },
+/**/                  {{0X3FEE556D, 0XBE1DFDF1} },
+/**/                  {{0XBFCAF508, 0X2186AF0F} },
+/**/                  {{0XBFCE5A79, 0X9420489D} },
+/**/                  {{0X3FC6E462, 0X454FEB2C} },
+/**/                  {{0X3FB240B2, 0XD2945A8C} } },
+/**/                 {{{0X3FCE8000, 0XC0AE943C} },
+/**/                  {{0X3FCDF111, 0X3CA10100} },
+/**/                  {{0X3FEE47DD, 0X59E7308B} },
+/**/                  {{0XBFCB4F88, 0X9439F69F} },
+/**/                  {{0XBFCDFE93, 0X798DE600} },
+/**/                  {{0X3FC710F5, 0X8F267389} },
+/**/                  {{0X3FB16AAB, 0X1A8A373E} } },
+/**/                 {{{0X3FCF0003, 0X6D532803} },
+/**/                  {{0X3FCE6A17, 0XCB4E5C80} },
+/**/                  {{0X3FEE3A1E, 0XE3D0F6C2} },
+/**/                  {{0XBFCBA8FB, 0X6E31F768} },
+/**/                  {{0XBFCDA1F7, 0XE6A382E3} },
+/**/                  {{0X3FC73B75, 0XB36AC4C0} },
+/**/                  {{0X3FB094F7, 0XA3470B0A} } },
+/**/                 {{{0X3FCF7FFA, 0X48B8AFC3} },
+/**/                  {{0X3FCEE2DB, 0XE1654560} },
+/**/                  {{0X3FEE2C35, 0X43F2AB37} },
+/**/                  {{0XBFCC014F, 0X598207D6} },
+/**/                  {{0XBFCD44BF, 0X1EFE809A} },
+/**/                  {{0X3FC763DC, 0X698A561E} },
+/**/                  {{0X3FAF7F70, 0XA7CF78A3} } },
+/**/                 {{{0X3FD00002, 0XEB334FAE} },
+/**/                  {{0X3FCF5B7B, 0X77AB25E0} },
+/**/                  {{0X3FEE1E1D, 0X78A5C127} },
+/**/                  {{0XBFCC5898, 0XC555D571} },
+/**/                  {{0XBFCCE6D9, 0XB706CF86} },
+/**/                  {{0X3FC78A35, 0X0823F643} },
+/**/                  {{0X3FADD619, 0X0B9118E8} } },
+/**/                 {{{0X3FD03FFC, 0XA8AF86FE} },
+/**/                  {{0X3FCFD3CB, 0XB53A0C00} },
+/**/                  {{0X3FEE0FDC, 0XFDCBAC8B} },
+/**/                  {{0XBFCCAEB7, 0X6C3246FF} },
+/**/                  {{0XBFCC8870, 0XD6E19AD3} },
+/**/                  {{0X3FC7AE73, 0XD2C48E91} },
+/**/                  {{0X3FAC2E26, 0X0510FDB0} } },
+/**/                 {{{0X3FD07FFC, 0XD38984B7} },
+/**/                  {{0X3FD025F7, 0X5732D4A0} },
+/**/                  {{0X3FEE0170, 0X49C17AB3} },
+/**/                  {{0XBFCD03C2, 0X9AFE5028} },
+/**/                  {{0XBFCC2971, 0X9A2C1833} },
+/**/                  {{0X3FC7D0A5, 0X69041DCF} },
+/**/                  {{0X3FAA87D3, 0XF497C653} } },
+/**/                 {{{0X3FD0BFFF, 0X1ED2ADD7} },
+/**/                  {{0X3FD061ED, 0XCD7F7420} },
+/**/                  {{0X3FEDF2D8, 0XDA96B750} },
+/**/                  {{0XBFCD57B2, 0XC777881E} },
+/**/                  {{0XBFCBC9EA, 0X8692B503} },
+/**/                  {{0X3FC7F0C9, 0X42ABF9E7} },
+/**/                  {{0X3FA8E35E, 0X04B42BB4} } },
+/**/                 {{{0X3FD10003, 0XA8515CDA} },
+/**/                  {{0X3FD09DC9, 0X027416A0} },
+/**/                  {{0X3FEDE417, 0X34899950} },
+/**/                  {{0XBFCDAA86, 0X7983EDE4} },
+/**/                  {{0XBFCB69E3, 0X999706B6} },
+/**/                  {{0X3FC80EE1, 0XB0F126DB} },
+/**/                  {{0X3FA740FE, 0X17EE9BAB} } },
+/**/                 {{{0X3FD14001, 0XF3AF9CC5} },
+/**/                  {{0X3FD0D980, 0XB6E1ABA0} },
+/**/                  {{0X3FEDD52D, 0XE0412681} },
+/**/                  {{0XBFCDFC31, 0X6863B28B} },
+/**/                  {{0XBFCB0971, 0XC55B8D5A} },
+/**/                  {{0X3FC82AED, 0XA6731AAC} },
+/**/                  {{0X3FA5A0EC, 0XC73BD8F0} } },
+/**/                 {{{0X3FD18003, 0XB6122509} },
+/**/                  {{0X3FD1151D, 0XAA1E67A0} },
+/**/                  {{0X3FEDC61B, 0X2E0C1F32} },
+/**/                  {{0XBFCE4CBE, 0XB9BA6B7E} },
+/**/                  {{0XBFCAA88E, 0X90C2431C} },
+/**/                  {{0X3FC844F4, 0X8BCBDA5E} },
+/**/                  {{0X3FA40361, 0X50E585FF} } },
+/**/                 {{{0X3FD1BFFF, 0XA6A2A153} },
+/**/                  {{0X3FD15096, 0XE7A18DC0} },
+/**/                  {{0X3FEDB6E1, 0XE1218F3F} },
+/**/                  {{0XBFCE9C21, 0X9621D6A2} },
+/**/                  {{0XBFCA4750, 0X22627B04} },
+/**/                  {{0X3FC85CF5, 0XFF8B908E} },
+/**/                  {{0X3FA26891, 0X9833C0D6} } },
+/**/                 {{{0X3FD1FFFD, 0X2D345AAF} },
+/**/                  {{0X3FD18BF3, 0X053BF760} },
+/**/                  {{0X3FEDA780, 0XCC3ACB29} },
+/**/                  {{0XBFCEEA62, 0X2AA756AE} },
+/**/                  {{0XBFC9E5B3, 0X47ED9793} },
+/**/                  {{0X3FC872F8, 0X87AB542A} },
+/**/                  {{0X3FA0D0B2, 0X158E9E9A} } },
+/**/                 {{{0X3FD23FFC, 0XF14CF05A} },
+/**/                  {{0X3FD1C732, 0X4D568460} },
+/**/                  {{0X3FED97F8, 0X55F32D3D} },
+/**/                  {{0XBFCF3780, 0X21D457C8} },
+/**/                  {{0XBFC983BE, 0XF065B845} },
+/**/                  {{0X3FC886FF, 0XFBA70CD8} },
+/**/                  {{0X3F9E77EB, 0XAEB85CCC} } },
+/**/                 {{{0X3FD27FFE, 0X0BAE6FC9} },
+/**/                  {{0X3FD20253, 0X9A27C160} },
+/**/                  {{0X3FED8849, 0X4619176E} },
+/**/                  {{0XBFCF8379, 0X5C0AC9EC} },
+/**/                  {{0XBFC9217C, 0X5E645195} },
+/**/                  {{0X3FC8990F, 0XF4264515} },
+/**/                  {{0X3F9B551C, 0XE6B92E65} } },
+/**/                 {{{0X3FD2C001, 0XA297A7DE} },
+/**/                  {{0X3FD23D57, 0XACB927C0} },
+/**/                  {{0X3FED7873, 0XE4958FB6} },
+/**/                  {{0XBFCFCE4E, 0X43572249} },
+/**/                  {{0XBFC8BEF1, 0X9F3560F3} },
+/**/                  {{0X3FC8A92C, 0XDF7F0E5B} },
+/**/                  {{0X3F983958, 0X116F3B19} } },
+/**/                 {{{0X3FD2FFFE, 0X7267616A} },
+/**/                  {{0X3FD27835, 0XB2F378C0} },
+/**/                  {{0X3FED687B, 0X13906586} },
+/**/                  {{0XBFD00BF9, 0XAFDA1A0F} },
+/**/                  {{0XBFC85C34, 0XC197AD7D} },
+/**/                  {{0X3FC8B759, 0X1E99F0A7} },
+/**/                  {{0X3F9524FA, 0X6525C365} } },
+/**/                 {{{0X3FD33FFE, 0X48153B20} },
+/**/                  {{0X3FD2B2F6, 0X6A2FDCC0} },
+/**/                  {{0X3FED585C, 0XF827FBE4} },
+/**/                  {{0XBFD03039, 0XB45A6918} },
+/**/                  {{0XBFC7F93E, 0X5DFC3F72} },
+/**/                  {{0X3FC8C39B, 0XC5210022} },
+/**/                  {{0X3F92185E, 0X168FB62E} } },
+/**/                 {{{0X3FD38003, 0X8122579A} },
+/**/                  {{0X3FD2ED9B, 0XAF6EC1E0} },
+/**/                  {{0X3FED4819, 0X872F20D3} },
+/**/                  {{0XBFD053E8, 0X1F4C1031} },
+/**/                  {{0XBFC79612, 0X621FFD79} },
+/**/                  {{0X3FC8CDF9, 0XDB9D9DFC} },
+/**/                  {{0X3F8E27B4, 0X80C6852F} } },
+/**/                 {{{0X3FD3C003, 0X3EF39141} },
+/**/                  {{0X3FD3281B, 0X4668C700} },
+/**/                  {{0X3FED37B4, 0X18590D1A} },
+/**/                  {{0XBFD076FE, 0XA3EF2560} },
+/**/                  {{0XBFC732C9, 0X3033287A} },
+/**/                  {{0X3FC8D676, 0XCA2E5458} },
+/**/                  {{0X3F882F85, 0XD80944B1} } },
+/**/                 {{{0X3FD40001, 0X63FA0E31} },
+/**/                  {{0X3FD36278, 0X7B565000} },
+/**/                  {{0X3FED272C, 0X47A813DA} },
+/**/                  {{0XBFD0997F, 0X493B9D88} },
+/**/                  {{0XBFC6CF64, 0X3DA9FE3C} },
+/**/                  {{0X3FC8DD18, 0XC1CD3331} },
+/**/                  {{0X3F8248D1, 0XF70F6E07} } },
+/**/                 {{{0X3FD44003, 0X74071092} },
+/**/                  {{0X3FD39CB8, 0X0F0A4000} },
+/**/                  {{0X3FED1681, 0X3BA47A6B} },
+/**/                  {{0XBFD0BB6C, 0XD8788947} },
+/**/                  {{0XBFC66BE2, 0X589596A6} },
+/**/                  {{0X3FC8E1E5, 0XC9B3EC1E} },
+/**/                  {{0X3F78E868, 0XD20FAB86} } },
+/**/                 {{{0X3FD48000, 0XC880F200} },
+/**/                  {{0X3FD3D6D1, 0XDEFFB460} },
+/**/                  {{0X3FED05B5, 0XCADC576C} },
+/**/                  {{0XBFD0DCC2, 0XA1D352C2} },
+/**/                  {{0XBFC60858, 0X3D7D2574} },
+/**/                  {{0X3FC8E4E3, 0X03208BC0} },
+/**/                  {{0X3F6AC909, 0X6379E732} } },
+/**/                 {{{0X3FD4C000, 0X4D97D2CB} },
+/**/                  {{0X3FD410CB, 0XF3A2E220} },
+/**/                  {{0X3FECF4C8, 0XBB7ED511} },
+/**/                  {{0XBFD0FD84, 0X37766A49} },
+/**/                  {{0XBFC5A4C2, 0X5AABC13C} },
+/**/                  {{0X3FC8E616, 0XC80DAC4B} },
+/**/                  {{0X3F4038AA, 0XB04695C2} } },
+/**/                 {{{0X3FD4FFFD, 0X9397539F} },
+/**/                  {{0X3FD44AA2, 0X06A7DEC0} },
+/**/                  {{0X3FECE3BB, 0XCF479DDE} },
+/**/                  {{0XBFD11DAF, 0X4D122984} },
+/**/                  {{0XBFC5412E, 0XB1024DF0} },
+/**/                  {{0X3FC8E587, 0X1B2C560D} },
+/**/                  {{0XBF625DA8, 0X951C088D} } },
+/**/                 {{{0X3FD53FFF, 0XF304715F} },
+/**/                  {{0X3FD4845A, 0X791F3900} },
+/**/                  {{0X3FECD28D, 0XA45E0FD8} },
+/**/                  {{0XBFD13D47, 0X8D61F221} },
+/**/                  {{0XBFC4DD98, 0XD3E9BB99} },
+/**/                  {{0X3FC8E33A, 0X0F181507} },
+/**/                  {{0XBF743C33, 0XD08BD25C} } },
+/**/                 {{{0X3FD58002, 0XE88EA386} },
+/**/                  {{0X3FD4BDF0, 0XF575D6C0} },
+/**/                  {{0X3FECC140, 0X02035609} },
+/**/                  {{0XBFD15C4A, 0XB808071E} },
+/**/                  {{0XBFC47A0E, 0XB2945FCF} },
+/**/                  {{0X3FC8DF35, 0XFC056447} },
+/**/                  {{0XBF7F2011, 0XB00A45CD} } },
+/**/                 {{{0X3FD5BFFD, 0X70F4D590} },
+/**/                  {{0X3FD4F75D, 0X284D7AE0} },
+/**/                  {{0X3FECAFD5, 0XF2DE98B6} },
+/**/                  {{0XBFD17AB4, 0XA2B42F42} },
+/**/                  {{0XBFC416A5, 0X1C285A92} },
+/**/                  {{0X3FC8D982, 0X511D6C5A} },
+/**/                  {{0XBF84ECC1, 0X77008605} } },
+/**/                 {{{0X3FD5FFFD, 0XB70D6E53} },
+/**/                  {{0X3FD530AB, 0X8E2FF500} },
+/**/                  {{0X3FEC9E4C, 0X32D2429D} },
+/**/                  {{0XBFD1988C, 0X35190681} },
+/**/                  {{0XBFC3B34C, 0XBF748319} },
+/**/                  {{0X3FC8D224, 0X98D3A613} },
+/**/                  {{0XBF8A33D4, 0XAA295F9F} } },
+/**/                 {{{0X3FD63FFC, 0X5C7399E2} },
+/**/                  {{0X3FD569D5, 0X4F022E80} },
+/**/                  {{0X3FEC8CA5, 0X58DD180F} },
+/**/                  {{0XBFD1B5CE, 0X1D701DE4} },
+/**/                  {{0XBFC35017, 0XA7806A5A} },
+/**/                  {{0X3FC8C924, 0X56C01CF9} },
+/**/                  {{0XBF8F64D9, 0X942059E1} } },
+/**/                 {{{0X3FD67FFD, 0X9A1AC7D2} },
+/**/                  {{0X3FD5A2DD, 0XF50031E0} },
+/**/                  {{0X3FEC7AE0, 0XCEFF6DEB} },
+/**/                  {{0XBFD1D27C, 0X7C8C245B} },
+/**/                  {{0XBFC2ED05, 0XC6AA933F} },
+/**/                  {{0X3FC8BE87, 0XDDC5CF1F} },
+/**/                  {{0XBF923FB6, 0XD594386F} } },
+/**/                 {{{0X3FD6BFFD, 0X6F7B9353} },
+/**/                  {{0X3FD5DBC1, 0XB4E066C0} },
+/**/                  {{0X3FEC6900, 0X456B591A} },
+/**/                  {{0XBFD1EE95, 0XC2D6D0AA} },
+/**/                  {{0XBFC28A23, 0XB11086F7} },
+/**/                  {{0X3FC8B256, 0XDDE22D5A} },
+/**/                  {{0XBF94C19A, 0X489D85A4} } },
+/**/                 {{{0X3FD6FFFB, 0XF02A83E4} },
+/**/                  {{0X3FD61480, 0X6A237DC0} },
+/**/                  {{0X3FEC5704, 0X4CC81773} },
+/**/                  {{0XBFD20A1A, 0X4B9029CA} },
+/**/                  {{0XBFC22777, 0X89F5FB1C} },
+/**/                  {{0X3FC8A498, 0X9B09E911} },
+/**/                  {{0XBF9737EC, 0X130D419A} } },
+/**/                 {{{0X3FD73FFE, 0X128C213A} },
+/**/                  {{0X3FD64D1E, 0X42499480} },
+/**/                  {{0X3FEC44EC, 0X129C0D30} },
+/**/                  {{0XBFD2250C, 0X83787259} },
+/**/                  {{0XBFC1C4FF, 0XD55BE4FC} },
+/**/                  {{0X3FC89553, 0X36B2D603} },
+/**/                  {{0XBF99A284, 0X2E43DF46} } },
+/**/                 {{{0X3FD77FFB, 0XEA0CDC7A} },
+/**/                  {{0X3FD68594, 0X05B0E220} },
+/**/                  {{0X3FEC32BA, 0X687132C0} },
+/**/                  {{0XBFD23F69, 0X7273497E} },
+/**/                  {{0XBFC162CE, 0XCD39B037} },
+/**/                  {{0X3FC8848F, 0XFA930AAF} },
+/**/                  {{0XBF9C013D, 0XA4554412} } },
+/**/                 {{{0X3FD7C003, 0XF18EDAB8} },
+/**/                  {{0X3FD6BDEE, 0X4127BEE0} },
+/**/                  {{0X3FEC206B, 0XC01607BD} },
+/**/                  {{0XBFD25937, 0X5FEE2F42} },
+/**/                  {{0XBFC100D4, 0X307761E1} },
+/**/                  {{0X3FC87252, 0X5DFEC556} },
+/**/                  {{0XBF9E53F6, 0X7958F973} } },
+/**/                 {{{0X3FD7FFFD, 0X41F35C4C} },
+/**/                  {{0X3FD6F616, 0XDA6607A0} },
+/**/                  {{0X3FEC0E07, 0XCDDC8437} },
+/**/                  {{0XBFD2726C, 0XBFB4DAEA} },
+/**/                  {{0XBFC09F3B, 0XE0DB1472} },
+/**/                  {{0X3FC85EA9, 0X2A95AA1B} },
+/**/                  {{0XBFA04D47, 0XD872CFA2} } },
+/**/                 {{{0X3FD84003, 0X26C7C46B} },
+/**/                  {{0X3FD72E25, 0X96B8BE00} },
+/**/                  {{0X3FEBFB87, 0X4CDEDF38} },
+/**/                  {{0XBFD28B14, 0XD09404F3} },
+/**/                  {{0XBFC03DE1, 0XE7FB61F2} },
+/**/                  {{0X3FC84993, 0XACB33BE9} },
+/**/                  {{0XBFA16A76, 0X9B1DE607} } },
+/**/                 {{{0X3FD88003, 0XCA90B179} },
+/**/                  {{0X3FD7660A, 0XA104A220} },
+/**/                  {{0X3FEBE8EF, 0XF236E2F6} },
+/**/                  {{0XBFD2A329, 0X19A94DDF} },
+/**/                  {{0XBFBFB9CE, 0X0856A081} },
+/**/                  {{0X3FC8331F, 0X33F70280} },
+/**/                  {{0XBFA2817A, 0XF01308CC} } },
+/**/                 {{{0X3FD8C003, 0XE9692FD5} },
+/**/                  {{0X3FD79DC9, 0XF0B2CB00} },
+/**/                  {{0X3FEBD640, 0XF2966495} },
+/**/                  {{0XBFD2BAAB, 0XFD6EC2EA} },
+/**/                  {{0XBFBEF892, 0XE08E9C2D} },
+/**/                  {{0X3FC81B52, 0X031873E3} },
+/**/                  {{0XBFA39249, 0XAC12113D} } },
+/**/                 {{{0X3FD8FFFE, 0X35BE5C5F} },
+/**/                  {{0X3FD7D55E, 0XBDCCDFC0} },
+/**/                  {{0X3FEBC37C, 0X6EABCF77} },
+/**/                  {{0XBFD2D19C, 0X2D74F445} },
+/**/                  {{0XBFBE382C, 0XE63F2CDB} },
+/**/                  {{0X3FC80236, 0X0E6FE2AE} },
+/**/                  {{0XBFA49CD9, 0X0E66AB41} } },
+/**/                 {{{0X3FD94002, 0XAA8974CD} },
+/**/                  {{0X3FD80CD6, 0XB8AFD880} },
+/**/                  {{0X3FEBB09E, 0X4468CCBA} },
+/**/                  {{0XBFD2E7FF, 0XEC84E686} },
+/**/                  {{0XBFBD7876, 0X88C659E8} },
+/**/                  {{0X3FC7E7CC, 0XC2F15460} },
+/**/                  {{0XBFA5A120, 0XB410D3ED} } },
+/**/                 {{{0X3FD98002, 0XE08EFDEA} },
+/**/                  {{0X3FD84425, 0X34856920} },
+/**/                  {{0X3FEB9DAB, 0X3F290478} },
+/**/                  {{0XBFD2FDD2, 0XBB81EDEF} },
+/**/                  {{0XBFBCB9A5, 0X31E68398} },
+/**/                  {{0X3FC7CC23, 0XC2DBB11B} },
+/**/                  {{0XBFA69F19, 0X98467E78} } },
+/**/                 {{{0X3FD9C002, 0X75294B6B} },
+/**/                  {{0X3FD87B4D, 0X299F6200} },
+/**/                  {{0X3FEB8AA2, 0XDE96CF1F} },
+/**/                  {{0XBFD31316, 0X8C4D45D2} },
+/**/                  {{0XBFBBFBB7, 0XEDCE4DBA} },
+/**/                  {{0X3FC7AF41, 0X8907FEC9} },
+/**/                  {{0XBFA796BE, 0X07419F55} } },
+/**/                 {{{0X3FDA0002, 0XF3E490EC} },
+/**/                  {{0X3FD8B24F, 0XC21A4500} },
+/**/                  {{0X3FEB7785, 0X3B5EF7DD} },
+/**/                  {{0XBFD327CC, 0X8EAE70CD} },
+/**/                  {{0XBFBB3EB3, 0XD49E40DA} },
+/**/                  {{0X3FC7912D, 0X4D93F7EA} },
+/**/                  {{0XBFA88809, 0X9E21606A} } },
+/**/                 {{{0X3FDA3FFF, 0X458461B6} },
+/**/                  {{0X3FD8E928, 0X7754D2C0} },
+/**/                  {{0X3FEB6454, 0X6A0DAF0E} },
+/**/                  {{0XBFD33BF3, 0XDC2A9A3F} },
+/**/                  {{0XBFBA82B1, 0X4917D003} },
+/**/                  {{0X3FC771F1, 0X7C7566CF} },
+/**/                  {{0XBFA972F9, 0X3D700DD8} } },
+/**/                 {{{0X3FDA8002, 0X87E12AAE} },
+/**/                  {{0X3FD91FE0, 0XA5DFD000} },
+/**/                  {{0X3FEB510D, 0XA0D82E05} },
+/**/                  {{0XBFD34F90, 0XA76AD312} },
+/**/                  {{0XBFB9C798, 0XDEEC35AD} },
+/**/                  {{0X3FC75190, 0X8A0EF43E} },
+/**/                  {{0XBFAA578B, 0X0872EFC8} } },
+/**/                 {{{0X3FDAC001, 0X49A86C84} },
+/**/                  {{0X3FD9566E, 0X5C4516E0} },
+/**/                  {{0X3FEB3DB4, 0XDD03F6B6} },
+/**/                  {{0XBFD362A0, 0X291C1F82} },
+/**/                  {{0XBFB90D95, 0X03F6DF60} },
+/**/                  {{0X3FC73018, 0X25091E92} },
+/**/                  {{0XBFAB35BE, 0X577A022B} } },
+/**/                 {{{0X3FDAFFFF, 0X2F4CC2E1} },
+/**/                  {{0X3FD98CD4, 0X94226540} },
+/**/                  {{0X3FEB2A49, 0X9297200A} },
+/**/                  {{0XBFD37524, 0X5153FD01} },
+/**/                  {{0XBFB854A3, 0XAE3DE27E} },
+/**/                  {{0X3FC70D8E, 0X7EB3F331} },
+/**/                  {{0XBFAC0D93, 0XB6AD570E} } },
+/**/                 {{{0X3FDB4000, 0XC2F3711E} },
+/**/                  {{0X3FD9C317, 0X01CDC4C0} },
+/**/                  {{0X3FEB16CA, 0XEA63781B} },
+/**/                  {{0XBFD3871F, 0X3665B649} },
+/**/                  {{0XBFB79CC0, 0X3F70FBC6} },
+/**/                  {{0X3FC6E9F9, 0X061DFC2E} },
+/**/                  {{0XBFACDF0C, 0XD837F9C3} } },
+/**/                 {{{0X3FDB8000, 0XA777E180} },
+/**/                  {{0X3FD9F930, 0XF3748F20} },
+/**/                  {{0X3FEB033B, 0X0FB0162A} },
+/**/                  {{0XBFD39890, 0X25978CAB} },
+/**/                  {{0XBFB6E602, 0X5C765AAB} },
+/**/                  {{0X3FC6C562, 0X9C16D678} },
+/**/                  {{0XBFADAA2C, 0X92A16EBF} } },
+/**/                 {{{0X3FDBBFFD, 0X087E14ED} },
+/**/                  {{0X3FDA2F20, 0XBF0DDB00} },
+/**/                  {{0X3FEAEF9B, 0X1CCE6E94} },
+/**/                  {{0XBFD3A977, 0X8B73E3C3} },
+/**/                  {{0XBFB63077, 0X09EFD1CC} },
+/**/                  {{0X3FC69FD4, 0X58408D3A} },
+/**/                  {{0XBFAE6EF6, 0XD2E48013} } },
+/**/                 {{{0X3FDC0000, 0XF0086783} },
+/**/                  {{0X3FDA64EF, 0X8D448080} },
+/**/                  {{0X3FEADBE8, 0X35990B5A} },
+/**/                  {{0XBFD3B9D9, 0X27241B86} },
+/**/                  {{0XBFB57C06, 0XC20E4001} },
+/**/                  {{0X3FC6794F, 0X90E6C8AB} },
+/**/                  {{0XBFAF2D70, 0X9A630A27} } },
+/**/                 {{{0X3FDC4001, 0X863E58F8} },
+/**/                  {{0X3FDA9A94, 0X1C3A1BA0} },
+/**/                  {{0X3FEAC826, 0X35ED7DD2} },
+/**/                  {{0XBFD3C9B3, 0X0C075B50} },
+/**/                  {{0XBFB4C8D7, 0XA429793C} },
+/**/                  {{0X3FC651E2, 0X95903C22} },
+/**/                  {{0XBFAFE59F, 0XF0F8B649} } },
+/**/                 {{{0X3FDC7FFC, 0X6C62C3BF} },
+/**/                  {{0X3FDAD00C, 0X580A5840} },
+/**/                  {{0X3FEAB456, 0X62D1D808} },
+/**/                  {{0XBFD3D905, 0XACBB06EC} },
+/**/                  {{0XBFB416F7, 0X421E42DC} },
+/**/                  {{0X3FC62996, 0XE5608EFD} },
+/**/                  {{0XBFB04BC5, 0XF14B649A} } },
+/**/                 {{{0X3FDCC002, 0X34B2A209} },
+/**/                  {{0X3FDB0565, 0XF68F3B40} },
+/**/                  {{0X3FEAA074, 0X1E3DC946} },
+/**/                  {{0XBFD3E7D5, 0XE2DB674E} },
+/**/                  {{0XBFB3663E, 0XA4833FFE} },
+/**/                  {{0X3FC60069, 0XC4F0392B} },
+/**/                  {{0XBFB0A19E, 0X38B10201} } },
+/**/                 {{{0X3FDCFFFC, 0XAAC5F9F9} },
+/**/                  {{0X3FDB3A8E, 0X59C45CC0} },
+/**/                  {{0X3FEA8C86, 0XD2389C24} },
+/**/                  {{0XBFD3F61F, 0X8362B2CB} },
+/**/                  {{0XBFB2B6F1, 0XC6C746A6} },
+/**/                  {{0X3FC5D671, 0X426D2946} },
+/**/                  {{0XBFB0F45D, 0X4981CE75} } },
+/**/                 {{{0X3FDD4004, 0X0D800C64} },
+/**/                  {{0X3FDB6F99, 0X88AF6580} },
+/**/                  {{0X3FEA7887, 0X7498CED2} },
+/**/                  {{0XBFD403E8, 0XEF8975C0} },
+/**/                  {{0XBFB208D4, 0XBEA81E2B} },
+/**/                  {{0X3FC5ABA5, 0X283FFA4E} },
+/**/                  {{0XBFB14408, 0X11705130} } },
+/**/                 {{{0X3FDD7FFE, 0XB0E64500} },
+/**/                  {{0X3FDBA472, 0X2324E140} },
+/**/                  {{0X3FEA647E, 0X8C5AD680} },
+/**/                  {{0XBFD4112D, 0XA03F042D} },
+/**/                  {{0XBFB15C33, 0X9580389C} },
+/**/                  {{0X3FC5801E, 0X49D9889E} },
+/**/                  {{0XBFB190A3, 0XEF96554F} } },
+/**/                 {{{0X3FDDBFFE, 0X2DFCF4EB} },
+/**/                  {{0X3FDBD926, 0X9F1D27A0} },
+/**/                  {{0X3FEA5067, 0X1AC286CA} },
+/**/                  {{0XBFD41DF2, 0X590A4DE1} },
+/**/                  {{0XBFB0B0E4, 0X8BD1EFA5} },
+/**/                  {{0X3FC553D8, 0X702506D0} },
+/**/                  {{0XBFB1DA36, 0XADA415A6} } },
+/**/                 {{{0X3FDDFFFD, 0X8A34BBC2} },
+/**/                  {{0X3FDC0DB2, 0XC4F7A2C0} },
+/**/                  {{0X3FEA3C43, 0X2EF70BB3} },
+/**/                  {{0XBFD42A37, 0X16EE647C} },
+/**/                  {{0XBFB006FA, 0XDB6270BB} },
+/**/                  {{0X3FC526DE, 0X86F08DE6} },
+/**/                  {{0XBFB220C6, 0X7E5061FB} } },
+/**/                 {{{0X3FDE3FFD, 0XD26415C0} },
+/**/                  {{0X3FDC4217, 0X58282940} },
+/**/                  {{0X3FEA2812, 0XF391DDCB} },
+/**/                  {{0XBFD435FD, 0X18EDDF0A} },
+/**/                  {{0XBFAEBCF2, 0X88A589AF} },
+/**/                  {{0X3FC4F937, 0X4CF96163} },
+/**/                  {{0XBFB26459, 0XF6A18481} } },
+/**/                 {{{0X3FDE7FFF, 0X37F72672} },
+/**/                  {{0X3FDC7654, 0X67AA3DC0} },
+/**/                  {{0X3FEA13D6, 0XD6CE86B3} },
+/**/                  {{0XBFD44145, 0X74037E91} },
+/**/                  {{0XBFAD6EC9, 0X3B2CC445} },
+/**/                  {{0X3FC4CAEA, 0X0564F101} },
+/**/                  {{0XBFB2A4F8, 0X0C49CD64} } },
+/**/                 {{{0X3FDEBFFD, 0XA11BC00F} },
+/**/                  {{0X3FDCAA66, 0X85E23660} },
+/**/                  {{0X3FE9FF90, 0XA25C2396} },
+/**/                  {{0XBFD44C10, 0X8A64724F} },
+/**/                  {{0XBFAC2399, 0X2F871E82} },
+/**/                  {{0X3FC49C01, 0X0AFBFB85} },
+/**/                  {{0XBFB2E2A8, 0X0F0FF3FE} } },
+/**/                 {{{0X3FDEFFFF, 0X3313756D} },
+/**/                  {{0X3FDCDE52, 0X9D30CC20} },
+/**/                  {{0X3FE9EB3E, 0XDFF9491F} },
+/**/                  {{0XBFD45660, 0X7E6ABAAE} },
+/**/                  {{0XBFAADB4C, 0X3E8AA98D} },
+/**/                  {{0X3FC46C7F, 0X25D8FF7D} },
+/**/                  {{0XBFB31D71, 0XA71D448D} } },
+/**/                 {{{0X3FDF4001, 0X914B856E} },
+/**/                  {{0X3FDD1216, 0XAAC1BB20} },
+/**/                  {{0X3FE9D6E2, 0XC9BC4315} },
+/**/                  {{0XBFD46036, 0X004E7E91} },
+/**/                  {{0XBFA995F7, 0XFB901F89} },
+/**/                  {{0X3FC43C6D, 0X3F5BE04A} },
+/**/                  {{0XBFB3555C, 0XCE8ABF92} } },
+/**/                 {{{0X3FDF8003, 0XCD144428} },
+/**/                  {{0X3FDD45B1, 0XD93E9640} },
+/**/                  {{0X3FE9C27D, 0X256FDFEB} },
+/**/                  {{0XBFD46992, 0X09F7C145} },
+/**/                  {{0XBFA853A9, 0XED521174} },
+/**/                  {{0X3FC40BD3, 0X2B27751F} },
+/**/                  {{0XBFB38A71, 0XCFA5C5F2} } },
+/**/                 {{{0X3FDFC002, 0X00545BD9} },
+/**/                  {{0X3FDD7920, 0XF536D960} },
+/**/                  {{0X3FE9AE0F, 0XAAE99EA5} },
+/**/                  {{0XBFD47275, 0X38DD66F4} },
+/**/                  {{0XBFA7147D, 0XB5484F74} },
+/**/                  {{0X3FC3DABA, 0XF8EFC373} },
+/**/                  {{0XBFB3BCB9, 0X3EA6B864} } },
+/**/                 {{{0X3FDFFFFB, 0XDA6F2AA8} },
+/**/                  {{0X3FDDAC63, 0XB420FAA0} },
+/**/                  {{0X3FE9999A, 0XED4D0CAB} },
+/**/                  {{0XBFD47AE0, 0XBFCC6072} },
+/**/                  {{0XBFA5D87C, 0X25BF7A4A} },
+/**/                  {{0X3FC3A92B, 0XF5999EE5} },
+/**/                  {{0XBFB3EC3B, 0XF7F09D08} } },
+/**/                 {{{0X3FE01FFF, 0XA65118C8} },
+/**/                  {{0X3FDDDF85, 0X2BF70C00} },
+/**/                  {{0X3FE9851A, 0XECD72AE5} },
+/**/                  {{0XBFD482D7, 0X8F5794C5} },
+/**/                  {{0XBFA49F68, 0X2E4A020B} },
+/**/                  {{0X3FC37722, 0X25A156DA} },
+/**/                  {{0XBFB41903, 0X19F58064} } },
+/**/                 {{{0X3FE04001, 0X9C0B0556} },
+/**/                  {{0X3FDE127D, 0XFA2BA200} },
+/**/                  {{0X3FE97093, 0X08C17A55} },
+/**/                  {{0XBFD48A59, 0X957A7EFD} },
+/**/                  {{0XBFA36976, 0X2648F2BB} },
+/**/                  {{0X3FC344AB, 0X592569B1} },
+/**/                  {{0XBFB44318, 0X03752DDB} } },
+/**/                 {{{0X3FE05FFF, 0XC24501DB} },
+/**/                  {{0X3FDE4547, 0XA495BCC0} },
+/**/                  {{0X3FE95C06, 0X4F225B79} },
+/**/                  {{0XBFD49167, 0X2163F5B8} },
+/**/                  {{0XBFA236D3, 0X4B79B89F} },
+/**/                  {{0X3FC311D4, 0XB530B7BE} },
+/**/                  {{0XBFB46A84, 0X4D931476} } },
+/**/                 {{{0X3FE07FFE, 0X865125FC} },
+/**/                  {{0X3FDE77E9, 0X2A5FAD60} },
+/**/                  {{0X3FE94772, 0X5C13B0EA} },
+/**/                  {{0XBFD49802, 0X6F33ABCA} },
+/**/                  {{0XBFA1075A, 0XDE947C6B} },
+/**/                  {{0X3FC2DE9D, 0XD8D5E01B} },
+/**/                  {{0XBFB48F51, 0XCA17CA60} } },
+/**/                 {{{0X3FE0A002, 0X107EAC25} },
+/**/                  {{0X3FDEAA69, 0X08243180} },
+/**/                  {{0X3FE932D4, 0XF339824B} },
+/**/                  {{0XBFD49E2D, 0X7145F475} },
+/**/                  {{0XBF9FB5D8, 0X00571424} },
+/**/                  {{0X3FC2AB06, 0X85D1CF84} },
+/**/                  {{0XBFB4B18A, 0X7DBBBABE} } },
+/**/                 {{{0X3FE0BFFF, 0X7376E5D4} },
+/**/                  {{0X3FDEDCB5, 0XF79FF560} },
+/**/                  {{0X3FE91E35, 0X8EE1B492} },
+/**/                  {{0XBFD4A3E7, 0X49498453} },
+/**/                  {{0XBF9D63E4, 0XBE685C6F} },
+/**/                  {{0X3FC27726, 0XC4B1F032} },
+/**/                  {{0XBFB4D138, 0X9E6ECC3A} } },
+/**/                 {{{0X3FE0DFFE, 0X1715EE2E} },
+/**/                  {{0X3FDF0EDB, 0X9BE1BB80} },
+/**/                  {{0X3FE9098F, 0XD993BD60} },
+/**/                  {{0XBFD4A932, 0X9B84E907} },
+/**/                  {{0XBF9B185A, 0XE07DBA5E} },
+/**/                  {{0X3FC242F8, 0XF2D7A804} },
+/**/                  {{0XBFB4EE66, 0X8DDAA340} } },
+/**/                 {{{0X3FE10001, 0X7F3D776C} },
+/**/                  {{0X3FDF40DF, 0X6119E100} },
+/**/                  {{0X3FE8F4E1, 0XFB44BCFB} },
+/**/                  {{0XBFD4AE11, 0X16E3467E} },
+/**/                  {{0XBF98D304, 0XCF368422} },
+/**/                  {{0X3FC20E7D, 0X736708AE} },
+/**/                  {{0XBFB5091E, 0XD7B3658D} } },
+/**/                 {{{0X3FE11FFE, 0XFD8C7B65} },
+/**/                  {{0X3FDF72B0, 0X8FD21560} },
+/**/                  {{0X3FE8E033, 0X4770FB0A} },
+/**/                  {{0XBFD4B282, 0X5C0F6783} },
+/**/                  {{0XBF9694AC, 0X7FFE0364} },
+/**/                  {{0X3FC1D9CB, 0XE529BF4C} },
+/**/                  {{0XBFB5216C, 0X2C73E5F0} } },
+/**/                 {{{0X3FE14000, 0XAFA3EE71} },
+/**/                  {{0X3FDFA45E, 0XE3324D60} },
+/**/                  {{0X3FE8CB7D, 0X9FF684DF} },
+/**/                  {{0XBFD4B689, 0X17ADD34D} },
+/**/                  {{0XBF945CA3, 0X67276E70} },
+/**/                  {{0X3FC1A4D9, 0XA1FBF3B1} },
+/**/                  {{0XBFB53759, 0X5FBA2374} } },
+/**/                 {{{0X3FE15FFF, 0X73336187} },
+/**/                  {{0X3FDFD5DF, 0X3DE48D00} },
+/**/                  {{0X3FE8B6C6, 0X0CBE3546} },
+/**/                  {{0XBFD4BA25, 0X9B291BCB} },
+/**/                  {{0XBF922B6F, 0X5FB712CC} },
+/**/                  {{0X3FC16FB8, 0X55E28B0B} },
+/**/                  {{0XBFB54AF1, 0X633F423C} } },
+/**/                 {{{0X3FE17FFF, 0X6C447B82} },
+/**/                  {{0X3FE0039C, 0X0208ECC0} },
+/**/                  {{0X3FE8A20A, 0X48F15926} },
+/**/                  {{0XBFD4BD59, 0XA5808AC3} },
+/**/                  {{0XBF9000CD, 0X5EEF6F2A} },
+/**/                  {{0X3FC13A66, 0XEBE54AA7} },
+/**/                  {{0XBFB55C3F, 0X45420CE4} } },
+/**/                 {{{0X3FE19FFF, 0XAE932B61} },
+/**/                  {{0X3FE01C33, 0XE0091BC0} },
+/**/                  {{0X3FE88D4B, 0X55664E00} },
+/**/                  {{0XBFD4C026, 0X579F5ABB} },
+/**/                  {{0XBF8BB9A6, 0X8797C32A} },
+/**/                  {{0X3FC104EC, 0X95D4F64E} },
+/**/                  {{0XBFB56B4E, 0X2BBC325E} } },
+/**/                 {{{0X3FE1BFFF, 0XBA12AE50} },
+/**/                  {{0X3FE034B6, 0XD3ABA020} },
+/**/                  {{0X3FE87889, 0XEBDCCF04} },
+/**/                  {{0XBFD4C28C, 0XE6D463C1} },
+/**/                  {{0XBF877F1C, 0XB36211FC} },
+/**/                  {{0X3FC0CF4F, 0XB90B11E7} },
+/**/                  {{0XBFB57829, 0X52DCBE1A} } },
+/**/                 {{{0X3FE1E001, 0X4B459E41} },
+/**/                  {{0X3FE04D26, 0X2DC05800} },
+/**/                  {{0X3FE863C5, 0X51625B6A} },
+/**/                  {{0XBFD4C48E, 0XAFFDD399} },
+/**/                  {{0XBF8351CB, 0X603059CA} },
+/**/                  {{0X3FC09992, 0XDE65D0D9} },
+/**/                  {{0XBFB582DC, 0X087BB367} } },
+/**/                 {{{0X3FE20000, 0X32306F33} },
+/**/                  {{0X3FE0657E, 0XBAFB6CE0} },
+/**/                  {{0X3FE84F00, 0XA1E2EEC3} },
+/**/                  {{0XBFD4C62C, 0XB79EC8C6} },
+/**/                  {{0XBF7E6488, 0XD95DE8D1} },
+/**/                  {{0X3FC063C2, 0X661DF241} },
+/**/                  {{0XBFB58B71, 0XAAA63BAD} } },
+/**/                 {{{0X3FE22000, 0XD30A486C} },
+/**/                  {{0X3FE07DC3, 0XD2165080} },
+/**/                  {{0X3FE83A39, 0X66B3E5BF} },
+/**/                  {{0XBFD4C768, 0X7DE04DEE} },
+/**/                  {{0XBF763FF7, 0X800F052F} },
+/**/                  {{0X3FC02DDC, 0X28F35EDD} },
+/**/                  {{0XBFB591F5, 0XA351CF91} } },
+/**/                 {{{0X3FE23FFE, 0X215E03FC} },
+/**/                  {{0X3FE095F1, 0X9F380A00} },
+/**/                  {{0X3FE82573, 0X48BE5F3F} },
+/**/                  {{0XBFD4C843, 0X1B793F77} },
+/**/                  {{0XBF6C6E63, 0X625993B8} },
+/**/                  {{0X3FBFEFDB, 0X8C5E4B3B} },
+/**/                  {{0XBFB59673, 0X66FE9CA7} } },
+/**/                 {{{0X3FE26000, 0X6833D65D} },
+/**/                  {{0X3FE0AE0E, 0X6496A8C0} },
+/**/                  {{0X3FE810A9, 0X45B44AA3} },
+/**/                  {{0XBFD4C8BE, 0X055B407A} },
+/**/                  {{0XBF5920A7, 0XAE83F0A4} },
+/**/                  {{0X3FBF83DC, 0X860A6A5E} },
+/**/                  {{0XBFB598F6, 0X70D98EE7} } },
+/**/                 {{{0X3FE28000, 0XE82D4D50} },
+/**/                  {{0X3FE0C615, 0X095F5300} },
+/**/                  {{0X3FE7FBE0, 0X1E9337B7} },
+/**/                  {{0XBFD4C8DA, 0X573C6F6A} },
+/**/                  {{0X3F38B6C7, 0XC50F565D} },
+/**/                  {{0X3FBF17DB, 0XC9C4B6CA} },
+/**/                  {{0XBFB5998A, 0X45D6DAE0} } },
+/**/                 {{{0X3FE29FFF, 0X203B6A0B} },
+/**/                  {{0X3FE0DE05, 0X30852720} },
+/**/                  {{0X3FE7E718, 0X8520538D} },
+/**/                  {{0XBFD4C899, 0X668C6963} },
+/**/                  {{0X3F6286EC, 0XBECA8AB0} },
+/**/                  {{0X3FBEABE4, 0X9B6AC5BD} },
+/**/                  {{0XBFB5983A, 0X575A9684} } },
+/**/                 {{{0X3FE2C001, 0XE91A9D93} },
+/**/                  {{0X3FE0F5E3, 0XF7817A20} },
+/**/                  {{0X3FE7D24E, 0X63A45D97} },
+/**/                  {{0XBFD4C7FC, 0X5F83C46D} },
+/**/                  {{0X3F70E199, 0X5D9C800A} },
+/**/                  {{0X3FBE3FE9, 0X3721A8E0} },
+/**/                  {{0XBFB59512, 0X377DA840} } },
+/**/                 {{{0X3FE2DFFF, 0XC6FB4948} },
+/**/                  {{0X3FE10DAA, 0X4CE36040} },
+/**/                  {{0X3FE7BD88, 0X3E39011F} },
+/**/                  {{0XBFD4C704, 0XB5EAE11F} },
+/**/                  {{0X3F786398, 0X192C622B} },
+/**/                  {{0X3FBDD412, 0XB62BA357} },
+/**/                  {{0XBFB5901D, 0X5F0E020E} } },
+/**/                 {{{0X3FE2FFFF, 0X39CB4EED} },
+/**/                  {{0X3FE1255D, 0X0970AD60} },
+/**/                  {{0X3FE7A8C2, 0X365B7A9B} },
+/**/                  {{0XBFD4C5B3, 0X8925F532} },
+/**/                  {{0X3F7FCB03, 0X785E3070} },
+/**/                  {{0X3FBD6854, 0X0EEDF3B3} },
+/**/                  {{0XBFB58967, 0X479C252A} } },
+/**/                 {{{0X3FE31FFE, 0X002E31CB} },
+/**/                  {{0X3FE13CFA, 0X81FD3780} },
+/**/                  {{0X3FE793FE, 0X1BBE9667} },
+/**/                  {{0XBFD4C40A, 0X3046F4C7} },
+/**/                  {{0X3F838BAE, 0X8F5E6BF1} },
+/**/                  {{0X3FBCFCBD, 0X83775C98} },
+/**/                  {{0XBFB580FB, 0X62E887AB} } },
+/**/                 {{{0X3FE34000, 0XEDC7BFFD} },
+/**/                  {{0X3FE15486, 0X44D05200} },
+/**/                  {{0X3FE77F39, 0X244A1DA5} },
+/**/                  {{0XBFD4C209, 0X9FB764C1} },
+/**/                  {{0X3F8724E2, 0X851B0BE5} },
+/**/                  {{0X3FBC9147, 0X507C76E0} },
+/**/                  {{0XBFB576E5, 0X19C7F0AB} } },
+/**/                 {{{0X3FE36001, 0XCE042830} },
+/**/                  {{0X3FE16BFB, 0XC1656AE0} },
+/**/                  {{0X3FE76A77, 0XAD3B2B77} },
+/**/                  {{0XBFD4BFB3, 0X74AAC296} },
+/**/                  {{0X3F8AB070, 0X05B229C2} },
+/**/                  {{0X3FBC260E, 0X87DCA54B} },
+/**/                  {{0XBFB56B2F, 0XC90DF763} } },
+/**/                 {{{0X3FE37FFE, 0X89B8FC54} },
+/**/                  {{0X3FE18359, 0X77D0BA80} },
+/**/                  {{0X3FE755BB, 0X660CAA3D} },
+/**/                  {{0XBFD4BD09, 0X308BB975} },
+/**/                  {{0X3F8E2E26, 0XFE0A1240} },
+/**/                  {{0X3FBBBB22, 0X18790F26} },
+/**/                  {{0XBFB55DE6, 0XC094F3DA} } },
+/**/                 {{{0X3FE3A001, 0X9B4DA842} },
+/**/                  {{0X3FE19AA7, 0X100CD140} },
+/**/                  {{0X3FE740FD, 0XD801F889} },
+/**/                  {{0XBFD4BA0B, 0X2C32C656} },
+/**/                  {{0X3F90CF99, 0X8ECA44A2} },
+/**/                  {{0X3FBB5066, 0XC9863443} },
+/**/                  {{0XBFB54F15, 0X406672B5} } },
+/**/                 {{{0X3FE3C000, 0XCE6B63E8} },
+/**/                  {{0X3FE1B1DD, 0X1D0B0AE0} },
+/**/                  {{0X3FE72C45, 0XF28670E6} },
+/**/                  {{0XBFD4B6BB, 0X92422E2E} },
+/**/                  {{0X3F928141, 0XA0D32146} },
+/**/                  {{0X3FBAE606, 0X37452321} },
+/**/                  {{0XBFB53EC6, 0X77D91F56} } },
+/**/                 {{{0X3FE3DFFF, 0X114A2607} },
+/**/                  {{0X3FE1C8FD, 0XC6FF6F20} },
+/**/                  {{0X3FE71792, 0X206847A7} },
+/**/                  {{0XBFD4B31B, 0X669BD306} },
+/**/                  {{0X3F942C3A, 0X04FFD28A} },
+/**/                  {{0X3FBA7BFD, 0XE7FC0825} },
+/**/                  {{0XBFB52D05, 0X82F471BA} } },
+/**/                 {{{0X3FE3FFFF, 0XC1DA9B7D} },
+/**/                  {{0X3FE1E00B, 0X7F2E8840} },
+/**/                  {{0X3FE702E0, 0X84371133} },
+/**/                  {{0XBFD4AF2B, 0X8012FBE4} },
+/**/                  {{0X3F95D0B4, 0XBFC47F4B} },
+/**/                  {{0X3FBA1249, 0XD80AB6C5} },
+/**/                  {{0XBFB519DD, 0X69A4108D} } },
+/**/                 {{{0X3FE41FFE, 0XE11D9C33} },
+/**/                  {{0X3FE1F703, 0X67C3EC20} },
+/**/                  {{0X3FE6EE34, 0X026A76A0} },
+/**/                  {{0XBFD4AAED, 0X96514B12} },
+/**/                  {{0X3F976E83, 0X07BA2905} },
+/**/                  {{0X3FB9A8FE, 0X261A1221} },
+/**/                  {{0XBFB50559, 0X1D552BA0} } },
+/**/                 {{{0X3FE43FFF, 0XFA174676} },
+/**/                  {{0X3FE20DE8, 0X0FAFF860} },
+/**/                  {{0X3FE6D98A, 0X9EA6D162} },
+/**/                  {{0XBFD4A662, 0X6B927B3B} },
+/**/                  {{0X3F9905D8, 0XF84ADBB0} },
+/**/                  {{0X3FB94015, 0XDD484DB5} },
+/**/                  {{0XBFB4EF83, 0X783EEF44} } },
+/**/                 {{{0X3FE45FFF, 0X0D457FA4} },
+/**/                  {{0X3FE224B6, 0X9F675300} },
+/**/                  {{0X3FE6C4E7, 0X3A093351} },
+/**/                  {{0XBFD4A18B, 0XCBF2BFF8} },
+/**/                  {{0X3F9A968A, 0X84BB8C16} },
+/**/                  {{0X3FB8D7A4, 0X93FBB975} },
+/**/                  {{0XBFB4D867, 0X3B37E4FB} } },
+/**/                 {{{0X3FE47FFE, 0X8F910E57} },
+/**/                  {{0X3FE23B70, 0XDD92B840} },
+/**/                  {{0X3FE6B048, 0X89B04359} },
+/**/                  {{0XBFD49C6A, 0X974B07FF} },
+/**/                  {{0X3F9C20BE, 0X25F20251} },
+/**/                  {{0X3FB86FA8, 0X82E9673D} },
+/**/                  {{0XBFB4C00F, 0X0D12F550} } },
+/**/                 {{{0X3FE4A001, 0X7323FC6B} },
+/**/                  {{0X3FE25218, 0XE34E3420} },
+/**/                  {{0X3FE69BAC, 0XF277FE27} },
+/**/                  {{0XBFD496FF, 0X7F856ABA} },
+/**/                  {{0X3F9DA49E, 0X9928150C} },
+/**/                  {{0X3FB8081E, 0X3EB66A26} },
+/**/                  {{0XBFB4A685, 0X78AB06C5} } },
+/**/                 {{{0X3FE4C000, 0XB1BF0500} },
+/**/                  {{0X3FE268A9, 0XBD8B2C80} },
+/**/                  {{0X3FE68719, 0X42ABBD42} },
+/**/                  {{0XBFD4914C, 0XEC74E64A} },
+/**/                  {{0X3F9F21DE, 0XD0C3EEEC} },
+/**/                  {{0X3FB7A122, 0X5B30AA05} },
+/**/                  {{0XBFB48BD4, 0XEC53EF43} } },
+/**/                 {{{0X3FE4E001, 0X1D07207B} },
+/**/                  {{0X3FE27F26, 0XDA64F7A0} },
+/**/                  {{0X3FE6728A, 0XA7CFBEB2} },
+/**/                  {{0XBFD48B53, 0X3FCBB247} },
+/**/                  {{0X3FA04C60, 0XA7354A41} },
+/**/                  {{0X3FB73AAA, 0XEFF6F27A} },
+/**/                  {{0XBFB47007, 0XB81A6BB2} } },
+/**/                 {{{0X3FE4FFFE, 0X5F36EB46} },
+/**/                  {{0X3FE2958D, 0X35DDD180} },
+/**/                  {{0X3FE65E04, 0X307B6AF3} },
+/**/                  {{0XBFD48514, 0X828BB6E6} },
+/**/                  {{0X3FA1048E, 0X48993ED9} },
+/**/                  {{0X3FB6D4CB, 0X468D7C59} },
+/**/                  {{0XBFB45328, 0X0D484989} } },
+/**/                 {{{0X3FE52001, 0X2AFDF759} },
+/**/                  {{0X3FE2ABE2, 0XEB1C3280} },
+/**/                  {{0X3FE64980, 0X8DC5DAAD} },
+/**/                  {{0XBFD47E90, 0X2C11E3B7} },
+/**/                  {{0X3FA1B9AE, 0X88E1B343} },
+/**/                  {{0X3FB66F6C, 0XFF4501BF} },
+/**/                  {{0XBFB4353F, 0XFCD6B8DE} } },
+/**/                 {{{0X3FE54001, 0XDFDB2423} },
+/**/                  {{0X3FE2C222, 0XAB0402C0} },
+/**/                  {{0X3FE63504, 0XE7E657FB} },
+/**/                  {{0XBFD477C8, 0XEEE53FA9} },
+/**/                  {{0X3FA26B9A, 0X696CD845} },
+/**/                  {{0X3FB60AAD, 0X6A3AA6EF} },
+/**/                  {{0XBFB41659, 0X7704E1F4} } },
+/**/                 {{{0X3FE55FFE, 0X72D2A74F} },
+/**/                  {{0X3FE2D84B, 0X16BE7240} },
+/**/                  {{0X3FE62092, 0XCE54AEDE} },
+/**/                  {{0XBFD470C0, 0X7B764156} },
+/**/                  {{0X3FA31A4C, 0X4D9ABEE7} },
+/**/                  {{0X3FB5A697, 0XA899A63D} },
+/**/                  {{0XBFB3F67E, 0X49FA7FB1} } },
+/**/                 {{{0X3FE58000, 0XEE716C33} },
+/**/                  {{0X3FE2EE63, 0X284F3FE0} },
+/**/                  {{0X3FE60C24, 0X181C5720} },
+/**/                  {{0XBFD46975, 0XC383B0C1} },
+/**/                  {{0X3FA3C5FF, 0XC40A1A5A} },
+/**/                  {{0X3FB54311, 0X0B7B3B72} },
+/**/                  {{0XBFB3D5B8, 0X21700401} } },
+/**/                 {{{0X3FE59FFF, 0X9825CD2A} },
+/**/                  {{0X3FE30464, 0X2DEFCF40} },
+/**/                  {{0X3FE5F7BF, 0X3C14A317} },
+/**/                  {{0XBFD461EC, 0X227A4CDE} },
+/**/                  {{0X3FA46E85, 0X6DA8D837} },
+/**/                  {{0X3FB4E03C, 0X6162F4C8} },
+/**/                  {{0XBFB3B410, 0X857F5976} } },
+/**/                 {{{0X3FE5BFFD, 0XFE2A42CD} },
+/**/                  {{0X3FE31A50, 0XA5110DC0} },
+/**/                  {{0X3FE5E362, 0X33CF1268} },
+/**/                  {{0XBFD45A23, 0XF68B7DBC} },
+/**/                  {{0X3FA513F5, 0XDE40F0E9} },
+/**/                  {{0X3FB47E12, 0XDE05901E} },
+/**/                  {{0XBFB39190, 0XDA5CABB5} } },
+/**/                 {{{0X3FE5E000, 0X57330799} },
+/**/                  {{0X3FE3302B, 0X75253480} },
+/**/                  {{0X3FE5CF0A, 0X901DA45A} },
+/**/                  {{0XBFD4521D, 0X552754CF} },
+/**/                  {{0X3FA5B66B, 0XBBF000BB} },
+/**/                  {{0X3FB41C8B, 0XD2BAF7B2} },
+/**/                  {{0XBFB36E42, 0X5F53241A} } },
+/**/                 {{{0X3FE60001, 0X4D6055DA} },
+/**/                  {{0X3FE345F0, 0XFF2EDA60} },
+/**/                  {{0X3FE5BABB, 0XF2EA5900} },
+/**/                  {{0XBFD449DA, 0XB2008754} },
+/**/                  {{0X3FA655D1, 0X18F56FBB} },
+/**/                  {{0X3FB3BBBB, 0X89A0C1B2} },
+/**/                  {{0XBFB34A2E, 0X2E8D60FC} } },
+/**/                 {{{0X3FE62001, 0X2C3809CB} },
+/**/                  {{0X3FE35BA1, 0X812D5040} },
+/**/                  {{0X3FE5A676, 0X671E49E9} },
+/**/                  {{0XBFD4415D, 0X230E6216} },
+/**/                  {{0X3FA6F22D, 0X6B05C7F7} },
+/**/                  {{0X3FB35BA4, 0XCFE6B72B} },
+/**/                  {{0XBFB3255D, 0X3C3BFA3B} } },
+/**/                 {{{0X3FE64000, 0X87B47ECC} },
+/**/                  {{0X3FE3713D, 0X69715580} },
+/**/                  {{0X3FE59239, 0XC8FB0E69} },
+/**/                  {{0XBFD438A5, 0XA5BD1F6E} },
+/**/                  {{0X3FA78B89, 0X7F9B13CF} },
+/**/                  {{0X3FB2FC49, 0X74F57C8F} },
+/**/                  {{0XBFB2FFD8, 0X566CAACA} } },
+/**/                 {{{0X3FE66000, 0XA746397F} },
+/**/                  {{0X3FE386C5, 0X9D968940} },
+/**/                  {{0X3FE57E05, 0X83073C58} },
+/**/                  {{0XBFD42FB4, 0XFE3D0083} },
+/**/                  {{0X3FA821F1, 0X4B9E1EEB} },
+/**/                  {{0X3FB29DA9, 0X1952EE82} },
+/**/                  {{0XBFB2D9A8, 0X245866A8} } },
+/**/                 {{{0X3FE68000, 0XE4E3094B} },
+/**/                  {{0X3FE39C39, 0XB5FE3900} },
+/**/                  {{0X3FE569DA, 0X36DD131E} },
+/**/                  {{0XBFD4268C, 0X74778FE0} },
+/**/                  {{0X3FA8B567, 0X9AB0310F} },
+/**/                  {{0X3FB23FC8, 0XF2E43205} },
+/**/                  {{0XBFB2B2D5, 0X26483573} } },
+/**/                 {{{0X3FE6A001, 0XE2E37787} },
+/**/                  {{0X3FE3B19A, 0X27D52620} },
+/**/                  {{0X3FE555B7, 0XB5D865CD} },
+/**/                  {{0XBFD41D2C, 0XF1600CD3} },
+/**/                  {{0X3FA945F5, 0X4B79E859} },
+/**/                  {{0X3FB1E2AA, 0X46A0B02D} },
+/**/                  {{0XBFB28B67, 0XB508A35B} } },
+/**/                 {{{0X3FE6BFFE, 0X0DF4BBFB} },
+/**/                  {{0X3FE3C6E3, 0X46F2B6E0} },
+/**/                  {{0X3FE541A1, 0XB658AFBE} },
+/**/                  {{0XBFD41399, 0X388DA137} },
+/**/                  {{0X3FA9D387, 0XE5B3C2BA} },
+/**/                  {{0X3FB18660, 0X173397F9} },
+/**/                  {{0XBFB26368, 0X01DB4945} } },
+/**/                 {{{0X3FE6DFFF, 0XEA406CEA} },
+/**/                  {{0X3FE3DC1C, 0X1BB3D400} },
+/**/                  {{0X3FE52D91, 0XD33FFE8E} },
+/**/                  {{0XBFD409CF, 0X36BCFFE9} },
+/**/                  {{0X3FAA5E54, 0X174405AF} },
+/**/                  {{0X3FB12ACE, 0XDC041806} },
+/**/                  {{0XBFB23ADE, 0X160D6557} } },
+/**/                 {{{0X3FE70000, 0XED01EA65} },
+/**/                  {{0X3FE3F140, 0X54E51400} },
+/**/                  {{0X3FE5198C, 0X5C8B9119} },
+/**/                  {{0XBFD3FFD1, 0XF2EA4FF7} },
+/**/                  {{0X3FAAE643, 0X308C81CD} },
+/**/                  {{0X3FB0D00C, 0X1960AAF7} },
+/**/                  {{0XBFB211D1, 0XD2F50D25} } },
+/**/                 {{{0X3FE72002, 0X00D515EB} },
+/**/                  {{0X3FE40650, 0X983BB3E0} },
+/**/                  {{0X3FE50590, 0XF2175C71} },
+/**/                  {{0XBFD3F5A2, 0X361BB15C} },
+/**/                  {{0X3FAB6B5F, 0X9B536AFC} },
+/**/                  {{0X3FB07617, 0XA731624D} },
+/**/                  {{0XBFB1E84A, 0XF1A8C054} } },
+/**/                 {{{0X3FE74001, 0X1323DE6D} },
+/**/                  {{0X3FE41B4B, 0X9483E720} },
+/**/                  {{0X3FE4F1A1, 0X1027BA01} },
+/**/                  {{0XBFD3EB41, 0XBB978C8F} },
+/**/                  {{0X3FABEDA7, 0X7765626A} },
+/**/                  {{0X3FB01CF9, 0X97F58C8A} },
+/**/                  {{0XBFB1BE51, 0X03074348} } },
+/**/                 {{{0X3FE75FFF, 0X25CAB4CA} },
+/**/                  {{0X3FE43032, 0X0001D5C0} },
+/**/                  {{0X3FE4DDBC, 0X4573FB6C} },
+/**/                  {{0XBFD3E0B1, 0X41F21D2A} },
+/**/                  {{0X3FAC6D25, 0XD1BDA00F} },
+/**/                  {{0X3FAF8962, 0X5935EE68} },
+/**/                  {{0XBFB193EB, 0X6F8E0689} } },
+/**/                 {{{0X3FE77FFE, 0X90921F76} },
+/**/                  {{0X3FE44505, 0X6CC6AF00} },
+/**/                  {{0X3FE4C9E1, 0X4CFFBDAE} },
+/**/                  {{0XBFD3D5F1, 0X0B247EC4} },
+/**/                  {{0X3FACE9EA, 0X943F4516} },
+/**/                  {{0X3FAEDA73, 0XF24A8AF1} },
+/**/                  {{0XBFB16921, 0X776AAC42} } },
+/**/                 {{{0X3FE79FFE, 0X47B2F83B} },
+/**/                  {{0X3FE459C5, 0X35C19F20} },
+/**/                  {{0X3FE4B610, 0XFC8F20BD} },
+/**/                  {{0XBFD3CB02, 0X73DF2A0D} },
+/**/                  {{0X3FAD63F8, 0X23C5D6DE} },
+/**/                  {{0X3FAE2D31, 0X9C5116AB} },
+/**/                  {{0XBFB13DFA, 0X326E2972} } },
+/**/                 {{{0X3FE7BFFF, 0X2F1E79A9} },
+/**/                  {{0X3FE46E71, 0XF84DF5C0} },
+/**/                  {{0X3FE4A24A, 0XF586B1BD} },
+/**/                  {{0XBFD3BFE6, 0X2EF81E5B} },
+/**/                  {{0X3FADDB58, 0X738896F0} },
+/**/                  {{0X3FAD819A, 0X2515DE78} },
+/**/                  {{0XBFB1127C, 0X9026FDD0} } },
+/**/                 {{{0X3FE7E001, 0X973C8D05} },
+/**/                  {{0X3FE4830B, 0XF0FB9580} },
+/**/                  {{0X3FE48E8F, 0X3466B08E} },
+/**/                  {{0XBFD3B49D, 0X1C53A01A} },
+/**/                  {{0X3FAE5013, 0X25103EED} },
+/**/                  {{0X3FACD7AF, 0X5290F4AF} },
+/**/                  {{0XBFB0E6AF, 0X57EF003B} } },
+/**/                 {{{0X3FE7FFFF, 0X69EFC092} },
+/**/                  {{0X3FE4978F, 0X431C3800} },
+/**/                  {{0X3FE47AE1, 0XA3E1064A} },
+/**/                  {{0XBFD3A92A, 0X666C50C4} },
+/**/                  {{0X3FAEC219, 0X4098A4BE} },
+/**/                  {{0X3FAC2F94, 0X2EEE57E0} },
+/**/                  {{0XBFB0BA99, 0X290D5730} } },
+/**/                 {{{0X3FE82001, 0XC52B5232} },
+/**/                  {{0X3FE4AC01, 0XD2B83340} },
+/**/                  {{0X3FE4673C, 0XD31B7CF5} },
+/**/                  {{0XBFD39D8B, 0XC67D05F0} },
+/**/                  {{0X3FAF3192, 0X2A81B5D5} },
+/**/                  {{0X3FAB891B, 0X8AA20E90} },
+/**/                  {{0XBFB08E40, 0X7ADCEFD6} } },
+/**/                 {{{0X3FE84000, 0XBD4D4E3F} },
+/**/                  {{0X3FE4C05E, 0X9B1DBC60} },
+/**/                  {{0X3FE453A5, 0XC8D629F7} },
+/**/                  {{0XBFD391C5, 0X13E9EF47} },
+/**/                  {{0X3FAF9E69, 0X17383D6B} },
+/**/                  {{0X3FAAE471, 0X278E21B9} },
+/**/                  {{0XBFB061AB, 0X9CF54D10} } },
+/**/                 {{{0X3FE86001, 0X8C869CBD} },
+/**/                  {{0X3FE4D4A8, 0XFD2285A0} },
+/**/                  {{0X3FE44019, 0X79B82471} },
+/**/                  {{0XBFD385D5, 0X5C3E2929} },
+/**/                  {{0X3FB0045B, 0X7B2C8FF2} },
+/**/                  {{0X3FAA417C, 0X39D7CA4F} },
+/**/                  {{0XBFB034E0, 0XB767B7D4} } },
+/**/                 {{{0X3FE87FFE, 0XB5DB3710} },
+/**/                  {{0X3FE4E8DD, 0X8B93BCA0} },
+/**/                  {{0X3FE42C9B, 0X66C6E6BF} },
+/**/                  {{0XBFD379BF, 0XA32EE2A1} },
+/**/                  {{0X3FB03838, 0X6187FE0F} },
+/**/                  {{0X3FA9A05A, 0X8B3A0B33} },
+/**/                  {{0XBFB007E5, 0XCAEE03A9} } },
+/**/                 {{{0X3FE8A000, 0X863C77E3} },
+/**/                  {{0X3FE4FD01, 0X8FCD1E80} },
+/**/                  {{0X3FE41926, 0XA8A8093F} },
+/**/                  {{0XBFD36D81, 0XB5EE344D} },
+/**/                  {{0X3FB06ADC, 0X2841F292} },
+/**/                  {{0X3FA900E4, 0X2484560B} },
+/**/                  {{0XBFAFB581, 0X62792F0A} } },
+/**/                 {{{0X3FE8BFFF, 0X0ED982AF} },
+/**/                  {{0X3FE51110, 0X16E28AC0} },
+/**/                  {{0X3FE405C0, 0X389112EE} },
+/**/                  {{0XBFD3611F, 0X89D38DC7} },
+/**/                  {{0X3FB09C3D, 0XB450B9F7} },
+/**/                  {{0X3FA86342, 0X312D0C4A} },
+/**/                  {{0XBFAF5AEE, 0X3A6CA012} } },
+/**/                 {{{0X3FE8E000, 0X02C3AEAE} },
+/**/                  {{0X3FE5250C, 0XC0AB0A40} },
+/**/                  {{0X3FE3F264, 0XC65593C5} },
+/**/                  {{0XBFD35497, 0XD82BE900} },
+/**/                  {{0X3FB0CC69, 0X68546D39} },
+/**/                  {{0X3FA7C759, 0XDB8499FD} },
+/**/                  {{0XBFAF001D, 0X36A32337} } },
+/**/                 {{{0X3FE90000, 0XECBFA97B} },
+/**/                  {{0X3FE538F6, 0X0E8D4EE0} },
+/**/                  {{0X3FE3DF15, 0XF4119333} },
+/**/                  {{0XBFD347EC, 0X7D2149F4} },
+/**/                  {{0X3FB0FB5E, 0XFA921D3C} },
+/**/                  {{0X3FA72D38, 0X69693E89} },
+/**/                  {{0XBFAEA519, 0X23A0F5F3} } },
+/**/                 {{{0X3FE91FFF, 0XD251C01C} },
+/**/                  {{0X3FE54CCA, 0XD3F3BD20} },
+/**/                  {{0X3FE3CBD5, 0X1554DD15} },
+/**/                  {{0XBFD33B1F, 0X2BC94245} },
+/**/                  {{0X3FB1291F, 0X2FC4C3F6} },
+/**/                  {{0X3FA694E8, 0X1B7A765C} },
+/**/                  {{0XBFAE49EC, 0X826E86F6} } },
+/**/                 {{{0X3FE94001, 0XD90AF4E6} },
+/**/                  {{0X3FE5608E, 0X4D4EC640} },
+/**/                  {{0X3FE3B89F, 0X3445EF72} },
+/**/                  {{0XBFD32E2E, 0XB7BBD79A} },
+/**/                  {{0X3FB155B4, 0XE401D071} },
+/**/                  {{0X3FA5FE51, 0X3A256F1C} },
+/**/                  {{0XBFADEEA1, 0X890FF662} } },
+/**/                 {{{0X3FE96001, 0X04FD6C17} },
+/**/                  {{0X3FE5743C, 0XD5673C20} },
+/**/                  {{0X3FE3A578, 0X09EBC6E2} },
+/**/                  {{0XBFD3211E, 0X6DA5039C} },
+/**/                  {{0X3FB1811B, 0X4E62286B} },
+/**/                  {{0X3FA56990, 0X71BECE9D} },
+/**/                  {{0XBFAD9342, 0X23911641} } },
+/**/                 {{{0X3FE98000, 0X2D214B82} },
+/**/                  {{0X3FE587D8, 0X3B0D6120} },
+/**/                  {{0X3FE3925E, 0X01EAAC3E} },
+/**/                  {{0XBFD313EE, 0X08425504} },
+/**/                  {{0X3FB1AB5A, 0X02BDB571} },
+/**/                  {{0X3FA4D698, 0X9EBD70B8} },
+/**/                  {{0XBFAD37D7, 0XF482965A} } },
+/**/                 {{{0X3FE99FFD, 0XEB980651} },
+/**/                  {{0X3FE59B5F, 0XB16BA7A0} },
+/**/                  {{0X3FE37F52, 0X10B1AB7A} },
+/**/                  {{0XBFD3069E, 0XF993D676} },
+/**/                  {{0X3FB1D472, 0XCDED25A8} },
+/**/                  {{0X3FA44570, 0X2D0ABD9A} },
+/**/                  {{0XBFACDC6C, 0X56221AA1} } },
+/**/                 {{{0X3FE9BFFF, 0XE5504053} },
+/**/                  {{0X3FE5AED6, 0XB55DE6A0} },
+/**/                  {{0X3FE36C50, 0XFA91C51E} },
+/**/                  {{0XBFD2F92F, 0XBE311E56} },
+/**/                  {{0X3FB1FC70, 0X5BE3AF05} },
+/**/                  {{0X3FA3B5FD, 0XACD5CDC7} },
+/**/                  {{0XBFAC8108, 0X5ADBB9B8} } },
+/**/                 {{{0X3FE9E001, 0X6E60A234} },
+/**/                  {{0X3FE5C23A, 0X79ACD480} },
+/**/                  {{0X3FE3595D, 0XA5FAB2EA} },
+/**/                  {{0XBFD2EBA3, 0X1DDECEEA} },
+/**/                  {{0X3FB22350, 0X35736518} },
+/**/                  {{0X3FA32856, 0X22F9FD28} },
+/**/                  {{0XBFAC25B4, 0XCE8B2259} } },
+/**/                 {{{0X3FE9FFFF, 0XB685741B} },
+/**/                  {{0X3FE5D589, 0X5AD40460} },
+/**/                  {{0X3FE34679, 0XD832B8D3} },
+/**/                  {{0XBFD2DDFB, 0X230EDA41} },
+/**/                  {{0X3FB24912, 0XB23C0BA2} },
+/**/                  {{0X3FA29C85, 0X4C4E86DA} },
+/**/                  {{0XBFABCA7A, 0X37002A55} } },
+/**/                 {{{0X3FEA2001, 0X9D59B943} },
+/**/                  {{0X3FE5E8C7, 0X8C187EA0} },
+/**/                  {{0X3FE333A1, 0X9EDE2183} },
+/**/                  {{0XBFD2D035, 0XB0043779} },
+/**/                  {{0X3FB26DC3, 0X7AB9110C} },
+/**/                  {{0X3FA2126C, 0X959CFC0E} },
+/**/                  {{0XBFAB6F60, 0XD556233E} } },
+/**/                 {{{0X3FEA3FFF, 0XBE9E153F} },
+/**/                  {{0X3FE5FBF0, 0XA9C08AE0} },
+/**/                  {{0X3FE320D9, 0X6F7861AA} },
+/**/                  {{0XBFD2C256, 0XC2200F18} },
+/**/                  {{0X3FB2915D, 0XA6795293} },
+/**/                  {{0X3FA18A2B, 0X256A8FDE} },
+/**/                  {{0XBFAB1470, 0XA67A4E89} } },
+/**/                 {{{0X3FEA5FFE, 0X7A23A1CE} },
+/**/                  {{0X3FE60F07, 0X63200600} },
+/**/                  {{0X3FE30E1E, 0XD13D395E} },
+/**/                  {{0XBFD2B45D, 0X44403932} },
+/**/                  {{0X3FB2B3E9, 0XC967F013} },
+/**/                  {{0X3FA103AD, 0X35D002B8} },
+/**/                  {{0XBFAAB9B1, 0X6496A8F1} } },
+/**/                 {{{0X3FEA8001, 0X57F250B8} },
+/**/                  {{0X3FE6220D, 0XDD6453A0} },
+/**/                  {{0X3FE2FB6F, 0XCFFFCC1E} },
+/**/                  {{0XBFD2A648, 0X6F8D8291} },
+/**/                  {{0X3FB2D56F, 0X03654CC3} },
+/**/                  {{0X3FA07EE3, 0X4BB6E7A6} },
+/**/                  {{0XBFAA5F2A, 0X87992F03} } },
+/**/                 {{{0X3FEAA000, 0XDD839D49} },
+/**/                  {{0X3FE634FF, 0XB412C9A0} },
+/**/                  {{0X3FE2E8D0, 0XE2D59E01} },
+/**/                  {{0XBFD2981C, 0X5467CFDD} },
+/**/                  {{0X3FB2F5E8, 0XFF1FADB5} },
+/**/                  {{0X3F9FF7D6, 0XA3BA803C} },
+/**/                  {{0XBFAA04E3, 0X46AF8DB7} } },
+/**/                 {{{0X3FEAC000, 0X770DF220} },
+/**/                  {{0X3FE647DE, 0XFEF70020} },
+/**/                  {{0X3FE2D640, 0X220AFF7F} },
+/**/                  {{0XBFD289D8, 0X36F9E74F} },
+/**/                  {{0X3FB3155E, 0XE509140A} },
+/**/                  {{0X3F9EF56B, 0X61AB0B7F} },
+/**/                  {{0XBFA9AAE2, 0X98CE391F} } },
+/**/                 {{{0X3FEAE001, 0X125BBE48} },
+/**/                  {{0X3FE65AAC, 0X57A24D20} },
+/**/                  {{0X3FE2C3BD, 0X1BFB3559} },
+/**/                  {{0XBFD27B7C, 0X6DDE55DD} },
+/**/                  {{0X3FB333D5, 0X15C4C270} },
+/**/                  {{0X3F9DF67A, 0X9BAC4ECF} },
+/**/                  {{0XBFA9512F, 0X363A972B} } },
+/**/                 {{{0X3FEAFFFE, 0X7C321839} },
+/**/                  {{0X3FE66D65, 0X569B83C0} },
+/**/                  {{0X3FE2B14A, 0X53FBF8D9} },
+/**/                  {{0XBFD26D0B, 0X9CFA03CE} },
+/**/                  {{0X3FB3514B, 0X2CAA2E0C} },
+/**/                  {{0X3F9CFB22, 0X4597BE9A} },
+/**/                  {{0XBFA8F7CF, 0X99110022} } },
+/**/                 {{{0X3FEB1FFE, 0X75486924} },
+/**/                  {{0X3FE6800D, 0X68CEFB40} },
+/**/                  {{0X3FE29EE4, 0X8E6AA814} },
+/**/                  {{0XBFD25E83, 0XE8AFA7EB} },
+/**/                  {{0X3FB36DC9, 0XFB0E8AC8} },
+/**/                  {{0X3F9C0331, 0XAD5D66CA} },
+/**/                  {{0XBFA89EC9, 0XFEDB1E8B} } },
+/**/                 {{{0X3FEB4001, 0X5FB8DEB8} },
+/**/                  {{0X3FE692A4, 0XD137C500} },
+/**/                  {{0X3FE28C8B, 0XABFF668E} },
+/**/                  {{0XBFD24FE5, 0XD8E71E0A} },
+/**/                  {{0X3FB38955, 0X1297317A} },
+/**/                  {{0X3F9B0EA3, 0X1D844655} },
+/**/                  {{0XBFA84624, 0X6914067D} } },
+/**/                 {{{0X3FEB6000, 0X386C27B9} },
+/**/                  {{0X3FE6A527, 0X8CDF6FC0} },
+/**/                  {{0X3FE27A43, 0XC5758DB8} },
+/**/                  {{0XBFD24135, 0X59CADCE0} },
+/**/                  {{0X3FB3A3E9, 0XEE34AE91} },
+/**/                  {{0X3F9A1DA8, 0X1C5FFF05} },
+/**/                  {{0XBFA7EDE4, 0X9EC8AAC6} } },
+/**/                 {{{0X3FEB8000, 0XD1EFDDB3} },
+/**/                  {{0X3FE6B799, 0X0ACCB660} },
+/**/                  {{0X3FE26809, 0X9983AAB2} },
+/**/                  {{0XBFD23270, 0X76047E08} },
+/**/                  {{0X3FB3BD90, 0XF132139B} },
+/**/                  {{0X3F993010, 0X58DEB3E1} },
+/**/                  {{0XBFA79610, 0X2D194CE9} } },
+/**/                 {{{0X3FEB9FFE, 0X42CC4047} },
+/**/                  {{0X3FE6C9F6, 0X86445E60} },
+/**/                  {{0X3FE255E0, 0X069F871F} },
+/**/                  {{0XBFD2239A, 0X25461639} },
+/**/                  {{0X3FB3D649, 0XA926C127} },
+/**/                  {{0X3F9845FB, 0XC5A21F70} },
+/**/                  {{0XBFA73EAC, 0X68E20BE6} } },
+/**/                 {{{0X3FEBC001, 0X951AEAAD} },
+/**/                  {{0X3FE6DC45, 0X3C4E45A0} },
+/**/                  {{0X3FE243C1, 0XFF6573B0} },
+/**/                  {{0XBFD214AE, 0XE38FA7E7} },
+/**/                  {{0X3FB3EE1E, 0X5EA1330F} },
+/**/                  {{0X3F975F24, 0X2BCCE6DF} },
+/**/                  {{0XBFA6E7BE, 0X6F3902C5} } },
+/**/                 {{{0X3FEBDFFE, 0X6616FE11} },
+/**/                  {{0X3FE6EE7E, 0X27106FE0} },
+/**/                  {{0X3FE231B6, 0X97B587F0} },
+/**/                  {{0XBFD205B5, 0X240FEF32} },
+/**/                  {{0X3FB40509, 0X44EB818C} },
+/**/                  {{0X3F967BDE, 0X108160F9} },
+/**/                  {{0XBFA6914B, 0X271D18AD} } },
+/**/                 {{{0X3FEBFFFF, 0X54511C72} },
+/**/                  {{0X3FE700A7, 0X643BBB40} },
+/**/                  {{0X3FE21FB7, 0XE1823C8B} },
+/**/                  {{0XBFD1F6A8, 0X9A854F7A} },
+/**/                  {{0X3FB41B15, 0X71F04837} },
+/**/                  {{0X3F959BD8, 0XBBD10F7C} },
+/**/                  {{0XBFA63B57, 0X41F03711} } },
+/**/                 {{{0X3FEC2000, 0XC537593E} },
+/**/                  {{0X3FE712BE, 0XF36D6400} },
+/**/                  {{0X3FE20DC7, 0XF754B2D5} },
+/**/                  {{0XBFD1E78B, 0X9D24DBED} },
+/**/                  {{0X3FB43043, 0X94F485E0} },
+/**/                  {{0X3F94BF29, 0X122A6884} },
+/**/                  {{0XBFA5E5E7, 0X3D2AA4E9} } },
+/**/                 {{{0X3FEC4000, 0XDDD35719} },
+/**/                  {{0X3FE724C3, 0XD7FA3000} },
+/**/                  {{0X3FE1FBE7, 0XF2A8B1BF} },
+/**/                  {{0XBFD1D85F, 0XB25DDDF6} },
+/**/                  {{0X3FB44495, 0XD2E3B20F} },
+/**/                  {{0X3F93E5D6, 0X7FCC1B30} },
+/**/                  {{0XBFA590FF, 0X62D0D00F} } },
+/**/                 {{{0X3FEC6000, 0X402375B6} },
+/**/                  {{0X3FE736B6, 0X7DFF3720} },
+/**/                  {{0X3FE1EA17, 0X86C92387} },
+/**/                  {{0XBFD1C925, 0X31DDFC58} },
+/**/                  {{0X3FB4580F, 0XF8B6CBC2} },
+/**/                  {{0X3F930FD7, 0X00CE998E} },
+/**/                  {{0XBFA53CA3, 0XCB299E5F} } },
+/**/                 {{{0X3FEC7FFF, 0X19904FE4} },
+/**/                  {{0X3FE74897, 0X0F395860} },
+/**/                  {{0X3FE1D856, 0XA825BA33} },
+/**/                  {{0XBFD1B9DC, 0XA75E0FC5} },
+/**/                  {{0X3FB46AB5, 0X79F8FD7D} },
+/**/                  {{0X3F923D23, 0XA5A90AFE} },
+/**/                  {{0XBFA4E8D8, 0X5D2F574B} } },
+/**/                 {{{0X3FEC9FFE, 0XF9E2409D} },
+/**/                  {{0X3FE75A66, 0X79E7F1C0} },
+/**/                  {{0X3FE1C6A4, 0X8740D2E9} },
+/**/                  {{0XBFD1AA85, 0XF198392C} },
+/**/                  {{0X3FB47C8A, 0X808C583A} },
+/**/                  {{0X3F916DAC, 0X857F2526} },
+/**/                  {{0XBFA495A0, 0XD0477576} } },
+/**/                 {{{0X3FECC001, 0XE038EF72} },
+/**/                  {{0X3FE76C25, 0XE6815140} },
+/**/                  {{0X3FE1B500, 0X19BDADF8} },
+/**/                  {{0XBFD19B20, 0XB4A469AE} },
+/**/                  {{0X3FB48D93, 0X42387EA2} },
+/**/                  {{0X3F90A15F, 0X7305BAF5} },
+/**/                  {{0XBFA44300, 0XACAE4E17} } },
+/**/                 {{{0X3FECDFFE, 0XEB72037F} },
+/**/                  {{0X3FE77DD0, 0X7A7A4AA0} },
+/**/                  {{0X3FE1A36E, 0X4F1F6702} },
+/**/                  {{0XBFD18BB1, 0XD0992CF8} },
+/**/                  {{0X3FB49DCE, 0X5AA4990D} },
+/**/                  {{0X3F8FB0DD, 0X63759665} },
+/**/                  {{0XBFA3F0FB, 0X4D2F0C0F} } },
+/**/                 {{{0X3FECFFFF, 0XEA4839ED} },
+/**/                  {{0X3FE78F6B, 0XB17088C0} },
+/**/                  {{0X3FE191E9, 0XCF32122F} },
+/**/                  {{0XBFD17C35, 0X220400AC} },
+/**/                  {{0X3FB4AD44, 0X0A159641} },
+/**/                  {{0X3F8E252C, 0X80894CA9} },
+/**/                  {{0XBFA39F93, 0XDF89C265} } },
+/**/                 {{{0X3FED1FFD, 0XEC3EC8B2} },
+/**/                  {{0X3FE7A0F3, 0XC8C6C880} },
+/**/                  {{0X3FE18076, 0X729F01D6} },
+/**/                  {{0XBFD16CAE, 0X98515540} },
+/**/                  {{0X3FB4BBF4, 0X1B0933FF} },
+/**/                  {{0X3F8C9FF5, 0XE09A60CD} },
+/**/                  {{0XBFA34ECD, 0X662A5704} } },
+/**/                 {{{0X3FED3FFF, 0X7084EDD4} },
+/**/                  {{0X3FE7B26C, 0X5F02F220} },
+/**/                  {{0X3FE16F10, 0XB9973206} },
+/**/                  {{0XBFD15D1B, 0X9E1E0A54} },
+/**/                  {{0X3FB4C9E4, 0XAC2C9A30} },
+/**/                  {{0X3F8B20DD, 0XEFCE76CC} },
+/**/                  {{0XBFA2FEAA, 0XB888BC37} } },
+/**/                 {{{0X3FED5FFE, 0X8D728E7C} },
+/**/                  {{0X3FE7C3D2, 0X488D7E80} },
+/**/                  {{0X3FE15DBB, 0XE622A5A7} },
+/**/                  {{0XBFD14D7F, 0XA305CEB2} },
+/**/                  {{0X3FB4D716, 0X417BF1C7} },
+/**/                  {{0X3F89A81E, 0XE19FE239} },
+/**/                  {{0XBFA2AF2E, 0X84DDAD07} } },
+/**/                 {{{0X3FED7FFF, 0X70AA3B03} },
+/**/                  {{0X3FE7D527, 0XDB239580} },
+/**/                  {{0X3FE14C75, 0XBE4FEA01} },
+/**/                  {{0XBFD13DD9, 0X2AD706AA} },
+/**/                  {{0X3FB4E38D, 0XB49D32AA} },
+/**/                  {{0X3F88357A, 0X37DF2B6D} },
+/**/                  {{0XBFA2605B, 0X507CD77B} } },
+/**/                 {{{0X3FED9FFF, 0X1434FBA3} },
+/**/                  {{0X3FE7E66B, 0X82C8A720} },
+/**/                  {{0X3FE13B3F, 0XED9B7FED} },
+/**/                  {{0XBFD12E2A, 0X3AC9D646} },
+/**/                  {{0X3FB4EF4C, 0XE7B01CF5} },
+/**/                  {{0X3F86C905, 0XD25FD52D} },
+/**/                  {{0XBFA21233, 0X798666EF} } },
+/**/                 {{{0X3FEDBFFE, 0XA8C8DE8C} },
+/**/                  {{0X3FE7F79D, 0XF4A0A520} },
+/**/                  {{0X3FE12A19, 0XD7FC2119} },
+/**/                  {{0XBFD11E72, 0XC6BE19DF} },
+/**/                  {{0X3FB4FA57, 0X634E1B91} },
+/**/                  {{0X3F8562A6, 0X47F96DF5} },
+/**/                  {{0XBFA1C4B9, 0X373AF599} } },
+/**/                 {{{0X3FEDE000, 0X26573DF5} },
+/**/                  {{0X3FE808C0, 0X4DBCB960} },
+/**/                  {{0X3FE11902, 0X7903E4B9} },
+/**/                  {{0XBFD10EB2, 0X5CDFED06} },
+/**/                  {{0X3FB504B0, 0XCCA681FA} },
+/**/                  {{0X3F840238, 0X6F3CDE09} },
+/**/                  {{0XBFA177EE, 0X9BA8FA6A} } },
+/**/                 {{{0X3FEDFFFE, 0X35009B66} },
+/**/                  {{0X3FE819CF, 0XC2CB5340} },
+/**/                  {{0X3FE107FC, 0XB1C942B5} },
+/**/                  {{0XBFD0FEEC, 0X230D7D92} },
+/**/                  {{0X3FB50E5A, 0X75C5B4F1} },
+/**/                  {{0X3F82A7E8, 0XE3C139D8} },
+/**/                  {{0XBFA12BD5, 0X93FA642B} } },
+/**/                 {{{0X3FEE2000, 0X492D4C68} },
+/**/                  {{0X3FE82AD0, 0X5CCB8680} },
+/**/                  {{0X3FE0F704, 0X928E55DF} },
+/**/                  {{0XBFD0EF1C, 0XEE0B0721} },
+/**/                  {{0X3FB51759, 0X937BFB74} },
+/**/                  {{0X3F815359, 0X2BC9FDDB} },
+/**/                  {{0XBFA0E06F, 0XEA1D1824} } },
+/**/                 {{{0X3FEE4000, 0X9412BB65} },
+/**/                  {{0X3FE83BBF, 0X14001A60} },
+/**/                  {{0X3FE0E61D, 0X37F485DA} },
+/**/                  {{0XBFD0DF48, 0X1B2BD37D} },
+/**/                  {{0X3FB51FAF, 0X64024D14} },
+/**/                  {{0X3F8004B9, 0X9B849698} },
+/**/                  {{0XBFA095BF, 0X450A2434} } },
+/**/                 {{{0X3FEE5FFF, 0X4758EF2F} },
+/**/                  {{0X3FE84C9C, 0X1531C180} },
+/**/                  {{0X3FE0D546, 0X8B7FECE7} },
+/**/                  {{0XBFD0CF6E, 0X105BFE1E} },
+/**/                  {{0X3FB5275E, 0XF9C5E03A} },
+/**/                  {{0X3F7D77F2, 0X17AA1137} },
+/**/                  {{0XBFA04BC5, 0X2A6891E1} } },
+/**/                 {{{0X3FEE8000, 0X380F819F} },
+/**/                  {{0X3FE85D69, 0X74CCC060} },
+/**/                  {{0X3FE0C47E, 0X8F1DA5B5} },
+/**/                  {{0XBFD0BF8D, 0X62AD700F} },
+/**/                  {{0X3FB52E6C, 0X1F3FBC2B} },
+/**/                  {{0X3F7AF1C3, 0XEE24AD7D} },
+/**/                  {{0XBFA00282, 0XFECE26C9} } },
+/**/                 {{{0X3FEEA000, 0XA6D8CB7B} },
+/**/                  {{0X3FE86E25, 0XD00E3A60} },
+/**/                  {{0X3FE0B3C6, 0XBA314D62} },
+/**/                  {{0XBFD0AFA7, 0XE7CB2D84} },
+/**/                  {{0X3FB534D9, 0X08E9071F} },
+/**/                  {{0X3F787704, 0X4CE5E5C9} },
+/**/                  {{0XBF9F73F4, 0X0EB7C9D5} } },
+/**/                 {{{0X3FEEC000, 0X5A13BA60} },
+/**/                  {{0X3FE87ED1, 0X19B163E0} },
+/**/                  {{0X3FE0A31F, 0X2EBB7AD7} },
+/**/                  {{0XBFD09FBE, 0X33A3FCE1} },
+/**/                  {{0X3FB53AA8, 0X89D9AF5D} },
+/**/                  {{0X3F760799, 0XF7F7040B} },
+/**/                  {{0XBF9EE456, 0XD3F0B3FB} } },
+/**/                 {{{0X3FEEDFFF, 0X58F8DD18} },
+/**/                  {{0X3FE88F6B, 0X6681CA80} },
+/**/                  {{0X3FE09287, 0XEC4360B3} },
+/**/                  {{0XBFD08FD0, 0XB7CE07E5} },
+/**/                  {{0X3FB53FDD, 0X7BDEDD3F} },
+/**/                  {{0X3F73A366, 0X70C52E66} },
+/**/                  {{0XBF9E5630, 0X5DCA7315} } },
+/**/                 {{{0X3FEEFFFF, 0XBE033400} },
+/**/                  {{0X3FE89FF5, 0XDD4D7960} },
+/**/                  {{0X3FE081FF, 0XDFFE15BD} },
+/**/                  {{0XBFD07FDE, 0XDAE56C0F} },
+/**/                  {{0X3FB5447A, 0XF84D6F5D} },
+/**/                  {{0X3F714A24, 0X7982941E} },
+/**/                  {{0XBF9DC982, 0X81E68835} } },
+/**/                 {{{0X3FEF2001, 0XE6B5125D} },
+/**/                  {{0X3FE8B070, 0XBBE88160} },
+/**/                  {{0X3FE07186, 0XDF7122E2} },
+/**/                  {{0XBFD06FE8, 0XDE905325} },
+/**/                  {{0X3FB54883, 0XB5DEEC7A} },
+/**/                  {{0X3F6DF762, 0XB4A186D5} },
+/**/                  {{0XBF9D3E4E, 0XDE20F495} } },
+/**/                 {{{0X3FEF3FFD, 0XF770E0DB} },
+/**/                  {{0X3FE8C0D8, 0X09E96380} },
+/**/                  {{0X3FE06120, 0XF5A576A9} },
+/**/                  {{0XBFD05FF3, 0X1D2912FF} },
+/**/                  {{0X3FB54BF9, 0X8CD1001F} },
+/**/                  {{0X3F6970FC, 0X6E90DC16} },
+/**/                  {{0XBF9CB496, 0XD8EB587E} } },
+/**/                 {{{0X3FEF5FFE, 0X4E16DA33} },
+/**/                  {{0X3FE8D131, 0X29BCCDC0} },
+/**/                  {{0X3FE050C8, 0XD33BA4E9} },
+/**/                  {{0XBFD04FF8, 0XD74C83D2} },
+/**/                  {{0X3FB54EE0, 0X592BB252} },
+/**/                  {{0X3F64FF61, 0X7193EEB5} },
+/**/                  {{0XBF9C2C5B, 0XA459AC86} } },
+/**/                 {{{0X3FEF8000, 0X4576FF2E} },
+/**/                  {{0X3FE8E17A, 0XCCE443A0} },
+/**/                  {{0X3FE0407F, 0XD8A97B6C} },
+/**/                  {{0XBFD03FFB, 0XC91B3E55} },
+/**/                  {{0X3FB5513A, 0X5F3357F7} },
+/**/                  {{0X3F60A2BA, 0X14C92B53} },
+/**/                  {{0XBF9BA59E, 0X3E70DF71} } },
+/**/                 {{{0X3FEF9FFF, 0X39B6A330} },
+/**/                  {{0X3FE8F1B2, 0XA7F515A0} },
+/**/                  {{0X3FE03048, 0X63064158} },
+/**/                  {{0XBFD02FFE, 0XACBAADA8} },
+/**/                  {{0X3FB55309, 0XF27448C0} },
+/**/                  {{0X3F58B6D6, 0X4850006B} },
+/**/                  {{0XBF9B205F, 0X742323DF} } },
+/**/                 {{{0X3FEFC001, 0XAA76C0B9} },
+/**/                  {{0X3FE901DC, 0X15D66D80} },
+/**/                  {{0X3FE0201F, 0X28D9B4AA} },
+/**/                  {{0XBFD01FFE, 0XA98D4C38} },
+/**/                  {{0X3FB55452, 0X089780F8} },
+/**/                  {{0X3F5050B5, 0X7F35C5BB} },
+/**/                  {{0XBF9A9C9F, 0XE19247AF} } },
+/**/                 {{{0X3FEFDFFE, 0X39A592CA} },
+/**/                  {{0X3FE911F2, 0X6D88A780} },
+/**/                  {{0X3FE01008, 0XE40C6538} },
+/**/                  {{0XBFD01000, 0XD31688DE} },
+/**/                  {{0X3FB55514, 0XE32F1816} },
+/**/                  {{0X3F402A15, 0X4E1628D2} },
+/**/                  {{0XBF9A1A5F, 0XF4FAF5A0} } },
+/**/                 {{{0X3FEFF801, 0X8E92D1B0} },
+/**/                  {{0X3FE91DFB, 0X9BB4BF00} },
+/**/                  {{0X3FE003FF, 0XB884C5A9} },
+/**/                  {{0XBFD003FF, 0X3876A954} },
+/**/                  {{0X3FB55551, 0X5539DDFB} },
+/**/                  {{0X3F2007E7, 0X7B95E6C2} },
+/**/                  {{0XBF99B9A7, 0X18A3BA58} } },
+  };
+
+  static const number
+     hij[241][16] = {                             /* x0,hij for (1/16,1) */
+/**/                 {{{0x3fb04000, 0x00000000} },
+/**/                  {{0x3fb03a6d, 0x1c06693d} },
+/**/                  {{0xbc428a02, 0xd4e7f128} },
+/**/                  {{0x3fefdf1f, 0xe92592ae} },
+/**/                  {{0x3c88bfc0, 0xb5490162} },
+/**/                  {{0xbfb01ead, 0x8f7e4151} },
+/**/                  {{0xbc5395e8, 0x0b64d205} },
+/**/                  {{0xbfd4d29f, 0x433dd49b} },
+/**/                  {{0xbc75b19d, 0x4aa42633} },
+/**/                  {{0x3fafda41, 0xce35961d} },
+/**/                  {{0x3c4e6a5f, 0x425d7696} },
+/**/                  {{0x3fc814dd, 0x6c1bb5e2} },
+/**/                  {{0xbfaf4cb7, 0x2b33739f} },
+/**/                  {{0xbfc048b2, 0xc267d8ec} },
+/**/                  {{0x3fae9649, 0xe8ababc6} },
+/**/                  {{0x3fb78293, 0xfe802692} } },
+/**/                 {{{0x3fb10000, 0x00000000} },
+/**/                  {{0x3fb0f99e, 0xa71d52a7} },
+/**/                  {{0xbc22069f, 0xeec3624f} },
+/**/                  {{0x3fefdc08, 0x9a49d2a9} },
+/**/                  {{0x3c7780f7, 0x68b2ce25} },
+/**/                  {{0xbfb0d9de, 0x9da73e1d} },
+/**/                  {{0x3c4ebf46, 0xa1a487bf} },
+/**/                  {{0xbfd4c669, 0xd13ea108} },
+/**/                  {{0x3c7354bc, 0xebb4528c} },
+/**/                  {{0x3fb0a137, 0x789374c1} },
+/**/                  {{0xbc56c223, 0xc3f2c5c2} },
+/**/                  {{0x3fc7f0e7, 0x79c60cda} },
+/**/                  {{0xbfb05062, 0xcdcc7b81} },
+/**/                  {{0xbfc019e4, 0xc5266783} },
+/**/                  {{0x3fafd0b2, 0xf2540289} },
+/**/                  {{0x3fb71107, 0xf6d3cd8a} } },
+/**/                 {{{0x3fb20000, 0x00000000} },
+/**/                  {{0x3fb1f86d, 0xbf082d59} },
+/**/                  {{0xbc4095dc, 0x7732ef81} },
+/**/                  {{0x3fefd7b3, 0x01722b81} },
+/**/                  {{0xbc5e618c, 0x8a212e02} },
+/**/                  {{0xbfb1d2c5, 0xee4e9cfa} },
+/**/                  {{0x3c426273, 0x29abece0} },
+/**/                  {{0xbfd4b551, 0x37eb7f46} },
+/**/                  {{0x3c73b360, 0x01d8bf12} },
+/**/                  {{0x3fb18fa7, 0x6adb6a7c} },
+/**/                  {{0xbc5c00d8, 0x398999ad} },
+/**/                  {{0x3fc7bea5, 0xf4a7cff3} },
+/**/                  {{0xbfb13008, 0x61f84829} },
+/**/                  {{0xbfbfb14f, 0xa8e135a1} },
+/**/                  {{0x3fb0b532, 0x4324f177} },
+/**/                  {{0x3fb6734a, 0x3498dd9d} } },
+/**/                 {{{0x3fb30000, 0x00000000} },
+/**/                  {{0x3fb2f719, 0x318a4a9a} },
+/**/                  {{0x3c03fd17, 0x79b9801f} },
+/**/                  {{0x3fefd31f, 0x48e238fe} },
+/**/                  {{0xbc876a7a, 0xd8c45327} },
+/**/                  {{0xbfb2cada, 0x852096e2} },
+/**/                  {{0x3c460860, 0x11efd787} },
+/**/                  {{0xbfd4a34b, 0x2e476a39} },
+/**/                  {{0x3c7254f2, 0xeb11ee51} },
+/**/                  {{0x3fb27c13, 0xc54ae225} },
+/**/                  {{0x3c513096, 0x4ae66f0c} },
+/**/                  {{0x3fc789ca, 0xef0d59d0} },
+/**/                  {{0xbfb20c06, 0x6d9aaa8c} },
+/**/                  {{0xbfbf2885, 0x846ba912} },
+/**/                  {{0x3fb17c5f, 0xc697ef5e} },
+/**/                  {{0x3fb5ce93, 0xcad31e6e} } },
+/**/                 {{{0x3fb40000, 0x00000000} },
+/**/                  {{0x3fb3f59f, 0x0e7c559d} },
+/**/                  {{0x3c5ac4ce, 0x285df847} },
+/**/                  {{0x3fefce4d, 0xa6ab93e9} },
+/**/                  {{0xbc6be46b, 0x18a97736} },
+/**/                  {{0xbfb3c211, 0x4d22b635} },
+/**/                  {{0x3c42033c, 0x6950679f} },
+/**/                  {{0xbfd49059, 0xc4d74033} },
+/**/                  {{0x3c57dd7c, 0xd7e376aa} },
+/**/                  {{0x3fb36662, 0xc0896a7c} },
+/**/                  {{0xbc36cf6a, 0xd79232cf} },
+/**/                  {{0x3fc75261, 0xa13a97a2} },
+/**/                  {{0xbfb2e431, 0x5fdd1509} },
+/**/                  {{0xbfbe9999, 0x6e52db32} },
+/**/                  {{0x3fb23da4, 0xb0a71e9f} },
+/**/                  {{0x3fb52335, 0xe3bc8178} } },
+/**/                 {{{0x3fb50000, 0x00000000} },
+/**/                  {{0x3fb4f3fd, 0x677292fb} },
+/**/                  {{0x3c4008d3, 0x6264979e} },
+/**/                  {{0x3fefc93e, 0x53a1ee0d} },
+/**/                  {{0xbc64421a, 0x20fd2bdf} },
+/**/                  {{0xbfb4b85f, 0x4aba88e3} },
+/**/                  {{0x3c54f184, 0x3c9d1e89} },
+/**/                  {{0xbfd47c7f, 0x25ae4668} },
+/**/                  {{0xbc7d7581, 0x816630d1} },
+/**/                  {{0x3fb44e7b, 0x07f85056} },
+/**/                  {{0x3c56d63c, 0x910bdf4f} },
+/**/                  {{0x3fc71875, 0xc439029c} },
+/**/                  {{0xbfb3b85e, 0xf2bcfa10} },
+/**/                  {{0xbfbe04bb, 0x9707b205} },
+/**/                  {{0x3fb2f8c6, 0x95e3e0cc} },
+/**/                  {{0x3fb47184, 0x8093431b} } },
+/**/                 {{{0x3fb60000, 0x00000000} },
+/**/                  {{0x3fb5f232, 0x4fd2d7b2} },
+/**/                  {{0x3c58a8da, 0x4401318e} },
+/**/                  {{0x3fefc3f1, 0x8b549418} },
+/**/                  {{0x3c34d896, 0x836f8130} },
+/**/                  {{0xbfb5adb9, 0x9cdd92e7} },
+/**/                  {{0x3c4d4161, 0xeb397cc3} },
+/**/                  {{0xbfd467bd, 0x93f8f1dc} },
+/**/                  {{0xbc609d7b, 0xffc760ad} },
+/**/                  {{0x3fb53443, 0xbea6b2fe} },
+/**/                  {{0x3c5eb03c, 0x4b24f5db} },
+/**/                  {{0x3fc6dc13, 0x8de3d005} },
+/**/                  {{0xbfb48866, 0x37d2d99d} },
+/**/                  {{0xbfbd6a1d, 0xf6663fcb} },
+/**/                  {{0x3fb3ad8e, 0x0adff464} },
+/**/                  {{0x3fb3b9d6, 0x4159c223} } },
+/**/                 {{{0x3fb70000, 0x00000000} },
+/**/                  {{0x3fb6f03b, 0xdcea4b0d} },
+/**/                  {{0xbc33f00e, 0x512fa17d} },
+/**/                  {{0x3fefbe67, 0x8c07a436} },
+/**/                  {{0xbc84baaa, 0x46250d6f} },
+/**/                  {{0xbfb6a215, 0x7e3ba4c7} },
+/**/                  {{0xbc3504e7, 0x54503f8d} },
+/**/                  {{0xbfd45217, 0x6b82d03a} },
+/**/                  {{0x3c7d1f0d, 0xbebdd1db} },
+/**/                  {{0x3fb617a4, 0x841d5604} },
+/**/                  {{0xbc47168b, 0x6681c436} },
+/**/                  {{0x3fc69d47, 0xaccec6ce} },
+/**/                  {{0xbfb5541f, 0xa4715800} },
+/**/                  {{0xbfbcc9f4, 0x335a1c1b} },
+/**/                  {{0x3fb45bc6, 0xbac0061f} },
+/**/                  {{0x3fb2fc84, 0x2b3853b6} } },
+/**/                 {{{0x3fb80000, 0x00000000} },
+/**/                  {{0x3fb7ee18, 0x2602f10f} },
+/**/                  {{0xbc5cfb65, 0x4c0c3d98} },
+/**/                  {{0x3fefb8a0, 0x96acfacc} },
+/**/                  {{0xbc82962e, 0x18495af3} },
+/**/                  {{0xbfb79568, 0x46635c89} },
+/**/                  {{0x3c5ac468, 0xa6bfd498} },
+/**/                  {{0xbfd43b8f, 0x2037b997} },
+/**/                  {{0xbc72ad53, 0xe2f12373} },
+/**/                  {{0x3fb6f885, 0x7900c4ee} },
+/**/                  {{0x3c53145d, 0x0aef1f9d} },
+/**/                  {{0x3fc65c1f, 0x4409ba0e} },
+/**/                  {{0xbfb61b65, 0x1d176e0c} },
+/**/                  {{0xbfbc2473, 0x8ad65152} },
+/**/                  {{0x3fb5033f, 0x7bc246c1} },
+/**/                  {{0x3fb239e9, 0x6db30b46} } },
+/**/                 {{{0x3fb90000, 0x00000000} },
+/**/                  {{0x3fb8ebc5, 0x4478fb28} },
+/**/                  {{0x3c473288, 0x0cad24cc} },
+/**/                  {{0x3fefb29c, 0xeedcd6d7} },
+/**/                  {{0x3c8efa9e, 0x23ea50f0} },
+/**/                  {{0xbfb887a7, 0x6ae09982} },
+/**/                  {{0x3c5b2275, 0x53801511} },
+/**/                  {{0xbfd42427, 0x3da0757c} },
+/**/                  {{0xbc7199e5, 0x311c7ac8} },
+/**/                  {{0x3fb7d6cf, 0x4388717b} },
+/**/                  {{0xbc5c4eb2, 0x3dd070b4} },
+/**/                  {{0x3fc618a7, 0xe6c2b5f3} },
+/**/                  {{0xbfb6de12, 0x00313569} },
+/**/                  {{0xbfbb79d2, 0xb6316619} },
+/**/                  {{0x3fb5a3ca, 0x61af5c21} },
+/**/                  {{0x3fb17263, 0x26e60289} } },
+/**/                 {{{0x3fba0000, 0x00000000} },
+/**/                  {{0x3fb9e941, 0x53cfdcf1} },
+/**/                  {{0x3c5a332e, 0x1d69c47e} },
+/**/                  {{0x3fefac5c, 0xdace3776} },
+/**/                  {{0xbc8c9a78, 0x1ad91ab5} },
+/**/                  {{0xbfb978c8, 0x8054ad75} },
+/**/                  {{0xbc5e35b8, 0x8ed66c17} },
+/**/                  {{0xbfd40be2, 0x665afed1} },
+/**/                  {{0x3c62eeef, 0x08ef10fb} },
+/**/                  {{0x3fb8b26b, 0x13c989d2} },
+/**/                  {{0x3c329f11, 0xbfeab3ba} },
+/**/                  {{0x3fc5d2ef, 0x93c8f97c} },
+/**/                  {{0xbfb79c03, 0x30234881} },
+/**/                  {{0xbfbaca49, 0xd0f650c8} },
+/**/                  {{0x3fb63d3c, 0xce2dcccc} },
+/**/                  {{0x3fb0a650, 0x26fb0af2} } },
+/**/                 {{{0x3fbb0000, 0x00000000} },
+/**/                  {{0x3fbae68a, 0x71c722b8} },
+/**/                  {{0x3c4c014e, 0x6910b9db} },
+/**/                  {{0x3fefa5e0, 0xa34ef42b} },
+/**/                  {{0xbc836583, 0xeb56d5b9} },
+/**/                  {{0xbfba68c1, 0x3b881779} },
+/**/                  {{0xbc473a0d, 0x13a09314} },
+/**/                  {{0xbfd3f2c3, 0x538e939c} },
+/**/                  {{0xbc68ed49, 0xee53e648} },
+/**/                  {{0x3fb98b42, 0xa7d45973} },
+/**/                  {{0xbc523943, 0x461ca7c4} },
+/**/                  {{0x3fc58b04, 0xb0f2e2bb} },
+/**/                  {{0xbfb85517, 0x1c9d23dc} },
+/**/                  {{0xbfba1612, 0x3e3b5a66} },
+/**/                  {{0x3fb6cf6f, 0x7ef1d0b9} },
+/**/                  {{0x3fafac21, 0x6617b315} } },
+/**/                 {{{0x3fbc0000, 0x00000000} },
+/**/                  {{0x3fbbe39e, 0xbe6f07c3} },
+/**/                  {{0x3c5f7b8f, 0x29a05987} },
+/**/                  {{0x3fef9f28, 0x93bb9192} },
+/**/                  {{0x3c78260b, 0x7cd1bdab} },
+/**/                  {{0xbfbb5787, 0x72759741} },
+/**/                  {{0x3c52f93f, 0xa6767247} },
+/**/                  {{0xbfd3d8cc, 0xd45bbe91} },
+/**/                  {{0x3c664839, 0x2edc0762} },
+/**/                  {{0x3fba6140, 0x4fa31d26} },
+/**/                  {{0x3c400647, 0x97891510} },
+/**/                  {{0x3fc540f6, 0x0668fd66} },
+/**/                  {{0xbfb9092d, 0xcb2f6e8f} },
+/**/                  {{0xbfb95d66, 0x8d902073} },
+/**/                  {{0x3fb75a3e, 0x99c53d16} },
+/**/                  {{0x3fae040c, 0x8f475e61} } },
+/**/                 {{{0x3fbd0000, 0x00000000} },
+/**/                  {{0x3fbce07c, 0x5c3cca32} },
+/**/                  {{0x3c4138e6, 0x425918a7} },
+/**/                  {{0x3fef9834, 0xf9f6d421} },
+/**/                  {{0x3c6f3089, 0x8c22a239} },
+/**/                  {{0xbfbc4511, 0x1d4e69a5} },
+/**/                  {{0x3c254c0f, 0xd2083ce8} },
+/**/                  {{0xbfd3be01, 0xcd488978} },
+/**/                  {{0x3c5612db, 0x6362ec0f} },
+/**/                  {{0x3fbb344e, 0xf0d94873} },
+/**/                  {{0xbc182beb, 0xfdf7db72} },
+/**/                  {{0x3fc4f4d2, 0xb9d86c04} },
+/**/                  {{0xbfb9b828, 0xdf238807} },
+/**/                  {{0xbfb8a082, 0x5f93ffd6} },
+/**/                  {{0x3fb7dd89, 0xb6650b0c} },
+/**/                  {{0x3fac5526, 0xb62676ef} } },
+/**/                 {{{0x3fbe0000, 0x00000000} },
+/**/                  {{0x3fbddd21, 0x701eba6e} },
+/**/                  {{0x3c594eff, 0xcd76fe58} },
+/**/                  {{0x3fef9106, 0x266112ba} },
+/**/                  {{0x3c74c302, 0x6b7e18b1} },
+/**/                  {{0xbfbd3154, 0x5777816c} },
+/**/                  {{0x3c5dc7e4, 0x1f9dbddd} },
+/**/                  {{0xbfd3a265, 0x37a90881} },
+/**/                  {{0xbc75bd61, 0xeb7ba840} },
+/**/                  {{0x3fbc045a, 0x0a52514b} },
+/**/                  {{0xbc35ca88, 0xcff49a99} },
+/**/                  {{0x3fc4a6aa, 0x498eeb56} },
+/**/                  {{0xbfba61eb, 0xa09232cf} },
+/**/                  {{0xbfb7dfa2, 0x4a464027} },
+/**/                  {{0x3fb85933, 0xe633c053} },
+/**/                  {{0x3faaa036, 0x3f920107} } },
+/**/                 {{{0x3fbf0000, 0x00000000} },
+/**/                  {{0x3fbed98c, 0x2190043b} },
+/**/                  {{0xbc23a598, 0x592c7b13} },
+/**/                  {{0x3fef899c, 0x6bcf4ad8} },
+/**/                  {{0x3c55fd73, 0x912c09b0} },
+/**/                  {{0xbfbe1c47, 0x607f91a0} },
+/**/                  {{0x3c576677, 0x5b5db022} },
+/**/                  {{0xbfd385fa, 0x21046f5f} },
+/**/                  {{0x3c7f01c3, 0x4487f4b8} },
+/**/                  {{0x3fbcd14d, 0xb77f2d51} },
+/**/                  {{0x3c57a86d, 0x30a2ccfe} },
+/**/                  {{0x3fc4568c, 0x8782b530} },
+/**/                  {{0xbfbb065b, 0x02b7ad2d} },
+/**/                  {{0xbfb71b03, 0xbd215555} },
+/**/                  {{0x3fb8cd23, 0xb9c1c1de} },
+/**/                  {{0x3fa8e602, 0x8dbfa69b} } },
+/**/                 {{{0x3fc00000, 0x00000000} },
+/**/                  {{0x3fbfd5ba, 0x9aac2f6e} },
+/**/                  {{0xbc4cd376, 0x86760c17} },
+/**/                  {{0x3fef81f8, 0x1f81f820} },
+/**/                  {{0xbc8f81f8, 0x1f81f820} },
+/**/                  {{0xbfbf05e0, 0x9d0dc11b} },
+/**/                  {{0xbc35a199, 0x1d821725} },
+/**/                  {{0xbfd368c3, 0xaa76e1d7} },
+/**/                  {{0xbc672d4c, 0xc796f8cd} },
+/**/                  {{0x3fbd9b16, 0xb391c2e3} },
+/**/                  {{0x3c58051b, 0x8086c51d} },
+/**/                  {{0x3fc40489, 0x94488c86} },
+/**/                  {{0xbfbba55d, 0xa98401c8} },
+/**/                  {{0xbfb652e4, 0xe5127e64} },
+/**/                  {{0x3fb93943, 0x442e53ae} },
+/**/                  {{0x3fa72753, 0x86286f75} } },
+/**/                 {{{0x3fc08000, 0x00000000} },
+/**/                  {{0x3fc068d5, 0x84212b3e} },
+/**/                  {{0xbc69e2d2, 0x83019bfd} },
+/**/                  {{0x3fef7a19, 0x991bb133} },
+/**/                  {{0x3c7a956a, 0x66627723} },
+/**/                  {{0xbfbfee16, 0x97c8e137} },
+/**/                  {{0x3c4d9399, 0x66dbe7af} },
+/**/                  {{0xbfd34ac5, 0x0810323a} },
+/**/                  {{0x3c6a1a57, 0x6bc6c512} },
+/**/                  {{0x3fbe61a2, 0x5c75a6f9} },
+/**/                  {{0xbc492b99, 0xd75c8f85} },
+/**/                  {{0x3fc3b0b1, 0xd9fa3f20} },
+/**/                  {{0xbfbc3edb, 0xee66d309} },
+/**/                  {{0xbfb58784, 0x905eeb33} },
+/**/                  {{0x3fb99d80, 0x1c65bb14} },
+/**/                  {{0x3fa564f1, 0x18a09884} } },
+/**/                 {{{0x3fc10000, 0x00000000} },
+/**/                  {{0x3fc0e6ad, 0xccf40882} },
+/**/                  {{0xbc6d71a3, 0x1bb98d0d} },
+/**/                  {{0x3fef7201, 0x32978bad} },
+/**/                  {{0x3c816476, 0x599381e9} },
+/**/                  {{0xbfc06a70, 0x011b81fd} },
+/**/                  {{0xbc422f5d, 0x9ba697ca} },
+/**/                  {{0xbfd32c01, 0x802fc0a5} },
+/**/                  {{0x3c7d8e47, 0x08a20868} },
+/**/                  {{0x3fbf24de, 0xb59597fe} },
+/**/                  {{0xbc43288f, 0x410d31eb} },
+/**/                  {{0x3fc35b16, 0x070feb24} },
+/**/                  {{0xbfbcd2bf, 0xe4565b78} },
+/**/                  {{0xbfb4b922, 0x128768c6} },
+/**/                  {{0x3fb9f9cb, 0x5c42a097} },
+/**/                  {{0x3fa39fa2, 0xc7f97f2e} } },
+/**/                 {{{0x3fc18000, 0x00000000} },
+/**/                  {{0x3fc16465, 0x41060850} },
+/**/                  {{0x3c66bcee, 0x8ae7ea92} },
+/**/                  {{0x3fef69af, 0x483f492b} },
+/**/                  {{0xbc6e3280, 0x57db963e} },
+/**/                  {{0xbfc0dd19, 0xdacaa844} },
+/**/                  {{0xbc6133c7, 0xad7fc21e} },
+/**/                  {{0xbfd30c7c, 0x6addaea8} },
+/**/                  {{0xbc71443d, 0x89161c76} },
+/**/                  {{0x3fbfe4ba, 0x6a6d3cd2} },
+/**/                  {{0x3c50d4b8, 0x423ee67a} },
+/**/                  {{0x3fc303c7, 0x092e569a} },
+/**/                  {{0xbfbd60f5, 0x5b11d3b6} },
+/**/                  {{0xbfb3e7fd, 0x283b5c55} },
+/**/                  {{0x3fba4e19, 0x9d9a6ab7} },
+/**/                  {{0x3fa1d82f, 0x3487cc29} } },
+/**/                 {{{0x3fc20000, 0x00000000} },
+/**/                  {{0x3fc1e1fa, 0xfb043727} },
+/**/                  {{0xbc4b4859, 0x14dacf8c} },
+/**/                  {{0x3fef6124, 0x38a14f5e} },
+/**/                  {{0x3c798e9e, 0x001f6124} },
+/**/                  {{0xbfc14f04, 0x59d3fb7c} },
+/**/                  {{0x3c531efa, 0x4cc99cb2} },
+/**/                  {{0xbfd2ec39, 0x31219b34} },
+/**/                  {{0xbc618697, 0x6e004611} },
+/**/                  {{0x3fc05092, 0x68736312} },
+/**/                  {{0x3c67aad4, 0x8a06e4b5} },
+/**/                  {{0x3fc2aad6, 0x07eca5ec} },
+/**/                  {{0xbfbde969, 0xe19fe31c} },
+/**/                  {{0xbfb31455, 0xdb6b9127} },
+/**/                  {{0x3fba9a62, 0xf53dd9ee} },
+/**/                  {{0x3fa00f5b, 0xa8e4ede0} } },
+/**/                 {{{0x3fc28000, 0x00000000} },
+/**/                  {{0x3fc25f6e, 0x171a535c} },
+/**/                  {{0x3c67c6d7, 0xbde1a310} },
+/**/                  {{0x3fef5860, 0x64866d22} },
+/**/                  {{0x3c88c6ff, 0xd1f6326c} },
+/**/                  {{0xbfc1c02b, 0x13c11396} },
+/**/                  {{0xbc51b469, 0xffeb1a0f} },
+/**/                  {{0xbfd2cb3b, 0x4c571b0f} },
+/**/                  {{0x3c6e4f76, 0x2fb0b163} },
+/**/                  {{0x3fc0ad06, 0xf5c213ab} },
+/**/                  {{0x3c625bf2, 0xabea9e66} },
+/**/                  {{0x3fc25054, 0x5f93bbb2} },
+/**/                  {{0xbfbe6c0c, 0xc80a32c8} },
+/**/                  {{0xbfb23e6c, 0x678d0d1e} },
+/**/                  {{0x3fbadea2, 0xebf8ae4b} },
+/**/                  {{0x3f9c8bd7, 0x527f133b} } },
+/**/                 {{{0x3fc30000, 0x00000000} },
+/**/                  {{0x3fc2dcbd, 0xb2fba1ff} },
+/**/                  {{0x3c58f287, 0x05561534} },
+/**/                  {{0x3fef4f64, 0x2ee76e94} },
+/**/                  {{0x3c80ec89, 0xc6da5865} },
+/**/                  {{0xbfc23089, 0xb322f867} },
+/**/                  {{0x3c4c2b54, 0x5fcd0d6f} },
+/**/                  {{0xbfd2a986, 0x45802261} },
+/**/                  {{0xbc79a132, 0x5ae78b8a} },
+/**/                  {{0x3fc107b3, 0x35a9d974} },
+/**/                  {{0x3c5ef22d, 0xb725e335} },
+/**/                  {{0x3fc1f453, 0x9bd98832} },
+/**/                  {{0xbfbee8cf, 0x2057aad4} },
+/**/                  {{0xbfb16681, 0x1e1bc3a1} },
+/**/                  {{0x3fbb1ad8, 0x759c8f58} },
+/**/                  {{0x3f98f941, 0x0b15b4aa} } },
+/**/                 {{{0x3fc38000, 0x00000000} },
+/**/                  {{0x3fc359e8, 0xedeb99a4} },
+/**/                  {{0xbc6a5fd7, 0x4e4604c6} },
+/**/                  {{0x3fef462f, 0xfce28238} },
+/**/                  {{0x3c83dc01, 0xd90595d1} },
+/**/                  {{0xbfc2a01b, 0xf7edfa6d} },
+/**/                  {{0xbc6b11fb, 0x4a3b5c9a} },
+/**/                  {{0xbfd2871d, 0xb4959402} },
+/**/                  {{0xbc4a3702, 0x2fcf7ea3} },
+/**/                  {{0x3fc1608f, 0xd8d7fe8c} },
+/**/                  {{0x3c61ac60, 0xf8f1d41c} },
+/**/                  {{0x3fc196e5, 0x729a89ca} },
+/**/                  {{0xbfbf5fa3, 0xbec74f31} },
+/**/                  {{0xbfb08cd4, 0x4b6c9767} },
+/**/                  {{0x3fbb4f05, 0xe624ce15} },
+/**/                  {{0x3f956871, 0xddb2020c} } },
+/**/                 {{{0x3fc40000, 0x00000000} },
+/**/                  {{0x3fc3d6ee, 0xe8c6626c} },
+/**/                  {{0x3c661a3b, 0x0ce9281b} },
+/**/                  {{0x3fef3cc4, 0x35b0713c} },
+/**/                  {{0x3c81d0a7, 0xe69ea094} },
+/**/                  {{0xbfc30edd, 0xb7d169f0} },
+/**/                  {{0x3c6b3394, 0xae999b97} },
+/**/                  {{0xbfd26405, 0x3fd62b3c} },
+/**/                  {{0x3c73e339, 0xc0736df9} },
+/**/                  {{0x3fc1b795, 0xe8e57ee3} },
+/**/                  {{0xbc6130dc, 0x0a42c7f6} },
+/**/                  {{0x3fc1381b, 0xbe93b8e5} },
+/**/                  {{0xbfbfd07f, 0x394e1bf7} },
+/**/                  {{0xbfaf634c, 0x37bb5315} },
+/**/                  {{0x3fbb7b30, 0xe501e57b} },
+/**/                  {{0x3f91dae1, 0x20503792} } },
+/**/                 {{{0x3fc48000, 0x00000000} },
+/**/                  {{0x3fc453ce, 0xc6092a9e} },
+/**/                  {{0x3c61f653, 0xb3a5a78b} },
+/**/                  {{0x3fef3321, 0x4299ace8} },
+/**/                  {{0xbc87414c, 0x3a742b30} },
+/**/                  {{0xbfc37cca, 0xde8b2323} },
+/**/                  {{0x3c649378, 0x7b50aedf} },
+/**/                  {{0xbfd24040, 0x9b13f4d0} },
+/**/                  {{0x3c7e271f, 0xb7dc85c0} },
+/**/                  {{0x3fc20cbe, 0xc9024068} },
+/**/                  {{0x3c50921f, 0x88ef3da7} },
+/**/                  {{0x3fc0d808, 0x7a1f1270} },
+/**/                  {{0xbfc01dab, 0xf32d5436} },
+/**/                  {{0xbfadaa6d, 0x02e6f09c} },
+/**/                  {{0x3fbb9f62, 0x5e9cd766} },
+/**/                  {{0x3f8ca3fe, 0xab964c04} } },
+/**/                 {{{0x3fc50000, 0x00000000} },
+/**/                  {{0x3fc4d087, 0xa9da4f17} },
+/**/                  {{0x3c61f323, 0xf1adf158} },
+/**/                  {{0x3fef2947, 0x8eeb3352} },
+/**/                  {{0x3c871eb0, 0x8799a164} },
+/**/                  {{0xbfc3e9df, 0x6e36e75c} },
+/**/                  {{0x3c541555, 0x4e37666f} },
+/**/                  {{0xbfd21bd3, 0x87008bd0} },
+/**/                  {{0xbc609e14, 0xc24ff75f} },
+/**/                  {{0x3fc26004, 0x36860504} },
+/**/                  {{0xbc58f8ca, 0x1ebc8c40} },
+/**/                  {{0x3fc076bd, 0xb9f4ead3} },
+/**/                  {{0xbfc05012, 0xed70ddd5} },
+/**/                  {{0xbfabef8a, 0x33e194b1} },
+/**/                  {{0x3fbbbba6, 0x7423a91f} },
+/**/                  {{0x3f859e6a, 0xdd99da12} } },
+/**/                 {{{0x3fc58000, 0x00000000} },
+/**/                  {{0x3fc54d18, 0xba11570a} },
+/**/                  {{0x3c618282, 0xf2884073} },
+/**/                  {{0x3fef1f37, 0x87eb4d7d} },
+/**/                  {{0x3c8476f0, 0xedda13e6} },
+/**/                  {{0xbfc45617, 0x7f997c7c} },
+/**/                  {{0xbc46bf5b, 0x6423ceda} },
+/**/                  {{0xbfd1f6c1, 0xd0784ec7} },
+/**/                  {{0xbc74ec12, 0xd106a8e0} },
+/**/                  {{0x3fc2b160, 0x4967338d} },
+/**/                  {{0x3c5309c0, 0x61339c25} },
+/**/                  {{0x3fc0144d, 0xa7f42962} },
+/**/                  {{0xbfc07f71, 0x73dbaeec} },
+/**/                  {{0xbfaa3322, 0x2aeda9a4} },
+/**/                  {{0x3fbbd00c, 0x69b152b3} },
+/**/                  {{0x3f7d4f90, 0x4c782821} } },
+/**/                 {{{0x3fc60000, 0x00000000} },
+/**/                  {{0x3fc5c981, 0x1e3ec26a} },
+/**/                  {{0xbc5054ab, 0x2c010f3d} },
+/**/                  {{0x3fef14f1, 0x9cce28eb} },
+/**/                  {{0xbc8b7c25, 0x2708cd6e} },
+/**/                  {{0xbfc4c16f, 0x42678d07} },
+/**/                  {{0x3c5f55ba, 0xc1560017} },
+/**/                  {{0xbfd1d10f, 0x4fccc153} },
+/**/                  {{0x3c529588, 0x1bcc361d} },
+/**/                  {{0x3fc300cd, 0x74979f8c} },
+/**/                  {{0xbc6b1da5, 0x0bc1e891} },
+/**/                  {{0x3fbf6194, 0xfbe70208} },
+/**/                  {{0xbfc0abc5, 0x4b1c266f} },
+/**/                  {{0xbfa875b2, 0x3b74e858} },
+/**/                  {{0x3fbbdca6, 0x92e46f11} },
+/**/                  {{0x3f6f0b17, 0x9de94aef} } },
+/**/                 {{{0x3fc68000, 0x00000000} },
+/**/                  {{0x3fc645bf, 0xffb3aa74} },
+/**/                  {{0xbc3f536b, 0x677c2cb4} },
+/**/                  {{0x3fef0a76, 0x3eaa4ed6} },
+/**/                  {{0x3c888c52, 0x0b06c761} },
+/**/                  {{0xbfc52be2, 0xfd884489} },
+/**/                  {{0x3c67ec59, 0xbe5c728a} },
+/**/                  {{0xbfd1aabf, 0xe80e4e0a} },
+/**/                  {{0xbc71320e, 0xe90c909e} },
+/**/                  {{0x3fc34e46, 0x864781ca} },
+/**/                  {{0x3c42fcb3, 0x126138ee} },
+/**/                  {{0x3fbe988d, 0x013b5d4f} },
+/**/                  {{0xbfc0d50d, 0x122409a2} },
+/**/                  {{0xbfa6b7b6, 0x7bb562c1} },
+/**/                  {{0x3fbbe18a, 0x3df8dee8} },
+/**/                  {{0x3f3e4009, 0x8809e1ef} } },
+/**/                 {{{0x3fc70000, 0x00000000} },
+/**/                  {{0x3fc6c1d4, 0x898933d9} },
+/**/                  {{0xbc52954a, 0x7603c427} },
+/**/                  {{0x3feeffc5, 0xe06cfb34} },
+/**/                  {{0xbc85c037, 0x379877c2} },
+/**/                  {{0xbfc5956f, 0x0f53a52c} },
+/**/                  {{0x3c4d46a2, 0xe566376c} },
+/**/                  {{0xbfd183d7, 0x86559c11} },
+/**/                  {{0x3c7d2520, 0x64734c7f} },
+/**/                  {{0x3fc399c6, 0xa80eddd5} },
+/**/                  {{0x3c616c26, 0x40fbef6f} },
+/**/                  {{0x3fbdcda7, 0xf4b571a7} },
+/**/                  {{0xbfc0fb48, 0x3fd42996} },
+/**/                  {{0xbfa4f9a9, 0x95c85118} },
+/**/                  {{0x3fbbdecf, 0x9d795df4} },
+/**/                  {{0xbf672003, 0xb85bf719} } },
+/**/                 {{{0x3fc78000, 0x00000000} },
+/**/                  {{0x3fc73dbd, 0xe8a7d202} },
+/**/                  {{0xbc55ad0f, 0x6d4a665d} },
+/**/                  {{0x3feef4e0, 0xf6ce5590} },
+/**/                  {{0xbc833df6, 0x556900ef} },
+/**/                  {{0xbfc5fe0f, 0xedcc9488} },
+/**/                  {{0x3c5078de, 0xd2b9e35c} },
+/**/                  {{0xbfd15c5a, 0x210cab36} },
+/**/                  {{0x3c67fa93, 0xf55e532a} },
+/**/                  {{0x3fc3e349, 0x5efd9a41} },
+/**/                  {{0xbc6cf709, 0xc8573a12} },
+/**/                  {{0x3fbd010a, 0x6c903aef} },
+/**/                  {{0xbfc11e77, 0x20571328} },
+/**/                  {{0xbfa33c04, 0x9a1875dd} },
+/**/                  {{0x3fbbd491, 0xb09ec0ce} },
+/**/                  {{0xbf78d197, 0x35537a65} } },
+/**/                 {{{0x3fc80000, 0x00000000} },
+/**/                  {{0x3fc7b97b, 0x4bce5b02} },
+/**/                  {{0x3c5347b0, 0xb4f881ca} },
+/**/                  {{0x3feee9c7, 0xf8458e02} },
+/**/                  {{0xbc616380, 0x7ba71fe1} },
+/**/                  {{0xbfc665c2, 0x26d69eeb} },
+/**/                  {{0xbc572a33, 0xfdb5eea8} },
+/**/                  {{0xbfd1344b, 0xb737e8f3} },
+/**/                  {{0xbc757b70, 0x62badf41} },
+/**/                  {{0x3fc42aca, 0x8b929b0b} },
+/**/                  {{0x3c43cdb5, 0x7a8b7d91} },
+/**/                  {{0x3fbc32d8, 0xf683981c} },
+/**/                  {{0xbfc13e9a, 0xd22d5ecc} },
+/**/                  {{0xbfa17f3e, 0xd35c8c33} },
+/**/                  {{0x3fbbc2ee, 0x2a73307e} },
+/**/                  {{0xbf82ee04, 0x2bddc834} } },
+/**/                 {{{0x3fc88000, 0x00000000} },
+/**/                  {{0x3fc8350b, 0xe398ebc8} },
+/**/                  {{0xbc55a913, 0x32b9c90d} },
+/**/                  {{0x3feede7b, 0x5cfce04c} },
+/**/                  {{0x3c8507c2, 0x3b51a72f} },
+/**/                  {{0xbfc6cc82, 0x6067718b} },
+/**/                  {{0x3c6d00ca, 0xdbfc430f} },
+/**/                  {{0xbfd10bb0, 0x4fbf6fe8} },
+/**/                  {{0x3c321748, 0x53749c72} },
+/**/                  {{0x3fc47046, 0x699a36ad} },
+/**/                  {{0xbc63924c, 0x3994d40c} },
+/**/                  {{0x3fbb6338, 0x0dfb7483} },
+/**/                  {{0xbfc15bb5, 0x42ee5820} },
+/**/                  {{0xbf9f879b, 0x385194fc} },
+/**/                  {{0x3fbbaa05, 0x57d040e9} },
+/**/                  {{0xbf895566, 0xada71ca0} } },
+/**/                 {{{0x3fc90000, 0x00000000} },
+/**/                  {{0x3fc8b06e, 0xe2879c29} },
+/**/                  {{0xbc6118cd, 0x30308c4f} },
+/**/                  {{0x3feed2fb, 0x9ec57f51} },
+/**/                  {{0xbc83fdc5, 0xc0d106ba} },
+/**/                  {{0xbfc7324d, 0x58b40d27} },
+/**/                  {{0x3c68e240, 0xfc062163} },
+/**/                  {{0xbfd0e28b, 0xf8b8a2bf} },
+/**/                  {{0xbc7b8d8a, 0x64c55b39} },
+/**/                  {{0x3fc4b3b9, 0x8ff46730} },
+/**/                  {{0xbc5af146, 0x988563da} },
+/**/                  {{0x3fba924c, 0x1277a10d} },
+/**/                  {{0xbfc175c9, 0x2bbfd54d} },
+/**/                  {{0xbf9c1448, 0x6c522340} },
+/**/                  {{0x3fbb89fa, 0x044f2f6b} },
+/**/                  {{0xbf8f9cc7, 0xaaecc742} } },
+/**/                 {{{0x3fc98000, 0x00000000} },
+/**/                  {{0x3fc92ba3, 0x7d050272} },
+/**/                  {{0xbc60d3de, 0xd0ff4764} },
+/**/                  {{0x3feec749, 0x390b6afe} },
+/**/                  {{0xbc5c3d17, 0x4e3659ca} },
+/**/                  {{0xbfc7971f, 0xe659b3de} },
+/**/                  {{0x3c4cab11, 0x373f554d} },
+/**/                  {{0xbfd0b8e2, 0xc6b052a4} },
+/**/                  {{0x3c7da014, 0x6f3b74bc} },
+/**/                  {{0x3fc4f520, 0xf0432146} },
+/**/                  {{0xbc6769ad, 0xa8027290} },
+/**/                  {{0x3fb9c039, 0x3e17b570} },
+/**/                  {{0xbfc18cda, 0x0d8833a4} },
+/**/                  {{0xbf98a567, 0x4627d340} },
+/**/                  {{0x3fbb62f1, 0x5e42eff7} },
+/**/                  {{0xbf92e10a, 0x7ee3bed3} } },
+/**/                 {{{0x3fca0000, 0x00000000} },
+/**/                  {{0x3fc9a6a8, 0xe96c8626} },
+/**/                  {{0x3c4cf601, 0xe7b4348e} },
+/**/                  {{0x3feebb64, 0xa8c932d7} },
+/**/                  {{0x3c20538d, 0x79aae302} },
+/**/                  {{0xbfc7faf6, 0xf88295fe} },
+/**/                  {{0xbc687a81, 0x932909e9} },
+/**/                  {{0xbfd08eb8, 0xd3f5a07b} },
+/**/                  {{0xbc620a05, 0xfb7d6aaa} },
+/**/                  {{0x3fc53479, 0xd6814372} },
+/**/                  {{0xbc53c682, 0x0a0c6620} },
+/**/                  {{0x3fb8ed23, 0x9c562d77} },
+/**/                  {{0xbfc1a0ec, 0x2cdd89fd} },
+/**/                  {{0xbf953bd4, 0xfec9df82} },
+/**/                  {{0x3fbb3512, 0xd9d3f0f6} },
+/**/                  {{0xbf95e1ab, 0x4534ccf5} } },
+/**/                 {{{0x3fca8000, 0x00000000} },
+/**/                  {{0x3fca217e, 0x601081a6} },
+/**/                  {{0xbc60def8, 0xa60af374} },
+/**/                  {{0x3feeaf4e, 0x6c7ba732} },
+/**/                  {{0x3c89fa72, 0xe91fffe1} },
+/**/                  {{0xbfc85dcf, 0x970642c3} },
+/**/                  {{0xbc5732c2, 0x5b7f0ad0} },
+/**/                  {{0xbfd06412, 0x3fe5c74d} },
+/**/                  {{0xbc7d0053, 0x4a82f9b1} },
+/**/                  {{0x3fc571c1, 0xe882973d} },
+/**/                  {{0x3c59d9a3, 0x9090f12c} },
+/**/                  {{0x3fb8192f, 0x00f5d0e0} },
+/**/                  {{0xbfc1b204, 0x8db53983} },
+/**/                  {{0xbf91d869, 0xbdd7b47e} },
+/**/                  {{0x3fbb0088, 0x1355a903} },
+/**/                  {{0xbf98cf57, 0x724a2ad9} } },
+/**/                 {{{0x3fcb0000, 0x00000000} },
+/**/                  {{0x3fca9c23, 0x1b403279} },
+/**/                  {{0x3c60e8bb, 0xe89cca85} },
+/**/                  {{0x3feea307, 0x04157b4f} },
+/**/                  {{0x3c8ad743, 0xfd8bf1f0} },
+/**/                  {{0xbfc8bfa6, 0xe285e2fd} },
+/**/                  {{0xbc6ce765, 0x9c834c8f} },
+/**/                  {{0xbfd038f3, 0x2e38fd26} },
+/**/                  {{0x3c6a42ec, 0xef212a80} },
+/**/                  {{0x3fc5acf7, 0x255d65d5} },
+/**/                  {{0xbc619fba, 0xbe486771} },
+/**/                  {{0x3fb7447e, 0xff244e15} },
+/**/                  {{0xbfc1c028, 0xeed71b69} },
+/**/                  {{0xbf8cf7f0, 0xaceecf68} },
+/**/                  {{0x3fbac57c, 0xb0ee161b} },
+/**/                  {{0xbf9ba92d, 0xefc8f53e} } },
+/**/                 {{{0x3fcb8000, 0x00000000} },
+/**/                  {{0x3fcb1696, 0x574d780c} },
+/**/                  {{0xbc585ab8, 0xfc15a673} },
+/**/                  {{0x3fee968e, 0xf0f2da5a} },
+/**/                  {{0xbc6fffe1, 0x69710f0d} },
+/**/                  {{0xbfc9207a, 0x148444b5} },
+/**/                  {{0xbc66661a, 0x1802fa91} },
+/**/                  {{0xbfd00d5f, 0xc65096ca} },
+/**/                  {{0x3c7f2a2e, 0x8920e744} },
+/**/                  {{0x3fc5e617, 0xe4be288d} },
+/**/                  {{0x3c67fa48, 0x99be934f} },
+/**/                  {{0x3fb66f36, 0xe0d4c87a} },
+/**/                  {{0xbfc1cb5f, 0xc5179ce8} },
+/**/                  {{0xbf864e9c, 0x1011bb6c} },
+/**/                  {{0x3fba841e, 0x43a75476} },
+/**/                  {{0xbf9e6e5b, 0x845fc859} } },
+/**/                 {{{0x3fcc0000, 0x00000000} },
+/**/                  {{0x3fcb90d7, 0x529260a2} },
+/**/                  {{0x3c217b10, 0xd2e0e5ab} },
+/**/                  {{0x3fee89e6, 0xb5ccf172} },
+/**/                  {{0x3c820357, 0x153be26a} },
+/**/                  {{0xbfc98046, 0x7f79bfd6} },
+/**/                  {{0xbc0799ee, 0xf5d60955} },
+/**/                  {{0xbfcfc2b8, 0x650d32f4} },
+/**/                  {{0xbc6b59de, 0x4d01b49e} },
+/**/                  {{0x3fc61d22, 0xd625e475} },
+/**/                  {{0xbc68013f, 0xe23c6105} },
+/**/                  {{0x3fb59979, 0x9e54f300} },
+/**/                  {{0xbfc1d3b0, 0x365c2b85} },
+/**/                  {{0xbf7f6cc9, 0x0afb6b97} },
+/**/                  {{0x3fba3c9c, 0x28035c12} },
+/**/                  {{0xbfa08f0d, 0x8331488a} } },
+/**/                 {{{0x3fcc8000, 0x00000000} },
+/**/                  {{0x3fcc0ae5, 0x4d768467} },
+/**/                  {{0xbc604cdb, 0xf55f26dc} },
+/**/                  {{0x3fee7d0e, 0xd6ad70cb} },
+/**/                  {{0x3c8e6761, 0xee20d17d} },
+/**/                  {{0xbfc9df09, 0x8ee3fcf8} },
+/**/                  {{0x3c62daa3, 0xed723e81} },
+/**/                  {{0xbfcf69d9, 0x3efdc9b4} },
+/**/                  {{0x3c6c7b6f, 0x85a20110} },
+/**/                  {{0x3fc65217, 0x0013c661} },
+/**/                  {{0xbc678a0c, 0xab1387be} },
+/**/                  {{0x3fb4c369, 0xd61f268e} },
+/**/                  {{0xbfc1d922, 0x146d6110} },
+/**/                  {{0xbf726199, 0xc0b0ed0a} },
+/**/                  {{0x3fb9ef27, 0x6629c856} },
+/**/                  {{0xbfa1dbda, 0xc1ea955d} } },
+/**/                 {{{0x3fcd0000, 0x00000000} },
+/**/                  {{0x3fcc84bf, 0x8a742e6e} },
+/**/                  {{0xbc595bdd, 0x0682ea26} },
+/**/                  {{0x3fee7007, 0xd8e205ea} },
+/**/                  {{0x3c816199, 0x7b2991c1} },
+/**/                  {{0xbfca3cc0, 0xc751a854} },
+/**/                  {{0xbc66a2fd, 0x4efbc78c} },
+/**/                  {{0xbfcf102a, 0x76f43baa} },
+/**/                  {{0x3c6cfc38, 0x38d996b1} },
+/**/                  {{0x3fc684f3, 0xbf1a9ad6} },
+/**/                  {{0x3c52eaf7, 0x7c3b6690} },
+/**/                  {{0x3fb3ed29, 0xc4ebba84} },
+/**/                  {{0xbfc1dbbd, 0xd79a6a53} },
+/**/                  {{0xbf55fa5b, 0xfd09510e} },
+/**/                  {{0x3fb99bf2, 0x91c74d50} },
+/**/                  {{0xbfa31d41, 0x3002c38b} } },
+/**/                 {{{0x3fcd8000, 0x00000000} },
+/**/                  {{0x3fccfe65, 0x4e1d5395} },
+/**/                  {{0x3c647b9a, 0x3f71eafb} },
+/**/                  {{0x3fee62d2, 0x42efd10e} },
+/**/                  {{0x3c850a65, 0xa021973e} },
+/**/                  {{0xbfca9969, 0xc66a1be4} },
+/**/                  {{0x3c326164, 0x3753f036} },
+/**/                  {{0xbfceb5b4, 0x6b550477} },
+/**/                  {{0xbc64cacb, 0xa3ef610f} },
+/**/                  {{0x3fc6b5b8, 0xc4e2c295} },
+/**/                  {{0x3c66b228, 0x98b2ac7f} },
+/**/                  {{0x3fb316db, 0x3e03bb80} },
+/**/                  {{0xbfc1db8c, 0x99312ba1} },
+/**/                  {{0x3f5ce5b0, 0x8536556f} },
+/**/                  {{0x3fb94331, 0xa9b62abf} },
+/**/                  {{0xbfa452f3, 0xb36f42fc} } },
+/**/                 {{{0x3fce0000, 0x00000000} },
+/**/                  {{0x3fcd77d5, 0xdf205736} },
+/**/                  {{0x3c6c648d, 0x1534597e} },
+/**/                  {{0x3fee556e, 0x9c86d7c6} },
+/**/                  {{0xbc830c25, 0x34c9abfd} },
+/**/                  {{0xbfcaf502, 0x42f10c89} },
+/**/                  {{0xbc411261, 0xf8576d95} },
+/**/                  {{0xbfce5a7f, 0x7b1596d9} },
+/**/                  {{0x3c574baa, 0x78f7ae18} },
+/**/                  {{0x3fc6e466, 0x171949b1} },
+/**/                  {{0xbc6ff86b, 0x52f9c399} },
+/**/                  {{0x3fb2409f, 0xa3d6f244} },
+/**/                  {{0xbfc1d898, 0x0dceacbf} },
+/**/                  {{0x3f73c3b6, 0xdc715080} },
+/**/                  {{0x3fb8e519, 0xf78687ab} },
+/**/                  {{0xbfa57cac, 0x6b1251ec} } },
+/**/                 {{{0x3fce8000, 0x00000000} },
+/**/                  {{0x3fcdf110, 0x864c9d9e} },
+/**/                  {{0xbc35818b, 0x53bf4781} },
+/**/                  {{0x3fee47dd, 0x6e7576a6} },
+/**/                  {{0x3c89d322, 0x24b84595} },
+/**/                  {{0xbfcb4f88, 0x0cc64717} },
+/**/                  {{0xbc624035, 0x44bb97a3} },
+/**/                  {{0xbfcdfe94, 0x046e8a3b} },
+/**/                  {{0xbc6078ee, 0xd278da00} },
+/**/                  {{0x3fc710fc, 0x0e4ccbb7} },
+/**/                  {{0xbc58c89c, 0x1da51f71} },
+/**/                  {{0x3fb16a97, 0xe0d7022a} },
+/**/                  {{0xbfc1d2ea, 0x7f8b58f8} },
+/**/                  {{0x3f800ed5, 0xaf259d18} },
+/**/                  {{0x3fb881e1, 0xeefd29c7} },
+/**/                  {{0xbfa69a2c, 0xae6aa0c1} } },
+/**/                 {{{0x3fcf0000, 0x00000000} },
+/**/                  {{0x3fce6a14, 0x8e96ec4d} },
+/**/                  {{0x3c6866b2, 0x2029f765} },
+/**/                  {{0x3fee3a1f, 0x429bd423} },
+/**/                  {{0xbc86174a, 0x48961291} },
+/**/                  {{0xbfcba8f9, 0x0ce18ad9} },
+/**/                  {{0x3c62e3e9, 0xb50eb15d} },
+/**/                  {{0xbfcda1fa, 0x63927806} },
+/**/                  {{0xbbed7b15, 0x8073bacf} },
+/**/                  {{0x3fc73b7b, 0x54b8d3bb} },
+/**/                  {{0x3c602afb, 0x74869c1c} },
+/**/                  {{0x3fb094e4, 0x60993bd6} },
+/**/                  {{0xbfc1ca8e, 0xc806a157} },
+/**/                  {{0x3f862263, 0xa854d278} },
+/**/                  {{0x3fb819c1, 0x0d9e7452} },
+/**/                  {{0xbfa7ab3d, 0x08743869} } },
+/**/                 {{{0x3fcf8000, 0x00000000} },
+/**/                  {{0x3fcee2e1, 0x451d980d} },
+/**/                  {{0xbc59a770, 0x8c46ba91} },
+/**/                  {{0x3fee2c34, 0xa3df5666} },
+/**/                  {{0xbc8ef949, 0x19a92865} },
+/**/                  {{0xbfcc0153, 0x454a9009} },
+/**/                  {{0x3c5572bf, 0xda1123ca} },
+/**/                  {{0xbfcd44ba, 0xf169cd42} },
+/**/                  {{0xbc6db0f2, 0xf1052e0a} },
+/**/                  {{0x3fc763e4, 0xe5006ad1} },
+/**/                  {{0x3c66e21a, 0x3e902796} },
+/**/                  {{0x3faf7f4a, 0x12812c7d} },
+/**/                  {{0xbfc1bf90, 0x4a558d9d} },
+/**/                  {{0x3f8c1b52, 0x2be7fbfd} },
+/**/                  {{0x3fb7acef, 0xba5b0263} },
+/**/                  {{0xbfa8afad, 0x2dddf4e5} } },
+/**/                 {{{0x3fd00000, 0x00000000} },
+/**/                  {{0x3fcf5b75, 0xf92c80dd} },
+/**/                  {{0x3c68ab6e, 0x3cf7afbd} },
+/**/                  {{0x3fee1e1e, 0x1e1e1e1e} },
+/**/                  {{0x3c6e1e1e, 0x1e1e1e1e} },
+/**/                  {{0xbfcc5894, 0xd10d4986} },
+/**/                  {{0x3c5f00e2, 0xc4a6886a} },
+/**/                  {{0xbfcce6de, 0x0253d27e} },
+/**/                  {{0xbc65d764, 0x3c5fce89} },
+/**/                  {{0x3fc78a3a, 0x08d88b02} },
+/**/                  {{0x3c4fc5d6, 0x32bd57e4} },
+/**/                  {{0x3fadd5f2, 0x6a622b44} },
+/**/                  {{0xbfc1b1fa, 0xecd7c4e0} },
+/**/                  {{0x3f90fc3e, 0x1fc8b549} },
+/**/                  {{0x3fb73ba7, 0x25728acf} },
+/**/                  {{0xbfa9a753, 0xeeba051f} } },
+/**/                 {{{0x3fd04000, 0x00000000} },
+/**/                  {{0x3fcfd3d1, 0xfc40dbe4} },
+/**/                  {{0x3c437146, 0xf3a1c5ea} },
+/**/                  {{0x3fee0fdc, 0x3e228818} },
+/**/                  {{0xbc62e075, 0x8c042ef5} },
+/**/                  {{0xbfccaebb, 0xe42a71b9} },
+/**/                  {{0xbc69fa0a, 0x8025fd1d} },
+/**/                  {{0xbfcc886b, 0xe4ed28e5} },
+/**/                  {{0xbc59ccc3, 0x7604b95a} },
+/**/                  {{0x3fc7ae7c, 0x57a32fb9} },
+/**/                  {{0x3c67393b, 0xe36848c2} },
+/**/                  {{0x3fac2dff, 0x5a1b7b6f} },
+/**/                  {{0xbfc1a1db, 0x12f690d4} },
+/**/                  {{0x3f93dc65, 0xa575dc1d} },
+/**/                  {{0x3fb6c621, 0x28a107f6} },
+/**/                  {{0xbfaa920f, 0x23d2c35f} } },
+/**/                 {{{0x3fd08000, 0x00000000} },
+/**/                  {{0x3fd025fa, 0x510665b6} },
+/**/                  {{0xbc7672df, 0x6832fa48} },
+/**/                  {{0x3fee016f, 0x9196b776} },
+/**/                  {{0x3c81da3a, 0xb14efc08} },
+/**/                  {{0xbfcd03c6, 0xcb847375} },
+/**/                  {{0xbc6819f2, 0xfc4c6f52} },
+/**/                  {{0xbfcc296c, 0xe0dbf8a5} },
+/**/                  {{0xbc55cc84, 0x27fb1c17} },
+/**/                  {{0x3fc7d0ad, 0xb4fbbf40} },
+/**/                  {{0x3c6378b3, 0x41b71641} },
+/**/                  {{0x3faa87ad, 0x440404cd} },
+/**/                  {{0xbfc18f3d, 0x96d156a8} },
+/**/                  {{0x3f96ad9b, 0x9ef40490} },
+/**/                  {{0x3fb64c98, 0x27a95e14} },
+/**/                  {{0xbfab6fc3, 0x97cfdce0} } },
+/**/                 {{{0x3fd0c000, 0x00000000} },
+/**/                  {{0x3fd061ee, 0xa03d6291} },
+/**/                  {{0xbc45f760, 0xdb154301} },
+/**/                  {{0x3fedf2d8, 0xa6f82a61} },
+/**/                  {{0xbc6cedbb, 0x560866af} },
+/**/                  {{0xbfcd57b3, 0xecc8c02c} },
+/**/                  {{0x3c641512, 0x85b9541c} },
+/**/                  {{0xbfcbc9e9, 0x35a209c0} },
+/**/                  {{0x3c65bfd8, 0x4914a5d1} },
+/**/                  {{0x3fc7f0d0, 0x4f358b07} },
+/**/                  {{0xbc60dc70, 0x3f47a5cc} },
+/**/                  {{0x3fa8e337, 0x50af01c1} },
+/**/                  {{0xbfc17a2f, 0xc2daf61b} },
+/**/                  {{0x3f996f63, 0x57b649f0} },
+/**/                  {{0x3fb5cf46, 0xf14fef28} },
+/**/                  {{0xbfac405c, 0xec5a22c2} } },
+/**/                 {{{0x3fd10000, 0x00000000} },
+/**/                  {{0x3fd09dc5, 0x97d86362} },
+/**/                  {{0x3c762e47, 0x390cb865} },
+/**/                  {{0x3fede418, 0x0d8b5ae6} },
+/**/                  {{0x3c719298, 0x23f66cf0} },
+/**/                  {{0xbfcdaa81, 0xc655a596} },
+/**/                  {{0x3c666d0d, 0x6a90480b} },
+/**/                  {{0xbfcb69e9, 0x1974fd6c} },
+/**/                  {{0xbc68e199, 0xec28723f} },
+/**/                  {{0x3fc80ee6, 0x9dcd2641} },
+/**/                  {{0x3c37ccfe, 0x45b4bb82} },
+/**/                  {{0x3fa740d7, 0x64b143be} },
+/**/                  {{0xbfc162bf, 0x4b6b7330} },
+/**/                  {{0x3f9c2147, 0x7a20d203} },
+/**/                  {{0x3fb54e68, 0xa0d6b625} },
+/**/                  {{0xbfad03cd, 0x7b6e81ad} } },
+/**/                 {{{0x3fd14000, 0x00000000} },
+/**/                  {{0x3fd0d97e, 0xe509acb3} },
+/**/                  {{0x3c747c31, 0x7bd5a3eb} },
+/**/                  {{0x3fedd52e, 0x554f6dcf} },
+/**/                  {{0xbc75c686, 0xddcd060b} },
+/**/                  {{0xbfcdfc2e, 0xef1cb578} },
+/**/                  {{0xbc46ae20, 0xd1677d50} },
+/**/                  {{0xbfcb0974, 0xb81cdb34} },
+/**/                  {{0x3c36ed8e, 0xda61c86c} },
+/**/                  {{0x3fc82af3, 0x5fcd53c1} },
+/**/                  {{0xbc424fe5, 0x57b559e7} },
+/**/                  {{0x3fa5a0c6, 0x17013aef} },
+/**/                  {{0xbfc148fa, 0x484940dd} },
+/**/                  {{0x3f9ec2da, 0x1737ca6d} },
+/**/                  {{0x3fb4ca38, 0x800ba495} },
+/**/                  {{0xbfadba0e, 0x35128042} } },
+/**/                 {{{0x3fd18000, 0x00000000} },
+/**/                  {{0x3fd1151a, 0x362431ca} },
+/**/                  {{0xbc74dc8d, 0xc9077b9f} },
+/**/                  {{0x3fedc61c, 0x0ef1f116} },
+/**/                  {{0xbc8fe39f, 0x2d41c166} },
+/**/                  {{0xbfce4cba, 0x1681d2c9} },
+/**/                  {{0x3c340fb4, 0x369a3c18} },
+/**/                  {{0xbfcaa894, 0x31d921e2} },
+/**/                  {{0x3c6bf59e, 0x64c48da4} },
+/**/                  {{0x3fc844f9, 0x9a284cea} },
+/**/                  {{0xbc563be0, 0x629cfeb8} },
+/**/                  {{0x3fa4033a, 0xa7f26285} },
+/**/                  {{0xbfc12cef, 0x2e2d72ea} },
+/**/                  {{0x3fa0a9da, 0x554d151d} },
+/**/                  {{0x3fb442f1, 0xe9f9174f} },
+/**/                  {{0xbfae631e, 0x799e467c} } },
+/**/                 {{{0x3fd1c000, 0x00000000} },
+/**/                  {{0x3fd15097, 0x3a9ce547} },
+/**/                  {{0xbc7796ba, 0x7f9ca328} },
+/**/                  {{0x3fedb6e1, 0xcbc2abaa} },
+/**/                  {{0xbc823b7a, 0xc39a4e7c} },
+/**/                  {{0xbfce9c22, 0x0436f806} },
+/**/                  {{0xbc64a5ec, 0x885803cb} },
+/**/                  {{0xbfca474f, 0x9a4c8963} },
+/**/                  {{0x3c671cf3, 0x6793b663} },
+/**/                  {{0x3fc85cfc, 0x9606243b} },
+/**/                  {{0x3c5fd2b2, 0x1dcd45ed} },
+/**/                  {{0x3fa2686a, 0xf8cc655f} },
+/**/                  {{0xbfc10eac, 0xc8460b94} },
+/**/                  {{0x3fa1e9bc, 0x0d6eb5ba} },
+/**/                  {{0x3fb3b8d0, 0x2e4749c2} },
+/**/                  {{0xbfaeff03, 0xf0d19201} } },
+/**/                 {{{0x3fd20000, 0x00000000} },
+/**/                  {{0x3fd18bf5, 0xa30bf178} },
+/**/                  {{0x3c630ca4, 0x748b1bf9} },
+/**/                  {{0x3feda780, 0x1da7801e} },
+/**/                  {{0xbc861ff8, 0x961ff896} },
+/**/                  {{0xbfceea65, 0x9814cb11} },
+/**/                  {{0xbc5f9845, 0x34cb01ca} },
+/**/                  {{0xbfc9e5ae, 0xf76f9fa1} },
+/**/                  {{0x3c688b7a, 0xa3ee6a86} },
+/**/                  {{0x3fc872ff, 0xdf090624} },
+/**/                  {{0x3c31016f, 0x6fbad4bb} },
+/**/                  {{0x3fa0d08b, 0x83fe02bc} },
+/**/                  {{0xbfc0ee42, 0x31b98637} },
+/**/                  {{0x3fa320e6, 0x5b309f28} },
+/**/                  {{0x3fb32c0e, 0x755cbc43} },
+/**/                  {{0xbfaf8dca, 0x5dea1ddb} } },
+/**/                 {{{0x3fd24000, 0x00000000} },
+/**/                  {{0x3fd1c735, 0x212dd884} },
+/**/                  {{0xbc67d9ac, 0x78cb2f2e} },
+/**/                  {{0x3fed97f7, 0x971063d2} },
+/**/                  {{0x3c67a20b, 0xc8b326b7} },
+/**/                  {{0xbfcf3783, 0xc9f01359} },
+/**/                  {{0x3c4a8b96, 0xd0a651ad} },
+/**/                  {{0xbfc983ba, 0x408a6757} },
+/**/                  {{0x3c6dfff9, 0xe6424f06} },
+/**/                  {{0x3fc88707, 0x41881aad} },
+/**/                  {{0xbc63baf9, 0x2204fd29} },
+/**/                  {{0x3f9e779e, 0xabd6e10d} },
+/**/                  {{0xbfc0cbbe, 0xcf2eab41} },
+/**/                  {{0x3fa44f31, 0x1659f377} },
+/**/                  {{0x3fb29ce7, 0xa54a8a94} },
+/**/                  {{0xbfb007c1, 0xb87973d7} } },
+/**/                 {{{0x3fd28000, 0x00000000} },
+/**/                  {{0x3fd20255, 0x67e47c96} },
+/**/                  {{0xbc618323, 0x28f4290e} },
+/**/                  {{0x3fed8848, 0xcaeb6c2a} },
+/**/                  {{0x3c81e70d, 0xa08296a2} },
+/**/                  {{0xbfcf837b, 0xa96c2792} },
+/**/                  {{0xbc6ab5ce, 0xc6884369} },
+/**/                  {{0xbfc92179, 0x5d351cdb} },
+/**/                  {{0x3c617000, 0x68719d81} },
+/**/                  {{0x3fc89916, 0xc8c1ca07} },
+/**/                  {{0xbc6a3339, 0x18b0f81b} },
+/**/                  {{0x3f9b54d0, 0x0caf6121} },
+/**/                  {{0xbfc0a732, 0x485ba392} },
+/**/                  {{0x3fa57477, 0xc250c31e} },
+/**/                  {{0x3fb20b96, 0x4790b4a8} },
+/**/                  {{0xbfb04223, 0x4ac23178} } },
+/**/                 {{{0x3fd2c000, 0x00000000} },
+/**/                  {{0x3fd23d56, 0x2b381042} },
+/**/                  {{0xbc5c5317, 0x16200088} },
+/**/                  {{0x3fed7874, 0x4c98f347} },
+/**/                  {{0xbc8a7dac, 0x9a72647e} },
+/**/                  {{0xbfcfce4c, 0x5dca68a2} },
+/**/                  {{0x3c6433de, 0x8fb9ffdd} },
+/**/                  {{0xbfc8bef4, 0x246041ce} },
+/**/                  {{0xbc66c620, 0x1fb39160} },
+/**/                  {{0x3fc8a932, 0xbd062535} },
+/**/                  {{0xbc6e24c7, 0xfbc3a86c} },
+/**/                  {{0x3f98390b, 0x64d0109d} },
+/**/                  {{0xbfc080ac, 0x819f2998} },
+/**/                  {{0x3fa69099, 0x8784ffb8} },
+/**/                  {{0x3fb17854, 0x6fc55e9b} },
+/**/                  {{0xbfb07618, 0x5f970a81} } },
+/**/                 {{{0x3fd30000, 0x00000000} },
+/**/                  {{0x3fd27837, 0x2057ef46} },
+/**/                  {{0xbc7077cd, 0xd36dfc81} },
+/**/                  {{0x3fed687a, 0xafdfd5ba} },
+/**/                  {{0xbc782e68, 0xe19d8d3d} },
+/**/                  {{0xbfd00bfa, 0x92db6fdb} },
+/**/                  {{0x3c7854cd, 0xc0af523f} },
+/**/                  {{0xbfc85c32, 0x5b640da2} },
+/**/                  {{0x3c5d5bdd, 0x5e6f23d6} },
+/**/                  {{0x3fc8b75f, 0xa1da32d2} },
+/**/                  {{0x3c2788df, 0x29860bfe} },
+/**/                  {{0x3f9524ad, 0xee810d60} },
+/**/                  {{0xbfc0583d, 0x95a69dea} },
+/**/                  {{0x3fa7a379, 0x2b4d3dec} },
+/**/                  {{0x3fb0e35b, 0xa3290dfe} },
+/**/                  {{0xbfb0a3b2, 0x19e12287} } },
+/**/                 {{{0x3fd34000, 0x00000000} },
+/**/                  {{0x3fd2b2f7, 0xfd9b5fe2} },
+/**/                  {{0x3c2423cf, 0xc1c2d443} },
+/**/                  {{0x3fed585c, 0x88e1caa2} },
+/**/                  {{0xbc2c8af2, 0x01239e18} },
+/**/                  {{0xbfd0303a, 0xab890af7} },
+/**/                  {{0x3c7d42bf, 0x726290e6} },
+/**/                  {{0xbfc7f93b, 0xb5175de0} },
+/**/                  {{0x3c5d5d4b, 0xe0ddc367} },
+/**/                  {{0x3fc8c3a2, 0x3414de7c} },
+/**/                  {{0x3c5ade9b, 0xba92bfce} },
+/**/                  {{0x3f921811, 0xda70853d} },
+/**/                  {{0xbfc02df5, 0xcf23aaf0} },
+/**/                  {{0x3fa8acfd, 0x06445ff8} },
+/**/                  {{0x3fb04ce4, 0xc130eba4} },
+/**/                  {{0xbfb0cb04, 0x29de3135} } },
+/**/                 {{{0x3fd38000, 0x00000000} },
+/**/                  {{0x3fd2ed98, 0x7a823cfe} },
+/**/                  {{0x3c6b9125, 0x8ea012ca} },
+/**/                  {{0x3fed481a, 0x6c0fd782} },
+/**/                  {{0x3c82dda4, 0x85ff74ea} },
+/**/                  {{0xbfd053e6, 0x2f5c1e18} },
+/**/                  {{0xbc679cf2, 0x8ec637b8} },
+/**/                  {{0xbfc79617, 0xd0ee3e3b} },
+/**/                  {{0xbc4e91e0, 0x732049a6} },
+/**/                  {{0x3fc8cdff, 0x67f6478d} },
+/**/                  {{0xbc5cb659, 0xf5079e63} },
+/**/                  {{0x3f8e271c, 0x8e8ef686} },
+/**/                  {{0xbfc001e5, 0xa2940881} },
+/**/                  {{0x3fa9ad0e, 0xf937caae} },
+/**/                  {{0x3faf6a4f, 0xda1e257f} },
+/**/                  {{0xbfb0ec24, 0xb07d42be} } },
+/**/                 {{{0x3fd3c000, 0x00000000} },
+/**/                  {{0x3fd32818, 0x4fb58952} },
+/**/                  {{0xbc7a95f0, 0xa9939f2f} },
+/**/                  {{0x3fed37b4, 0xee1ee130} },
+/**/                  {{0x3c747541, 0x6fbb1f2d} },
+/**/                  {{0xbfd076fc, 0xe022dd0d} },
+/**/                  {{0x3c6d8659, 0x5534523a} },
+/**/                  {{0xbfc732ce, 0x3a201d6b} },
+/**/                  {{0xbc56a551, 0xc98a3a62} },
+/**/                  {{0x3fc8d67c, 0x673a29b8} },
+/**/                  {{0xbc54ae9d, 0xff95efe6} },
+/**/                  {{0x3f882eee, 0x74ce6814} },
+/**/                  {{0xbfbfa83b, 0x503ba8f4} },
+/**/                  {{0x3faaa39c, 0x60b63f75} },
+/**/                  {{0x3fae38b8, 0xf07ff274} },
+/**/                  {{0xbfb1072c, 0x2200fe4d} } },
+/**/                 {{{0x3fd40000, 0x00000000} },
+/**/                  {{0x3fd36277, 0x3707ebcc} },
+/**/                  {{0xbc6963a5, 0x44b672d8} },
+/**/                  {{0x3fed272c, 0xa3fc5b1a} },
+/**/                  {{0x3c8ae01d, 0x272ca3fc} },
+/**/                  {{0xbfd0997e, 0x8aec9d8e} },
+/**/                  {{0x3c74aeda, 0x72595f36} },
+/**/                  {{0xbfc6cf66, 0x66d5c0ff} },
+/**/                  {{0x3c410e2a, 0x3ca66cc1} },
+/**/                  {{0x3fc8dd1e, 0x8f2617b5} },
+/**/                  {{0xbc6d173e, 0x4facfb67} },
+/**/                  {{0x3f82483b, 0x33966883} },
+/**/                  {{0xbfbf495d, 0x2b05b16b} },
+/**/                  {{0x3fab9096, 0x074fdeaf} },
+/**/                  {{0x3fad0571, 0x9c4605c9} },
+/**/                  {{0xbfb11c35, 0x280318fd} } },
+/**/                 {{{0x3fd44000, 0x00000000} },
+/**/                  {{0x3fd39cb4, 0xeb76157c} },
+/**/                  {{0xbc72f4da, 0x5a214713} },
+/**/                  {{0x3fed1682, 0x22c31625} },
+/**/                  {{0x3c8ac111, 0xd5e51b41} },
+/**/                  {{0xbfd0bb6b, 0x07e9a89a} },
+/**/                  {{0x3c76fb53, 0x7faa1dda} },
+/**/                  {{0xbfc66be7, 0xb75f0772} },
+/**/                  {{0xbc69a77d, 0xee6d618b} },
+/**/                  {{0x3fc8e1eb, 0x6e943d69} },
+/**/                  {{0xbc6982c4, 0xc5ec9ebe} },
+/**/                  {{0x3f78e73c, 0x9c2d3c0c} },
+/**/                  {{0xbfbee752, 0x7059f387} },
+/**/                  {{0x3fac73f0, 0x16982f58} },
+/**/                  {{0x3fabd0e4, 0xc146b407} },
+/**/                  {{0xbfb12b5c, 0x82f43254} } },
+/**/                 {{{0x3fd48000, 0x00000000} },
+/**/                  {{0x3fd3d6d1, 0x29271134} },
+/**/                  {{0x3c7137ca, 0x41cc958a} },
+/**/                  {{0x3fed05b5, 0xffb0304c} },
+/**/                  {{0xbc8fc921, 0x33e896e5} },
+/**/                  {{0xbfd0dcc2, 0x3a49e254} },
+/**/                  {{0x3c704578, 0x925cb599} },
+/**/                  {{0xbfc60859, 0x75708502} },
+/**/                  {{0xbc5f88bc, 0x9feebe6c} },
+/**/                  {{0x3fc8e4e8, 0xc3fb5c1c} },
+/**/                  {{0x3c6de114, 0xd6b77a05} },
+/**/                  {{0x3f6ac6b3, 0xdbc6c857} },
+/**/                  {{0xbfbe823c, 0xdeabd793} },
+/**/                  {{0x3fad4da2, 0x06fb52a7} },
+/**/                  {{0x3faa9b7b, 0x2bea698c} },
+/**/                  {{0xbfb134c0, 0xeb32d745} } },
+/**/                 {{{0x3fd4c000, 0x00000000} },
+/**/                  {{0x3fd410cb, 0xad6c7d33} },
+/**/                  {{0xbc7b0c8b, 0xae13b512} },
+/**/                  {{0x3fecf4c8, 0xd0182625} },
+/**/                  {{0x3c8e6308, 0xf4103798} },
+/**/                  {{0xbfd0fd84, 0x101a5438} },
+/**/                  {{0x3c425fcd, 0x7d2e3e34} },
+/**/                  {{0xbfc5a4c2, 0xd36904f6} },
+/**/                  {{0x3c5d3583, 0x54f27bb6} },
+/**/                  {{0x3fc8e61c, 0x7b74b00c} },
+/**/                  {{0x3c32f7ad, 0xefe568b6} },
+/**/                  {{0x3f402f60, 0xaa3667f2} },
+/**/                  {{0xbfbe1a3e, 0x4c9859c0} },
+/**/                  {{0x3fae1da6, 0x8e77c589} },
+/**/                  {{0x3fa9659b, 0x6ed5823e} },
+/**/                  {{0xbfb13882, 0xf1d3d420} } },
+/**/                 {{{0x3fd50000, 0x00000000} },
+/**/                  {{0x3fd44aa4, 0x36c2af0a} },
+/**/                  {{0xbc75d5e4, 0x3c55b3ba} },
+/**/                  {{0x3fece3bb, 0x295c0773} },
+/**/                  {{0xbc826fd5, 0x91851b41} },
+/**/                  {{0xbfd11db0, 0x8221a582} },
+/**/                  {{0x3c7e9654, 0xa9f31d11} },
+/**/                  {{0xbfc5412a, 0xeb9ef661} },
+/**/                  {{0x3c573faf, 0x5e60433c} },
+/**/                  {{0x3fc8e58c, 0xacc06b3a} },
+/**/                  {{0xbc5dba9a, 0x64dd81ed} },
+/**/                  {{0xbf625ff7, 0xcfe3f01e} },
+/**/                  {{0xbfbdaf78, 0x9dae4b1c} },
+/**/                  {{0x3faee3fb, 0x8e4e3e16} },
+/**/                  {{0x3fa82fa9, 0xc2c60fed} },
+/**/                  {{0xbfb136c4, 0xe13555d9} } },
+/**/                 {{{0x3fd54000, 0x00000000} },
+/**/                  {{0x3fd4845a, 0x84d0c21b} },
+/**/                  {{0x3c71e28a, 0x7563c6a6} },
+/**/                  {{0x3fecd28d, 0xa0decfad} },
+/**/                  {{0xbc72b2c8, 0x49610c12} },
+/**/                  {{0xbfd13d47, 0x93bb8da8} },
+/**/                  {{0x3c5df07a, 0x1b48d912} },
+/**/                  {{0xbfc4dd98, 0xbfb5c8b7} },
+/**/                  {{0x3c58a9ff, 0x39a108d7} },
+/**/                  {{0x3fc8e33f, 0x99496dc4} },
+/**/                  {{0x3c380d8b, 0x19d3995c} },
+/**/                  {{0xbf743d59, 0xba1bc2d2} },
+/**/                  {{0xbfbd420d, 0xb77862a1} },
+/**/                  {{0x3fafa0a1, 0xffb9511c} },
+/**/                  {{0x3fa6fa07, 0xe8a86cad} },
+/**/                  {{0xbfb12faa, 0x9d75a109} } },
+/**/                 {{{0x3fd58000, 0x00000000} },
+/**/                  {{0x3fd4bdee, 0x586890e7} },
+/**/                  {{0xbc6e4dc7, 0x7c22a757} },
+/**/                  {{0x3fecc140, 0xcbfae3a7} },
+/**/                  {{0xbc41045d, 0xd8b6f9b9} },
+/**/                  {{0xbfd15c49, 0x52b34cdc} },
+/**/                  {{0x3c729992, 0x2daa60ac} },
+/**/                  {{0xbfc47a13, 0x37fb39ef} },
+/**/                  {{0x3c5cb3b2, 0x3482d371} },
+/**/                  {{0x3fc8df3b, 0xaa28e022} },
+/**/                  {{0xbc61a8ab, 0x969a5447} },
+/**/                  {{0xbf7f2135, 0xc651ecb4} },
+/**/                  {{0xbfbcd21f, 0x76cc63f7} },
+/**/                  {{0x3fb029ce, 0xefdf4de1} },
+/**/                  {{0x3fa5c515, 0x0de3bf96} },
+/**/                  {{0xbfb12359, 0x84e55ab4} } },
+/**/                 {{{0x3fd5c000, 0x00000000} },
+/**/                  {{0x3fd4f75f, 0x73869979} },
+/**/                  {{0xbc595a1c, 0xf7ff1108} },
+/**/                  {{0x3fecafd5, 0x3ff7b52c} },
+/**/                  {{0x3c86e099, 0x684b6314} },
+/**/                  {{0xbfd17ab5, 0xd71d366e} },
+/**/                  {{0x3c602f2c, 0xae2f7b71} },
+/**/                  {{0xbfc416a1, 0x22cc956f} },
+/**/                  {{0x3c61d29e, 0xe98c24c1} },
+/**/                  {{0x3fc8d987, 0x6e2a4f9f} },
+/**/                  {{0xbc60de73, 0x4a6a7880} },
+/**/                  {{0xbf84ed52, 0x909e42ec} },
+/**/                  {{0xbfbc5fcf, 0xa56263a8} },
+/**/                  {{0x3fb07e7b, 0x0d159803} },
+/**/                  {{0x3fa4912d, 0xb2ddf20b} },
+/**/                  {{0xbfb111f8, 0x508c8585} } },
+/**/                 {{{0x3fd60000, 0x00000000} },
+/**/                  {{0x3fd530ad, 0x9951cd4a} },
+/**/                  {{0xbc625664, 0x80884082} },
+/**/                  {{0x3fec9e4b, 0x91ff8d87} },
+/**/                  {{0xbc7723ff, 0x1b0da370} },
+/**/                  {{0xbfd1988d, 0x432f5908} },
+/**/                  {{0x3c7d065e, 0xf8714cda} },
+/**/                  {{0xbfc3b349, 0x3403e07c} },
+/**/                  {{0x3c6b571d, 0x2717fbb0} },
+/**/                  {{0x3fc8d229, 0x97d0e938} },
+/**/                  {{0x3c66b228, 0xb08a0625} },
+/**/                  {{0xbf8a3464, 0xc2fe9cde} },
+/**/                  {{0xbfbbeb3f, 0xefb6f244} },
+/**/                  {{0x3fb0ce5a, 0x39e67c0b} },
+/**/                  {{0x3fa35eab, 0x93b4fb73} },
+/**/                  {{0xbfb0fbae, 0xf4d86f78} } },
+/**/                 {{{0x3fd64000, 0x00000000} },
+/**/                  {{0x3fd569d8, 0x8e1b4cd8} },
+/**/                  {{0xbc6fec61, 0xe713cfe2} },
+/**/                  {{0x3fec8ca4, 0x57157fc9} },
+/**/                  {{0x3c70da14, 0x515734ba} },
+/**/                  {{0xbfd1b5cf, 0xc3195094} },
+/**/                  {{0x3c740cce, 0xa9537e45} },
+/**/                  {{0xbfc35012, 0x046cee83} },
+/**/                  {{0xbc651b6c, 0xe446fd10} },
+/**/                  {{0x3fc8c928, 0xfb5e6a95} },
+/**/                  {{0x3c656cd2, 0x82469bf3} },
+/**/                  {{0xbf8f6568, 0xa4afbb1b} },
+/**/                  {{0xbfbb7491, 0xdb3aba50} },
+/**/                  {{0x3fb11972, 0xb9fd56ec} },
+/**/                  {{0x3fa22de5, 0x9329e15e} },
+/**/                  {{0xbfb0e0a6, 0x8287d93d} } },
+/**/                 {{{0x3fd68000, 0x00000000} },
+/**/                  {{0x3fd5a2e0, 0x175e0f4e} },
+/**/                  {{0x3c713b7a, 0x8f82e457} },
+/**/                  {{0x3fec7ae0, 0x240b83ae} },
+/**/                  {{0xbc885b56, 0x10d398ed} },
+/**/                  {{0xbfd1d27d, 0x8cdb4db0} },
+/**/                  {{0x3c11d95f, 0x2db0447f} },
+/**/                  {{0xbfc2ed02, 0x11425541} },
+/**/                  {{0xbc11d124, 0x6b2cbaa3} },
+/**/                  {{0x3fc8be8c, 0x8cdc5c4d} },
+/**/                  {{0xbc542511, 0x794444b0} },
+/**/                  {{0xbf923ffd, 0xd25a5415} },
+/**/                  {{0xbfbafbe6, 0xbcd1df44} },
+/**/                  {{0x3fb15fcc, 0x26bdf05c} },
+/**/                  {{0x3fa0ff2f, 0xa7b853e6} },
+/**/                  {{0xbfb0c109, 0x07e9a35f} } },
+/**/                 {{{0x3fd6c000, 0x00000000} },
+/**/                  {{0x3fd5dbc3, 0xfbbe768d} },
+/**/                  {{0x3c6ea0ec, 0x1b76f7da} },
+/**/                  {{0x3fec68ff, 0x8d78b9ce} },
+/**/                  {{0xbc83ab41, 0x4cb5a0c3} },
+/**/                  {{0xbfd1ee96, 0xe01c5e6e} },
+/**/                  {{0x3c73922c, 0xfb76d8dd} },
+/**/                  {{0xbfc28a1f, 0xbbb23677} },
+/**/                  {{0x3c6e592a, 0x288601f2} },
+/**/                  {{0x3fc8b25b, 0x5e282403} },
+/**/                  {{0xbbef7d58, 0x707e09fa} },
+/**/                  {{0xbf94c1e0, 0xb65add31} },
+/**/                  {{0xbfba815f, 0xafa52f1b} },
+/**/                  {{0x3fb1a16f, 0x63712acc} },
+/**/                  {{0x3f9fa5b5, 0x95a8d3ad} },
+/**/                  {{0xbfb09d01, 0x72814750} } },
+/**/                 {{{0x3fd70000, 0x00000000} },
+/**/                  {{0x3fd61484, 0x0309cfe2} },
+/**/                  {{0xbc7a7257, 0x15711f00} },
+/**/                  {{0x3fec5703, 0x27afd9eb} },
+/**/                  {{0x3c63c2ab, 0xb32c1d72} },
+/**/                  {{0xbfd20a1c, 0x06000419} },
+/**/                  {{0xbc7b5fe7, 0xf51a3a28} },
+/**/                  {{0xbfc22771, 0x486ad2c8} },
+/**/                  {{0xbc499ab5, 0xf84a7eae} },
+/**/                  {{0x3fc8a49c, 0x9d027817} },
+/**/                  {{0xbc53fcab, 0x2e376ecc} },
+/**/                  {{0xbf973831, 0xeaabcb23} },
+/**/                  {{0xbfba051d, 0x8c46fbce} },
+/**/                  {{0x3fb1de66, 0x9132e9cc} },
+/**/                  {{0x3f9d5269, 0xd48d5d65} },
+/**/                  {{0xbfb074bb, 0x712354a4} } },
+/**/                 {{{0x3fd74000, 0x00000000} },
+/**/                  {{0x3fd64d1f, 0xf635c1c6} },
+/**/                  {{0xbc7fa403, 0xe7c0fdbe} },
+/**/                  {{0x3fec44eb, 0x86b5cbf8} },
+/**/                  {{0xbc6a4101, 0xbc5b562d} },
+/**/                  {{0xbfd2250d, 0x50fb21ad} },
+/**/                  {{0xbc750066, 0xa39bdc1a} },
+/**/                  {{0xbfc1c4fc, 0xdf2ed728} },
+/**/                  {{0x3c6a87bb, 0x006772e9} },
+/**/                  {{0x3fc89557, 0x9122b9b7} },
+/**/                  {{0xbc05454e, 0x45b04f75} },
+/**/                  {{0xbf99a2c9, 0x6c7888f1} },
+/**/                  {{0xbfb98740, 0xe02d36ad} },
+/**/                  {{0x3fb216bd, 0x02a99665} },
+/**/                  {{0x3f9b0511, 0xb73aeccb} },
+/**/                  {{0xbfb04863, 0x569b1738} } },
+/**/                 {{{0x3fd78000, 0x00000000} },
+/**/                  {{0x3fd68597, 0x9f5fa6fe} },
+/**/                  {{0xbc425781, 0x4d1ada9c} },
+/**/                  {{0x3fec32b9, 0x3e386c7f} },
+/**/                  {{0x3c756033, 0x8cbaa5bf} },
+/**/                  {{0xbfd23f6b, 0x1ca84e79} },
+/**/                  {{0x3c604cc0, 0xf123d574} },
+/**/                  {{0xbfc162c8, 0x8a715435} },
+/**/                  {{0x3c5cf6db, 0x454fb8fd} },
+/**/                  {{0x3fc88493, 0x9a4eb534} },
+/**/                  {{0xbc668a5c, 0x42b959b0} },
+/**/                  {{0xbf9c0182, 0x42580bb5} },
+/**/                  {{0xbfb907e9, 0xe5822d56} },
+/**/                  {{0x3fb24a7f, 0x2f8f8273} },
+/**/                  {{0x3f98be3c, 0xa3527f46} },
+/**/                  {{0xbfb01825, 0xfce97270} } },
+/**/                 {{{0x3fd7c000, 0x00000000} },
+/**/                  {{0x3fd6bdea, 0xc9cbd76d} },
+/**/                  {{0xbc5a5c56, 0x3e6de828} },
+/**/                  {{0x3fec206c, 0xe1857d04} },
+/**/                  {{0xbc80439f, 0xf5c83872} },
+/**/                  {{0xbfd25935, 0xcd9b9870} },
+/**/                  {{0x3c6aaf98, 0xf1ec7306} },
+/**/                  {{0xbfc100da, 0x36f94d02} },
+/**/                  {{0xbc6e72ca, 0xd96d84ff} },
+/**/                  {{0x3fc87258, 0x2e774351} },
+/**/                  {{0x3c6c50a2, 0xb8860ef0} },
+/**/                  {{0xbf9e543a, 0x741ef0ec} },
+/**/                  {{0xbfb88738, 0x7b4d0ec2} },
+/**/                  {{0x3fb279ba, 0xa8164103} },
+/**/                  {{0x3f967e73, 0xa7f1ae35} },
+/**/                  {{0xbfafc861, 0x5257c3de} } },
+/**/                 {{{0x3fd80000, 0x00000000} },
+/**/                  {{0x3fd6f619, 0x41e4def1} },
+/**/                  {{0xbc7c63aa, 0xe6f6e918} },
+/**/                  {{0x3fec0e07, 0x0381c0e0} },
+/**/                  {{0x3c8c0e07, 0x0381c0e0} },
+/**/                  {{0xbfd2726d, 0xd135c174} },
+/**/                  {{0xbc2d352d, 0xe0951cf8} },
+/**/                  {{0xbfc09f37, 0xb38cc8cf} },
+/**/                  {{0xbc69db81, 0xae75327f} },
+/**/                  {{0x3fc85eac, 0xd7da413c} },
+/**/                  {{0x3c5b1a89, 0x6ebae2bc} },
+/**/                  {{0xbfa04d69, 0x80fcc815} },
+/**/                  {{0xbfb8054c, 0x1df326f9} },
+/**/                  {{0x3fb2a47e, 0x082bda60} },
+/**/                  {{0x3f944639, 0x7091d5a4} },
+/**/                  {{0xbfaf5961, 0xe072e48c} } },
+/**/                 {{{0x3fd84000, 0x00000000} },
+/**/                  {{0x3fd72e22, 0xd53aa2aa} },
+/**/                  {{0xbc7d9c93, 0x4e79f27c} },
+/**/                  {{0x3febfb88, 0x36a04729} },
+/**/                  {{0xbc872745, 0x9ac2ea21} },
+/**/                  {{0xbfd28b13, 0x9d7702cf} },
+/**/                  {{0x3c7819b9, 0x4be8bff6} },
+/**/                  {{0xbfc03de6, 0xb0a35176} },
+/**/                  {{0x3c5dbfb0, 0xc83347af} },
+/**/                  {{0x3fc84999, 0x332a4f86} },
+/**/                  {{0x3c5d304e, 0x0a22d12d} },
+/**/                  {{0xbfa16a97, 0xed6b2d30} },
+/**/                  {{0xbfb78243, 0xe0128950} },
+/**/                  {{0x3fb2cad8, 0xeaa98f57} },
+/**/                  {{0x3f92160a, 0x3bb39c5b} },
+/**/                  {{0xbfaee3a9, 0x3804caa3} } },
+/**/                 {{{0x3fd88000, 0x00000000} },
+/**/                  {{0x3fd76607, 0x52817502} },
+/**/                  {{0xbc4dd117, 0x91cc7600} },
+/**/                  {{0x3febe8f1, 0x0cd9e1fe} },
+/**/                  {{0xbc7a9688, 0xa21e102a} },
+/**/                  {{0xbfd2a327, 0xb0d161e9} },
+/**/                  {{0xbc60a2a9, 0x14b44140} },
+/**/                  {{0xbfbfb9d9, 0x803f8d3b} },
+/**/                  {{0x3c5e5779, 0x2a5c4097} },
+/**/                  {{0x3fc83324, 0xedbcc363} },
+/**/                  {{0x3c651fbc, 0xa0442744} },
+/**/                  {{0xbfa2819b, 0xe91477c3} },
+/**/                  {{0xbfb6fe3e, 0x63b6abf0} },
+/**/                  {{0x3fb2ecdb, 0xdc73a89a} },
+/**/                  {{0x3f8fdcb7, 0xaa755298} },
+/**/                  {{0xbfae6793, 0x237c2f3d} } },
+/**/                 {{{0x3fd8c000, 0x00000000} },
+/**/                  {{0x3fd79dc6, 0x899118d1} },
+/**/                  {{0x3c2b7413, 0xa0ef606d} },
+/**/                  {{0x3febd642, 0x17a4cbc3} },
+/**/                  {{0xbc55ee5d, 0x3200a548} },
+/**/                  {{0xbfd2baaa, 0x91faa133} },
+/**/                  {{0xbc6bd391, 0xfaf41548} },
+/**/                  {{0xbfbef89e, 0xaa22d832} },
+/**/                  {{0x3c413b3b, 0xc874fdb9} },
+/**/                  {{0x3fc81b57, 0xc3be300a} },
+/**/                  {{0x3c6baf9b, 0xc01a615f} },
+/**/                  {{0xbfa3926a, 0x4a872ec7} },
+/**/                  {{0xbfb67959, 0xd3e743cd} },
+/**/                  {{0x3fb30a98, 0x4f919505} },
+/**/                  {{0x3f8b9f3b, 0x28b78b08} },
+/**/                  {{0xbfade57b, 0x71e33e9d} } },
+/**/                 {{{0x3fd90000, 0x00000000} },
+/**/                  {{0x3fd7d560, 0x4b63b3f7} },
+/**/                  {{0x3c769c88, 0x5c2b249a} },
+/**/                  {{0x3febc37b, 0xe7ec7a8d} },
+/**/                  {{0xbc6f1246, 0x2b0e2727} },
+/**/                  {{0xbfd2d19c, 0xcfbdd7fa} },
+/**/                  {{0x3c7d0b11, 0x5e00c582} },
+/**/                  {{0xbfbe3827, 0x86f8309b} },
+/**/                  {{0x3c5d64e9, 0xfa6c56a7} },
+/**/                  {{0x3fc80239, 0x7e6de8de} },
+/**/                  {{0x3c68d62f, 0x7776e849} },
+/**/                  {{0xbfa49cf9, 0x4f6d8017} },
+/**/                  {{0xbfb5f3b3, 0xde917e27} },
+/**/                  {{0x3fb32420, 0x8e455cc2} },
+/**/                  {{0x3f877470, 0xb9fc88fe} },
+/**/                  {{0xbfad5dbd, 0xc6b10536} } },
+/**/                 {{{0x3fd94000, 0x00000000} },
+/**/                  {{0x3fd80cd4, 0x6a14b1d1} },
+/**/                  {{0xbc7e79f9, 0x9684fa19} },
+/**/                  {{0x3febb09f, 0x0e09a222} },
+/**/                  {{0x3c85748e, 0x7e047edd} },
+/**/                  {{0xbfd2e7ff, 0x00ccbbc8} },
+/**/                  {{0xbc78eb0a, 0x96875561} },
+/**/                  {{0xbfbd787e, 0x804ecc06} },
+/**/                  {{0xbc27263b, 0x2e4351f8} },
+/**/                  {{0x3fc7e7d1, 0xf260d7b4} },
+/**/                  {{0xbc430525, 0x8ed258e3} },
+/**/                  {{0xbfa5a140, 0x968d3d02} },
+/**/                  {{0xbfb56d69, 0xaecb845e} },
+/**/                  {{0x3fb33987, 0xae292f95} },
+/**/                  {{0x3f835d1d, 0x48e09ecd} },
+/**/                  {{0xbfacd0b5, 0x6b6f9aca} } },
+/**/                 {{{0x3fd98000, 0x00000000} },
+/**/                  {{0x3fd84422, 0xb8df95d7} },
+/**/                  {{0x3c7d76a0, 0x299b41b6} },
+/**/                  {{0x3feb9dac, 0x19ba64d6} },
+/**/                  {{0xbc4f643a, 0xa13ee09f} },
+/**/                  {{0xbfd2fdd1, 0xc390a5c9} },
+/**/                  {{0x3c575152, 0xaa856fcc} },
+/**/                  {{0xbfbcb9ad, 0xc0e99751} },
+/**/                  {{0x3c4e2d44, 0x1347a357} },
+/**/                  {{0x3fc7cc28, 0xfdcbfd40} },
+/**/                  {{0x3c60dc32, 0xe516db08} },
+/**/                  {{0xbfa69f39, 0x19851d86} },
+/**/                  {{0xbfb4e697, 0xe772087d} },
+/**/                  {{0x3fb34ae1, 0x835992de} },
+/**/                  {{0x3f7eb3f1, 0xe5326389} },
+/**/                  {{0xbfac3ebd, 0x234575e8} } },
+/**/                 {{{0x3fd9c000, 0x00000000} },
+/**/                  {{0x3fd87b4b, 0x0c1ebedc} },
+/**/                  {{0xbc76dcfa, 0xa2fa470f} },
+/**/                  {{0x3feb8aa3, 0x9a1ab378} },
+/**/                  {{0x3c8efdb0, 0xb797ab93} },
+/**/                  {{0xbfd31315, 0xbdfb5e5a} },
+/**/                  {{0x3c5813a8, 0x862f0c0d} },
+/**/                  {{0xbfbbfbbf, 0x3478f169} },
+/**/                  {{0xbc51e810, 0xd9e52582} },
+/**/                  {{0x3fc7af46, 0x86d6ec76} },
+/**/                  {{0xbc6336de, 0x3c13b159} },
+/**/                  {{0xbfa796dd, 0x264b8050} },
+/**/                  {{0xbfb45f5a, 0x9e1f6bef} },
+/**/                  {{0x3fb35842, 0x93b26fc1} },
+/**/                  {{0x3f76d75e, 0x39bc3abf} },
+/**/                  {{0xbfaba82f, 0x006e38b2} } },
+/**/                 {{{0x3fda0000, 0x00000000} },
+/**/                  {{0x3fd8b24d, 0x394a1b25} },
+/**/                  {{0x3c7b6d0b, 0xa3748fa8} },
+/**/                  {{0x3feb7786, 0x1d9cdc98} },
+/**/                  {{0xbc62e22c, 0x345bd7a8} },
+/**/                  {{0xbfd327cb, 0x9d57b8f5} },
+/**/                  {{0xbc135343, 0x753cc4f1} },
+/**/                  {{0xbfbb3ebc, 0x8761b154} },
+/**/                  {{0x3c5abeec, 0x8c168fdd} },
+/**/                  {{0x3fc79132, 0x79f68c54} },
+/**/                  {{0xbc658ab9, 0xd8d15eda} },
+/**/                  {{0xbfa88828, 0x5872d73c} },
+/**/                  {{0xbfb3d7cd, 0x567be750} },
+/**/                  {{0x3fb361c0, 0x0a24fc71} },
+/**/                  {{0x3f6e4b7a, 0x46aa98b6} },
+/**/                  {{0xbfab0d64, 0x3bad3a76} } },
+/**/                 {{{0x3fda4000, 0x00000000} },
+/**/                  {{0x3fd8e929, 0x16f5cde8} },
+/**/                  {{0x3c74c0a7, 0xe12bfafb} },
+/**/                  {{0x3feb6454, 0x32024b37} },
+/**/                  {{0xbc7987f7, 0x69cc9b53} },
+/**/                  {{0xbfd33bf4, 0x161a0a40} },
+/**/                  {{0x3c7a2321, 0x83ff46db} },
+/**/                  {{0xbfba82af, 0x26913418} },
+/**/                  {{0x3c3c4c62, 0x10a559fe} },
+/**/                  {{0x3fc771f4, 0xc8506679} },
+/**/                  {{0xbc54aaed, 0x63c7ccc3} },
+/**/                  {{0xbfa97317, 0x9237e7ff} },
+/**/                  {{0xbfb3500a, 0xfde5f112} },
+/**/                  {{0x3fb3676f, 0xaa2c3459} },
+/**/                  {{0x3f5e80cd, 0x04721907} },
+/**/                  {{0xbfaa6eb5, 0x0dc212a5} } },
+/**/                 {{{0x3fda8000, 0x00000000} },
+/**/                  {{0x3fd91fde, 0x7cd0c662} },
+/**/                  {{0x3c710741, 0x88054b53} },
+/**/                  {{0x3feb510e, 0x6454751c} },
+/**/                  {{0xbc199bfd, 0x7e0f2dca} },
+/**/                  {{0xbfd34f8f, 0xe3b081f4} },
+/**/                  {{0x3c7d7209, 0x3e2c0515} },
+/**/                  {{0xbfb9c7a0, 0x3f5e2d2f} },
+/**/                  {{0xbc20b02e, 0xea3bd312} },
+/**/                  {{0x3fc75195, 0x6626c39a} },
+/**/                  {{0x3c6f30d2, 0xb4219a8a} },
+/**/                  {{0xbfaa57a8, 0xf55dfea5} },
+/**/                  {{0xbfb2c82d, 0xe771fa17} },
+/**/                  {{0x3fb36967, 0xc3654ab4} },
+/**/                  {{0x3f11f322, 0xa23eb6eb} },
+/**/                  {{0xbfa9cc78, 0x8ae579b1} } },
+/**/                 {{{0x3fdac000, 0x00000000} },
+/**/                  {{0x3fd9566d, 0x43a34907} },
+/**/                  {{0x3c69b015, 0x37e0af2b} },
+/**/                  {{0x3feb3db5, 0x40ddf8d3} },
+/**/                  {{0xbc616f46, 0x793c10b8} },
+/**/                  {{0xbfd3629f, 0xc8537217} },
+/**/                  {{0x3c505738, 0x38143614} },
+/**/                  {{0xbfb90d98, 0xbf75f20a} },
+/**/                  {{0x3c4dc715, 0x6b842647} },
+/**/                  {{0x3fc7301c, 0x494dd1e6} },
+/**/                  {{0x3c5ec3d6, 0xf49f85b4} },
+/**/                  {{0xbfab35db, 0xdbdd23b1} },
+/**/                  {{0xbfb2404f, 0xc8407216} },
+/**/                  {{0x3fb367bf, 0x255139f9} },
+/**/                  {{0xbf5b8a0d, 0x65acd6da} },
+/**/                  {{0xbfa92704, 0x8052f51d} } },
+/**/                 {{{0x3fdb0000, 0x00000000} },
+/**/                  {{0x3fd98cd5, 0x454d6b18} },
+/**/                  {{0x3c79e6c9, 0x88fd0a77} },
+/**/                  {{0x3feb2a49, 0x5323eb6a} },
+/**/                  {{0xbc572202, 0x70cc9678} },
+/**/                  {{0xbfd37524, 0x8cd58cc4} },
+/**/                  {{0x3c6978a3, 0xda42aa4e} },
+/**/                  {{0xbfb854a1, 0x54d5f784} },
+/**/                  {{0xbc5e9a15, 0xb33b3d0d} },
+/**/                  {{0x3fc70d91, 0x67aa0c46} },
+/**/                  {{0xbc6aa72f, 0xa4ac9df8} },
+/**/                  {{0xbfac0db0, 0xd0665a46} },
+/**/                  {{0xbfb1b889, 0xb428e30d} },
+/**/                  {{0x3fb3628d, 0x134448b0} },
+/**/                  {{0xbf6bbbc1, 0x67619c9c} },
+/**/                  {{0xbfa87ead, 0x53e1f653} } },
+/**/                 {{{0x3fdb4000, 0x00000000} },
+/**/                  {{0x3fd9c316, 0x5cc58107} },
+/**/                  {{0x3c4b6696, 0x02250cfb} },
+/**/                  {{0x3feb16cb, 0x25df55f4} },
+/**/                  {{0xbc653abc, 0xf48e26bc} },
+/**/                  {{0xbfd3871f, 0x00742189} },
+/**/                  {{0xbc725ae2, 0xc05df451} },
+/**/                  {{0xbfb79cc2, 0x6dd13675} },
+/**/                  {{0x3be1d4e0, 0x991905e4} },
+/**/                  {{0x3fc6e9fc, 0xb5b8147e} },
+/**/                  {{0x3c46463b, 0xa57d4eca} },
+/**/                  {{0xbfacdf29, 0x86c1db89} },
+/**/                  {{0xbfb130f4, 0x1ab8d1c4} },
+/**/                  {{0x3fb359e9, 0x38881228} },
+/**/                  {{0xbf74a987, 0x53bec2ff} },
+/**/                  {{0xbfa7d3c5, 0xe5af58b6} } },
+/**/                 {{{0x3fdb8000, 0x00000000} },
+/**/                  {{0x3fd9f930, 0x66168002} },
+/**/                  {{0xbc7c8270, 0x47c9439a} },
+/**/                  {{0x3feb033b, 0x42f6e2c9} },
+/**/                  {{0xbc6eb80c, 0xc48702a7} },
+/**/                  {{0xbfd3988f, 0xf8a76337} },
+/**/                  {{0xbc636968, 0x5b1bb38a} },
+/**/                  {{0xbfb6e604, 0x39212b04} },
+/**/                  {{0xbc3c2e20, 0xba255e71} },
+/**/                  {{0x3fc6c566, 0x251e2d41} },
+/**/                  {{0x3c230ab3, 0x47236369} },
+/**/                  {{0xbfadaa48, 0xd40b3417} },
+/**/                  {{0xbfb0a9a6, 0xc484f2cc} },
+/**/                  {{0x3fb34deb, 0x9cb4573e} },
+/**/                  {{0xbf7b44ca, 0x1def6f17} },
+/**/                  {{0xbfa7269f, 0x73d683b8} } },
+/**/                 {{{0x3fdbc000, 0x00000000} },
+/**/                  {{0x3fda2f23, 0x3e5e530b} },
+/**/                  {{0x3c5814d5, 0xf797086b} },
+/**/                  {{0x3feaef9a, 0x3378ba79} },
+/**/                  {{0x3c7da16a, 0x4476e241} },
+/**/                  {{0xbfd3a978, 0x50f2beab} },
+/**/                  {{0x3c7b7e7f, 0xad5a31ea} },
+/**/                  {{0xbfb6306e, 0xa602212f} },
+/**/                  {{0xbc31ec15, 0x9ec38d55} },
+/**/                  {{0x3fc69fd5, 0xa3477c6a} },
+/**/                  {{0x3c571f2f, 0xb2996038} },
+/**/                  {{0xbfae6f12, 0xa6cf162d} },
+/**/                  {{0xbfb022b8, 0xd0cb2655} },
+/**/                  {{0x3fb33eac, 0x9842912f} },
+/**/                  {{0xbf80d789, 0x4919e78d} },
+/**/                  {{0xbfa67789, 0x8037e242} } },
+/**/                 {{{0x3fdc0000, 0x00000000} },
+/**/                  {{0x3fda64ee, 0xc3cc23fd} },
+/**/                  {{0xbc724dec, 0x1b50b7ff} },
+/**/                  {{0x3feadbe8, 0x7f94905e} },
+/**/                  {{0x3c2adbe8, 0x7f94905e} },
+/**/                  {{0xbfd3b9d8, 0xeab54af9} },
+/**/                  {{0x3c75b97d, 0x54fd0941} },
+/**/                  {{0xbfb57c09, 0x645a7f9e} },
+/**/                  {{0xbc5e79f6, 0x09320811} },
+/**/                  {{0x3fc67953, 0x180938f2} },
+/**/                  {{0x3c6246f2, 0xe7aee726} },
+/**/                  {{0xbfaf2d8b, 0xff0ea012} },
+/**/                  {{0xbfaf3881, 0x66c7250c} },
+/**/                  {{0x3fb32c44, 0xc95ff694} },
+/**/                  {{0xbf83f3f0, 0x25d7ff49} },
+/**/                  {{0xbfa5c6d1, 0xb848e1d1} } },
+/**/                 {{{0x3fdc4000, 0x00000000} },
+/**/                  {{0x3fda9a92, 0xd59e98cf} },
+/**/                  {{0x3c42e42d, 0xff75d817} },
+/**/                  {{0x3feac826, 0xae95dea9} },
+/**/                  {{0xbc534eec, 0x633dec57} },
+/**/                  {{0xbfd3c9b2, 0xacfa5b18} },
+/**/                  {{0x3c7a7e0c, 0x6c4d8d27} },
+/**/                  {{0xbfb4c8db, 0xe4ecc0f6} },
+/**/                  {{0xbc534990, 0xc0c32772} },
+/**/                  {{0x3fc651e6, 0x6451e377} },
+/**/                  {{0xbc6ea814, 0x2a9bb1f1} },
+/**/                  {{0xbfafe5ba, 0xe62bc1b2} },
+/**/                  {{0xbfae2ca8, 0x65fe3642} },
+/**/                  {{0x3fb316cd, 0x09015968} },
+/**/                  {{0xbf86f764, 0x3ce97a26} },
+/**/                  {{0xbfa514c3, 0xdee8421b} } },
+/**/                 {{{0x3fdc8000, 0x00000000} },
+/**/                  {{0x3fdad00f, 0x5422058b} },
+/**/                  {{0x3c7fc4c3, 0x3891d2e8} },
+/**/                  {{0x3feab455, 0x46de51cf} },
+/**/                  {{0xbc5b834a, 0xdbc38cc9} },
+/**/                  {{0xbfd3d906, 0x844a38eb} },
+/**/                  {{0x3c6198e5, 0xbc44eee8} },
+/**/                  {{0xbfb416ed, 0x5993cade} },
+/**/                  {{0xbc235ccb, 0xfa289b6c} },
+/**/                  {{0x3fc62997, 0x60e2a3af} },
+/**/                  {{0xbc69a660, 0xcf7bda0e} },
+/**/                  {{0xbfb04bd3, 0x33612b72} },
+/**/                  {{0xbfad2210, 0xcf62bcd9} },
+/**/                  {{0x3fb2fe5e, 0x603bfc37} },
+/**/                  {{0xbf89e1ba, 0xa9bce7ec} },
+/**/                  {{0xbfa461a9, 0xb83029d5} } },
+/**/                 {{{0x3fdcc000, 0x00000000} },
+/**/                  {{0x3fdb0564, 0x20ae9344} },
+/**/                  {{0xbc793139, 0x46363455} },
+/**/                  {{0x3feaa074, 0xcde0631f} },
+/**/                  {{0x3c84b49a, 0x143fe6d4} },
+/**/                  {{0xbfd3e7d5, 0x627b115b} },
+/**/                  {{0x3c77a502, 0x332989c0} },
+/**/                  {{0xbfb36644, 0xb589513f} },
+/**/                  {{0x3c3abdc9, 0x105eec96} },
+/**/                  {{0x3fc6006d, 0xdd12e0be} },
+/**/                  {{0xbc4f0281, 0x5d67cb35} },
+/**/                  {{0xbfb0a1ab, 0x4238ba83} },
+/**/                  {{0xbfac18e3, 0x73889526} },
+/**/                  {{0x3fb2e311, 0xfde6351a} },
+/**/                  {{0xbf8cb2d2, 0xc256833f} },
+/**/                  {{0xbfa3adca, 0xf73e36f0} } },
+/**/                 {{{0x3fdd0000, 0x00000000} },
+/**/                  {{0x3fdb3a91, 0x1da65c6c} },
+/**/                  {{0x3c7ae187, 0xb1ca5040} },
+/**/                  {{0x3fea8c85, 0xc81a2254} },
+/**/                  {{0xbc83c191, 0x8d67728b} },
+/**/                  {{0xbfd3f620, 0x3e8218e0} },
+/**/                  {{0xbc72bf32, 0x52bd43ef} },
+/**/                  {{0xbfb2b6e8, 0xadb5f398} },
+/**/                  {{0x3c340287, 0x6b74d451} },
+/**/                  {{0x3fc5d671, 0x9d9e25fc} },
+/**/                  {{0x3c639669, 0x518d7a71} },
+/**/                  {{0xbfb0f46a, 0x19cc29a0} },
+/**/                  {{0xbfab1147, 0xc1a69750} },
+/**/                  {{0x3fb2c501, 0x2c826e6b} },
+/**/                  {{0xbf8f6a95, 0xcbc1b186} },
+/**/                  {{0xbfa2f96d, 0x2de89811} } },
+/**/                 {{{0x3fdd4000, 0x00000000} },
+/**/                  {{0x3fdb6f96, 0x2e737efc} },
+/**/                  {{0xbc5ca534, 0x64981e71} },
+/**/                  {{0x3fea7888, 0xb9102ddc} },
+/**/                  {{0xbc7791b2, 0x3c46d7d5} },
+/**/                  {{0xbfd403e8, 0x1444efb5} },
+/**/                  {{0xbc6047c5, 0x4f3d22a6} },
+/**/                  {{0xbfb208df, 0xb90ac1cc} },
+/**/                  {{0x3c4078b1, 0x2d2115d8} },
+/**/                  {{0x3fc5abaa, 0x5b7c61a2} },
+/**/                  {{0x3c3eef6a, 0x2bd2d19a} },
+/**/                  {{0xbfb14414, 0xa8850e1a} },
+/**/                  {{0xbfaa0b63, 0xc6580343} },
+/**/                  {{0x3fb2a445, 0x4876cfdf} },
+/**/                  {{0xbf91047b, 0x562d0829} },
+/**/                  {{0xbfa244d3, 0xbe562a83} } },
+/**/                 {{{0x3fdd8000, 0x00000000} },
+/**/                  {{0x3fdba473, 0x378624a5} },
+/**/                  {{0x3c7519a1, 0xb46e4aff} },
+/**/                  {{0x3fea647e, 0x2348d9a3} },
+/**/                  {{0xbc84f6c2, 0x9156e59f} },
+/**/                  {{0xbfd4112d, 0xe46b4c91} },
+/**/                  {{0xbc78c11d, 0x110fe0b7} },
+/**/                  {{0xbfb15c30, 0x10e3d572} },
+/**/                  {{0x3c53b45b, 0x4427c00b} },
+/**/                  {{0x3fc5801f, 0xc2c486ae} },
+/**/                  {{0xbc49bb5e, 0xc20ced8b} },
+/**/                  {{0xbfb190b0, 0x4cddef65} },
+/**/                  {{0xbfa9075c, 0x2ae4bcd0} },
+/**/                  {{0x3fb280f7, 0xb69396b9} },
+/**/                  {{0xbf9246f8, 0xce179ccb} },
+/**/                  {{0xbfa1903f, 0xce6e9b2b} } },
+/**/                 {{{0x3fddc000, 0x00000000} },
+/**/                  {{0x3fdbd928, 0x1e528192} },
+/**/                  {{0xbc74b154, 0x39af6b66} },
+/**/                  {{0x3fea5066, 0x88478403} },
+/**/                  {{0xbc85c7e8, 0xbe71620f} },
+/**/                  {{0xbfd41df2, 0xb430f4ac} },
+/**/                  {{0xbc55db82, 0xe79c7595} },
+/**/                  {{0xbfb0b0df, 0xb173ac76} },
+/**/                  {{0x3c57f440, 0xe4738d25} },
+/**/                  {{0x3fc553d9, 0x7199976b} },
+/**/                  {{0x3c54990c, 0x2a872a12} },
+/**/                  {{0xbfb1da42, 0xd137dd01} },
+/**/                  {{0xbfa80554, 0x350bfdb5} },
+/**/                  {{0x3fb25b31, 0xdae9e17f} },
+/**/                  {{0xbf937cc5, 0xe9e265b4} },
+/**/                  {{0xbfa0dbf0, 0x3d16a202} } },
+/**/                 {{{0x3fde0000, 0x00000000} },
+/**/                  {{0x3fdc0db4, 0xc94ec9f0} },
+/**/                  {{0xbc7cc1ce, 0x70934c34} },
+/**/                  {{0x3fea3c42, 0x68881898} },
+/**/                  {{0x3c8f907f, 0xe5c3bd97} },
+/**/                  {{0xbfd42a37, 0x8d38076d} },
+/**/                  {{0xbc6b8354, 0x7e19d62d} },
+/**/                  {{0xbfb006f4, 0x5a36f1bd} },
+/**/                  {{0xbc41701e, 0xca398c09} },
+/**/                  {{0x3fc526de, 0xf7221a2a} },
+/**/                  {{0xbc211868, 0x8041247e} },
+/**/                  {{0xbfb220d2, 0x67b0229a} },
+/**/                  {{0xbfa7056d, 0xc74d0c66} },
+/**/                  {{0x3fb2330d, 0x0ff472e2} },
+/**/                  {{0xbf94a5e9, 0x9cb74216} },
+/**/                  {{0xbfa02821, 0x992b9e1f} } },
+/**/                 {{{0x3fde4000, 0x00000000} },
+/**/                  {{0x3fdc4219, 0x1ff11eb7} },
+/**/                  {{0xbc7b17df, 0x434b3eee} },
+/**/                  {{0x3fea2812, 0x437ac09e} },
+/**/                  {{0xbc540368, 0xf9618c21} },
+/**/                  {{0xbfd435fd, 0x7d5ba406} },
+/**/                  {{0x3c75605b, 0x5e0a732a} },
+/**/                  {{0xbfaebce7, 0x1ce0c104} },
+/**/                  {{0xbc446d02, 0xd4eb3297} },
+/**/                  {{0x3fc4f937, 0xd289f60b} },
+/**/                  {{0x3c5b88b7, 0xe736fa8b} },
+/**/                  {{0xbfb26465, 0xa5f78db4} },
+/**/                  {{0xbfa607c9, 0x61a972db} },
+/**/                  {{0x3fb208a2, 0x9e13b088} },
+/**/                  {{0xbf95c26f, 0x06c33653} },
+/**/                  {{0xbf9eea1c, 0x346237b1} } },
+/**/                 {{{0x3fde8000, 0x00000000} },
+/**/                  {{0x3fdc7655, 0x0aad71f9} },
+/**/                  {{0xbc774b8b, 0xff7043e4} },
+/**/                  {{0x3fea13d6, 0x977fc070} },
+/**/                  {{0xbc86c451, 0xd9440881} },
+/**/                  {{0xbfd44145, 0x9682eee2} },
+/**/                  {{0x3c74156f, 0xb13901b4} },
+/**/                  {{0xbfad6ec5, 0x2b58de73} },
+/**/                  {{0x3c2ced26, 0xdf653988} },
+/**/                  {{0x3fc4caeb, 0x720eb232} },
+/**/                  {{0x3c614246, 0x92f3f809} },
+/**/                  {{0xbfb2a503, 0x812caa81} },
+/**/                  {{0xbfa50c86, 0x22dc20a7} },
+/**/                  {{0x3fb1dc0b, 0xb35de59d} },
+/**/                  {{0xbf96d265, 0x4adc8c38} },
+/**/                  {{0xbf9d85db, 0x35444e0c} } },
+/**/                 {{{0x3fdec000, 0x00000000} },
+/**/                  {{0x3fdcaa68, 0x72f3631b} },
+/**/                  {{0x3c295067, 0x81636f48} },
+/**/                  {{0x3fe9ff8f, 0xe1e381db} },
+/**/                  {{0xbc6fffe6, 0x00701e1c} },
+/**/                  {{0xbfd44c10, 0xee747cac} },
+/**/                  {{0xbc7a7f22, 0xced401ad} },
+/**/                  {{0xbfac238c, 0xf898de26} },
+/**/                  {{0x3c1eb191, 0xdaa7d32f} },
+/**/                  {{0x3fc49c01, 0x32160e42} },
+/**/                  {{0x3c649f02, 0x03d0023c} },
+/**/                  {{0xbfb2e2b3, 0x49ba4fb7} },
+/**/                  {{0xbfa413c1, 0xca00d6c7} },
+/**/                  {{0x3fb1ad61, 0x5bc495cf} },
+/**/                  {{0xbf97d5df, 0x63d0ff69} },
+/**/                  {{0xbf9c23eb, 0x27af7010} } },
+/**/                 {{{0x3fdf0000, 0x00000000} },
+/**/                  {{0x3fdcde53, 0x432c1351} },
+/**/                  {{0xbc7a2cfa, 0x4418f1ad} },
+/**/                  {{0x3fe9eb3e, 0x9edacacc} },
+/**/                  {{0xbc8942c5, 0x87d23ca5} },
+/**/                  {{0xbfd45660, 0x9eaa285d} },
+/**/                  {{0x3c4fe8e6, 0x52cf85b4} },
+/**/                  {{0xbfaadb48, 0x28319af3} },
+/**/                  {{0xbc207b46, 0x31b456b0} },
+/**/                  {{0x3fc46c80, 0x5c4ee7c2} },
+/**/                  {{0x3c4bdfc1, 0xb4443c76} },
+/**/                  {{0xbfb31d7c, 0xa73bc33f} },
+/**/                  {{0xbfa31d98, 0xb8a731f5} },
+/**/                  {{0x3fb17cbc, 0x798f7481} },
+/**/                  {{0xbf98ccf3, 0xf977e9ca} },
+/**/                  {{0xbf9ac4b2, 0x36ea1578} } },
+/**/                 {{{0x3fdf4000, 0x00000000} },
+/**/                  {{0x3fdd1215, 0x66b7f2ad} },
+/**/                  {{0x3c7be678, 0x35886c30} },
+/**/                  {{0x3fe9d6e3, 0x497f1fed} },
+/**/                  {{0xbc8ec056, 0x9a35c454} },
+/**/                  {{0xbfd46035, 0xc4255988} },
+/**/                  {{0x3c7ddb7b, 0x7144427c} },
+/**/                  {{0xbfa995ff, 0xe9b44acd} },
+/**/                  {{0x3c3c9d56, 0xb529cf65} },
+/**/                  {{0x3fc43c70, 0x26dc5cda} },
+/**/                  {{0x3c6d6ee6, 0xfde6cd82} },
+/**/                  {{0xbfb35567, 0x9467b39a} },
+/**/                  {{0xbfa22a25, 0xf54ca1ba} },
+/**/                  {{0x3fb14a35, 0xbe2d5d2d} },
+/**/                  {{0xbf99b7bd, 0x35a34e74} },
+/**/                  {{0xbf996891, 0xc4948489} } },
+/**/                 {{{0x3fdf8000, 0x00000000} },
+/**/                  {{0x3fdd45ae, 0xc9ec862b} },
+/**/                  {{0x3c689421, 0x163ef92d} },
+/**/                  {{0x3fe9c27e, 0x5bcb52c7} },
+/**/                  {{0xbc892d91, 0xf148a350} },
+/**/                  {{0xbfd46991, 0x7f43bff0} },
+/**/                  {{0xbc738b23, 0x8da13c27} },
+/**/                  {{0xbfa853bc, 0xf9f19dcd} },
+/**/                  {{0x3c2ea7a9, 0x2433c5cf} },
+/**/                  {{0x3fc40bd7, 0xb38b19e0} },
+/**/                  {{0xbc5d466e, 0x1c2a2863} },
+/**/                  {{0xbfb38a7c, 0x5b0333a7} },
+/**/                  {{0xbfa13983, 0x2e3896d7} },
+/**/                  {{0x3fb115e5, 0xa35b7545} },
+/**/                  {{0xbf9a9658, 0x99098556} },
+/**/                  {{0xbf980fe6, 0x693ac59e} } },
+/**/                 {{{0x3fdfc000, 0x00000000} },
+/**/                  {{0x3fdd791f, 0x5a1226f5} },
+/**/                  {{0xbc64017e, 0xa5b64a76} },
+/**/                  {{0x3fe9ae10, 0x4e983ae9} },
+/**/                  {{0xbc8d45ed, 0x52b783d7} },
+/**/                  {{0xbfd47274, 0xf394891f} },
+/**/                  {{0xbc7cd478, 0x22e08713} },
+/**/                  {{0xbfa71487, 0xa445379d} },
+/**/                  {{0x3c1569aa, 0x831d87b7} },
+/**/                  {{0x3fc3dabe, 0x0f10bc36} },
+/**/                  {{0x3bd8df2b, 0x1cb9bbe6} },
+/**/                  {{0xbfb3bcc3, 0x8fddd862} },
+/**/                  {{0xbfa04bc8, 0xbcb632d9} },
+/**/                  {{0x3fb0dfe4, 0x64a26d77} },
+/**/                  {{0xbf9b68e6, 0xd04027d1} },
+/**/                  {{0xbf96bb07, 0xf792c5d9} } },
+/**/                 {{{0x3fe00000, 0x00000000} },
+/**/                  {{0x3fddac67, 0x0561bb4f} },
+/**/                  {{0x3c7a2b7f, 0x222f65e2} },
+/**/                  {{0x3fe99999, 0x9999999a} },
+/**/                  {{0xbc899999, 0x9999999a} },
+/**/                  {{0xbfd47ae1, 0x47ae147b} },
+/**/                  {{0x3c5eb851, 0xeb851eb8} },
+/**/                  {{0xbfa5d867, 0xc3ece2a5} },
+/**/                  {{0xbc3a485c, 0xd7b900af} },
+/**/                  {{0x3fc3a92a, 0x30553261} },
+/**/                  {{0x3c6f06f6, 0x94467382} },
+/**/                  {{0xbfb3ec46, 0x0ed80a18} },
+/**/                  {{0xbf9ec21b, 0x514d88d8} },
+/**/                  {{0x3fb0a849, 0xf929a833} },
+/**/                  {{0xbf9c2f8b, 0x88dfb80c} },
+/**/                  {{0xbf956a49, 0x8245bf09} } },
+/**/                 {{{0x3fe02000, 0x00000000} },
+/**/                  {{0x3fdddf85, 0xbb026974} },
+/**/                  {{0x3c643bbb, 0x0c0a1226} },
+/**/                  {{0x3fe9851a, 0xb35b2797} },
+/**/                  {{0x3c89cd14, 0x18a8fead} },
+/**/                  {{0xbfd482d7, 0xa5042a2d} },
+/**/                  {{0x3c0dbc04, 0xa8224d16} },
+/**/                  {{0xbfa49f64, 0xc56ade02} },
+/**/                  {{0x3c451e52, 0x47da7eea} },
+/**/                  {{0x3fc37722, 0xf7c5fe7d} },
+/**/                  {{0xbc5165be, 0xd22c4b5c} },
+/**/                  {{0xbfb4190c, 0xf6f48c5d} },
+/**/                  {{0xbf9cf2cf, 0x58d0c132} },
+/**/                  {{0x3fb06f2e, 0x0ddfdd74} },
+/**/                  {{0xbf9cea6d, 0x46e65336} },
+/**/                  {{0xbf941df9, 0x6423af3b} } },
+/**/                 {{{0x3fe04000, 0x00000000} },
+/**/                  {{0x3fde127b, 0x6b0744b0} },
+/**/                  {{0xbc52b098, 0x6398d4ab} },
+/**/                  {{0x3fe97094, 0x113dcc5a} },
+/**/                  {{0xbc842780, 0x4de8c575} },
+/**/                  {{0xbfd48a59, 0x37beb8e5} },
+/**/                  {{0xbc601dd2, 0x9dc7541e} },
+/**/                  {{0xbfa36985, 0xa7f2a8fe} },
+/**/                  {{0xbc45e414, 0x7437d42d} },
+/**/                  {{0x3fc344af, 0x2eb33dd6} },
+/**/                  {{0xbc6d66e9, 0xe3a3193c} },
+/**/                  {{0xbfb44321, 0xa6763232} },
+/**/                  {{0xbf9b29d6, 0x7217dfc9} },
+/**/                  {{0x3fb034a7, 0xfff8a866} },
+/**/                  {{0xbf9d99b5, 0x3a6e931d} },
+/**/                  {{0xbf92d661, 0x4a9f7e19} } },
+/**/                 {{{0x3fe06000, 0x00000000} },
+/**/                  {{0x3fde4548, 0x066cf51a} },
+/**/                  {{0x3c43a3aa, 0x12ce98f2} },
+/**/                  {{0x3fe95c06, 0x2774fe53} },
+/**/                  {{0x3c810dfd, 0x3b851412} },
+/**/                  {{0xbfd49167, 0x2e911e43} },
+/**/                  {{0xbc7f6506, 0x09466fcd} },
+/**/                  {{0xbfa236d0, 0xfedfb0c1} },
+/**/                  {{0xbc3f6870, 0x79cb63a9} },
+/**/                  {{0x3fc311d5, 0x86b6561c} },
+/**/                  {{0x3c561982, 0x9543fc9a} },
+/**/                  {{0xbfb46a8d, 0xb70aa5a7} },
+/**/                  {{0xbf996756, 0xf5ac1efc} },
+/**/                  {{0x3faff19d, 0xaf7c84b3} },
+/**/                  {{0xbf9e3d8f, 0x15ce96b8} },
+/**/                  {{0xbf9193c6, 0x42726021} } },
+/**/                 {{{0x3fe08000, 0x00000000} },
+/**/                  {{0x3fde77eb, 0x7f175a34} },
+/**/                  {{0x3c70e53d, 0xc1bf3435} },
+/**/                  {{0x3fe94771, 0x69044ba4} },
+/**/                  {{0xbc7d53e2, 0x92d5fbc1} },
+/**/                  {{0xbfd49802, 0xba91fd89} },
+/**/                  {{0x3c71963e, 0xc3c8c4f3} },
+/**/                  {{0xbfa1074c, 0xf33546d5} },
+/**/                  {{0x3c4bc296, 0xc71ad288} },
+/**/                  {{0x3fc2de9c, 0x99222665} },
+/**/                  {{0x3c6e4a10, 0x28dadb64} },
+/**/                  {{0xbfb48f5a, 0xfa031cb1} },
+/**/                  {{0xbf97ab74, 0xbc0c6420} },
+/**/                  {{0x3faf7772, 0x876d0f75} },
+/**/                  {{0xbf9ed628, 0xe431fc96} },
+/**/                  {{0xbf905668, 0xc64515ec} } },
+/**/                 {{{0x3fe0a000, 0x00000000} },
+/**/                  {{0x3fdeaa65, 0xc7cf28c4} },
+/**/                  {{0x3c62fb2c, 0xeca3bf05} },
+/**/                  {{0x3fe932d6, 0x47bd0aaa} },
+/**/                  {{0x3c6bdfec, 0x697b6e3c} },
+/**/                  {{0xbfd49e2d, 0x0f13a7e8} },
+/**/                  {{0x3c6198c5, 0x20412940} },
+/**/                  {{0xbf9fb5fe, 0x8a4e92df} },
+/**/                  {{0xbc3cbb58, 0x6309a51a} },
+/**/                  {{0x3fc2ab0a, 0xe67c9829} },
+/**/                  {{0xbc647643, 0x06a4c4ef} },
+/**/                  {{0xbfb4b193, 0x749bc711} },
+/**/                  {{0xbf95f651, 0x27bef265} },
+/**/                  {{0x3faefafb, 0x28347ebf} },
+/**/                  {{0xbf9f63b2, 0xe0c06e2f} },
+/**/                  {{0xbf8e3d09, 0x9e7b9dd7} } },
+/**/                 {{{0x3fe0c000, 0x00000000} },
+/**/                  {{0x3fdedcb6, 0xd43f8435} },
+/**/                  {{0xbc5fc976, 0x330884e4} },
+/**/                  {{0x3fe91e35, 0x343c31e5} },
+/**/                  {{0xbc8fd46f, 0x9bb96799} },
+/**/                  {{0xbfd4a3e7, 0x617d19a1} },
+/**/                  {{0xbc7d7303, 0xea58b250} },
+/**/                  {{0xbf9d63da, 0x9b55d156} },
+/**/                  {{0xbc14bf72, 0xd5b4cc6c} },
+/**/                  {{0x3fc27726, 0xd6016a7c} },
+/**/                  {{0x3c4eba22, 0x435ec4b4} },
+/**/                  {{0xbfb4d141, 0x5c52b3c6} },
+/**/                  {{0xbf94480b, 0x2fdd9fbd} },
+/**/                  {{0x3fae7c63, 0x6d3af4b6} },
+/**/                  {{0xbf9fe65f, 0x4e61315b} },
+/**/                  {{0xbf8bd8a3, 0xcea37283} } },
+/**/                 {{{0x3fe0e000, 0x00000000} },
+/**/                  {{0x3fdf0ede, 0x98f393d0} },
+/**/                  {{0xbc72f40a, 0x87cb1894} },
+/**/                  {{0x3fe9098e, 0x9de85688} },
+/**/                  {{0xbc7c2de1, 0xa3791e64} },
+/**/                  {{0xbfd4a932, 0xe9238ed7} },
+/**/                  {{0xbc67a1bb, 0x28864386} },
+/**/                  {{0xbf9b1838, 0x001dec68} },
+/**/                  {{0xbc33ee0e, 0x8f0ffbdd} },
+/**/                  {{0x3fc242f6, 0xb52e1005} },
+/**/                  {{0xbc5476eb, 0x371fd2c1} },
+/**/                  {{0xbfb4ee6f, 0x134edf2d} },
+/**/                  {{0xbf92a0bf, 0x6b13becc} },
+/**/                  {{0x3fadfbd6, 0x650f859c} },
+/**/                  {{0xbfa02f31, 0x281586f4} },
+/**/                  {{0xbf898006, 0x7a73449e} } },
+/**/                 {{{0x3fe10000, 0x00000000} },
+/**/                  {{0x3fdf40dd, 0x0b541418} },
+/**/                  {{0xbc6a3992, 0xdc382a23} },
+/**/                  {{0x3fe8f4e2, 0xf2efd135} },
+/**/                  {{0xbc74c3c0, 0xd4218911} },
+/**/                  {{0xbfd4ae10, 0xdf24b2d1} },
+/**/                  {{0x3c713b12, 0x79d0ac37} },
+/**/                  {{0xbf98d31f, 0xd7365f3f} },
+/**/                  {{0xbc18bf3b, 0x62531dc5} },
+/**/                  {{0x3fc20e80, 0xb7567664} },
+/**/                  {{0xbc54a699, 0xd450197f} },
+/**/                  {{0xbfb50927, 0x24d80ddd} },
+/**/                  {{0xbf910088, 0x1b0516ab} },
+/**/                  {{0x3fad797e, 0x4a356567} },
+/**/                  {{0xbfa065f8, 0xe14758ed} },
+/**/                  {{0xbf87338f, 0x73d2f6bb} } },
+/**/                 {{{0x3fe12000, 0x00000000} },
+/**/                  {{0x3fdf72b2, 0x21a4e495} },
+/**/                  {{0x3c5489c2, 0x0f7eb740} },
+/**/                  {{0x3fe8e032, 0xa0470831} },
+/**/                  {{0xbc8c154a, 0xe75570cd} },
+/**/                  {{0xbfd4b282, 0x7e416c35} },
+/**/                  {{0xbc7f1837, 0x60646afd} },
+/**/                  {{0xbf96949a, 0x7a6bec27} },
+/**/                  {{0x3c38238f, 0xe6b77ba9} },
+/**/                  {{0x3fc1d9ca, 0xf5428c61} },
+/**/                  {{0x3c6a968d, 0xcd7881aa} },
+/**/                  {{0xbfb52174, 0x41e00b6e} },
+/**/                  {{0xbf8ecefa, 0x702ad3de} },
+/**/                  {{0x3facf584, 0x7c8ae0dc} },
+/**/                  {{0xbfa097a2, 0x8aa44fa8} },
+/**/                  {{0xbf84f394, 0x2ed63408} } },
+/**/                 {{{0x3fe14000, 0x00000000} },
+/**/                  {{0x3fdfa45d, 0xd3029259} },
+/**/                  {{0xbc7ca563, 0xdc28d8b5} },
+/**/                  {{0x3fe8cb7e, 0x11a6de80} },
+/**/                  {{0x3c610be6, 0xac22b8f8} },
+/**/                  {{0xbfd4b689, 0x02b9488a} },
+/**/                  {{0x3c5ea0bd, 0xaf91d442} },
+/**/                  {{0xbf945caf, 0x821fd17e} },
+/**/                  {{0x3c38e464, 0x0e51a049} },
+/**/                  {{0x3fc1a4db, 0x6cd45aad} },
+/**/                  {{0x3c2288e0, 0xf4200d5e} },
+/**/                  {{0xbfb53761, 0x3d9dd7c4} },
+/**/                  {{0xbf8bab68, 0xfb107457} },
+/**/                  {{0x3fac7011, 0x7b46ebd1} },
+/**/                  {{0xbfa0c44a, 0x93134a8f} },
+/**/                  {{0xbf82c061, 0xf1fa4589} } },
+/**/                 {{{0x3fe16000, 0x00000000} },
+/**/                  {{0x3fdfd5e0, 0x175fdf83} },
+/**/                  {{0x3c63a87b, 0x1ec49b15} },
+/**/                  {{0x3fe8b6c5, 0xb18b4749} },
+/**/                  {{0xbc5fabb8, 0xb7d58c0a} },
+/**/                  {{0xbfd4ba25, 0xaa26890c} },
+/**/                  {{0x3c50e395, 0x0ef9b688} },
+/**/                  {{0xbf922b65, 0xc8a9b4c0} },
+/**/                  {{0x3c2835ee, 0xd319146f} },
+/**/                  {{0x3fc16fb8, 0x00b681bd} },
+/**/                  {{0x3c1df633, 0x279133b0} },
+/**/                  {{0xbfb54af9, 0x0a3b410c} },
+/**/                  {{0xbf889682, 0xebe14682} },
+/**/                  {{0x3fabe94c, 0xdf89e086} },
+/**/                  {{0xbfa0ec0e, 0x0e55a6f8} },
+/**/                  {{0xbf809a3e, 0x08af68f3} } },
+/**/                 {{{0x3fe18000, 0x00000000} },
+/**/                  {{0x3fe0039c, 0x73c1a40c} },
+/**/                  {{0xbc8b32c9, 0x49c9d593} },
+/**/                  {{0x3fe8a209, 0xe931fcd3} },
+/**/                  {{0x3c6cb8f0, 0x8e68c94c} },
+/**/                  {{0xbfd4bd59, 0xb35ad2d8} },
+/**/                  {{0xbc61ac1a, 0xcaa606b4} },
+/**/                  {{0xbf9000c3, 0x6dc339ef} },
+/**/                  {{0x3c2c62e2, 0xaeaeaa73} },
+/**/                  {{0x3fc13a66, 0x7812ee2d} },
+/**/                  {{0x3c6a8cc2, 0x948ffe5b} },
+/**/                  {{0xbfb55c46, 0xb5955c9c} },
+/**/                  {{0xbf85906b, 0x0fd2b503} },
+/**/                  {{0x3fab615d, 0x577de2da} },
+/**/                  {{0xbfa10f0a, 0xa34d31ec} },
+/**/                  {{0xbf7d02cb, 0xefe48ad0} } },
+/**/                 {{{0x3fe1a000, 0x00000000} },
+/**/                  {{0x3fe01c34, 0x1e82422d} },
+/**/                  {{0x3c83db44, 0xfcca90ee} },
+/**/                  {{0x3fe88d4b, 0x20995a88} },
+/**/                  {{0x3c802777, 0x1e42e681} },
+/**/                  {{0xbfd4c026, 0x5e3c840f} },
+/**/                  {{0x3c7d7c65, 0x3800420d} },
+/**/                  {{0xbf8bb99b, 0xb3f88703} },
+/**/                  {{0x3c1f62ec, 0x4bf63e82} },
+/**/                  {{0x3fc104ec, 0x7e5193ee} },
+/**/                  {{0xbc27771e, 0xbae4e07d} },
+/**/                  {{0xbfb56b55, 0x66104515} },
+/**/                  {{0xbf829940, 0x061a20d1} },
+/**/                  {{0x3faad868, 0xa20334d9} },
+/**/                  {{0xbfa12d5e, 0x7aba8ee6} },
+/**/                  {{0xbf78ec1f, 0x69774b8d} } },
+/**/                 {{{0x3fe1c000, 0x00000000} },
+/**/                  {{0x3fe034b7, 0x09250488} },
+/**/                  {{0x3c78f9b3, 0x8d855410} },
+/**/                  {{0x3fe87889, 0xbe7f594b} },
+/**/                  {{0xbc7530e1, 0xc826e7a3} },
+/**/                  {{0xbfd4c28c, 0xeba4af80} },
+/**/                  {{0x3c7104a9, 0xe6a95faa} },
+/**/                  {{0xbf877f13, 0x846dba10} },
+/**/                  {{0x3c2bc924, 0x4abd0010} },
+/**/                  {{0x3fc0cf4f, 0xa2deff9f} },
+/**/                  {{0xbc67d17e, 0xa013c015} },
+/**/                  {{0xbfb57830, 0x577e7899} },
+/**/                  {{0xbf7f6238, 0xb49ea16d} },
+/**/                  {{0x3faa4e93, 0x8ae4a926} },
+/**/                  {{0xbfa14728, 0x2e77f633} },
+/**/                  {{0xbf74f0d3, 0xb81c893e} } },
+/**/                 {{{0x3fe1e000, 0x00000000} },
+/**/                  {{0x3fe04d25, 0x314342e6} },
+/**/                  {{0xbc81c863, 0x6442c767} },
+/**/                  {{0x3fe863c6, 0x2860ad7e} },
+/**/                  {{0xbc81dcb2, 0x137a2d8f} },
+/**/                  {{0xbfd4c48e, 0x9d3dc03a} },
+/**/                  {{0xbc7d92af, 0x197b1db9} },
+/**/                  {{0xbf8351f6, 0x5653b1a7} },
+/**/                  {{0xbbe368b4, 0x2127dea7} },
+/**/                  {{0x3fc09995, 0x58fa8ca4} },
+/**/                  {{0xbc446391, 0x530429e5} },
+/**/                  {{0xbfb582e2, 0xd81c26eb} },
+/**/                  {{0xbf79b02d, 0x3e63c109} },
+/**/                  {{0x3fa9c401, 0xe7904294} },
+/**/                  {{0xbfa15c86, 0xb933b0f3} },
+/**/                  {{0xbf711137, 0xd8d860e1} } },
+/**/                 {{{0x3fe20000, 0x00000000} },
+/**/                  {{0x3fe0657e, 0x94db30d0} },
+/**/                  {{0xbc7d5b49, 0x5f6349e6} },
+/**/                  {{0x3fe84f00, 0xc2780614} },
+/**/                  {{0xbc7fe7b0, 0xff3d87fa} },
+/**/                  {{0xbfd4c62c, 0xb562c625} },
+/**/                  {{0x3c77b2c3, 0xa78e848c} },
+/**/                  {{0xbf7e6495, 0xb3a4bcb7} },
+/**/                  {{0x3c14eb89, 0xe3f2b0a5} },
+/**/                  {{0x3fc063c2, 0xf78c0dc4} },
+/**/                  {{0xbc6badf0, 0x7539dc13} },
+/**/                  {{0xbfb58b78, 0x459eb443} },
+/**/                  {{0xbf741c83, 0x1386e6b4} },
+/**/                  {{0x3fa938d6, 0x944ff706} },
+/**/                  {{0xbfa16d99, 0x66ad4037} },
+/**/                  {{0xbf6a9b1a, 0x01fc736a} } },
+/**/                 {{{0x3fe22000, 0x00000000} },
+/**/                  {{0x3fe07dc3, 0x324e9b38} },
+/**/                  {{0x3c7b70c9, 0xe04450ac} },
+/**/                  {{0x3fe83a39, 0xefbd6bfe} },
+/**/                  {{0xbc7b2885, 0x21f5de26} },
+/**/                  {{0xbfd4c768, 0x76ff6c9e} },
+/**/                  {{0x3c56a2c0, 0xdebc1603} },
+/**/                  {{0xbf76402c, 0xd9cccfd7} },
+/**/                  {{0xbc1b39c0, 0x4e9786c1} },
+/**/                  {{0x3fc02ddd, 0xb900b57a} },
+/**/                  {{0x3c45d916, 0xea88a215} },
+/**/                  {{0xbfb591fc, 0x0a58ab40} },
+/**/                  {{0xbf6d4eb0, 0x32a37ac9} },
+/**/                  {{0x3fa8ad33, 0x71fe75f8} },
+/**/                  {{0xbfa17a7f, 0xc477a855} },
+/**/                  {{0xbf634c0e, 0x2b035011} } },
+/**/                 {{{0x3fe24000, 0x00000000} },
+/**/                  {{0x3fe095f3, 0x0861a590} },
+/**/                  {{0xbc7121b2, 0x0a15a9f3} },
+/**/                  {{0x3fe82572, 0x11e5c14d} },
+/**/                  {{0xbc7df9fc, 0xacd80b09} },
+/**/                  {{0xbfd4c843, 0x25709bff} },
+/**/                  {{0x3c7a9ef6, 0x1790f484} },
+/**/                  {{0xbf6c6d74, 0x8a0def34} },
+/**/                  {{0xbc051e57, 0x2a8142d7} },
+/**/                  {{0x3fbfefd5, 0x765e156b} },
+/**/                  {{0xbc3e6048, 0xf0e29c9e} },
+/**/                  {{0xbfb59679, 0x9a724e28} },
+/**/                  {{0xbf62a185, 0xcf13e192} },
+/**/                  {{0x3fa82139, 0x6433c13f} },
+/**/                  {{0xbfa18359, 0x9342e95d} },
+/**/                  {{0xbf586b34, 0x8f974107} } },
+/**/                 {{{0x3fe26000, 0x00000000} },
+/**/                  {{0x3fe0ae0e, 0x1639866c} },
+/**/                  {{0x3c7075ab, 0xf2de445a} },
+/**/                  {{0x3fe810a9, 0x89625f5d} },
+/**/                  {{0xbc8e4bea, 0x0fcf7262} },
+/**/                  {{0xbfd4c8be, 0x0465c69b} },
+/**/                  {{0x3c462ef4, 0xd7f7f89c} },
+/**/                  {{0xbf59210e, 0x4de612d5} },
+/**/                  {{0xbbf43659, 0xba53898d} },
+/**/                  {{0x3fbf83dd, 0xfe836c69} },
+/**/                  {{0xbc36cb56, 0x27f5499a} },
+/**/                  {{0xbfb598fc, 0x7136edda} },
+/**/                  {{0xbf50634c, 0x00013fb7} },
+/**/                  {{0x3fa79508, 0x4fe557c2} },
+/**/                  {{0xbfa18846, 0xb8ae41dc} },
+/**/                  {{0xbf455fce, 0xe36bd239} } },
+/**/                 {{{0x3fe28000, 0x00000000} },
+/**/                  {{0x3fe0c614, 0x5b5b43da} },
+/**/                  {{0x3c5974fa, 0x13b5404f} },
+/**/                  {{0x3fe7fbe0, 0xb560d35c} },
+/**/                  {{0xbc84f066, 0xae5a0887} },
+/**/                  {{0xbfd4c8da, 0x57c2e1cb} },
+/**/                  {{0x3c73de0e, 0xe0a3774c} },
+/**/                  {{0x3f38b341, 0x61c69f3c} },
+/**/                  {{0x3bd7b2e2, 0x7b200371} },
+/**/                  {{0x3fbf17de, 0xd351e8ed} },
+/**/                  {{0x3c5bce38, 0x650c5a9c} },
+/**/                  {{0xbfb59990, 0x0e77234c} },
+/**/                  {{0x3f3006ef, 0x99f594ee} },
+/**/                  {{0x3fa708bf, 0x1a75a6cc} },
+/**/                  {{0xbfa18967, 0x31a471d5} },
+/**/                  {{0x3f24cc7e, 0x59bf0521} } },
+/**/                 {{{0x3fe2a000, 0x00000000} },
+/**/                  {{0x3fe0de05, 0xd7aa6f7d} },
+/**/                  {{0xbc783684, 0xb1c529ab} },
+/**/                  {{0x3fe7e717, 0xf3cab884} },
+/**/                  {{0x3c7e1b21, 0x3b1fa4c7} },
+/**/                  {{0xbfd4c899, 0x63830b4b} },
+/**/                  {{0xbc7b6e32, 0xae3ffeff} },
+/**/                  {{0x3f628757, 0xfc06cc4f} },
+/**/                  {{0xbbb4c155, 0x56f01f66} },
+/**/                  {{0x3fbeabe1, 0x8424efd8} },
+/**/                  {{0x3bdf5129, 0x6e5604ea} },
+/**/                  {{0xbfb5983f, 0xf3ffff64} },
+/**/                  {{0x3f57ec04, 0x1f564189} },
+/**/                  {{0x3fa67c7b, 0xa92e6e68} },
+/**/                  {{0xbfa186db, 0x0542d0ff} },
+/**/                  {{0x3f4ee247, 0x11a37bde} } },
+/**/                 {{{0x3fe2c000, 0x00000000} },
+/**/                  {{0x3fe0f5e2, 0x8b67e295} },
+/**/                  {{0x3be311b1, 0x7ec990d0} },
+/**/                  {{0x3fe7d24f, 0xa145af59} },
+/**/                  {{0xbc83c6d1, 0xabdb623b} },
+/**/                  {{0xbfd4c7fc, 0x6b9bdb30} },
+/**/                  {{0x3c7c2fae, 0xd3bbb84b} },
+/**/                  {{0x3f70e125, 0xc729b366} },
+/**/                  {{0x3c1291fb, 0x7a19993c} },
+/**/                  {{0x3fbe3fef, 0x66cf0dd8} },
+/**/                  {{0xbc5428b7, 0xcd5e7640} },
+/**/                  {{0xbfb59517, 0xa3273c21} },
+/**/                  {{0x3f65adcf, 0x36891acb} },
+/**/                  {{0x3fa5f05a, 0xe121c017} },
+/**/                  {{0xbfa180c2, 0x384bad65} },
+/**/                  {{0x3f5bd6f1, 0xd31e02a7} } },
+/**/                 {{{0x3fe2e000, 0x00000000} },
+/**/                  {{0x3fe10daa, 0x77307a0d} },
+/**/                  {{0x3c869c33, 0xd44c7b05} },
+/**/                  {{0x3fe7bd88, 0x19337139} },
+/**/                  {{0xbc7fd248, 0x00e777ef} },
+/**/                  {{0xbfd4c704, 0xb3e16264} },
+/**/                  {{0xbc7ed720, 0xd46ed4e3} },
+/**/                  {{0x3f7863a5, 0x62c1daf7} },
+/**/                  {{0x3c155e73, 0x30cc82d1} },
+/**/                  {{0x3fbdd411, 0x97a241da} },
+/**/                  {{0x3c27a15a, 0x9ac44edd} },
+/**/                  {{0xbfb59022, 0x9a6c71a6} },
+/**/                  {{0x3f6f285a, 0xb5534ebe} },
+/**/                  {{0x3fa56478, 0xa76d3cf7} },
+/**/                  {{0xbfa1773c, 0xc1240db6} },
+/**/                  {{0x3f63e5a1, 0x3891a70c} } },
+/**/                 {{{0x3fe30000, 0x00000000} },
+/**/                  {{0x3fe1255d, 0x9bfbd2a9} },
+/**/                  {{0xbc52bdae, 0xe1c0ee35} },
+/**/                  {{0x3fe7a8c1, 0xb5b1ffa1} },
+/**/                  {{0x3c873e4a, 0x4e005ea3} },
+/**/                  {{0xbfd4c5b3, 0x7fead5b8} },
+/**/                  {{0x3c77958e, 0x55abc25a} },
+/**/                  {{0x3f7fcb31, 0x01e4c970} },
+/**/                  {{0xbc1ad968, 0xc5337fda} },
+/**/                  {{0x3fbd6850, 0xf983ecf1} },
+/**/                  {{0xbc3e45e6, 0x02ed6910} },
+/**/                  {{0xbfb5896c, 0x532f49b6} },
+/**/                  {{0x3f7432e2, 0xeaefcf7f} },
+/**/                  {{0x3fa4d8ef, 0xe1db38f0} },
+/**/                  {{0xbfa16a6a, 0x7c5c9def} },
+/**/                  {{0x3f69a742, 0x7b6fe5d0} } },
+/**/                 {{{0x3fe32000, 0x00000000} },
+/**/                  {{0x3fe13cfb, 0xfb1b056e} },
+/**/                  {{0x3c83110e, 0x6fc3ed38} },
+/**/                  {{0x3fe793fc, 0xcf9bee6c} },
+/**/                  {{0xbc8dc7d2, 0xd8d91b6c} },
+/**/                  {{0xbfd4c40a, 0x12f7e51f} },
+/**/                  {{0x3c7d1e10, 0x0d5d686d} },
+/**/                  {{0x3f838be8, 0x839d28fa} },
+/**/                  {{0x3c13427a, 0x52131640} },
+/**/                  {{0x3fbcfcb6, 0x360bfed5} },
+/**/                  {{0xbc5e3cb4, 0xa36f599f} },
+/**/                  {{0xbfb58100, 0x3f7aa463} },
+/**/                  {{0x3f78b31e, 0xb76f2bc0} },
+/**/                  {{0x3fa44dda, 0x77dd6b80} },
+/**/                  {{0xbfa15a6b, 0x21c53ca9} },
+/**/                  {{0x3f6f30a7, 0x6cd99ed4} } },
+/**/                 {{{0x3fe34000, 0x00000000} },
+/**/                  {{0x3fe15485, 0x9637646a} },
+/**/                  {{0xbc84ba7c, 0x548bf3c3} },
+/**/                  {{0x3fe77f39, 0xbe88c85e} },
+/**/                  {{0xbc6a983f, 0x9b6750c8} },
+/**/                  {{0xbfd4c209, 0xafd6bee5} },
+/**/                  {{0x3c7d21ef, 0x5e73e93a} },
+/**/                  {{0x3f8724c7, 0xfc556ca7} },
+/**/                  {{0xbc23cef2, 0x42e5673e} },
+/**/                  {{0x3fbc9149, 0xbdaef67d} },
+/**/                  {{0xbc1e549c, 0x3f04fcdc} },
+/**/                  {{0xbfb576e9, 0xc7e4996a} },
+/**/                  {{0x3f7d14fc, 0xba6ceedb} },
+/**/                  {{0x3fa3c351, 0x53dcdc4a} },
+/**/                  {{0xbfa1475e, 0x3a0a53a1} },
+/**/                  {{0x3f724116, 0x62102619} } },
+/**/                 {{{0x3fe36000, 0x00000000} },
+/**/                  {{0x3fe16bfa, 0x6f5137e1} },
+/**/                  {{0x3c79606f, 0xe141bd35} },
+/**/                  {{0x3fe76a78, 0xd8cd8d65} },
+/**/                  {{0x3c854a99, 0xddf1f71f} },
+/**/                  {{0xbfd4bfb3, 0x98cabe40} },
+/**/                  {{0xbc61e24d, 0x9ef99598} },
+/**/                  {{0x3f8ab03d, 0x388e6864} },
+/**/                  {{0x3c210541, 0xc340d113} },
+/**/                  {{0x3fbc2613, 0xc7f24ec4} },
+/**/                  {{0x3c54042a, 0x0a59af31} },
+/**/                  {{0xbfb56b34, 0x49833ac1} },
+/**/                  {{0x3f80ac4f, 0x22f6cd28} },
+/**/                  {{0x3fa3396c, 0x64dac153} },
+/**/                  {{0xbfa13163, 0x14dadf32} },
+/**/                  {{0x3f74ce20, 0x21aeee27} } },
+/**/                 {{{0x3fe38000, 0x00000000} },
+/**/                  {{0x3fe1835a, 0x88be7c13} },
+/**/                  {{0x3c8c621c, 0xec00c301} },
+/**/                  {{0x3fe755ba, 0x737d49ca} },
+/**/                  {{0xbc8abaf3, 0xd4cb44c6} },
+/**/                  {{0xbfd4bd09, 0x0f73c4b3} },
+/**/                  {{0x3c3e9ebf, 0xa9936e0b} },
+/**/                  {{0x3f8e2e4f, 0x8920477f} },
+/**/                  {{0xbc0889e3, 0x0360e009} },
+/**/                  {{0x3fbbbb1c, 0x53aaefa0} },
+/**/                  {{0xbc5edb26, 0xa1007b7f} },
+/**/                  {{0xbfb55deb, 0x13f5f619} },
+/**/                  {{0x3f82bf14, 0xe675741e} },
+/**/                  {{0x3fa2b042, 0xa05e0ebf} },
+/**/                  {{0xbfa11898, 0xbf95c5c1} },
+/**/                  {{0x3f773faf, 0xe421ee51} } },
+/**/                 {{{0x3fe3a000, 0x00000000} },
+/**/                  {{0x3fe19aa5, 0xe5299f9a} },
+/**/                  {{0xbc8a606c, 0x2c58f835} },
+/**/                  {{0x3fe740fe, 0xe269c5b3} },
+/**/                  {{0x3c873eff, 0x4c82509c} },
+/**/                  {{0xbfd4ba0b, 0x54b63d79} },
+/**/                  {{0xbc51d68a, 0x75bceeff} },
+/**/                  {{0x3f90cf83, 0x9d9b3eb0} },
+/**/                  {{0xbc107399, 0x68a7ca2f} },
+/**/                  {{0x3fbb506b, 0x27453d35} },
+/**/                  {{0x3c326b36, 0x00bdfedd} },
+/**/                  {{0xbfb54f19, 0x67836cef} },
+/**/                  {{0x3f84c2e5, 0x567ed6e8} },
+/**/                  {{0x3fa227ea, 0x04a983e8} },
+/**/                  {{0xbfa0fd1d, 0xfc7ce22f} },
+/**/                  {{0x3f79960c, 0x2ffea71d} } },
+/**/                 {{{0x3fe3c000, 0x00000000} },
+/**/                  {{0x3fe1b1dc, 0x87904285} },
+/**/                  {{0xbc621e8c, 0x8aef8f29} },
+/**/                  {{0x3fe72c46, 0x78244c5a} },
+/**/                  {{0x3c888c36, 0xe664f3a2} },
+/**/                  {{0xbfd4b6bb, 0xa8a3ca2f} },
+/**/                  {{0xbc778793, 0x1e1f3e19} },
+/**/                  {{0x3f928136, 0xc8a3d8bb} },
+/**/                  {{0x3c3dc4d8, 0x140daf1c} },
+/**/                  {{0x3fbae607, 0xd1165ef3} },
+/**/                  {{0xbc5fbfaa, 0x6305876c} },
+/**/                  {{0xbfb53eca, 0x734b94bd} },
+/**/                  {{0x3f86b7d8, 0x7c458eb1} },
+/**/                  {{0x3fa1a077, 0x9b360f57} },
+/**/                  {{0xbfa0df11, 0x3a6beabd} },
+/**/                  {{0x3f7bd182, 0xaf42dc87} } },
+/**/                 {{{0x3fe3e000, 0x00000000} },
+/**/                  {{0x3fe1c8fe, 0x7341f64f} },
+/**/                  {{0x3c728bbc, 0x9d5e792a} },
+/**/                  {{0x3fe71791, 0x85fe8a32} },
+/**/                  {{0x3c8f15bd, 0xe8bbb0d0} },
+/**/                  {{0xbfd4b31b, 0x4a6497be} },
+/**/                  {{0x3c737223, 0x782968f7} },
+/**/                  {{0x3f942c46, 0x5e0c3122} },
+/**/                  {{0xbc33e26a, 0x86422b13} },
+/**/                  {{0x3fba7bf9, 0xa7b659b8} },
+/**/                  {{0xbc3cdf63, 0x25381986} },
+/**/                  {{0xbfb52d09, 0x538deb45} },
+/**/                  {{0x3f889e08, 0xa0c1f425} },
+/**/                  {{0x3fa119ff, 0x7b6d72e6} },
+/**/                  {{0xbfa0be90, 0x8d11287b} },
+/**/                  {{0x3f7df267, 0xbce83ad4} } },
+/**/                 {{{0x3fe40000, 0x00000000} },
+/**/                  {{0x3fe1e00b, 0xabdefeb4} },
+/**/                  {{0xbc5928df, 0x287a668f} },
+/**/                  {{0x3fe702e0, 0x5c0b8170} },
+/**/                  {{0x3c7702e0, 0x5c0b8170} },
+/**/                  {{0xbfd4af2b, 0x78215a76} },
+/**/                  {{0xbc581c2e, 0xab3a13d8} },
+/**/                  {{0x3f95d0b7, 0xe9e4a9d0} },
+/**/                  {{0xbc3aa02a, 0xebf91fc7} },
+/**/                  {{0x3fba1247, 0xca629942} },
+/**/                  {{0xbc46961a, 0xc245db83} },
+/**/                  {{0xbfb519e1, 0x100385b4} },
+/**/                  {{0x3f8a7592, 0x32616ed8} },
+/**/                  {{0x3fa09494, 0xcda1223a} },
+/**/                  {{0xbfa09bb9, 0xa5a5c251} },
+/**/                  {{0x3f7ff915, 0xf489d8ba} } },
+/**/                 {{{0x3fe42000, 0x00000000} },
+/**/                  {{0x3fe1f704, 0x3557138a} },
+/**/                  {{0x3c76c659, 0xf6d7dd47} },
+/**/                  {{0x3fe6ee33, 0x4920943e} },
+/**/                  {{0xbc62723e, 0x61a3a541} },
+/**/                  {{0xbfd4aaed, 0x6eedf042} },
+/**/                  {{0x3c5b337a, 0xe7561ed4} },
+/**/                  {{0x3f976e91, 0x68796803} },
+/**/                  {{0xbc0e806f, 0x44d1db93} },
+/**/                  {{0x3fb9a8f9, 0x21688625} },
+/**/                  {{0x3c540185, 0xb1ec0554} },
+/**/                  {{0xbfb5055c, 0x9a4cbc61} },
+/**/                  {{0x3f8c3e93, 0xab0be204} },
+/**/                  {{0x3fa01049, 0xce3968a1} },
+/**/                  {{0xbfa076a9, 0xcc2331ba} },
+/**/                  {{0x3f80f2f6, 0xe220db7e} } },
+/**/                 {{{0x3fe44000, 0x00000000} },
+/**/                  {{0x3fe20de8, 0x13e823b2} },
+/**/                  {{0xbc8791d7, 0x53ebb744} },
+/**/                  {{0x3fe6d98a, 0x9ad6a3fd} },
+/**/                  {{0xbc808110, 0xc4e69862} },
+/**/                  {{0xbfd4a662, 0x6ab4a79d} },
+/**/                  {{0x3c52ed25, 0x9fc1cc2b} },
+/**/                  {{0x3f9905d9, 0x42e6dc28} },
+/**/                  {{0xbc228c79, 0xe39b7707} },
+/**/                  {{0x3fb94014, 0x5e97c6f4} },
+/**/                  {{0xbc52b822, 0xf8779202} },
+/**/                  {{0xbfb4ef86, 0xcc723054} },
+/**/                  {{0x3f8df92d, 0x76852811} },
+/**/                  {{0x3f9f1a5f, 0xa231ee3f} },
+/**/                  {{0xbfa04f7d, 0xd8f34e77} },
+/**/                  {{0x3f81dcaa, 0x80706a34} } },
+/**/                 {{{0x3fe46000, 0x00000000} },
+/**/                  {{0x3fe224b7, 0x4c1d192a} },
+/**/                  {{0x3c8d6d3d, 0xf88a60c4} },
+/**/                  {{0x3fe6c4e6, 0x9d8b44ec} },
+/**/                  {{0xbc589d5c, 0x4ed04ec2} },
+/**/                  {{0xbfd4a18b, 0xa6222a08} },
+/**/                  {{0xbc66c919, 0xd3867dbd} },
+/**/                  {{0x3f9a9696, 0x4bb5a8a0} },
+/**/                  {{0x3c36698e, 0x927bb5bd} },
+/**/                  {{0x3fb8d79f, 0xfdbbcc76} },
+/**/                  {{0x3c2578bd, 0x4efb71a1} },
+/**/                  {{0xbfb4d86a, 0x6778e363} },
+/**/                  {{0x3f8fa581, 0xd930230d} },
+/**/                  {{0x3f9e16ae, 0x8a6221aa} },
+/**/                  {{0xbfa02652, 0x2f183972} },
+/**/                  {{0x3f82b9db, 0x3e507f4f} } },
+/**/                 {{{0x3fe48000, 0x00000000} },
+/**/                  {{0x3fe23b71, 0xe2cc9e6a} },
+/**/                  {{0x3c6c421c, 0x9f38224e} },
+/**/                  {{0x3fe6b047, 0x9c620595} },
+/**/                  {{0x3c8867df, 0x07d7f0c2} },
+/**/                  {{0xbfd49c6a, 0x5a920887} },
+/**/                  {{0xbc764547, 0x37bcc433} },
+/**/                  {{0x3f9c20cf, 0xbb7e5931} },
+/**/                  {{0xbc3d86f5, 0x4db6bef2} },
+/**/                  {{0x3fb86fa2, 0x451c4a5d} },
+/**/                  {{0xbc475142, 0x15afb52c} },
+/**/                  {{0xbfb4c012, 0x120917da} },
+/**/                  {{0x3f90a1da, 0x6b9c3fad} },
+/**/                  {{0x3f9d159f, 0x708543e5} },
+/**/                  {{0xbf9ff685, 0x6d929bce} },
+/**/                  {{0x3f838ac0, 0xd0361a66} } },
+/**/                 {{{0x3fe4a000, 0x00000000} },
+/**/                  {{0x3fe25217, 0xdd17e501} },
+/**/                  {{0x3c856aa8, 0x8c1b679c} },
+/**/                  {{0x3fe69bad, 0xe145c95d} },
+/**/                  {{0xbc873257, 0x5605046d} },
+/**/                  {{0xbfd496ff, 0xbffbe8a8} },
+/**/                  {{0x3c36a5c5, 0xc7b45e6f} },
+/**/                  {{0x3f9da48d, 0x2d9556eb} },
+/**/                  {{0x3c3ff0e8, 0x1871a19d} },
+/**/                  {{0x3fb80821, 0x46043f42} },
+/**/                  {{0x3c550eec, 0xe660cfa1} },
+/**/                  {{0xbfb4a688, 0x5727a8cb} },
+/**/                  {{0x3f9169f6, 0x0e13efbc} },
+/**/                  {{0x3f9c174f, 0xb59149dd} },
+/**/                  {{0xbf9f9cd5, 0xb10444dd} },
+/**/                  {{0x3f844f95, 0x03e91dd9} } },
+/**/                 {{{0x3fe4c000, 0x00000000} },
+/**/                  {{0x3fe268a9, 0x40696da6} },
+/**/                  {{0x3c5d1348, 0xa04c73cc} },
+/**/                  {{0x3fe68719, 0xb4ea3592} },
+/**/                  {{0xbc7ecf86, 0x088ed284} },
+/**/                  {{0xbfd4914d, 0x0ce1507d} },
+/**/                  {{0xbc6410ef, 0x4dff2946} },
+/**/                  {{0x3f9f21d6, 0x9cbf7eb7} },
+/**/                  {{0x3c39bc22, 0xeaaad7e2} },
+/**/                  {{0x3fb7a122, 0xdd4f3070} },
+/**/                  {{0x3c50d950, 0x1cfe44af} },
+/**/                  {{0xbfb48bd7, 0xa50188df} },
+/**/                  {{0x3f922b27, 0x71756204} },
+/**/                  {{0x3f9b1bdb, 0x0810a33a} },
+/**/                  {{0xbf9f3fca, 0xf1011313} },
+/**/                  {{0x3f850893, 0x8fe0f49b} } },
+/**/                 {{{0x3fe4e000, 0x00000000} },
+/**/                  {{0x3fe27f26, 0x1273d1b3} },
+/**/                  {{0x3c843bf3, 0x6151dd9f} },
+/**/                  {{0x3fe6728b, 0x5ecd3069} },
+/**/                  {{0x3c67417b, 0x539f23ff} },
+/**/                  {{0xbfd48b53, 0x763c0fe8} },
+/**/                  {{0xbc677a1a, 0x6027975c} },
+/**/                  {{0x3fa04c5a, 0x2ff7dd6a} },
+/**/                  {{0xbc40808e, 0x496202e8} },
+/**/                  {{0x3fb73aac, 0xb3fc3f7c} },
+/**/                  {{0x3c4b58cb, 0x86b114ff} },
+/**/                  {{0xbfb4700a, 0x4bc91249} },
+/**/                  {{0x3f92e582, 0xef2490f8} },
+/**/                  {{0x3f9a235b, 0x6c875580} },
+/**/                  {{0xbf9edf99, 0xe55cd596} },
+/**/                  {{0x3f85b5f9, 0xe40c5a18} } },
+/**/                 {{{0x3fe50000, 0x00000000} },
+/**/                  {{0x3fe2958e, 0x59308e31} },
+/**/                  {{0xbc709e73, 0xb0c6c087} },
+/**/                  {{0x3fe65e03, 0x2538713c} },
+/**/                  {{0xbc601392, 0x42c09163} },
+/**/                  {{0xbfd48514, 0x2f6d4575} },
+/**/                  {{0xbc356341, 0x4568af3f} },
+/**/                  {{0x3fa10497, 0x9386fd1d} },
+/**/                  {{0xbc4a756a, 0x230a452f} },
+/**/                  {{0x3fb6d4c4, 0x3fc6c180} },
+/**/                  {{0x3c5ab2b9, 0xdb3fe137} },
+/**/                  {{0xbfb4532a, 0x7ca4cfd0} },
+/**/                  {{0x3f93991d, 0x90eb1d30} },
+/**/                  {{0x3f992de9, 0x46163051} },
+/**/                  {{0xbf9e7c76, 0x2de874ff} },
+/**/                  {{0x3f865806, 0xfc0c1cb2} } },
+/**/                 {{{0x3fe52000, 0x00000000} },
+/**/                  {{0x3fe2abe2, 0x1aded073} },
+/**/                  {{0x3c8c28c0, 0x01ad022e} },
+/**/                  {{0x3fe64981, 0x4d432177} },
+/**/                  {{0x3c83f41b, 0x055e240c} },
+/**/                  {{0xbfd47e90, 0x6a2cfd01} },
+/**/                  {{0x3c628585, 0xf152d080} },
+/**/                  {{0x3fa1b9a7, 0xfbe3ed9e} },
+/**/                  {{0xbc18a085, 0xf259fe04} },
+/**/                  {{0x3fb66f6e, 0xc3c40175} },
+/**/                  {{0x3c41d80a, 0xb0fda762} },
+/**/                  {{0xbfb43542, 0x48af643a} },
+/**/                  {{0x3f94460d, 0x05ad7652} },
+/**/                  {{0x3f983b9b, 0x5f55ab26} },
+/**/                  {{0xbf9e1692, 0x4be18b23} },
+/**/                  {{0x3f86eefb, 0x32e755a3} } },
+/**/                 {{{0x3fe54000, 0x00000000} },
+/**/                  {{0x3fe2c221, 0x5e024466} },
+/**/                  {{0xbc44b810, 0xda3a4be1} },
+/**/                  {{0x3fe63506, 0x1ad38da0} },
+/**/                  {{0xbc67f12a, 0x94ec14b0} },
+/**/                  {{0xbfd477c9, 0x567a6652} },
+/**/                  {{0x3c7be71c, 0xbbb9df88} },
+/**/                  {{0x3fa26b90, 0x1535acb9} },
+/**/                  {{0xbc30ff6c, 0xff041454} },
+/**/                  {{0x3fb60ab1, 0x5105d8fa} },
+/**/                  {{0x3c535a89, 0x3f2d6492} },
+/**/                  {{0xbfb4165b, 0xa0083319} },
+/**/                  {{0x3f94ec67, 0x965eb0a7} },
+/**/                  {{0x3f974c86, 0xf36231e5} },
+/**/                  {{0xbf9dae1f, 0x9c25f4a4} },
+/**/                  {{0x3f877b18, 0x183e42dc} } },
+/**/                 {{{0x3fe56000, 0x00000000} },
+/**/                  {{0x3fe2d84c, 0x2961e48c} },
+/**/                  {{0xbc7f2542, 0x0a36e506} },
+/**/                  {{0x3fe62091, 0xd0a0e5d4} },
+/**/                  {{0x3c82a27d, 0xcccb008e} },
+/**/                  {{0xbfd470c0, 0x228ca1b6} },
+/**/                  {{0xbc788e9b, 0x32884415} },
+/**/                  {{0x3fa31a54, 0xb365e4d9} },
+/**/                  {{0x3c3e6e70, 0xda0f99ae} },
+/**/                  {{0x3fb5a690, 0xc741ccb7} },
+/**/                  {{0xbc383905, 0x6508ffe1} },
+/**/                  {{0xbfb3f680, 0x50f46c17} },
+/**/                  {{0x3f958c44, 0x1b344c30} },
+/**/                  {{0x3f9660bf, 0xb713db8a} },
+/**/                  {{0xbf9d434e, 0x5224992a} },
+/**/                  {{0x3f87fca0, 0x46ffb16e} } },
+/**/                 {{{0x3fe58000, 0x00000000} },
+/**/                  {{0x3fe2ee62, 0x8406cbca} },
+/**/                  {{0x3c8c5d5e, 0x9ff0cf8d} },
+/**/                  {{0x3fe60c24, 0xb0350d38} },
+/**/                  {{0x3c81ffe9, 0xf3db4fcb} },
+/**/                  {{0xbfd46975, 0xfac420bd} },
+/**/                  {{0x3c7e6994, 0x850528a0} },
+/**/                  {{0x3fa3c5fa, 0xd098b4ee} },
+/**/                  {{0x3c353c41, 0xaa6a6874} },
+/**/                  {{0x3fb54311, 0xd57c5b53} },
+/**/                  {{0x3c50d02e, 0x72d146e0} },
+/**/                  {{0xbfb3d5ba, 0x071017e0} },
+/**/                  {{0x3f9625b9, 0xf11b08a7} },
+/**/                  {{0x3f957857, 0xe25bbc6f} },
+/**/                  {{0xbf9cd64d, 0x7384981f} },
+/**/                  {{0x3f8873d7, 0x3da3b8d5} } },
+/**/                 {{{0x3fe5a000, 0x00000000} },
+/**/                  {{0x3fe30464, 0x753b090b} },
+/**/                  {{0xbc73e712, 0x61da18f3} },
+/**/                  {{0x3fe5f7be, 0xf9ee77b6} },
+/**/                  {{0x3c8949f7, 0x854f9928} },
+/**/                  {{0xbfd461ec, 0x099c98f6} },
+/**/                  {{0x3c5da491, 0x3eafe889} },
+/**/                  {{0x3fa46e87, 0x8ba9e286} },
+/**/                  {{0x3c42573a, 0x5377a1a9} },
+/**/                  {{0x3fb4e038, 0xfab82ffb} },
+/**/                  {{0xbc414e45, 0x402ef939} },
+/**/                  {{0xbfb3b412, 0x4a8ec478} },
+/**/                  {{0x3f96b8e0, 0xef6dba07} },
+/**/                  {{0x3f949360, 0x39c13c6e} },
+/**/                  {{0xbf9c674a, 0xd47bfddb} },
+/**/                  {{0x3f88e101, 0x37ed6935} } },
+/**/                 {{{0x3fe5c000, 0x00000000} },
+/**/                  {{0x3fe31a52, 0x048874be} },
+/**/                  {{0x3c840cab, 0x87a7ac24} },
+/**/                  {{0x3fe5e360, 0xed021586} },
+/**/                  {{0x3c86a444, 0xb32ab7e4} },
+/**/                  {{0xbfd45a23, 0x779f86c4} },
+/**/                  {{0xbc75b9dc, 0x6b782501} },
+/**/                  {{0x3fa51400, 0x26af940c} },
+/**/                  {{0x3c4f700e, 0xf9ce64e2} },
+/**/                  {{0x3fb47e0a, 0x86a8eb42} },
+/**/                  {{0xbc5a4df9, 0x36377584} },
+/**/                  {{0xbfb39192, 0x7f8b6d42} },
+/**/                  {{0x3f9745d1, 0x5deeeabc} },
+/**/                  {{0x3f93b1e8, 0x17fa1033} },
+/**/                  {{0xbf9bf673, 0x14cf2061} },
+/**/                  {{0x3f894463, 0x0a340016} } },
+/**/                 {{{0x3fe5e000, 0x00000000} },
+/**/                  {{0x3fe3302b, 0x39b78856} },
+/**/                  {{0x3c85dd2e, 0xd87ba82b} },
+/**/                  {{0x3fe5cf0a, 0xc77d4bea} },
+/**/                  {{0xbc8684ab, 0x0d42ab66} },
+/**/                  {{0xbfd4521d, 0x6b573e11} },
+/**/                  {{0xbc7601b9, 0xb90c9c27} },
+/**/                  {{0x3fa5b66a, 0x0582aeaa} },
+/**/                  {{0x3c281575, 0x8cc985ad} },
+/**/                  {{0x3fb41c8a, 0x9a69373d} },
+/**/                  {{0xbc33df07, 0x25ea8f67} },
+/**/                  {{0xbfb36e43, 0xe5673a18} },
+/**/                  {{0x3f97cca3, 0xeb05f3bc} },
+/**/                  {{0x3f92d3fd, 0x7797abe9} },
+/**/                  {{0xbf9b83f1, 0x9d71c254} },
+/**/                  {{0x3f899e41, 0xfe333861} } },
+/**/                 {{{0x3fe60000, 0x00000000} },
+/**/                  {{0x3fe345f0, 0x1cce37bb} },
+/**/                  {{0x3c810211, 0x37c71102} },
+/**/                  {{0x3fe5babc, 0xc647fa91} },
+/**/                  {{0x3c84339b, 0x8056eaf3} },
+/**/                  {{0xbfd449db, 0x094286d0} },
+/**/                  {{0x3c75e178, 0x512b1c7b} },
+/**/                  {{0x3fa655ca, 0xac4cf102} },
+/**/                  {{0xbc27a1e4, 0x61e8206a} },
+/**/                  {{0x3fb3bbbd, 0x2933dd9c} },
+/**/                  {{0xbc517633, 0xbd42c006} },
+/**/                  {{0xbfb34a2f, 0x9636afc9} },
+/**/                  {{0x3f984d71, 0xa2400f6f} },
+/**/                  {{0x3f91f9ac, 0xfcc53cab} },
+/**/                  {{0xbf9b0ff0, 0x9ec31ef1} },
+/**/                  {{0x3f89eee3, 0xb1615b05} } },
+/**/                 {{{0x3fe62000, 0x00000000} },
+/**/                  {{0x3fe35ba0, 0xb60eccce} },
+/**/                  {{0x3c8e3ba1, 0x9b9368b9} },
+/**/                  {{0x3fe5a677, 0x25268d22} },
+/**/                  {{0x3c7bc76e, 0xaf72cee6} },
+/**/                  {{0xbfd4415d, 0x73c8c31c} },
+/**/                  {{0xbc3e5b3c, 0xe00e5645} },
+/**/                  {{0x3fa6f227, 0xbe1ce1b6} },
+/**/                  {{0xbc04a922, 0xe699fcac} },
+/**/                  {{0x3fb35ba5, 0xf91f9885} },
+/**/                  {{0xbc43f8be, 0x418827b3} },
+/**/                  {{0xbfb3255e, 0x863cebc9} },
+/**/                  {{0x3f98c853, 0xe315ca66} },
+/**/                  {{0x3f912301, 0xff116cac} },
+/**/                  {{0xbf9a9a99, 0x0f5e09c2} },
+/**/                  {{0x3f8a368d, 0xf4c8d587} } },
+/**/                 {{{0x3fe64000, 0x00000000} },
+/**/                  {{0x3fe3713d, 0x0df6c504} },
+/**/                  {{0xbc54f789, 0xe031606d} },
+/**/                  {{0x3fe5923a, 0x1ebc184f} },
+/**/                  {{0x3c829fe8, 0xbe5956dd} },
+/**/                  {{0xbfd438a5, 0xcb2e9cc9} },
+/**/                  {{0xbc7c1839, 0x7d6ce3eb} },
+/**/                  {{0x3fa78b86, 0xfb7fa678} },
+/**/                  {{0x3befb53e, 0xd082025e} },
+/**/                  {{0x3fb2fc48, 0xa3dd5905} },
+/**/                  {{0x3c5fd567, 0x06b78682} },
+/**/                  {{0xbfb2ffd9, 0x8374843c} },
+/**/                  {{0x3f993d64, 0x57f51471} },
+/**/                  {{0x3f905006, 0x933f6cc5} },
+/**/                  {{0xbf9a2412, 0xab7658df} },
+/**/                  {{0x3f8a7586, 0xae624ab4} } },
+/**/                 {{{0x3fe66000, 0x00000000} },
+/**/                  {{0x3fe386c5, 0x2d3db11f} },
+/**/                  {{0xbc8b78e1, 0xcbebe6a0} },
+/**/                  {{0x3fe57e05, 0xec8c8203} },
+/**/                  {{0x3c8ea585, 0x5e7f92dc} },
+/**/                  {{0xbfd42fb5, 0x2d8b381e} },
+/**/                  {{0xbc63afe6, 0x5cff451e} },
+/**/                  {{0x3fa821ee, 0x4120d643} },
+/**/                  {{0xbc3e664f, 0xcbc4d2dc} },
+/**/                  {{0x3fb29da8, 0x9778bfdb} },
+/**/                  {{0x3c3760dd, 0x7c2057a5} },
+/**/                  {{0xbfb2d9a9, 0x3525a55a} },
+/**/                  {{0x3f99acbc, 0xed9015c8} },
+/**/                  {{0x3f8f0187, 0x2a35e7d2} },
+/**/                  {{0xbf99ac83, 0xf4bcdfc7} },
+/**/                  {{0x3f8aac13, 0xbbeb4f11} } },
+/**/                 {{{0x3fe68000, 0x00000000} },
+/**/                  {{0x3fe39c39, 0x1cd4171a} },
+/**/                  {{0xbc823043, 0x31d8bf46} },
+/**/                  {{0x3fe569da, 0xc6feb417} },
+/**/                  {{0x3c803ce5, 0x0625e450} },
+/**/                  {{0xbfd4268c, 0xb6bde980} },
+/**/                  {{0xbc6e8f76, 0xe8258561} },
+/**/                  {{0x3fa8b563, 0x86705749} },
+/**/                  {{0x3c418e14, 0xe6172281} },
+/**/                  {{0x3fb23fc9, 0x171a8768} },
+/**/                  {{0xbc562184, 0x3225d825} },
+/**/                  {{0xbfb2b2d6, 0x1b8904fd} },
+/**/                  {{0x3f9a1677, 0xca70ce88} },
+/**/                  {{0x3f8d6a81, 0x62963581} },
+/**/                  {{0xbf993412, 0x32c353bb} },
+/**/                  {{0x3f8ada7a, 0xd7354ec0} } },
+/**/                 {{{0x3fe6a000, 0x00000000} },
+/**/                  {{0x3fe3b198, 0xe5e2564b} },
+/**/                  {{0xbc72f922, 0x1f0752ac} },
+/**/                  {{0x3fe555b8, 0xe55ed910} },
+/**/                  {{0xbc5615bc, 0x656f2eb2} },
+/**/                  {{0xbfd41d2d, 0x80646bca} },
+/**/                  {{0xbc75d1d6, 0x1ff3506f} },
+/**/                  {{0x3fa945ec, 0xdc4e5727} },
+/**/                  {{0x3c213c8e, 0x18968922} },
+/**/                  {{0x3fb1e2ad, 0x3bcc9fa4} },
+/**/                  {{0x3c2b899c, 0x0a43c591} },
+/**/                  {{0xbfb28b68, 0x8f774533} },
+/**/                  {{0x3f9a7aaf, 0x46d16acc} },
+/**/                  {{0x3f8bdb08, 0xde405cc6} },
+/**/                  {{0xbf98bae1, 0x73d9884b} },
+/**/                  {{0x3f8b0101, 0x7be7742a} } },
+/**/                 {{{0x3fe6c000, 0x00000000} },
+/**/                  {{0x3fe3c6e4, 0x91c78dc5} },
+/**/                  {{0xbc8e1450, 0x94fd0ba7} },
+/**/                  {{0x3fe541a0, 0x7de0a269} },
+/**/                  {{0x3c8b9072, 0x163b639c} },
+/**/                  {{0xbfd41398, 0xa1d194fc} },
+/**/                  {{0xbc7ef191, 0x8629402d} },
+/**/                  {{0x3fa9d390, 0x6bbd69eb} },
+/**/                  {{0x3c488aec, 0xd2c4a6a5} },
+/**/                  {{0x3fb18657, 0xf53fbee6} },
+/**/                  {{0x3c54e6aa, 0x0104d1dd} },
+/**/                  {{0xbfb26368, 0xc2245ee6} },
+/**/                  {{0x3f9ad97d, 0xe4b91b16} },
+/**/                  {{0x3f8a5328, 0x74b192c7} },
+/**/                  {{0xbf984114, 0x8e5d8b31} },
+/**/                  {{0x3f8b1fec, 0xceadce82} } },
+/**/                 {{{0x3fe6e000, 0x00000000} },
+/**/                  {{0x3fe3dc1c, 0x2a188504} },
+/**/                  {{0x3c82ce63, 0x70f4e971} },
+/**/                  {{0x3fe52d91, 0xc5a197ed} },
+/**/                  {{0xbc804b92, 0x1baab820} },
+/**/                  {{0xbfd409cf, 0x300486f8} },
+/**/                  {{0xbc6d3bb8, 0xae804189} },
+/**/                  {{0x3faa5e54, 0x749adab8} },
+/**/                  {{0x3c20b0d5, 0xc631cfd3} },
+/**/                  {{0x3fb12acc, 0x0a922c54} },
+/**/                  {{0x3c521a06, 0x7cbc4417} },
+/**/                  {{0xbfb23ade, 0xbce6ae05} },
+/**/                  {{0x3f9b32fe, 0x485d279b} },
+/**/                  {{0x3f88d2e8, 0xd9b56b96} },
+/**/                  {{0xbf97c6cd, 0x227841f4} },
+/**/                  {{0x3f8b3781, 0x85cf6ba0} } },
+/**/                 {{{0x3fe70000, 0x00000000} },
+/**/                  {{0x3fe3f13f, 0xb89e96f4} },
+/**/                  {{0x3c7ecf8b, 0x492644f0} },
+/**/                  {{0x3fe5198c, 0xf0ab6f99} },
+/**/                  {{0x3c71b875, 0x5e1ffaba} },
+/**/                  {{0xbfd3ffd2, 0x3da059f4} },
+/**/                  {{0x3c5bba8e, 0x77eee53d} },
+/**/                  {{0x3faae63f, 0x4c5d36dc} },
+/**/                  {{0xbc4e6e4e, 0x2a3994d6} },
+/**/                  {{0x3fb0d00c, 0x1b178ada} },
+/**/                  {{0x3c4b94c3, 0xb3e710cc} },
+/**/                  {{0xbfb211d2, 0x61093929} },
+/**/                  {{0x3f9b874b, 0x30c5dd59} },
+/**/                  {{0x3f875a50, 0xb0b899ed} },
+/**/                  {{0xbf974c2b, 0x9c404912} },
+/**/                  {{0x3f8b4803, 0xd3249a4d} } },
+/**/                 {{{0x3fe72000, 0x00000000} },
+/**/                  {{0x3fe4064f, 0x47569f49} },
+/**/                  {{0xbc8aad88, 0xf91bf2b2} },
+/**/                  {{0x3fe50592, 0x31f66da7} },
+/**/                  {{0xbc8837f1, 0x134b7507} },
+/**/                  {{0xbfd3f5a2, 0xdae43e4d} },
+/**/                  {{0xbc7f29b0, 0xdc59e382} },
+/**/                  {{0x3fab6b57, 0x5cd91a8c} },
+/**/                  {{0xbc225bf7, 0xd6ab0dfc} },
+/**/                  {{0x3fb0761a, 0x9f216d7a} },
+/**/                  {{0x3c577818, 0xe546203e} },
+/**/                  {{0xbfb1e84b, 0x67a8cf31} },
+/**/                  {{0x3f9bd67f, 0x70b6dd6f} },
+/**/                  {{0x3f85e964, 0x9ff677e5} },
+/**/                  {{0xbf96d14f, 0x363cf426} },
+/**/                  {{0x3f8b51b7, 0x4f6617de} } },
+/**/                 {{{0x3fe74000, 0x00000000} },
+/**/                  {{0x3fe41b4a, 0xe06fea41} },
+/**/                  {{0x3c63d60a, 0x53277652} },
+/**/                  {{0x3fe4f1a1, 0xbb6bcc2c} },
+/**/                  {{0x3c5c8d69, 0x7c81f558} },
+/**/                  {{0xbfd3eb42, 0x15a41364} },
+/**/                  {{0x3c728a9c, 0x617c316a} },
+/**/                  {{0x3fabeda3, 0x230c44b8} },
+/**/                  {{0x3c41fa15, 0x50d9e9da} },
+/**/                  {{0x3fb01cf9, 0xe8c87fc3} },
+/**/                  {{0x3c410990, 0xa175df34} },
+/**/                  {{0xbfb1be51, 0x619b963c} },
+/**/                  {{0x3f9c20b5, 0xe7da421c} },
+/**/                  {{0x3f848027, 0x637b86b0} },
+/**/                  {{0xbf965655, 0xfc436ff1} },
+/**/                  {{0x3f8b54de, 0xe6cd859f} } },
+/**/                 {{{0x3fe76000, 0x00000000} },
+/**/                  {{0x3fe43032, 0x8e4b26d6} },
+/**/                  {{0xbc813159, 0x1070b99f} },
+/**/                  {{0x3fe4ddbb, 0xbde829f5} },
+/**/                  {{0xbc735ff2, 0xb6d17615} },
+/**/                  {{0xbfd3e0b0, 0xf941711a} },
+/**/                  {{0x3c7d3454, 0xe9027227} },
+/**/                  {{0x3fac6d29, 0x2deef5c2} },
+/**/                  {{0x3c476533, 0x0ba13bb6} },
+/**/                  {{0x3faf8958, 0x496c1e5e} },
+/**/                  {{0x3c49ebf2, 0xe1abdf2f} },
+/**/                  {{0xbfb193eb, 0xb762a82c} },
+/**/                  {{0x3f9c6609, 0x7c2df93f} },
+/**/                  {{0x3f831e99, 0xdff7724a} },
+/**/                  {{0xbf95db5c, 0xcea82a5a} },
+/**/                  {{0x3f8b51bc, 0xc6ff27bb} } },
+/**/                 {{{0x3fe78000, 0x00000000} },
+/**/                  {{0x3fe44506, 0x5b795b56} },
+/**/                  {{0xbc7f76d0, 0x163f79c8} },
+/**/                  {{0x3fe4c9e0, 0x693e0015} },
+/**/                  {{0xbc7b0fcb, 0x60fff59b} },
+/**/                  {{0xbfd3d5f0, 0x8ea521a8} },
+/**/                  {{0x3c561573, 0xb5bcc402} },
+/**/                  {{0x3face9f0, 0x1d4b9b62} },
+/**/                  {{0x3c481226, 0xf2c93cfb} },
+/**/                  {{0x3faeda66, 0xb5db8847} },
+/**/                  {{0xbc44ec99, 0x3a386670} },
+/**/                  {{0xbfb16921, 0xa92559e3} },
+/**/                  {{0x3f9ca695, 0x13b2a17d} },
+/**/                  {{0x3f81c4bb, 0x355982b3} },
+/**/                  {{0xbf95607f, 0x65bec936} },
+/**/                  {{0x3f8b4892, 0x4e349f67} } },
+/**/                 {{{0x3fe7a000, 0x00000000} },
+/**/                  {{0x3fe459c6, 0x52badc7f} },
+/**/                  {{0x3c819969, 0x8e8e135c} },
+/**/                  {{0x3fe4b60f, 0xec381dcb} },
+/**/                  {{0xbc6b9874, 0x4724e4f2} },
+/**/                  {{0xbfd3cb01, 0xdc390960} },
+/**/                  {{0xbc7243b1, 0x7ba1320c} },
+/**/                  {{0x3fad63fe, 0xa09cca72} },
+/**/                  {{0x3c48308c, 0xe5ab8d04} },
+/**/                  {{0x3fae2d22, 0xdf2eb652} },
+/**/                  {{0xbc4988a3, 0x4eb29ad3} },
+/**/                  {{0xbfb13dfa, 0x4eb5cb96} },
+/**/                  {{0x3f9ce273, 0x8e5b2657} },
+/**/                  {{0x3f807288, 0xd132be74} },
+/**/                  {{0xbf94e5d8, 0x55a31e9e} },
+/**/                  {{0x3f8b399f, 0xfba00cb2} } },
+/**/                 {{{0x3fe7c000, 0x00000000} },
+/**/                  {{0x3fe46e72, 0x7efe4716} },
+/**/                  {{0xbc639b9b, 0x1b844cc9} },
+/**/                  {{0x3fe4a24a, 0x749c2a47} },
+/**/                  {{0xbc8f9d05, 0x82d8a2e5} },
+/**/                  {{0xbfd3bfe5, 0xe5e27a03} },
+/**/                  {{0xbc5047da, 0xb30f6d58} },
+/**/                  {{0x3faddb5b, 0x75f185ec} },
+/**/                  {{0x3c43b680, 0x23d5084a} },
+/**/                  {{0x3fad8190, 0x479061d2} },
+/**/                  {{0xbbf4565c, 0x602d3547} },
+/**/                  {{0xbfb1127c, 0x979e619e} },
+/**/                  {{0x3f9d19bf, 0xc03c4720} },
+/**/                  {{0x3f7e4ffd, 0x01b2b45f} },
+/**/                  {{0xbf946b81, 0x1245b0bb} },
+/**/                  {{0x3f8b2525, 0x60fec8ec} } },
+/**/                 {{{0x3fe7e000, 0x00000000} },
+/**/                  {{0x3fe4830a, 0xeb5f7bfe} },
+/**/                  {{0xbc5a2656, 0x66764a73} },
+/**/                  {{0x3fe48e90, 0x2f2d2be4} },
+/**/                  {{0x3c810a8e, 0x969bba3b} },
+/**/                  {{0xbfd3b49d, 0xacfcef4d} },
+/**/                  {{0xbc6a4f98, 0xb7a61548} },
+/**/                  {{0x3fae500d, 0x68d7d101} },
+/**/                  {{0xbc305c3e, 0x04860c21} },
+/**/                  {{0x3facd7b2, 0x2c98ea9c} },
+/**/                  {{0x3c48692b, 0xd46adca0} },
+/**/                  {{0xbfb0e6af, 0x4b37c6a5} },
+/**/                  {{0x3f9d4c94, 0x6bfb2662} },
+/**/                  {{0x3f7bca2d, 0x0692cc75} },
+/**/                  {{0xbf93f191, 0xf3b69312} },
+/**/                  {{0x3f8b0b61, 0x1552b8ee} } },
+/**/                 {{{0x3fe80000, 0x00000000} },
+/**/                  {{0x3fe4978f, 0xa3269ee1} },
+/**/                  {{0x3c72419a, 0x87f2a458} },
+/**/                  {{0x3fe47ae1, 0x47ae147b} },
+/**/                  {{0xbc6eb851, 0xeb851eb8} },
+/**/                  {{0xbfd3a92a, 0x30553261} },
+/**/                  {{0xbc7f06f6, 0x94467382} },
+/**/                  {{0x3faec21b, 0x514d88d8} },
+/**/                  {{0x3c3cd061, 0xf45873a6} },
+/**/                  {{0x3fac2f8b, 0x88dfb80c} },
+/**/                  {{0xbc14fcbc, 0x53add20b} },
+/**/                  {{0xbfb0ba99, 0x08c71945} },
+/**/                  {{0x3f9d7b0c, 0x3d79f13f} },
+/**/                  {{0x3f795393, 0x357dfc67} },
+/**/                  {{0xbf937822, 0x3aa97829} },
+/**/                  {{0x3f8aec90, 0xa8b90db0} } },
+/**/                 {{{0x3fe82000, 0x00000000} },
+/**/                  {{0x3fe4ac00, 0xb1c71762} },
+/**/                  {{0x3c8b20e7, 0x2382b900} },
+/**/                  {{0x3fe4673d, 0xe8e45252} },
+/**/                  {{0x3c57d208, 0x67458f9c} },
+/**/                  {{0xbfd39d8c, 0x6c24e1b3} },
+/**/                  {{0xbc7830c5, 0x973c6d15} },
+/**/                  {{0x3faf318c, 0x12b78147} },
+/**/                  {{0xbc4fa440, 0xd318184c} },
+/**/                  {{0x3fab891f, 0x158b44e7} },
+/**/                  {{0x3c4d5f9f, 0x45d7f1f3} },
+/**/                  {{0xbfb08e40, 0x47a3e8ba} },
+/**/                  {{0x3f9da541, 0xc4c1a21a} },
+/**/                  {{0x3f76ec1e, 0x3c0d1d71} },
+/**/                  {{0xbf92ff48, 0x152e0bfc} },
+/**/                  {{0x3f8ac8f0, 0x9955298f} } },
+/**/                 {{{0x3fe84000, 0x00000000} },
+/**/                  {{0x3fe4c05e, 0x22de94e5} },
+/**/                  {{0xbc8c0ac1, 0xf09f2edf} },
+/**/                  {{0x3fe453a6, 0x3c9a6560} },
+/**/                  {{0x3c77a95f, 0x828bba02} },
+/**/                  {{0xbfd391c5, 0x5a0e5b1c} },
+/**/                  {{0x3c7d553d, 0xcd3f76d2} },
+/**/                  {{0x3faf9e66, 0x9adede86} },
+/**/                  {{0xbc225e54, 0xd6d2bac0} },
+/**/                  {{0x3faae46f, 0x4bdf89d7} },
+/**/                  {{0x3c39c98c, 0x2b25b8d9} },
+/**/                  {{0xbfb061ab, 0x5765a5c1} },
+/**/                  {{0x3f9dcb4f, 0x7127d649} },
+/**/                  {{0x3f7493ba, 0x13002646} },
+/**/                  {{0xbf928718, 0xa397d1a6} },
+/**/                  {{0x3f8aa0bc, 0x494648b5} } },
+/**/                 {{{0x3fe86000, 0x00000000} },
+/**/                  {{0x3fe4d4a8, 0x023414e8} },
+/**/                  {{0x3c6e3a89, 0x1daa88b0} },
+/**/                  {{0x3fe4401a, 0x6ba2786e} },
+/**/                  {{0xbc4b8213, 0xe3b5f317} },
+/**/                  {{0xbfd385d5, 0xf11905c0} },
+/**/                  {{0xbc72a1e9, 0xa2f42dd1} },
+/**/                  {{0x3fb00458, 0xf07a526f} },
+/**/                  {{0xbc14f965, 0xac5fd817} },
+/**/                  {{0x3faa417e, 0x66ca7da2} },
+/**/                  {{0x3c4b1e1a, 0xa050b433} },
+/**/                  {{0xbfb034e0, 0x60182e4f} },
+/**/                  {{0x3f9ded4f, 0x8cafa41b} },
+/**/                  {{0x3f724a50, 0x1fa4f037} },
+/**/                  {{0xbf920fa7, 0xfd90e915} },
+/**/                  {{0x3f8a742d, 0xf59e7acf} } },
+/**/                 {{{0x3fe88000, 0x00000000} },
+/**/                  {{0x3fe4e8de, 0x5bb6ec04} },
+/**/                  {{0x3c84a33d, 0xbeb3796c} },
+/**/                  {{0x3fe42c9a, 0x9dd8fdc1} },
+/**/                  {{0x3c5192da, 0xaf80050b} },
+/**/                  {{0xbfd379bf, 0x25adf97f} },
+/**/                  {{0xbc774019, 0x20cd3651} },
+/**/                  {{0x3fb0383a, 0x724dbb01} },
+/**/                  {{0x3c5c4e67, 0xeb93e538} },
+/**/                  {{0x3fa9a04e, 0x646e65df} },
+/**/                  {{0x3c21a7cb, 0x894a6b77} },
+/**/                  {{0xbfb007e5, 0x62771c79} },
+/**/                  {{0x3f9e0b5c, 0x37a45544} },
+/**/                  {{0x3f700fc7, 0x54993092} },
+/**/                  {{0xbf919909, 0x37534c25} },
+/**/                  {{0x3f8a437e, 0xae51732a} } },
+/**/                 {{{0x3fe8a000, 0x00000000} },
+/**/                  {{0x3fe4fd01, 0x3b7dd17e} },
+/**/                  {{0x3c7d513f, 0x3e7c24b5} },
+/**/                  {{0x3fe41926, 0xfa274ef1} },
+/**/                  {{0x3c8ad830, 0x4d72ecb3} },
+/**/                  {{0xbfd36d81, 0xe995018a} },
+/**/                  {{0x3c7e7ec5, 0x6fd6094d} },
+/**/                  {{0x3fb06adb, 0x567bb975} },
+/**/                  {{0x3c5212c1, 0xf0d7364f} },
+/**/                  {{0x3fa900e1, 0x07a9b624} },
+/**/                  {{0xbc4e5b5b, 0xc16bcc85} },
+/**/                  {{0xbfafb580, 0x705f052b} },
+/**/                  {{0x3f9e258f, 0x646ce12e} },
+/**/                  {{0x3f6bc808, 0xa3c63841} },
+/**/                  {{0xbf91234e, 0x67043d41} },
+/**/                  {{0x3f8a0ee6, 0x4f11b221} } },
+/**/                 {{{0x3fe8c000, 0x00000000} },
+/**/                  {{0x3fe51110, 0xadc5ed81} },
+/**/                  {{0x3c723dcd, 0x6832a63e} },
+/**/                  {{0x3fe405bf, 0xa6864f90} },
+/**/                  {{0xbc7419c5, 0x662cd5df} },
+/**/                  {{0xbfd3611f, 0x2bf1f7e4} },
+/**/                  {{0xbc6e94dd, 0x65483b78} },
+/**/                  {{0x3fb09c3f, 0x23e21be9} },
+/**/                  {{0x3c22db63, 0xcaca858d} },
+/**/                  {{0x3fa86337, 0xd99c3f1d} },
+/**/                  {{0x3c034382, 0xdc0a6dfc} },
+/**/                  {{0xbfaf5aed, 0x284f8093} },
+/**/                  {{0x3f9e3c02, 0xd396fb43} },
+/**/                  {{0x3f678dd3, 0x08b96150} },
+/**/                  {{0xbf90ae88, 0xaa2dcc3a} },
+/**/                  {{0x3f89d69b, 0x79128ee7} } },
+/**/                 {{{0x3fe8e000, 0x00000000} },
+/**/                  {{0x3fe5250c, 0xbef1e9fb} },
+/**/                  {{0xbc5539b7, 0xa3228870} },
+/**/                  {{0x3fe3f264, 0xc8011245} },
+/**/                  {{0xbc6641f1, 0x44cc720b} },
+/**/                  {{0xbfd35497, 0xd942778a} },
+/**/                  {{0x3c750a5a, 0x9bd7dbd6} },
+/**/                  {{0x3fb0cc69, 0x6438739e} },
+/**/                  {{0x3bf5d933, 0x435f798d} },
+/**/                  {{0x3fa7c754, 0x2b29722f} },
+/**/                  {{0xbbe736fe, 0x5b3af27b} },
+/**/                  {{0xbfaf001c, 0x059a3c24} },
+/**/                  {{0x3f9e4ed0, 0x101882b0} },
+/**/                  {{0x3f6370ae, 0x88dc4269} },
+/**/                  {{0xbf903ac8, 0x2b5280b6} },
+/**/                  {{0x3f899ad3, 0x8da5b2ad} } },
+/**/                 {{{0x3fe90000, 0x00000000} },
+/**/                  {{0x3fe538f5, 0x7b89061f} },
+/**/                  {{0xbc81bb74, 0xabda520c} },
+/**/                  {{0x3fe3df16, 0x82b78014} },
+/**/                  {{0xbc7074be, 0xa43ff610} },
+/**/                  {{0xbfd347ec, 0xdb5be2e4} },
+/**/                  {{0x3c7848c8, 0x8a0e9303} },
+/**/                  {{0x3fb0fb5d, 0xa3a11be4} },
+/**/                  {{0x3c3d68f2, 0x09dd0d69} },
+/**/                  {{0x3fa72d37, 0x16778170} },
+/**/                  {{0xbc4ea85d, 0x2200d1d4} },
+/**/                  {{0xbfaea517, 0xd4cdbd49} },
+/**/                  {{0x3f9e5e10, 0x6bc61b6f} },
+/**/                  {{0x3f5ee0af, 0xd0517524} },
+/**/                  {{0xbf8f9038, 0x4f2ec799} },
+/**/                  {{0x3f895bc2, 0xa9aaa5bb} } },
+/**/                 {{{0x3fe92000, 0x00000000} },
+/**/                  {{0x3fe54cca, 0xf0362c8f} },
+/**/                  {{0x3c88a324, 0x7f8f43c1} },
+/**/                  {{0x3fe3cbd4, 0xf9e1016e} },
+/**/                  {{0xbc88dea6, 0x431b67e7} },
+/**/                  {{0xbfd33b1f, 0x1969bc63} },
+/**/                  {{0x3c6ef16e, 0x5f3d8fd8} },
+/**/                  {{0x3fb1291f, 0x703d3bf6} },
+/**/                  {{0xbc566e82, 0xb04e0672} },
+/**/                  {{0x3fa694e1, 0x806b26f2} },
+/**/                  {{0x3c302819, 0xafcee740} },
+/**/                  {{0xbfae49eb, 0x16dcee96} },
+/**/                  {{0x3f9e69dc, 0xfbfdb35f} },
+/**/                  {{0x3f571910, 0x70c48510} },
+/**/                  {{0xbf8ead25, 0xe90198c8} },
+/**/                  {{0x3f89199b, 0xa1c723cb} } },
+/**/                 {{{0x3fe94000, 0x00000000} },
+/**/                  {{0x3fe5608d, 0x29c70c34} },
+/**/                  {{0x3c89939c, 0xf0de8088} },
+/**/                  {{0x3fe3b8a0, 0x4fcf28c3} },
+/**/                  {{0xbc469c2b, 0xcb80013c} },
+/**/                  {{0xbfd32e2f, 0x77ec4ef9} },
+/**/                  {{0x3c7f9d06, 0xc61f7341} },
+/**/                  {{0x3fb155b2, 0x59c3bcdf} },
+/**/                  {{0xbc2d692e, 0x3583c01b} },
+/**/                  {{0x3fa5fe54, 0x1a1fe15d} },
+/**/                  {{0x3c430dc5, 0x5d9bad81} },
+/**/                  {{0xbfadeea0, 0x01d944a8} },
+/**/                  {{0x3f9e724e, 0x9683b244} },
+/**/                  {{0x3f4f13d4, 0x491379ef} },
+/**/                  {{0xbf8dcc74, 0x0b7cf74b} },
+/**/                  {{0x3f88d48f, 0xff5f0625} } },
+/**/                 {{{0x3fe96000, 0x00000000} },
+/**/                  {{0x3fe5743c, 0x352b33ba} },
+/**/                  {{0xbc8ea00d, 0x34c87ea6} },
+/**/                  {{0x3fe3a578, 0xa5f05e48} },
+/**/                  {{0xbc8ba1ec, 0x00e4639b} },
+/**/                  {{0xbfd3211e, 0xd8b7a43f} },
+/**/                  {{0xbc6d4b54, 0x676e23a8} },
+/**/                  {{0x3fb18119, 0xf11b2c2d} },
+/**/                  {{0x3c34855b, 0x3a3bf5fa} },
+/**/                  {{0x3fa5698f, 0x625c76bf} },
+/**/                  {{0xbc2f758a, 0xbedb0264} },
+/**/                  {{0xbfad9340, 0x81b60103} },
+/**/                  {{0x3f9e777d, 0xce91900f} },
+/**/                  {{0x3f406543, 0x34fddb2f} },
+/**/                  {{0xbf8cee3b, 0xe6077f81} },
+/**/                  {{0x3f888ccf, 0xfe42afde} } },
+/**/                 {{{0x3fe98000, 0x00000000} },
+/**/                  {{0x3fe587d8, 0x1f732fbb} },
+/**/                  {{0xbc75e5c9, 0xd8c5a950} },
+/**/                  {{0x3fe3925e, 0x1cd28c98} },
+/**/                  {{0x3c8c8443, 0x1ffec6da} },
+/**/                  {{0xbfd313ee, 0x1af2c622} },
+/**/                  {{0x3c0a0e9b, 0xbc3f7ac8} },
+/**/                  {{0x3fb1ab59, 0xc7f683c3} },
+/**/                  {{0x3c5eaf17, 0x12c04500} },
+/**/                  {{0x3fa4d693, 0xa7039179} },
+/**/                  {{0xbc4c8d74, 0xa4ce58a2} },
+/**/                  {{0xbfad37d6, 0x391400b3} },
+/**/                  {{0x3f9e7982, 0xf2148a36} },
+/**/                  {{0x3f112956, 0xb6df63ca} },
+/**/                  {{0xbf8c1294, 0xfbd0f7ee} },
+/**/                  {{0x3f88428a, 0x8b0b0a0e} } },
+/**/                 {{{0x3fe9a000, 0x00000000} },
+/**/                  {{0x3fe59b60, 0xf5cfab9e} },
+/**/                  {{0xbc81b04c, 0x41026bc5} },
+/**/                  {{0x3fe37f50, 0xd425cdfc} },
+/**/                  {{0x3c865633, 0x518aef64} },
+/**/                  {{0xbfd3069e, 0x1b1749db} },
+/**/                  {{0xbc311c20, 0xa119d9bc} },
+/**/                  {{0x3fb1d475, 0x7074cee3} },
+/**/                  {{0xbc5102e0, 0x4ff61e2c} },
+/**/                  {{0x3fa44561, 0x06804def} },
+/**/                  {{0x3c4e829f, 0xc3865804} },
+/**/                  {{0xbfacdc6a, 0x82158836} },
+/**/                  {{0x3f9e7876, 0x071b2eec} },
+/**/                  {{0xbf375b85, 0xf17c4beb} },
+/**/                  {{0xbf8b3995, 0x2fa03971} },
+/**/                  {{0x3f87f5ed, 0x421a433b} } },
+/**/                 {{{0x3fe9c000, 0x00000000} },
+/**/                  {{0x3fe5aed6, 0xc5909517} },
+/**/                  {{0x3c87312f, 0x714a9436} },
+/**/                  {{0x3fe36c50, 0xeabf19f5} },
+/**/                  {{0x3c70d1dc, 0x52485cca} },
+/**/                  {{0xbfd2f92f, 0xb2f12226} },
+/**/                  {{0x3c5400ba, 0x3e5d3d61} },
+/**/                  {{0x3fb1fc70, 0x7cc3a41b} },
+/**/                  {{0x3c4b58e7, 0x8819ff5b} },
+/**/                  {{0x3fa3b5f7, 0x712e9269} },
+/**/                  {{0xbc4e436a, 0x7879d8ab} },
+/**/                  {{0xbfac8106, 0x6f398221} },
+/**/                  {{0x3f9e746e, 0xc97073c7} },
+/**/                  {{0xbf4914de, 0xecfc2d6a} },
+/**/                  {{0xbf8a6350, 0xcfa74bd5} },
+/**/                  {{0x3f87a724, 0x6f38ad9e} } },
+/**/                 {{{0x3fe9e000, 0x00000000} },
+/**/                  {{0x3fe5c239, 0x9c244261} },
+/**/                  {{0xbc831bd4, 0xe9e56b35} },
+/**/                  {{0x3fe3595e, 0x7e9af2dc} },
+/**/                  {{0x3c81ef2d, 0x9dc90e6a} },
+/**/                  {{0xbfd2eba3, 0xb99eb689} },
+/**/                  {{0xbc7b12ef, 0x6a2f2701} },
+/**/                  {{0x3fb2234e, 0x7ec46b9b} },
+/**/                  {{0x3c59f30c, 0x8d415d66} },
+/**/                  {{0x3fa32856, 0xaabf0d26} },
+/**/                  {{0xbc122571, 0x3f33d7ea} },
+/**/                  {{0xbfac25b2, 0xcc3da9ce} },
+/**/                  {{0x3f9e6d84, 0xa8630cad} },
+/**/                  {{0xbf5308c5, 0xbeba707a} },
+/**/                  {{0xbf898fda, 0xa1585fd1} },
+/**/                  {{0x3f87565b, 0x0dc54356} } },
+/**/                 {{{0x3fea0000, 0x00000000} },
+/**/                  {{0x3fe5d589, 0x87169b18} },
+/**/                  {{0x3c60028e, 0x4bc5e7ca} },
+/**/                  {{0x3fe34679, 0xace01346} },
+/**/                  {{0x3c8e6b38, 0x04d19e6b} },
+/**/                  {{0xbfd2ddfb, 0x03913da2} },
+/**/                  {{0xbc763ec8, 0x9a19adbd} },
+/**/                  {{0x3fb24913, 0x07b46905} },
+/**/                  {{0xbc4e7be8, 0xd6f0307f} },
+/**/                  {{0x3fa29c7e, 0x4b96b773} },
+/**/                  {{0xbc24c2cd, 0x9182d783} },
+/**/                  {{0xbfabca78, 0x1f071f44} },
+/**/                  {{0x3f9e63ce, 0xc4b7b7c4} },
+/**/                  {{0xbf59529a, 0x125f35b0} },
+/**/                  {{0xbf88bf43, 0xed369b2b} },
+/**/                  {{0x3f8703ba, 0xc97185cd} } },
+/**/                 {{{0x3fea2000, 0x00000000} },
+/**/                  {{0x3fe5e8c6, 0x941043d0} },
+/**/                  {{0xbc70bf75, 0xbe451e70} },
+/**/                  {{0x3fe333a2, 0x91e21aec} },
+/**/                  {{0x3c7ae035, 0x7acfc84f} },
+/**/                  {{0xbfd2d036, 0x628d5861} },
+/**/                  {{0x3c67c5fb, 0xe463d006} },
+/**/                  {{0x3fb26dc1, 0xa7d77fb2} },
+/**/                  {{0xbc5432bd, 0xc47ba861} },
+/**/                  {{0x3fa2126d, 0xc229bece} },
+/**/                  {{0xbc4be1bf, 0x1da8ed9e} },
+/**/                  {{0xbfab6f5e, 0xa890e568} },
+/**/                  {{0x3f9e5763, 0xeec5339a} },
+/**/                  {{0xbf5f68a6, 0x5274aa52} },
+/**/                  {{0xbf87f19c, 0x8a9df558} },
+/**/                  {{0x3f86af6b, 0xff809dc5} } },
+/**/                 {{{0x3fea4000, 0x00000000} },
+/**/                  {{0x3fe5fbf0, 0xd0d5cc4a} },
+/**/                  {{0xbc5b4cfd, 0x000b7158} },
+/**/                  {{0x3fe320d9, 0x49243ad8} },
+/**/                  {{0xbc8ce5e0, 0x433f7be5} },
+/**/                  {{0xbfd2c256, 0xa5abec2f} },
+/**/                  {{0xbc68785b, 0x04494dc1} },
+/**/                  {{0x3fb2915d, 0xee25a81c} },
+/**/                  {{0x3c3e7045, 0x68b37e8b} },
+/**/                  {{0x3fa18a24, 0x5451b7d2} },
+/**/                  {{0xbc3b2d29, 0x79d21dd5} },
+/**/                  {{0xbfab146e, 0x65dfcf66} },
+/**/                  {{0x3f9e485a, 0xa4b895b9} },
+/**/                  {{0xbf62a5d4, 0x14770b65} },
+/**/                  {{0xbf8726f2, 0xeb7dab0f} },
+/**/                  {{0x3f865995, 0xc081d40d} } },
+/**/                 {{{0x3fea6000, 0x00000000} },
+/**/                  {{0x3fe60f08, 0x4b46e05f} },
+/**/                  {{0xbc8dbb86, 0x99945193} },
+/**/                  {{0x3fe30e1d, 0xed5be099} },
+/**/                  {{0x3c6c6e78, 0x373fae45} },
+/**/                  {{0xbfd2b45c, 0x995b3a02} },
+/**/                  {{0x3c7cb97b, 0xe7cea2ad} },
+/**/                  {{0x3fb2b3eb, 0x67fb0cde} },
+/**/                  {{0xbc402927, 0x4920d50b} },
+/**/                  {{0x3fa103a1, 0x209f00e4} },
+/**/                  {{0xbc36fb57, 0xecac275a} },
+/**/                  {{0xbfaab9af, 0x10fb6629} },
+/**/                  {{0x3f9e36c9, 0x1100b94a} },
+/**/                  {{0xbf657e30, 0x58620e6c} },
+/**/                  {{0xbf865f54, 0x2801158e} },
+/**/                  {{0x3f86025d, 0xd27eaf07} } },
+/**/                 {{{0x3fea8000, 0x00000000} },
+/**/                  {{0x3fe6220d, 0x115d7b8e} },
+/**/                  {{0xbc62b785, 0x350ee8c1} },
+/**/                  {{0x3fe2fb70, 0x98736048} },
+/**/                  {{0x3c87a751, 0x4df7c4fa} },
+/**/                  {{0xbfd2a649, 0x07603054} },
+/**/                  {{0x3c7c41eb, 0xf564247c} },
+/**/                  {{0x3fb2d56d, 0xa0cac592} },
+/**/                  {{0x3c333138, 0x4e757ddf} },
+/**/                  {{0x3fa07ee3, 0x1fa53ce5} },
+/**/                  {{0xbc41bd0c, 0x28113a76} },
+/**/                  {{0xbfaa5f28, 0x21eb5271} },
+/**/                  {{0x3f9e22c5, 0x08df7f4f} },
+/**/                  {{0xbf683dca, 0x107b528f} },
+/**/                  {{0xbf859acc, 0x0a22f693} },
+/**/                  {{0x3f85a9e8, 0xb39536ba} } },
+/**/                 {{{0x3feaa000, 0x00000000} },
+/**/                  {{0x3fe634ff, 0x312d1f3b} },
+/**/                  {{0x3c89d2f3, 0x15f2b598} },
+/**/                  {{0x3fe2e8d1, 0x638c9d15} },
+/**/                  {{0x3c831ae5, 0xfe1a437d} },
+/**/                  {{0xbfd2981c, 0xb6d7f622} },
+/**/                  {{0xbc53da87, 0x86e9fe4d} },
+/**/                  {{0x3fb2f5e8, 0x21d425b2} },
+/**/                  {{0xbc186482, 0xae2616cb} },
+/**/                  {{0x3f9ff7d2, 0x4a85a0e4} },
+/**/                  {{0xbc294288, 0xe2d9205b} },
+/**/                  {{0xbfaa04e0, 0xcfb8dc09} },
+/**/                  {{0x3f9e0c64, 0x0b1f9c73} },
+/**/                  {{0xbf6ae504, 0xbd3845d8} },
+/**/                  {{0xbf84d965, 0x19278cae} },
+/**/                  {{0x3f855059, 0x9cf7183b} } },
+/**/                 {{{0x3feac000, 0x00000000} },
+/**/                  {{0x3fe647de, 0xb8e20b90} },
+/**/                  {{0xbc5eca04, 0x023a51cf} },
+/**/                  {{0x3fe2d640, 0x6703b033} },
+/**/                  {{0x3c870ae6, 0x38039b02} },
+/**/                  {{0xbfd289d8, 0x6c39acf5} },
+/**/                  {{0xbc71f038, 0x0238a7ee} },
+/**/                  {{0x3fb3155e, 0x71da955f} },
+/**/                  {{0xbc5faa02, 0xd41f84df} },
+/**/                  {{0x3f9ef563, 0xc3c69caa} },
+/**/                  {{0x3c331d29, 0x75403dbd} },
+/**/                  {{0xbfa9aae0, 0x1174124f} },
+/**/                  {{0x3f9df3bb, 0x3eedb30b} },
+/**/                  {{0xbf6d7445, 0x1c632765} },
+/**/                  {{0xbf841b28, 0xa4fa03e7} },
+/**/                  {{0x3f84f5d2, 0x8646990d} } },
+/**/                 {{{0x3feae000, 0x00000000} },
+/**/                  {{0x3fe65aab, 0xb6c07b03} },
+/**/                  {{0xbc67939b, 0x3af32729} },
+/**/                  {{0x3fe2c3bd, 0xba718de8} },
+/**/                  {{0xbc82d2fc, 0xc4990a2b} },
+/**/                  {{0xbfd27b7c, 0xe9586818} },
+/**/                  {{0x3c780d5e, 0x880839ca} },
+/**/                  {{0x3fb333d4, 0x14dfe9e3} },
+/**/                  {{0x3c536469, 0xbce74cae} },
+/**/                  {{0x3f9df677, 0xc77983b8} },
+/**/                  {{0x3c373272, 0xb42f53aa} },
+/**/                  {{0xbfa9512c, 0x9f3c360e} },
+/**/                  {{0x3f9dd8df, 0x72d37b24} },
+/**/                  {{0xbf6febf1, 0x02e417f5} },
+/**/                  {{0xbf83601e, 0xd16a1579} },
+/**/                  {{0x3f849a74, 0x294a83e4} } },
+/**/                 {{{0x3feb0000, 0x00000000} },
+/**/                  {{0x3fe66d66, 0x3923e087} },
+/**/                  {{0xbc76ea6f, 0xebe8bbba} },
+/**/                  {{0x3fe2b149, 0x74aea886} },
+/**/                  {{0x3c868ffd, 0xa9d6d16a} },
+/**/                  {{0xbfd26d0a, 0xed65571e} },
+/**/                  {{0x3c6cf972, 0x476fb5f2} },
+/**/                  {{0x3fb3514c, 0x8be1339f} },
+/**/                  {{0x3c5c8c0f, 0x3f722216} },
+/**/                  {{0x3f9cfb0b, 0x300f8f9b} },
+/**/                  {{0xbc0edd81, 0x38d1c932} },
+/**/                  {{0xbfa8f7cc, 0xf34b004f} },
+/**/                  {{0x3f9dbbe5, 0x1bd3bde0} },
+/**/                  {{0xbf712637, 0x9bf7dceb} },
+/**/                  {{0xbf82a84e, 0xa146e5b2} },
+/**/                  {{0x3f843e5e, 0x05f2718e} } },
+/**/                 {{{0x3feb2000, 0x00000000} },
+/**/                  {{0x3fe6800e, 0x4e7e2858} },
+/**/                  {{0xbc58ea6a, 0x1b3e90f0} },
+/**/                  {{0x3fe29ee3, 0xabd5912c} },
+/**/                  {{0xbc61b3cd, 0xb17c28e3} },
+/**/                  {{0xbfd25e83, 0x34f221eb} },
+/**/                  {{0xbc74c483, 0xfa300585} },
+/**/                  {{0x3fb36dcb, 0x5495f6e3} },
+/**/                  {{0x3c59b55b, 0x311973fe} },
+/**/                  {{0x3f9c031a, 0x9864d139} },
+/**/                  {{0x3c28fdf3, 0xbd00e171} },
+/**/                  {{0xbfa89ec7, 0x4b026585} },
+/**/                  {{0x3f9d9ce0, 0x54a5ed3d} },
+/**/                  {{0xbf724b13, 0xa8cb6dfc} },
+/**/                  {{0xbf81f3be, 0x015469a9} },
+/**/                  {{0x3f83e1ae, 0x66a50a89} } },
+/**/                 {{{0x3feb4000, 0x00000000} },
+/**/                  {{0x3fe692a4, 0x0556fb6a} },
+/**/                  {{0x3c8d94b9, 0x5a8ea2cc} },
+/**/                  {{0x3fe28c8c, 0x75459603} },
+/**/                  {{0x3c8b1c3b, 0x2945fc08} },
+/**/                  {{0xbfd24fe6, 0x79f37468} },
+/**/                  {{0xbc4e3751, 0x0ec1ef94} },
+/**/                  {{0x3fb38953, 0xe931c53b} },
+/**/                  {{0xbc3b108d, 0x16d80688} },
+/**/                  {{0x3f9b0ea2, 0x5e1b50b5} },
+/**/                  {{0x3c0074c0, 0x63fd1067} },
+/**/                  {{0xbfa84621, 0xa7fc7800} },
+/**/                  {{0x3f9d7be4, 0xdd10256e} },
+/**/                  {{0xbf7364c0, 0xc9592c5e} },
+/**/                  {{0xbf814271, 0xd318d707} },
+/**/                  {{0x3f838482, 0x64d217b8} } },
+/**/                 {{{0x3feb6000, 0x00000000} },
+/**/                  {{0x3fe6a527, 0x6c4b0576} },
+/**/                  {{0xbc8f6b65, 0x9c46a69e} },
+/**/                  {{0x3fe27a43, 0xe5a55de9} },
+/**/                  {{0x3c66846e, 0xedc25d49} },
+/**/                  {{0xbfd24135, 0x73c3b821} },
+/**/                  {{0xbc79202a, 0x56ab5808} },
+/**/                  {{0x3fb3a3e9, 0xc0282c84} },
+/**/                  {{0x3c4057ca, 0x03d25dab} },
+/**/                  {{0x3f9a1d9e, 0xa3eb854d} },
+/**/                  {{0xbc3775ed, 0xf03e2fb1} },
+/**/                  {{0xbfa7ede1, 0xd11d1043} },
+/**/                  {{0x3f9d5906, 0x195e6961} },
+/**/                  {{0xbf747373, 0x65130256} },
+/**/                  {{0xbf80946d, 0xf77fd664} },
+/**/                  {{0x3f8326f5, 0xedc272c2} } },
+/**/                 {{{0x3feb8000, 0x00000000} },
+/**/                  {{0x3fe6b798, 0x920b3d99} },
+/**/                  {{0xbc8a8038, 0x6188c50e} },
+/**/                  {{0x3fe2680a, 0x10e5813e} },
+/**/                  {{0xbc8f5497, 0x2242a6bc} },
+/**/                  {{0xbfd23270, 0xd725fa1c} },
+/**/                  {{0x3c757282, 0x5c781b14} },
+/**/                  {{0x3fb3bd90, 0x4bf2f124} },
+/**/                  {{0x3c31ae9c, 0x6a14ed74} },
+/**/                  {{0x3f99300b, 0x53ea1533} },
+/**/                  {{0x3c2a8d88, 0x68f98d7e} },
+/**/                  {{0xbfa7960d, 0x53a4e537} },
+/**/                  {{0x3f9d3457, 0x11f5f086} },
+/**/                  {{0xbf757760, 0x19baa1da} },
+/**/                  {{0xbf7fd36a, 0xb2a2ca7e} },
+/**/                  {{0x3f82c923, 0xc7a02081} } },
+/**/                 {{{0x3feba000, 0x00000000} },
+/**/                  {{0x3fe6c9f7, 0x855c3198} },
+/**/                  {{0x3c7c09de, 0x29bd280d} },
+/**/                  {{0x3fe255df, 0x0a431fbd} },
+/**/                  {{0x3c8d9866, 0xf09a745d} },
+/**/                  {{0xbfd22399, 0x5648fb1f} },
+/**/                  {{0x3c412100, 0xb4df0b3e} },
+/**/                  {{0x3fb3d64a, 0xfada8899} },
+/**/                  {{0x3c3dd891, 0x659c4346} },
+/**/                  {{0x3f9845e4, 0x21c2d0a1} },
+/**/                  {{0x3c28c6b1, 0xf397827c} },
+/**/                  {{0xbfa73ea9, 0x8445c1cc} },
+/**/                  {{0x3f9d0dea, 0x730360f8} },
+/**/                  {{0xbf7670bb, 0xac51ce30} },
+/**/                  {{0xbf7e8493, 0xeef50deb} },
+/**/                  {{0x3f826b25, 0x96b119a9} } },
+/**/                 {{{0x3febc000, 0x00000000} },
+/**/                  {{0x3fe6dc44, 0x551553af} },
+/**/                  {{0xbc5bf886, 0x3573828e} },
+/**/                  {{0x3fe243c2, 0xe44a7335} },
+/**/                  {{0xbc667287, 0x65d1ffd7} },
+/**/                  {{0xbfd214af, 0xa0ca68d3} },
+/**/                  {{0xbc71296c, 0x88820895} },
+/**/                  {{0x3fb3ee1d, 0x36c0c9a2} },
+/**/                  {{0x3c540bf6, 0x831dfabe} },
+/**/                  {{0x3f975f24, 0x8ce8de84} },
+/**/                  {{0xbc125368, 0x43eb5853} },
+/**/                  {{0xbfa6e7bb, 0x803788f8} },
+/**/                  {{0x3f9ce5d2, 0x8c42d5f9} },
+/**/                  {{0xbf775fba, 0xfaadb3ab} },
+/**/                  {{0xbf7d3c59, 0xde4c28da} },
+/**/                  {{0x3f820d13, 0xe2bf7ef5} } },
+/**/                 {{{0x3febe000, 0x00000000} },
+/**/                  {{0x3fe6ee7f, 0x10204aef} },
+/**/                  {{0x3c8692ee, 0xa3066272} },
+/**/                  {{0x3fe231b5, 0xb0d95ee5} },
+/**/                  {{0x3c7aae7e, 0x1eb505b6} },
+/**/                  {{0xbfd205b4, 0x63ba3e08} },
+/**/                  {{0x3c71c6d1, 0xb975517d} },
+/**/                  {{0x3fb4050a, 0x64edc729} },
+/**/                  {{0x3c4960ed, 0x715db809} },
+/**/                  {{0x3f967bc7, 0xe2bc143b} },
+/**/                  {{0xbc2cbf17, 0xf0823143} },
+/**/                  {{0xbfa69148, 0x2e4dbc47} },
+/**/                  {{0x3f9cbc21, 0x50e0982e} },
+/**/                  {{0xbf784492, 0xedaa432a} },
+/**/                  {{0xbf7bfabd, 0x0b4850f3} },
+/**/                  {{0x3f81af06, 0x1caa2f2c} } },
+/**/                 {{{0x3fec0000, 0x00000000} },
+/**/                  {{0x3fe700a7, 0xc5784634} },
+/**/                  {{0xbc78c34d, 0x25aadef6} },
+/**/                  {{0x3fe21fb7, 0x8121fb78} },
+/**/                  {{0x3c621fb7, 0x8121fb78} },
+/**/                  {{0xbfd1f6a8, 0x499e4889} },
+/**/                  {{0xbc60e934, 0x6d4e0249} },
+/**/                  {{0x3fb41b15, 0xe5decb17} },
+/**/                  {{0x3c5194f4, 0xab3541e6} },
+/**/                  {{0x3f959bc9, 0x40a374b5} },
+/**/                  {{0xbc39dc6e, 0x54be0e10} },
+/**/                  {{0xbfa63b54, 0x400d3c9a} },
+/**/                  {{0x3f9c90e8, 0x57717232} },
+/**/                  {{0xbf791f78, 0x6bfa704e} },
+/**/                  {{0xbf7abfbc, 0x643da6dd} },
+/**/                  {{0x3f815112, 0xa418ed31} } },
+/**/                 {{{0x3fec2000, 0x00000000} },
+/**/                  {{0x3fe712be, 0x84295198} },
+/**/                  {{0x3c85cd90, 0x337d8881} },
+/**/                  {{0x3fe20dc8, 0x65ad1f5b} },
+/**/                  {{0xbc88102a, 0xd7b50d48} },
+/**/                  {{0xbfd1e78b, 0xfa75d2f4} },
+/**/                  {{0x3c723734, 0x619624d2} },
+/**/                  {{0x3fb43043, 0x1517663e} },
+/**/                  {{0xbc4af8a4, 0xe5e1ddf1} },
+/**/                  {{0x3f94bf23, 0x961cd605} },
+/**/                  {{0xbc26e86e, 0x5ca14507} },
+/**/                  {{0xbfa5e5e4, 0x32c1ffd7} },
+/**/                  {{0x3f9c6438, 0xda0191cd} },
+/**/                  {{0xbf79f0a0, 0x4d921d2b} },
+/**/                  {{0xbf798b55, 0x4e35d54e} },
+/**/                  {{0x3f80f34e, 0xcd4f7bfd} } },
+/**/                 {{{0x3fec4000, 0x00000000} },
+/**/                  {{0x3fe724c3, 0x5b4fae7b} },
+/**/                  {{0x3c5948b3, 0x2db3499b} },
+/**/                  {{0x3fe1fbe8, 0x6e5ce35d} },
+/**/                  {{0x3c8101d1, 0x561e27a3} },
+/**/                  {{0xbfd1d860, 0x1bbd70f4} },
+/**/                  {{0xbc7b4c97, 0xfa32c4d1} },
+/**/                  {{0x3fb44495, 0x48f48a77} },
+/**/                  {{0xbc2ccfed, 0xb47fdf89} },
+/**/                  {{0x3f93e5d1, 0xa6c1af2c} },
+/**/                  {{0xbc14af58, 0xc3b5a19b} },
+/**/                  {{0xbfa590fc, 0x5094795f} },
+/**/                  {{0x3f9c3623, 0xb638ebc2} },
+/**/                  {{0xbf7ab83f, 0x4fa66d0e} },
+/**/                  {{0xbf785d83, 0xb787e297} },
+/**/                  {{0x3f8095ce, 0xe71b4cea} } },
+/**/                 {{{0x3fec6000, 0x00000000} },
+/**/                  {{0x3fe736b6, 0x5a172dff} },
+/**/                  {{0x3c7775fd, 0x06a892d1} },
+/**/                  {{0x3fe1ea17, 0xaa6f2377} },
+/**/                  {{0xbc8395a8, 0xcb44ec07} },
+/**/                  {{0xbfd1c925, 0x5072ec76} },
+/**/                  {{0xbc6e11b3, 0xf650d5de} },
+/**/                  {{0x3fb4580f, 0xd281a42b} },
+/**/                  {{0xbc55bbce, 0xf63226cb} },
+/**/                  {{0x3f930fce, 0x0c411254} },
+/**/                  {{0x3c3a4412, 0xc9852726} },
+/**/                  {{0xbfa53ca0, 0xb19e766e} },
+/**/                  {{0x3f9c06b9, 0x6d941dd5} },
+/**/                  {{0xbf7b768a, 0x094128b2} },
+/**/                  {{0xbf773642, 0x2a047c42} },
+/**/                  {{0x3f8038a6, 0x40d7925f} } },
+/**/                 {{{0x3fec8000, 0x00000000} },
+/**/                  {{0x3fe74897, 0x8fba8e0f} },
+/**/                  {{0x3c47b2a6, 0x165884a1} },
+/**/                  {{0x3fe1d856, 0x287ffb8a} },
+/**/                  {{0xbc658a1f, 0xfee27a9d} },
+/**/                  {{0xbfd1b9dc, 0x39195240} },
+/**/                  {{0x3c604646, 0x551dc6bf} },
+/**/                  {{0x3fb46ab5, 0xfd4fa866} },
+/**/                  {{0x3c5f62a7, 0xc2febe43} },
+/**/                  {{0x3f923d13, 0x384eda2c} },
+/**/                  {{0x3c3b9a7c, 0x1dfd9f34} },
+/**/                  {{0xbfa4e8d5, 0x3cff324c} },
+/**/                  {{0x3f9bd60a, 0x25b0d0ad} },
+/**/                  {{0xbf7c2bb4, 0xe063d1e6} },
+/**/                  {{0xbf761589, 0xdcb54dd5} },
+/**/                  {{0x3f7fb7ce, 0x61077b85} } },
+/**/                 {{{0x3feca000, 0x00000000} },
+/**/                  {{0x3fe75a67, 0x0b82d8d8} },
+/**/                  {{0x3c8ee4ac, 0x4c729087} },
+/**/                  {{0x3fe1c6a3, 0xf68c4011} },
+/**/                  {{0xbc8e54e4, 0x32671c29} },
+/**/                  {{0xbfd1aa85, 0x73bd1c8f} },
+/**/                  {{0x3c7525ad, 0x41d7bd80} },
+/**/                  {{0x3fb47c8b, 0x0f4e0cc0} },
+/**/                  {{0x3c2efdd1, 0xd854875c} },
+/**/                  {{0x3f916d9b, 0x7688134d} },
+/**/                  {{0xbc1abef6, 0x42a6f922} },
+/**/                  {{0xbfa4959d, 0xa9ee694e} },
+/**/                  {{0x3f9ba425, 0xa8aca118} },
+/**/                  {{0xbf7cd7f3, 0xffb6fa1f} },
+/**/                  {{0xbf74fb52, 0xc52e395a} },
+/**/                  {{0x3f7eff46, 0x31d14661} } },
+/**/                 {{{0x3fecc000, 0x00000000} },
+/**/                  {{0x3fe76c24, 0xdcc6c6c0} },
+/**/                  {{0x3c819525, 0x51adc83d} },
+/**/                  {{0x3fe1b501, 0x21f3f28c} },
+/**/                  {{0xbc45712f, 0x5f1d67b6} },
+/**/                  {{0xbfd19b21, 0x9bf87a43} },
+/**/                  {{0xbc64520a, 0xb2071e48} },
+/**/                  {{0x3fb48d92, 0x48a59e43} },
+/**/                  {{0x3c5f8e56, 0x42014b8b} },
+/**/                  {{0x3f90a160, 0xee4caccb} },
+/**/                  {{0x3c2bd92b, 0x7b6daa67} },
+/**/                  {{0xbfa442fd, 0x80ce3489} },
+/**/                  {{0x3f9b711b, 0x65959e45} },
+/**/                  {{0xbf7d7b7b, 0x4cc2673a} },
+/**/                  {{0xbf73e793, 0xa86f8a8e} },
+/**/                  {{0x3f7e47d4, 0xdf91602d} } },
+/**/                 {{{0x3fece000, 0x00000000} },
+/**/                  {{0x3fe77dd1, 0x12ea22c7} },
+/**/                  {{0x3c873260, 0x8fc10d3d} },
+/**/                  {{0x3fe1a36d, 0xb77cb1a2} },
+/**/                  {{0xbc42c20d, 0x6e625be9} },
+/**/                  {{0xbfd18bb1, 0x4af7b13c} },
+/**/                  {{0xbc68446b, 0xbc063e5a} },
+/**/                  {{0x3fb49dce, 0xe3952cbb} },
+/**/                  {{0x3c588e60, 0x58cf9123} },
+/**/                  {{0x3f8fb0bb, 0x491cfa44} },
+/**/                  {{0x3c1534fc, 0x0e3f2a43} },
+/**/                  {{0xbfa3f0f8, 0x1c3b7aca} },
+/**/                  {{0x3f9b3cfa, 0x70eb708a} },
+/**/                  {{0xbf7e167e, 0x5eaa8b7f} },
+/**/                  {{0xbf72da42, 0x2b587c04} },
+/**/                  {{0x3f7d9199, 0x882fa65b} } },
+/**/                 {{{0x3fed0000, 0x00000000} },
+/**/                  {{0x3fe78f6b, 0xbd5d315e} },
+/**/                  {{0x3c8406a0, 0x89803740} },
+/**/                  {{0x3fe191e9, 0xc35424ca} },
+/**/                  {{0xbc8fa3c1, 0xf4be863f} },
+/**/                  {{0xbfd17c35, 0x177d9a85} },
+/**/                  {{0xbc717b81, 0x6a99d546} },
+/**/                  {{0x3fb4ad44, 0x144fffae} },
+/**/                  {{0x3c3538b3, 0xdccca2a3} },
+/**/                  {{0x3f8e2516, 0xfb2b5523} },
+/**/                  {{0x3c0f7c11, 0x60181bd9} },
+/**/                  {{0xbfa39f90, 0xaa1cc641} },
+/**/                  {{0x3f9b07d1, 0x85304289} },
+/**/                  {{0xbf7ea930, 0x756fd193} },
+/**/                  {{0xbf71d352, 0xe2a9a0de} },
+/**/                  {{0x3f7cdcb1, 0x886fc912} } },
+/**/                 {{{0x3fed2000, 0x00000000} },
+/**/                  {{0x3fe7a0f4, 0xeb9c19a2} },
+/**/                  {{0x3c613c67, 0xcd815f57} },
+/**/                  {{0x3fe18075, 0x5112636f} },
+/**/                  {{0x3c80a172, 0x7a335b20} },
+/**/                  {{0xbfd16cad, 0x95e83705} },
+/**/                  {{0x3c62a94b, 0x7b21d5e1} },
+/**/                  {{0x3fb4bbf5, 0x08de0a7c} },
+/**/                  {{0x3c3570d0, 0x057457a0} },
+/**/                  {{0x3f8c9fc8, 0x7d750fdf} },
+/**/                  {{0x3c2900a7, 0xfe4cff3c} },
+/**/                  {{0xbfa34eca, 0x2caf50ea} },
+/**/                  {{0x3f9ad1af, 0x03888c77} },
+/**/                  {{0xbf7f33c4, 0x71ac3a86} },
+/**/                  {{0xbf70d2b9, 0x6296fd58} },
+/**/                  {{0x3f7c2938, 0x886d16b8} } },
+/**/                 {{{0x3fed4000, 0x00000000} },
+/**/                  {{0x3fe7b26c, 0xad2e50fe} },
+/**/                  {{0xbc8ce80d, 0xf30411fb} },
+/**/                  {{0x3fe16f10, 0x6bbc577a} },
+/**/                  {{0xbc7d0db6, 0xbd8abf47} },
+/**/                  {{0xbfd15d1b, 0x58355b5f} },
+/**/                  {{0xbc5b5457, 0xbcc70038} },
+/**/                  {{0x3fb4c9e4, 0xe8fdd51d} },
+/**/                  {{0x3c462959, 0x28ac9383} },
+/**/                  {{0x3f8b20c3, 0x2029f143} },
+/**/                  {{0xbc2f8a44, 0x2b420400} },
+/**/                  {{0xbfa2fea7, 0x7b921c49} },
+/**/                  {{0x3f9a9aa0, 0xf468e79e} },
+/**/                  {{0xbf7fb66c, 0xcccbcb4f} },
+/**/                  {{0xbf6fb0d0, 0x9bd39a5f} },
+/**/                  {{0x3f7b7748, 0x8813998f} } },
+/**/                 {{{0x3fed6000, 0x00000000} },
+/**/                  {{0x3fe7c3d3, 0x11a6092b} },
+/**/                  {{0x3c8bb3cb, 0x2d303288} },
+/**/                  {{0x3fe15dbb, 0x1dc61b17} },
+/**/                  {{0xbc8f0487, 0xbb77dc56} },
+/**/                  {{0xbfd14d7e, 0xee0771ca} },
+/**/                  {{0x3c72d38b, 0xdc2fcbd0} },
+/**/                  {{0x3fb4d716, 0xd6080f0e} },
+/**/                  {{0xbc5cb5bc, 0xa9fbc2c3} },
+/**/                  {{0x3f89a7f9, 0xfc42e02f} },
+/**/                  {{0xbc201eec, 0x857be8a4} },
+/**/                  {{0xbfa2af2b, 0x44ceebb3} },
+/**/                  {{0x3f9a62b5, 0x08511639} },
+/**/                  {{0xbf8018ad, 0xc8de23de} },
+/**/                  {{0xbf6dc8a2, 0xc964501a} },
+/**/                  {{0x3f7ac6f9, 0xeb913697} } },
+/**/                 {{{0x3fed8000, 0x00000000} },
+/**/                  {{0x3fe7d528, 0x289fa093} },
+/**/                  {{0x3c856082, 0x1e2f3aa9} },
+/**/                  {{0x3fe14c75, 0x711551bb} },
+/**/                  {{0xbc80c88e, 0x71970f2c} },
+/**/                  {{0xbfd13dd8, 0xe4aa5095} },
+/**/                  {{0x3c66dd31, 0xb4b7ae12} },
+/**/                  {{0x3fb4e38d, 0xead4c211} },
+/**/                  {{0x3c513fb0, 0xe392a31e} },
+/**/                  {{0x3f88355f, 0xf6b74576} },
+/**/                  {{0x3ba8cb44, 0xf3561ab7} },
+/**/                  {{0xbfa26058, 0x0de0faaa} },
+/**/                  {{0x3f9a29f8, 0x989371f0} },
+/**/                  {{0xbf805261, 0x2b085d9a} },
+/**/                  {{0xbf6beccb, 0x2511c555} },
+/**/                  {{0x3f7a1863, 0x87b9d333} } },
+/**/                 {{{0x3feda000, 0x00000000} },
+/**/                  {{0x3fe7e66c, 0x01c114fe} },
+/**/                  {{0xbc8c82b8, 0x8b760b8d} },
+/**/                  {{0x3fe13b3f, 0x6f037c44} },
+/**/                  {{0xbc635393, 0x8562c8c0} },
+/**/                  {{0xbfd12e29, 0xc7182435} },
+/**/                  {{0xbc73da80, 0x0d0fda95} },
+/**/                  {{0x3fb4ef4d, 0x3ba21a8b} },
+/**/                  {{0xbc17c450, 0x9aa41146} },
+/**/                  {{0x3f86c8e7, 0xc39dff46} },
+/**/                  {{0x3c1ddd70, 0x800ba9ae} },
+/**/                  {{0xbfa21230, 0x34b94b56} },
+/**/                  {{0x3f99f078, 0xa827f95a} },
+/**/                  {{0xbf808869, 0x19caa997} },
+/**/                  {{0xbf6a1d29, 0xf8c46d26} },
+/**/                  {{0x3f796b9a, 0xae59da17} } },
+/**/                 {{{0x3fedc000, 0x00000000} },
+/**/                  {{0x3fe7f79e, 0xacb97898} },
+/**/                  {{0x3c8fd5ca, 0x80ead221} },
+/**/                  {{0x3fe12a19, 0x20604825} },
+/**/                  {{0xbc5cc7d6, 0xa18970f8} },
+/**/                  {{0xbfd11e72, 0x1dfe6ba4} },
+/**/                  {{0x3c706717, 0x9d653d1c} },
+/**/                  {{0x3fb4fa57, 0xd5fcbb3b} },
+/**/                  {{0x3c1922c8, 0x5f50bc06} },
+/**/                  {{0x3f856283, 0xe93a179f} },
+/**/                  {{0xbc01c2ec, 0x5ea7135a} },
+/**/                  {{0xbfa1c4b5, 0xf0c06b4f} },
+/**/                  {{0x3f99b641, 0xe48a3b04} },
+/**/                  {{0xbf80badd, 0xe1280a21} },
+/**/                  {{0xbf68599e, 0x1be3c5dd} },
+/**/                  {{0x3f78c0b3, 0x3a72c8e6} } },
+/**/                 {{{0x3fede000, 0x00000000} },
+/**/                  {{0x3fe808c0, 0x3940694b} },
+/**/                  {{0xbc800f32, 0x7715f6a5} },
+/**/                  {{0x3fe11902, 0x8d73d98e} },
+/**/                  {{0x3c71d158, 0x30f8e290} },
+/**/                  {{0xbfd10eb2, 0x6fc305eb} },
+/**/                  {{0xbc7fd2e3, 0x3858c4b7} },
+/**/                  {{0x3fb504b0, 0xc0a99255} },
+/**/                  {{0x3c55c054, 0x142e134f} },
+/**/                  {{0x3f840226, 0xc2f371cf} },
+/**/                  {{0xbbfc85b0, 0xfc7d6225} },
+/**/                  {{0xbfa177eb, 0x53d58f53} },
+/**/                  {{0x3f997b60, 0xa6a1627d} },
+/**/                  {{0xbf80e9d7, 0x89757c78} },
+/**/                  {{0xbf66a205, 0x0d433cd6} },
+/**/                  {{0x3f7817bf, 0x9c5dbd9f} } },
+/**/                 {{{0x3fee0000, 0x00000000} },
+/**/                  {{0x3fe819d0, 0xb7158a4d} },
+/**/                  {{0xbc7bf762, 0x29d3b917} },
+/**/                  {{0x3fe107fb, 0xbe011080} },
+/**/                  {{0xbc8107fb, 0xbe011080} },
+/**/                  {{0xbfd0feeb, 0x40894fcd} },
+/**/                  {{0x3c76fbb9, 0xc155af9a} },
+/**/                  {{0x3fb50e5a, 0xfb9125f7} },
+/**/                  {{0x3c357762, 0x2f3313b0} },
+/**/                  {{0x3f82a7c2, 0x843ba55a} },
+/**/                  {{0x3c1f4994, 0x3fc197b7} },
+/**/                  {{0xbfa12bd2, 0x4b4ae875} },
+/**/                  {{0x3f993fe0, 0xf3b1b1ee} },
+/**/                  {{0xbf81156d, 0xd4c2083b} },
+/**/                  {{0xbf64f63b, 0x0c35aa9c} },
+/**/                  {{0x3f7770d0, 0xe5d0462f} } },
+/**/                 {{{0x3fee2000, 0x00000000} },
+/**/                  {{0x3fe82ad0, 0x36000005} },
+/**/                  {{0x3c74592f, 0xce924d24} },
+/**/                  {{0x3fe0f704, 0xb947c8b7} },
+/**/                  {{0x3c436cd7, 0x48a651b3} },
+/**/                  {{0xbfd0ef1d, 0x1237505b} },
+/**/                  {{0x3c69239b, 0x1b86b9d1} },
+/**/                  {{0x3fb51759, 0x7fac4e21} },
+/**/                  {{0xbc42a8cc, 0xbfce0e36} },
+/**/                  {{0x3f815349, 0x3b5f3edd} },
+/**/                  {{0xbc25e1f1, 0x88c702d9} },
+/**/                  {{0xbfa0e06c, 0xa0df17a9} },
+/**/                  {{0x3f9903ce, 0x7e56b8b1} },
+/**/                  {{0xbf813db8, 0x3c701e30} },
+/**/                  {{0xbf63561b, 0x30c99e47} },
+/**/                  {{0x3f76cbf6, 0xd5bffce0} } },
+/**/                 {{{0x3fee4000, 0x00000000} },
+/**/                  {{0x3fe83bbe, 0xc5cdee22} },
+/**/                  {{0x3c631071, 0x04ffc6c3} },
+/**/                  {{0x3fe0e61d, 0x86071468} },
+/**/                  {{0xbc70ccc4, 0x59be09c9} },
+/**/                  {{0xbfd0df48, 0x647af38b} },
+/**/                  {{0x3c7dd47c, 0x427c295b} },
+/**/                  {{0x3fb51faf, 0x3ef25277} },
+/**/                  {{0x3bdf056a, 0xa81026a7} },
+/**/                  {{0x3f8004ac, 0xd443a18b} },
+/**/                  {{0x3c027610, 0x8178f329} },
+/**/                  {{0xbfa095bb, 0xfbb3a658} },
+/**/                  {{0x3f98c734, 0xa7859d46} },
+/**/                  {{0xbf8162cd, 0xeefe9a81} },
+/**/                  {{0xbf61c17f, 0x8330eac0} },
+/**/                  {{0x3f76293f, 0xe421c20a} } },
+/**/                 {{{0x3fee6000, 0x00000000} },
+/**/                  {{0x3fe84c9c, 0x7653f7eb} },
+/**/                  {{0xbc383611, 0xfe0a3e8f} },
+/**/                  {{0x3fe0d546, 0x2a7f71b5} },
+/**/                  {{0x3c757061, 0x596848c6} },
+/**/                  {{0xbfd0cf6d, 0xb4cf51a6} },
+/**/                  {{0x3c4c99ab, 0x5b18bb8c} },
+/**/                  {{0x3fb5275f, 0x24486227} },
+/**/                  {{0x3c5b4a59, 0xbb1f4f56} },
+/**/                  {{0x3f7d77be, 0x36238bb2} },
+/**/                  {{0x3c1ddbd1, 0xcaec6ba2} },
+/**/                  {{0xbfa04bc1, 0xe1406cd0} },
+/**/                  {{0x3f988a1e, 0x7f96d6ca} },
+/**/                  {{0xbf8184c5, 0xcdffc380} },
+/**/                  {{0xbf603841, 0x12561f8b} },
+/**/                  {{0x3f7588b9, 0x4d81a668} } },
+/**/                 {{{0x3fee8000, 0x00000000} },
+/**/                  {{0x3fe85d69, 0x576cc2c5} },
+/**/                  {{0x3c66b66e, 0x7fc8b8c3} },
+/**/                  {{0x3fe0c47e, 0xac74fadc} },
+/**/                  {{0xbc8035f8, 0x77bb1887} },
+/**/                  {{0xbfd0bf8d, 0x7e8202a9} },
+/**/                  {{0x3c798048, 0x1f4d2357} },
+/**/                  {{0x3fb52e6c, 0x13725c73} },
+/**/                  {{0xbc34c3af, 0xf5b19ded} },
+/**/                  {{0x3f7af1a3, 0x7d9c2711} },
+/**/                  {{0x3bea7ec7, 0x1af1098d} },
+/**/                  {{0xbfa0027f, 0xb643d11f} },
+/**/                  {{0x3f984c96, 0xc756b7d7} },
+/**/                  {{0xbf81a3b6, 0x6c3ca3ae} },
+/**/                  {{0xbf5d7470, 0x13459246} },
+/**/                  {{0x3f74ea6f, 0x1e70d9a4} } },
+/**/                 {{{0x3feea000, 0x00000000} },
+/**/                  {{0x3fe86e25, 0x78f87ae5} },
+/**/                  {{0x3c8022b1, 0x375cfe34} },
+/**/                  {{0x3fe0b3c7, 0x11319104} },
+/**/                  {{0x3c8ac394, 0x25152519} },
+/**/                  {{0xbfd0afa8, 0x3ab87c8a} },
+/**/                  {{0x3c724f26, 0x27b31384} },
+/**/                  {{0x3fb534d8, 0xe904e078} },
+/**/                  {{0xbc55bfde, 0xf8948323} },
+/**/                  {{0x3f7876ec, 0xa7bb2dfb} },
+/**/                  {{0xbc197116, 0x8a87be50} },
+/**/                  {{0xbf9f73ed, 0x7f5f95b4} },
+/**/                  {{0x3f980ea7, 0xf11c3266} },
+/**/                  {{0xbf81bfb6, 0x0c032389} },
+/**/                  {{0xbf5a8e77, 0x8bf305a1} },
+/**/                  {{0x3f744e6c, 0x3ec72e6d} } },
+/**/                 {{{0x3feec000, 0x00000000} },
+/**/                  {{0x3fe87ed0, 0xeadc5a2a} },
+/**/                  {{0x3c70af5a, 0xd957f4bc} },
+/**/                  {{0x3fe0a31f, 0x5d8701b3} },
+/**/                  {{0xbc869b25, 0x263ce937} },
+/**/                  {{0xbfd09fbe, 0x60757b83} },
+/**/                  {{0x3c767aff, 0xa96db9ef} },
+/**/                  {{0x3fb53aa8, 0x7a589afb} },
+/**/                  {{0xbc4b7e8e, 0x0844ff86} },
+/**/                  {{0x3f76077c, 0xacf1a65c} },
+/**/                  {{0xbc19a3b2, 0xb13331a9} },
+/**/                  {{0xbf9ee450, 0x472733eb} },
+/**/                  {{0x3f97d05c, 0x21e541d7} },
+/**/                  {{0xbf81d8da, 0x9d9d4dfc} },
+/**/                  {{0xbf57be45, 0xd3ce1b4a} },
+/**/                  {{0x3f73b4ba, 0x7cb60047} } },
+/**/                 {{{0x3feee000, 0x00000000} },
+/**/                  {{0x3fe88f6b, 0xbd023119} },
+/**/                  {{0xbc532d1d, 0x25aba660} },
+/**/                  {{0x3fe09287, 0x95d126c6} },
+/**/                  {{0x3c85aad3, 0xeccc37a6} },
+/**/                  {{0xbfd08fd0, 0x649e7367} },
+/**/                  {{0x3c71e96c, 0xed21a127} },
+/**/                  {{0x3fb53fdd, 0x957ec910} },
+/**/                  {{0xbc339c23, 0xaf97a601} },
+/**/                  {{0x3f73a336, 0x5a18e5a2} },
+/**/                  {{0xbc1f7225, 0x477571de} },
+/**/                  {{0xbf9e5629, 0xd4044135} },
+/**/                  {{0x3f9791bd, 0x32786dc4} },
+/**/                  {{0xbf81ef39, 0xbdf030c4} },
+/**/                  {{0xbf550386, 0xe21b8bcb} },
+/**/                  {{0x3f731d62, 0x97aa7fb2} } },
+/**/                 {{{0x3fef0000, 0x00000000} },
+/**/                  {{0x3fe89ff5, 0xff57f1f8} },
+/**/                  {{0xbc855b9a, 0x5e177a1b} },
+/**/                  {{0x3fe081ff, 0xbdf80108} },
+/**/                  {{0x3c6ffbdf, 0x80108200} },
+/**/                  {{0xbfd07fde, 0xba010928} },
+/**/                  {{0x3c38d37f, 0x7bae0295} },
+/**/                  {{0x3fb5447b, 0x0136e69f} },
+/**/                  {{0x3c50316a, 0x0dda278d} },
+/**/                  {{0x3f7149fc, 0x55103947} },
+/**/                  {{0x3c176e96, 0x849e505f} },
+/**/                  {{0xbf9dc97b, 0xfbe9a2ee} },
+/**/                  {{0x3f9752d4, 0xb08adda9} },
+/**/                  {{0xbf8202e8, 0xb540d106} },
+/**/                  {{0xbf525de5, 0x859de3e9} },
+/**/                  {{0x3f72886c, 0x4afd9f21} } },
+/**/                 {{{0x3fef2000, 0x00000000} },
+/**/                  {{0x3fe8b06f, 0xc1cf3dff} },
+/**/                  {{0xbc80fb31, 0x2656db6d} },
+/**/                  {{0x3fe07187, 0xd971cd38} },
+/**/                  {{0x3c89baa4, 0x202c20ac} },
+/**/                  {{0xbfd06fe9, 0xd15893ab} },
+/**/                  {{0xbc7a864b, 0xdc0cb586} },
+/**/                  {{0x3fb54883, 0x7ce57fed} },
+/**/                  {{0xbc49498e, 0x294f4b18} },
+/**/                  {{0x3f6df762, 0x426ebecc} },
+/**/                  {{0xbc022f08, 0xf28644c0} },
+/**/                  {{0xbf9d3e48, 0x5c564b44} },
+/**/                  {{0x3f9713ab, 0xdfea7acf} },
+/**/                  {{0xbf8213fc, 0x761db35c} },
+/**/                  {{0xbf4f9a17, 0x10d60f49} },
+/**/                  {{0x3f71f5de, 0x58700e9b} } },
+/**/                 {{{0x3fef4000, 0x00000000} },
+/**/                  {{0x3fe8c0d9, 0x145cf49d} },
+/**/                  {{0x3c8bea40, 0x76dc4333} },
+/**/                  {{0x3fe0611f, 0xeb45139a} },
+/**/                  {{0x3c7e4998, 0x65aadb1f} },
+/**/                  {{0xbfd05ff2, 0x1953a316} },
+/**/                  {{0x3c759922, 0xa1b67b0f} },
+/**/                  {{0x3fb54bf9, 0xc08c1d66} },
+/**/                  {{0x3c5b9353, 0xd220330c} },
+/**/                  {{0x3f69706e, 0x478cb604} },
+/**/                  {{0xbbfdb6d3, 0xa22fd45a} },
+/**/                  {{0xbf9cb490, 0x5c0d1d38} },
+/**/                  {{0x3f96d44b, 0xbbaba2f2} },
+/**/                  {{0xbf822289, 0x9c6b7de1} },
+/**/                  {{0xbf4aa143, 0xa49803b6} },
+/**/                  {{0x3f7165be, 0x9270e49e} } },
+/**/                 {{{0x3fef6000, 0x00000000} },
+/**/                  {{0x3fe8d132, 0x06f8c4cb} },
+/**/                  {{0xbc7b018c, 0xbaa89a8b} },
+/**/                  {{0x3fe050c7, 0xf60ab1f4} },
+/**/                  {{0x3c63f8e2, 0xc6cf5796} },
+/**/                  {{0xbfd04ff7, 0xfe998dc0} },
+/**/                  {{0x3c77873c, 0x7dc56419} },
+/**/                  {{0x3fb54ee0, 0x7cc24121} },
+/**/                  {{0x3c313117, 0x8e5c84c5} },
+/**/                  {{0x3f64fee1, 0x50066301} },
+/**/                  {{0x3c043698, 0x017261a1} },
+/**/                  {{0xbf9c2c55, 0x2cc5b4f1} },
+/**/                  {{0x3f9694bc, 0xf759f369} },
+/**/                  {{0xbf822ea4, 0x6c93426a} },
+/**/                  {{0xbf45d0a1, 0x135d6c51} },
+/**/                  {{0x3f70d811, 0xe62dc18f} } },
+/**/                 {{{0x3fef8000, 0x00000000} },
+/**/                  {{0x3fe8e17a, 0xa99cc05e} },
+/**/                  {{0xbc7ec182, 0xab042f61} },
+/**/                  {{0x3fe0407f, 0xfbefe001} },
+/**/                  {{0x3c401ffe, 0xfbf80041} },
+/**/                  {{0xbfd03ffb, 0xebd00209} },
+/**/                  {{0xbc53ff3c, 0xb9004112} },
+/**/                  {{0x3fb5513a, 0x5aaf6d91} },
+/**/                  {{0x3c54a20d, 0xc0516ddb} },
+/**/                  {{0x3f60a27f, 0xc6ac4038} },
+/**/                  {{0x3bf06bee, 0x2a340912} },
+/**/                  {{0xbf9ba597, 0xccd6032a} },
+/**/                  {{0x3f965508, 0x002bb974} },
+/**/                  {{0xbf823860, 0xd2d1068b} },
+/**/                  {{0xbf41277e, 0x666265bc} },
+/**/                  {{0x3f704cdc, 0x656b66ea} } },
+/**/                 {{{0x3fefa000, 0x00000000} },
+/**/                  {{0x3fe8f1b3, 0x0c44f167} },
+/**/                  {{0x3c6dd1ca, 0xb93933fd} },
+/**/                  {{0x3fe03047, 0xfeb82e4e} },
+/**/                  {{0x3c69ee56, 0x5272e5ac} },
+/**/                  {{0xbfd02ffe, 0x49a09c45} },
+/**/                  {{0xbc700a59, 0xb26267bb} },
+/**/                  {{0x3fb55309, 0xfc062d2f} },
+/**/                  {{0x3c5dba48, 0xb11938e0} },
+/**/                  {{0x3f58b61b, 0xe4f365be} },
+/**/                  {{0x3bf8b585, 0xa79ad31a} },
+/**/                  {{0xbf9b2059, 0x08d4ad17} },
+/**/                  {{0x3f961534, 0xfe379940} },
+/**/                  {{0xbf823fd2, 0x62a1270e} },
+/**/                  {{0xbf394a53, 0x3f3a0aec} },
+/**/                  {{0x3f6f8842, 0xa04bcae2} } },
+/**/                 {{{0x3fefc000, 0x00000000} },
+/**/                  {{0x3fe901db, 0x3eeef187} },
+/**/                  {{0x3c868665, 0xe5603c8f} },
+/**/                  {{0x3fe0201f, 0xffbf7f80} },
+/**/                  {{0x3c20201f, 0xffbf7f80} },
+/**/                  {{0xbfd01fff, 0x7ebe8004} },
+/**/                  {{0xbc4213ff, 0xcf979001} },
+/**/                  {{0x3fb55451, 0xfb0012db} },
+/**/                  {{0xbc395606, 0xf73aa59f} },
+/**/                  {{0x3f50509f, 0xfc757100} },
+/**/                  {{0x3bebc7da, 0xfee554d0} },
+/**/                  {{0xbf9a9c99, 0x7d3424d0} },
+/**/                  {{0x3f95d54b, 0xd5ac0217} },
+/**/                  {{0xbf82450c, 0x564b3c49} },
+/**/                  {{0xbf3091df, 0xe6d3e986} },
+/**/                  {{0x3f6e7bc6, 0x3bef5a22} } },
+/**/                 {{{0x3fefe000, 0x00000000} },
+/**/                  {{0x3fe911f3, 0x5199833b} },
+/**/                  {{0x3c63ae8a, 0x0edbf522} },
+/**/                  {{0x3fe01007, 0xfffbfbfe} },
+/**/                  {{0x3ba01007, 0xfffbfbfe} },
+/**/                  {{0xbfd00fff, 0xefebf400} },
+/**/                  {{0xbc401209, 0xfff9f97d} },
+/**/                  {{0x3fb55514, 0xea5aaaf6} },
+/**/                  {{0xbc529baa, 0xb5b7b240} },
+/**/                  {{0x3f402827, 0xffc7abc4} },
+/**/                  {{0x3b5ba3d6, 0xbfee6ab3} },
+/**/                  {{0xbf9a1a59, 0x97d67093} },
+/**/                  {{0x3f959554, 0x28080aaf} },
+/**/                  {{0xbf824821, 0x8e892ce2} },
+/**/                  {{0xbf204877, 0xfe70a2a6} },
+/**/                  {{0x3f6d7447, 0x0e8ddd67} } },
+/**/                 {{{0x3feff800, 0x00000000} },
+/**/                  {{0x3fe91dfa, 0xd439826e} },
+/**/                  {{0xbc786a19, 0x6df48d55} },
+/**/                  {{0x3fe00400, 0x7ffffbff} },
+/**/                  {{0xbbeffffe, 0xffbff800} },
+/**/                  {{0xbfd003ff, 0xffbfebfd} },
+/**/                  {{0xbb600480, 0x9ffff9fe} },
+/**/                  {{0x3fb55551, 0x53aa5aab} },
+/**/                  {{0xbc542a4a, 0x9baaab5b} },
+/**/                  {{0x3f200a02, 0x7fffc7eb} },
+/**/                  {{0xbb7dfffe, 0x4770e940} },
+/**/                  {{0xbf99b9a5, 0x9997d8d0} },
+/**/                  {{0x3f956555, 0x50a80a03} },
+/**/                  {{0xbf824914, 0x86456493} },
+/**/                  {{0xbf001207, 0x7ffe7329} },
+/**/                  {{0x3f6cb1ef, 0x1c63fe2a} } },
+  };
+
+#else
+#ifdef LITTLE_ENDI
+
+  static const number
+      cij[241][7] = {                             /* x0,cij for (1/16,1) */
+/**/                 {{{0X65E0244E, 0X3FB04006} },
+/**/                  {{0X7B53DD20, 0X3FB03A73} },
+/**/                  {{0XCF5CFB72, 0X3FEFDF1F} },
+/**/                  {{0XCE2AE4C2, 0XBFB01EB3} },
+/**/                  {{0XDD58A40D, 0XBFD4D29E} },
+/**/                  {{0XD907A18A, 0X3FAFDA4A} },
+/**/                  {{0X4DF65B18, 0X3FC814DF} } },
+/**/                 {{{0XB9B88CD8, 0X3FB0FFFD} },
+/**/                  {{0X63645300, 0X3FB0F99C} },
+/**/                  {{0XA3DED30F, 0X3FEFDC08} },
+/**/                  {{0X669C1AED, 0XBFB0D9DC} },
+/**/                  {{0XF7138DE2, 0XBFD4C669} },
+/**/                  {{0X29D085A7, 0X3FB0A12F} },
+/**/                  {{0XCFD48D20, 0X3FC7F0EE} } },
+/**/                 {{{0X5A73D4F1, 0X3FB1FFF1} },
+/**/                  {{0X2BEE2040, 0X3FB1F85F} },
+/**/                  {{0X42B56D31, 0X3FEFD7B3} },
+/**/                  {{0XB69DEA40, 0XBFB1D2B7} },
+/**/                  {{0X3922ECC9, 0XBFD4B552} },
+/**/                  {{0X522B1A04, 0X3FB18F93} },
+/**/                  {{0X5660F061, 0X3FC7BEAD} } },
+/**/                 {{{0XB2524AA2, 0X3FB2FFFD} },
+/**/                  {{0XE71790A0, 0X3FB2F716} },
+/**/                  {{0X53B496A4, 0X3FEFD31F} },
+/**/                  {{0X4AAB7374, 0XBFB2CAD8} },
+/**/                  {{0X58DD2FB2, 0XBFD4A34B} },
+/**/                  {{0XD0CECC18, 0X3FB27C0A} },
+/**/                  {{0X5D2743D7, 0X3FC789D2} } },
+/**/                 {{{0X0573F3AC, 0X3FB3FFFE} },
+/**/                  {{0X1702F6A0, 0X3FB3F59D} },
+/**/                  {{0XB071ACC2, 0X3FEFCE4D} },
+/**/                  {{0X64DB3686, 0XBFB3C20F} },
+/**/                  {{0XEB3BFE93, 0XBFD49059} },
+/**/                  {{0XCAF74FED, 0X3FB36659} },
+/**/                  {{0X1C011FB0, 0X3FC75269} } },
+/**/                 {{{0X894384D6, 0X3FB4FFEF} },
+/**/                  {{0X0CE204C0, 0X3FB4F3ED} },
+/**/                  {{0XA8EA5A01, 0X3FEFC93E} },
+/**/                  {{0X7B5457C9, 0XBFB4B84F} },
+/**/                  {{0X7401F2F9, 0XBFD47C80} },
+/**/                  {{0XB4F67209, 0X3FB44E64} },
+/**/                  {{0X4C540B77, 0X3FC7187D} } },
+/**/                 {{{0XDF406528, 0X3FB5FFF8} },
+/**/                  {{0X3C73D820, 0X3FB5F22B} },
+/**/                  {{0XB1F60F13, 0X3FEFC3F1} },
+/**/                  {{0XCB7FA73B, 0XBFB5ADB2} },
+/**/                  {{0X2B1EB555, 0XBFD467BE} },
+/**/                  {{0X99EDC463, 0X3FB53435} },
+/**/                  {{0X238F5059, 0X3FC6DC1B} } },
+/**/                 {{{0X8C4F0D56, 0X3FB7000F} },
+/**/                  {{0X495A2FA0, 0X3FB6F04B} },
+/**/                  {{0X340DCE97, 0X3FEFBE67} },
+/**/                  {{0X4D98E1AD, 0XBFB6A224} },
+/**/                  {{0X14064DF1, 0XBFD45216} },
+/**/                  {{0X2BA78A66, 0X3FB617AA} },
+/**/                  {{0X50A3D7AC, 0X3FC69D4F} } },
+/**/                 {{{0XBB4057CF, 0X3FB8000F} },
+/**/                  {{0XBE2CD3A0, 0X3FB7EE27} },
+/**/                  {{0X39EC9246, 0X3FEFB8A0} },
+/**/                  {{0X31D9C773, 0XBFB79577} },
+/**/                  {{0XB6DC7D72, 0XBFD43B8D} },
+/**/                  {{0XD69547DF, 0X3FB6F88A} },
+/**/                  {{0XF633CE8C, 0X3FC65C26} } },
+/**/                 {{{0X39CF2B7F, 0X3FB8FFF2} },
+/**/                  {{0X9F979E80, 0X3FB8EBB7} },
+/**/                  {{0X435506E1, 0X3FEFB29D} },
+/**/                  {{0X69B9CDB5, 0XBFB8879A} },
+/**/                  {{0X85FEAFA9, 0XBFD42428} },
+/**/                  {{0XB6191A0E, 0X3FB7D6BA} },
+/**/                  {{0XA7CB8BB5, 0X3FC618AF} } },
+/**/                 {{{0X6E2F0772, 0X3FB9FFF9} },
+/**/                  {{0XD32A9480, 0X3FB9E93A} },
+/**/                  {{0X04A3EC40, 0X3FEFAC5D} },
+/**/                  {{0X53F6EA97, 0XBFB978C2} },
+/**/                  {{0X089C36F6, 0XBFD40BE3} },
+/**/                  {{0X885AEB77, 0X3FB8B25C} },
+/**/                  {{0X63CADCE1, 0X3FC5D2F7} } },
+/**/                 {{{0X6316B097, 0X3FBB0002} },
+/**/                  {{0XCE24CC00, 0X3FBAE68C} },
+/**/                  {{0X938C5C66, 0X3FEFA5E0} },
+/**/                  {{0X76F14E4B, 0XBFBA68C3} },
+/**/                  {{0X1696CD7C, 0XBFD3F2C3} },
+/**/                  {{0X722A2CB4, 0X3FB98B3B} },
+/**/                  {{0X9067AD62, 0X3FC58B0C} } },
+/**/                 {{{0X604F58B1, 0X3FBC0008} },
+/**/                  {{0X05650780, 0X3FBBE3A7} },
+/**/                  {{0X5A7A2773, 0X3FEF9F28} },
+/**/                  {{0X3D5AC0A4, 0XBFBB578F} },
+/**/                  {{0XF767119F, 0XBFD3D8CB} },
+/**/                  {{0XC7E31B88, 0X3FBA613D} },
+/**/                  {{0XF5594565, 0X3FC540FD} } },
+/**/                 {{{0X6CCA4EBA, 0X3FBD0002} },
+/**/                  {{0XC1298A80, 0X3FBCE07E} },
+/**/                  {{0XE8D36C4A, 0X3FEF9834} },
+/**/                  {{0X5BCAC5FE, 0XBFBC4513} },
+/**/                  {{0X8B5236F1, 0XBFD3BE01} },
+/**/                  {{0X2E991970, 0X3FBB3447} },
+/**/                  {{0XB8ADB373, 0X3FC4F4DA} } },
+/**/                 {{{0XB2B47FCA, 0X3FBDFFF4} },
+/**/                  {{0X4A051D80, 0X3FBDDD16} },
+/**/                  {{0X78DCC895, 0X3FEF9106} },
+/**/                  {{0XF0966844, 0XBFBD3149} },
+/**/                  {{0X744F9A5F, 0XBFD3A266} },
+/**/                  {{0XEDB7F27A, 0X3FBC0446} },
+/**/                  {{0X583F9ECA, 0X3FC4A6B2} } },
+/**/                 {{{0XA9A05BE0, 0X3FBF000A} },
+/**/                  {{0XA3BDA540, 0X3FBED996} },
+/**/                  {{0X1B8BA97F, 0X3FEF899C} },
+/**/                  {{0X2287A677, 0XBFBE1C51} },
+/**/                  {{0XEDC130BB, 0XBFD385F8} },
+/**/                  {{0XF306FF50, 0X3FBCD14B} },
+/**/                  {{0XA667A72B, 0X3FC45694} } },
+/**/                 {{{0XBA8F63DE, 0X3FBFFFFA} },
+/**/                  {{0X69FE4780, 0X3FBFD5B5} },
+/**/                  {{0X4863DC7D, 0X3FEF81F8} },
+/**/                  {{0XD1518706, 0XBFBF05DB} },
+/**/                  {{0X4687A69C, 0XBFD368C4} },
+/**/                  {{0X1B3868DA, 0X3FBD9B08} },
+/**/                  {{0XC345ADFC, 0X3FC40491} } },
+/**/                 {{{0X6ECCADA8, 0X3FC07FFA} },
+/**/                  {{0X0A396400, 0X3FC068D0} },
+/**/                  {{0XF1FCFC6B, 0X3FEF7A19} },
+/**/                  {{0X861DF0DF, 0XBFBFEE0C} },
+/**/                  {{0X5A586C0C, 0XBFD34AC6} },
+/**/                  {{0X189D637A, 0X3FBE618F} },
+/**/                  {{0X195779D4, 0X3FC3B0BA} } },
+/**/                 {{{0X33432713, 0X3FC10003} },
+/**/                  {{0XF203D1A0, 0X3FC0E6B0} },
+/**/                  {{0XFE0EB463, 0X3FEF7200} },
+/**/                  {{0XE15CB19A, 0XBFC06A72} },
+/**/                  {{0XB8DB761E, 0XBFD32C00} },
+/**/                  {{0XA11F5E3E, 0X3FBF24D8} },
+/**/                  {{0X569E85DD, 0X3FC35B1E} } },
+/**/                 {{{0XDA1C4811, 0X3FC17FFC} },
+/**/                  {{0X29EBDA00, 0X3FC16462} },
+/**/                  {{0X7D558737, 0X3FEF69AF} },
+/**/                  {{0X0B33969B, 0XBFC0DD17} },
+/**/                  {{0X33AC50D1, 0XBFD30C7D} },
+/**/                  {{0X9BE43F0F, 0X3FBFE4AA} },
+/**/                  {{0X692539CB, 0X3FC303CF} } },
+/**/                 {{{0X3CCA418D, 0X3FC1FFFF} },
+/**/                  {{0X3B978EA0, 0X3FC1E1FA} },
+/**/                  {{0X45D421A9, 0X3FEF6124} },
+/**/                  {{0XACAC8AA8, 0XBFC14F03} },
+/**/                  {{0X62E675A3, 0XBFD2EC39} },
+/**/                  {{0X2FA6B426, 0X3FC0508C} },
+/**/                  {{0X780A6467, 0X3FC2AADE} } },
+/**/                 {{{0XD9C78922, 0X3FC27FF7} },
+/**/                  {{0X1B91E640, 0X3FC25F66} },
+/**/                  {{0XF52E192C, 0X3FEF5860} },
+/**/                  {{0XE5DE2394, 0XBFC1C023} },
+/**/                  {{0X6BEE0ABD, 0XBFD2CB3D} },
+/**/                  {{0X5E075C1A, 0X3FC0ACFB} },
+/**/                  {{0XDFFE453A, 0X3FC2505C} } },
+/**/                 {{{0XA1FC1AAA, 0X3FC2FFF7} },
+/**/                  {{0X83257C40, 0X3FC2DCB5} },
+/**/                  {{0XC719B6FB, 0X3FEF4F64} },
+/**/                  {{0X61514083, 0XBFC23082} },
+/**/                  {{0X7F7B72D5, 0XBFD2A988} },
+/**/                  {{0X7C887402, 0X3FC107A7} },
+/**/                  {{0X2C3CD6D1, 0X3FC1F45C} } },
+/**/                 {{{0X9D78E15E, 0X3FC38005} },
+/**/                  {{0X6AC98EE0, 0X3FC359EE} },
+/**/                  {{0X944CEC16, 0X3FEF462F} },
+/**/                  {{0XD85B87A9, 0XBFC2A020} },
+/**/                  {{0X2E4AB369, 0XBFD2871C} },
+/**/                  {{0XC31A65D9, 0X3FC1608D} },
+/**/                  {{0X130BBE50, 0X3FC196EE} } },
+/**/                 {{{0X9F431B1A, 0X3FC40004} },
+/**/                  {{0X6BD65360, 0X3FC3D6F3} },
+/**/                  {{0XDD99B68A, 0X3FEF3CC3} },
+/**/                  {{0XB3DD00ED, 0XBFC30EE1} },
+/**/                  {{0XF8482664, 0XBFD26403} },
+/**/                  {{0XFE136626, 0X3FC1B792} },
+/**/                  {{0X6EAC7440, 0X3FC13824} } },
+/**/                 {{{0XE01D95A1, 0X3FC48004} },
+/**/                  {{0X86F00CC0, 0X3FC453D3} },
+/**/                  {{0XE3970539, 0X3FEF3320} },
+/**/                  {{0X0A5279AA, 0XBFC37CCF} },
+/**/                  {{0X3B151D5D, 0XBFD2403F} },
+/**/                  {{0XE331C9E6, 0X3FC20CBB} },
+/**/                  {{0X39E3F097, 0X3FC0D811} } },
+/**/                 {{{0XAA9382DD, 0X3FC4FFF7} },
+/**/                  {{0X8C590A80, 0X3FC4D07F} },
+/**/                  {{0X34DF28E0, 0X3FEF2948} },
+/**/                  {{0X5B43915C, 0XBFC3E9D8} },
+/**/                  {{0XEB8845A2, 0XBFD21BD5} },
+/**/                  {{0XAC6AC8AD, 0X3FC25FF8} },
+/**/                  {{0X88ED96CA, 0X3FC076C6} } },
+/**/                 {{{0X352408BE, 0X3FC58006} },
+/**/                  {{0XC39A73E0, 0X3FC54D1E} },
+/**/                  {{0X09AE009C, 0X3FEF1F37} },
+/**/                  {{0XB9BE8550, 0XBFC4561C} },
+/**/                  {{0X0053F52E, 0XBFD1F6C0} },
+/**/                  {{0XEF783BE9, 0X3FC2B15D} },
+/**/                  {{0X8615239B, 0X3FC01456} } },
+/**/                 {{{0X2B193F81, 0X3FC5FFFF} },
+/**/                  {{0X4F73E000, 0X3FC5C980} },
+/**/                  {{0XAE110E29, 0X3FEF14F1} },
+/**/                  {{0X9098B3D2, 0XBFC4C16E} },
+/**/                  {{0X8F058241, 0XBFD1D10F} },
+/**/                  {{0XA14FA897, 0X3FC300C6} },
+/**/                  {{0XD56607C0, 0X3FBF61A6} } },
+/**/                 {{{0X4460E6E1, 0X3FC68008} },
+/**/                  {{0X04A55E20, 0X3FC645C8} },
+/**/                  {{0X8FA36EC5, 0X3FEF0A75} },
+/**/                  {{0XD62FA883, 0XBFC52BE9} },
+/**/                  {{0X69A74048, 0XBFD1AABD} },
+/**/                  {{0X1679EB02, 0X3FC34E45} },
+/**/                  {{0XF7C14C3D, 0X3FBE989E} } },
+/**/                 {{{0X9E99A846, 0X3FC6FFFB} },
+/**/                  {{0X4B35FD40, 0X3FC6C1D0} },
+/**/                  {{0X3EF8EF95, 0X3FEEFFC6} },
+/**/                  {{0X76A2FE63, 0XBFC5956B} },
+/**/                  {{0XDDC78DDF, 0XBFD183D8} },
+/**/                  {{0XAC606D66, 0X3FC399BD} },
+/**/                  {{0X070D286A, 0X3FBDCDBA} } },
+/**/                 {{{0X0FFCD490, 0X3FC78008} },
+/**/                  {{0XB55758E0, 0X3FC73DC5} },
+/**/                  {{0X457E2065, 0X3FEEF4E0} },
+/**/                  {{0X7D6FF9BC, 0XBFC5FE16} },
+/**/                  {{0X9FADD384, 0XBFD15C57} },
+/**/                  {{0X73E52D32, 0X3FC3E347} },
+/**/                  {{0X9A65AE4B, 0X3FBD011C} } },
+/**/                 {{{0X148E79C1, 0X3FC80006} },
+/**/                  {{0X2B7F8CA0, 0X3FC7B981} },
+/**/                  {{0X701687ED, 0X3FEEE9C7} },
+/**/                  {{0X0E1EF36D, 0XBFC665C7} },
+/**/                  {{0XCCBCBDAB, 0XBFD13449} },
+/**/                  {{0X5C71B3E8, 0X3FC42AC7} },
+/**/                  {{0X3E81980E, 0X3FBC32EB} } },
+/**/                 {{{0X0F487C17, 0X3FC88006} },
+/**/                  {{0XBC0E3640, 0X3FC83511} },
+/**/                  {{0XD2D55329, 0X3FEEDE7A} },
+/**/                  {{0X37E644BA, 0XBFC6CC87} },
+/**/                  {{0X60597557, 0XBFD10BAE} },
+/**/                  {{0X13E26FBE, 0X3FC47043} },
+/**/                  {{0X6FB18BF4, 0X3FBB634A} } },
+/**/                 {{{0XD3518D76, 0X3FC90004} },
+/**/                  {{0X8874C100, 0X3FC8B073} },
+/**/                  {{0X2ED6673B, 0X3FEED2FB} },
+/**/                  {{0X2A6EBAC3, 0XBFC73251} },
+/**/                  {{0X6924232F, 0XBFD0E28A} },
+/**/                  {{0X73BCC03F, 0X3FC4B3B5} },
+/**/                  {{0X8C72507F, 0X3FBA925E} } },
+/**/                 {{{0XD2F20D5C, 0X3FC97FFF} },
+/**/                  {{0X51AF5920, 0X3FC92BA3} },
+/**/                  {{0X3D32449F, 0X3FEEC749} },
+/**/                  {{0XC308255F, 0XBFC7971F} },
+/**/                  {{0XD572D28F, 0XBFD0B8E2} },
+/**/                  {{0X337448FE, 0X3FC4F51A} },
+/**/                  {{0XCFCBC620, 0X3FB9C04B} } },
+/**/                 {{{0XBF80F060, 0X3FCA0005} },
+/**/                  {{0X6E9E8960, 0X3FC9A6AE} },
+/**/                  {{0X1EF200E7, 0X3FEEBB64} },
+/**/                  {{0X6E96E5C1, 0XBFC7FAFB} },
+/**/                  {{0XEC6AD647, 0XBFD08EB6} },
+/**/                  {{0XF53D0BA6, 0X3FC53475} },
+/**/                  {{0X4433C20E, 0X3FB8ED36} } },
+/**/                 {{{0XDEECA8E4, 0X3FCA7FF7} },
+/**/                  {{0X948578E0, 0X3FCA2176} },
+/**/                  {{0X328FF98B, 0X3FEEAF4F} },
+/**/                  {{0X58149B1C, 0XBFC85DC9} },
+/**/                  {{0XF933A1AB, 0XBFD06414} },
+/**/                  {{0X60C45A8F, 0X3FC571B7} },
+/**/                  {{0XBE58C308, 0X3FB81941} } },
+/**/                 {{{0X7DEFD553, 0X3FCAFFFF} },
+/**/                  {{0X9EBA6B80, 0X3FCA9C22} },
+/**/                  {{0X10A85E10, 0X3FEEA307} },
+/**/                  {{0X7F9DEA61, 0XBFC8BFA6} },
+/**/                  {{0X5A474E8F, 0XBFD038F3} },
+/**/                  {{0X30C225D2, 0X3FC5ACF0} },
+/**/                  {{0XD062812F, 0X3FB74491} } },
+/**/                 {{{0X669932A5, 0X3FCB7FFE} },
+/**/                  {{0XCFF6DFE0, 0X3FCB1694} },
+/**/                  {{0X1921D387, 0X3FEE968F} },
+/**/                  {{0XE075D95A, 0XBFC92078} },
+/**/                  {{0X526793C4, 0XBFD00D60} },
+/**/                  {{0X73842A52, 0X3FC5E610} },
+/**/                  {{0XC5331D5A, 0X3FB66F49} } },
+/**/                 {{{0XB44759F3, 0X3FCBFFF9} },
+/**/                  {{0X5073A2A0, 0X3FCB90D1} },
+/**/                  {{0X56598313, 0X3FEE89E7} },
+/**/                  {{0XCFB9203D, 0XBFC98041} },
+/**/                  {{0XBED91B37, 0XBFCFC2BC} },
+/**/                  {{0X6D4FC2FC, 0X3FC61D19} },
+/**/                  {{0X9411537E, 0X3FB5998C} } },
+/**/                 {{{0X5568F3EC, 0X3FCC8007} },
+/**/                  {{0X4A31DBE0, 0X3FCC0AEC} },
+/**/                  {{0X18F270A8, 0X3FEE7D0E} },
+/**/                  {{0XF522B132, 0XBFC9DF0E} },
+/**/                  {{0X2179C242, 0XBFCF69D4} },
+/**/                  {{0X36646FCD, 0X3FC65213} },
+/**/                  {{0XDC699095, 0X3FB4C37C} } },
+/**/                 {{{0X601A799F, 0X3FCCFFF8} },
+/**/                  {{0X49DB66A0, 0X3FCC84B8} },
+/**/                  {{0XA0EE780E, 0X3FEE7008} },
+/**/                  {{0X3A403934, 0XBFCA3CBB} },
+/**/                  {{0XD490BE32, 0XBFCF102F} },
+/**/                  {{0X037D4137, 0X3FC684EA} },
+/**/                  {{0XD9EC855A, 0X3FB3ED3C} } },
+/**/                 {{{0X7BBF1497, 0X3FCD7FF9} },
+/**/                  {{0X1E008CE0, 0X3FCCFE5F} },
+/**/                  {{0XF04615C7, 0X3FEE62D2} },
+/**/                  {{0X15AADE2C, 0XBFCA9965} },
+/**/                  {{0X0B44B682, 0XBFCEB5B9} },
+/**/                  {{0X92EC8D57, 0X3FC6B5AF} },
+/**/                  {{0X60D831AE, 0X3FB316EE} } },
+/**/                 {{{0X40209B20, 0X3FCE0008} },
+/**/                  {{0XB145A760, 0X3FCD77DD} },
+/**/                  {{0XBE1DFDF1, 0X3FEE556D} },
+/**/                  {{0X2186AF0F, 0XBFCAF508} },
+/**/                  {{0X9420489D, 0XBFCE5A79} },
+/**/                  {{0X454FEB2C, 0X3FC6E462} },
+/**/                  {{0XD2945A8C, 0X3FB240B2} } },
+/**/                 {{{0XC0AE943C, 0X3FCE8000} },
+/**/                  {{0X3CA10100, 0X3FCDF111} },
+/**/                  {{0X59E7308B, 0X3FEE47DD} },
+/**/                  {{0X9439F69F, 0XBFCB4F88} },
+/**/                  {{0X798DE600, 0XBFCDFE93} },
+/**/                  {{0X8F267389, 0X3FC710F5} },
+/**/                  {{0X1A8A373E, 0X3FB16AAB} } },
+/**/                 {{{0X6D532803, 0X3FCF0003} },
+/**/                  {{0XCB4E5C80, 0X3FCE6A17} },
+/**/                  {{0XE3D0F6C2, 0X3FEE3A1E} },
+/**/                  {{0X6E31F768, 0XBFCBA8FB} },
+/**/                  {{0XE6A382E3, 0XBFCDA1F7} },
+/**/                  {{0XB36AC4C0, 0X3FC73B75} },
+/**/                  {{0XA3470B0A, 0X3FB094F7} } },
+/**/                 {{{0X48B8AFC3, 0X3FCF7FFA} },
+/**/                  {{0XE1654560, 0X3FCEE2DB} },
+/**/                  {{0X43F2AB37, 0X3FEE2C35} },
+/**/                  {{0X598207D6, 0XBFCC014F} },
+/**/                  {{0X1EFE809A, 0XBFCD44BF} },
+/**/                  {{0X698A561E, 0X3FC763DC} },
+/**/                  {{0XA7CF78A3, 0X3FAF7F70} } },
+/**/                 {{{0XEB334FAE, 0X3FD00002} },
+/**/                  {{0X77AB25E0, 0X3FCF5B7B} },
+/**/                  {{0X78A5C127, 0X3FEE1E1D} },
+/**/                  {{0XC555D571, 0XBFCC5898} },
+/**/                  {{0XB706CF86, 0XBFCCE6D9} },
+/**/                  {{0X0823F643, 0X3FC78A35} },
+/**/                  {{0X0B9118E8, 0X3FADD619} } },
+/**/                 {{{0XA8AF86FE, 0X3FD03FFC} },
+/**/                  {{0XB53A0C00, 0X3FCFD3CB} },
+/**/                  {{0XFDCBAC8B, 0X3FEE0FDC} },
+/**/                  {{0X6C3246FF, 0XBFCCAEB7} },
+/**/                  {{0XD6E19AD3, 0XBFCC8870} },
+/**/                  {{0XD2C48E91, 0X3FC7AE73} },
+/**/                  {{0X0510FDB0, 0X3FAC2E26} } },
+/**/                 {{{0XD38984B7, 0X3FD07FFC} },
+/**/                  {{0X5732D4A0, 0X3FD025F7} },
+/**/                  {{0X49C17AB3, 0X3FEE0170} },
+/**/                  {{0X9AFE5028, 0XBFCD03C2} },
+/**/                  {{0X9A2C1833, 0XBFCC2971} },
+/**/                  {{0X69041DCF, 0X3FC7D0A5} },
+/**/                  {{0XF497C653, 0X3FAA87D3} } },
+/**/                 {{{0X1ED2ADD7, 0X3FD0BFFF} },
+/**/                  {{0XCD7F7420, 0X3FD061ED} },
+/**/                  {{0XDA96B750, 0X3FEDF2D8} },
+/**/                  {{0XC777881E, 0XBFCD57B2} },
+/**/                  {{0X8692B503, 0XBFCBC9EA} },
+/**/                  {{0X42ABF9E7, 0X3FC7F0C9} },
+/**/                  {{0X04B42BB4, 0X3FA8E35E} } },
+/**/                 {{{0XA8515CDA, 0X3FD10003} },
+/**/                  {{0X027416A0, 0X3FD09DC9} },
+/**/                  {{0X34899950, 0X3FEDE417} },
+/**/                  {{0X7983EDE4, 0XBFCDAA86} },
+/**/                  {{0X999706B6, 0XBFCB69E3} },
+/**/                  {{0XB0F126DB, 0X3FC80EE1} },
+/**/                  {{0X17EE9BAB, 0X3FA740FE} } },
+/**/                 {{{0XF3AF9CC5, 0X3FD14001} },
+/**/                  {{0XB6E1ABA0, 0X3FD0D980} },
+/**/                  {{0XE0412681, 0X3FEDD52D} },
+/**/                  {{0X6863B28B, 0XBFCDFC31} },
+/**/                  {{0XC55B8D5A, 0XBFCB0971} },
+/**/                  {{0XA6731AAC, 0X3FC82AED} },
+/**/                  {{0XC73BD8F0, 0X3FA5A0EC} } },
+/**/                 {{{0XB6122509, 0X3FD18003} },
+/**/                  {{0XAA1E67A0, 0X3FD1151D} },
+/**/                  {{0X2E0C1F32, 0X3FEDC61B} },
+/**/                  {{0XB9BA6B7E, 0XBFCE4CBE} },
+/**/                  {{0X90C2431C, 0XBFCAA88E} },
+/**/                  {{0X8BCBDA5E, 0X3FC844F4} },
+/**/                  {{0X50E585FF, 0X3FA40361} } },
+/**/                 {{{0XA6A2A153, 0X3FD1BFFF} },
+/**/                  {{0XE7A18DC0, 0X3FD15096} },
+/**/                  {{0XE1218F3F, 0X3FEDB6E1} },
+/**/                  {{0X9621D6A2, 0XBFCE9C21} },
+/**/                  {{0X22627B04, 0XBFCA4750} },
+/**/                  {{0XFF8B908E, 0X3FC85CF5} },
+/**/                  {{0X9833C0D6, 0X3FA26891} } },
+/**/                 {{{0X2D345AAF, 0X3FD1FFFD} },
+/**/                  {{0X053BF760, 0X3FD18BF3} },
+/**/                  {{0XCC3ACB29, 0X3FEDA780} },
+/**/                  {{0X2AA756AE, 0XBFCEEA62} },
+/**/                  {{0X47ED9793, 0XBFC9E5B3} },
+/**/                  {{0X87AB542A, 0X3FC872F8} },
+/**/                  {{0X158E9E9A, 0X3FA0D0B2} } },
+/**/                 {{{0XF14CF05A, 0X3FD23FFC} },
+/**/                  {{0X4D568460, 0X3FD1C732} },
+/**/                  {{0X55F32D3D, 0X3FED97F8} },
+/**/                  {{0X21D457C8, 0XBFCF3780} },
+/**/                  {{0XF065B845, 0XBFC983BE} },
+/**/                  {{0XFBA70CD8, 0X3FC886FF} },
+/**/                  {{0XAEB85CCC, 0X3F9E77EB} } },
+/**/                 {{{0X0BAE6FC9, 0X3FD27FFE} },
+/**/                  {{0X9A27C160, 0X3FD20253} },
+/**/                  {{0X4619176E, 0X3FED8849} },
+/**/                  {{0X5C0AC9EC, 0XBFCF8379} },
+/**/                  {{0X5E645195, 0XBFC9217C} },
+/**/                  {{0XF4264515, 0X3FC8990F} },
+/**/                  {{0XE6B92E65, 0X3F9B551C} } },
+/**/                 {{{0XA297A7DE, 0X3FD2C001} },
+/**/                  {{0XACB927C0, 0X3FD23D57} },
+/**/                  {{0XE4958FB6, 0X3FED7873} },
+/**/                  {{0X43572249, 0XBFCFCE4E} },
+/**/                  {{0X9F3560F3, 0XBFC8BEF1} },
+/**/                  {{0XDF7F0E5B, 0X3FC8A92C} },
+/**/                  {{0X116F3B19, 0X3F983958} } },
+/**/                 {{{0X7267616A, 0X3FD2FFFE} },
+/**/                  {{0XB2F378C0, 0X3FD27835} },
+/**/                  {{0X13906586, 0X3FED687B} },
+/**/                  {{0XAFDA1A0F, 0XBFD00BF9} },
+/**/                  {{0XC197AD7D, 0XBFC85C34} },
+/**/                  {{0X1E99F0A7, 0X3FC8B759} },
+/**/                  {{0X6525C365, 0X3F9524FA} } },
+/**/                 {{{0X48153B20, 0X3FD33FFE} },
+/**/                  {{0X6A2FDCC0, 0X3FD2B2F6} },
+/**/                  {{0XF827FBE4, 0X3FED585C} },
+/**/                  {{0XB45A6918, 0XBFD03039} },
+/**/                  {{0X5DFC3F72, 0XBFC7F93E} },
+/**/                  {{0XC5210022, 0X3FC8C39B} },
+/**/                  {{0X168FB62E, 0X3F92185E} } },
+/**/                 {{{0X8122579A, 0X3FD38003} },
+/**/                  {{0XAF6EC1E0, 0X3FD2ED9B} },
+/**/                  {{0X872F20D3, 0X3FED4819} },
+/**/                  {{0X1F4C1031, 0XBFD053E8} },
+/**/                  {{0X621FFD79, 0XBFC79612} },
+/**/                  {{0XDB9D9DFC, 0X3FC8CDF9} },
+/**/                  {{0X80C6852F, 0X3F8E27B4} } },
+/**/                 {{{0X3EF39141, 0X3FD3C003} },
+/**/                  {{0X4668C700, 0X3FD3281B} },
+/**/                  {{0X18590D1A, 0X3FED37B4} },
+/**/                  {{0XA3EF2560, 0XBFD076FE} },
+/**/                  {{0X3033287A, 0XBFC732C9} },
+/**/                  {{0XCA2E5458, 0X3FC8D676} },
+/**/                  {{0XD80944B1, 0X3F882F85} } },
+/**/                 {{{0X63FA0E31, 0X3FD40001} },
+/**/                  {{0X7B565000, 0X3FD36278} },
+/**/                  {{0X47A813DA, 0X3FED272C} },
+/**/                  {{0X493B9D88, 0XBFD0997F} },
+/**/                  {{0X3DA9FE3C, 0XBFC6CF64} },
+/**/                  {{0XC1CD3331, 0X3FC8DD18} },
+/**/                  {{0XF70F6E07, 0X3F8248D1} } },
+/**/                 {{{0X74071092, 0X3FD44003} },
+/**/                  {{0X0F0A4000, 0X3FD39CB8} },
+/**/                  {{0X3BA47A6B, 0X3FED1681} },
+/**/                  {{0XD8788947, 0XBFD0BB6C} },
+/**/                  {{0X589596A6, 0XBFC66BE2} },
+/**/                  {{0XC9B3EC1E, 0X3FC8E1E5} },
+/**/                  {{0XD20FAB86, 0X3F78E868} } },
+/**/                 {{{0XC880F200, 0X3FD48000} },
+/**/                  {{0XDEFFB460, 0X3FD3D6D1} },
+/**/                  {{0XCADC576C, 0X3FED05B5} },
+/**/                  {{0XA1D352C2, 0XBFD0DCC2} },
+/**/                  {{0X3D7D2574, 0XBFC60858} },
+/**/                  {{0X03208BC0, 0X3FC8E4E3} },
+/**/                  {{0X6379E732, 0X3F6AC909} } },
+/**/                 {{{0X4D97D2CB, 0X3FD4C000} },
+/**/                  {{0XF3A2E220, 0X3FD410CB} },
+/**/                  {{0XBB7ED511, 0X3FECF4C8} },
+/**/                  {{0X37766A49, 0XBFD0FD84} },
+/**/                  {{0X5AABC13C, 0XBFC5A4C2} },
+/**/                  {{0XC80DAC4B, 0X3FC8E616} },
+/**/                  {{0XB04695C2, 0X3F4038AA} } },
+/**/                 {{{0X9397539F, 0X3FD4FFFD} },
+/**/                  {{0X06A7DEC0, 0X3FD44AA2} },
+/**/                  {{0XCF479DDE, 0X3FECE3BB} },
+/**/                  {{0X4D122984, 0XBFD11DAF} },
+/**/                  {{0XB1024DF0, 0XBFC5412E} },
+/**/                  {{0X1B2C560D, 0X3FC8E587} },
+/**/                  {{0X951C088D, 0XBF625DA8} } },
+/**/                 {{{0XF304715F, 0X3FD53FFF} },
+/**/                  {{0X791F3900, 0X3FD4845A} },
+/**/                  {{0XA45E0FD8, 0X3FECD28D} },
+/**/                  {{0X8D61F221, 0XBFD13D47} },
+/**/                  {{0XD3E9BB99, 0XBFC4DD98} },
+/**/                  {{0X0F181507, 0X3FC8E33A} },
+/**/                  {{0XD08BD25C, 0XBF743C33} } },
+/**/                 {{{0XE88EA386, 0X3FD58002} },
+/**/                  {{0XF575D6C0, 0X3FD4BDF0} },
+/**/                  {{0X02035609, 0X3FECC140} },
+/**/                  {{0XB808071E, 0XBFD15C4A} },
+/**/                  {{0XB2945FCF, 0XBFC47A0E} },
+/**/                  {{0XFC056447, 0X3FC8DF35} },
+/**/                  {{0XB00A45CD, 0XBF7F2011} } },
+/**/                 {{{0X70F4D590, 0X3FD5BFFD} },
+/**/                  {{0X284D7AE0, 0X3FD4F75D} },
+/**/                  {{0XF2DE98B6, 0X3FECAFD5} },
+/**/                  {{0XA2B42F42, 0XBFD17AB4} },
+/**/                  {{0X1C285A92, 0XBFC416A5} },
+/**/                  {{0X511D6C5A, 0X3FC8D982} },
+/**/                  {{0X77008605, 0XBF84ECC1} } },
+/**/                 {{{0XB70D6E53, 0X3FD5FFFD} },
+/**/                  {{0X8E2FF500, 0X3FD530AB} },
+/**/                  {{0X32D2429D, 0X3FEC9E4C} },
+/**/                  {{0X35190681, 0XBFD1988C} },
+/**/                  {{0XBF748319, 0XBFC3B34C} },
+/**/                  {{0X98D3A613, 0X3FC8D224} },
+/**/                  {{0XAA295F9F, 0XBF8A33D4} } },
+/**/                 {{{0X5C7399E2, 0X3FD63FFC} },
+/**/                  {{0X4F022E80, 0X3FD569D5} },
+/**/                  {{0X58DD180F, 0X3FEC8CA5} },
+/**/                  {{0X1D701DE4, 0XBFD1B5CE} },
+/**/                  {{0XA7806A5A, 0XBFC35017} },
+/**/                  {{0X56C01CF9, 0X3FC8C924} },
+/**/                  {{0X942059E1, 0XBF8F64D9} } },
+/**/                 {{{0X9A1AC7D2, 0X3FD67FFD} },
+/**/                  {{0XF50031E0, 0X3FD5A2DD} },
+/**/                  {{0XCEFF6DEB, 0X3FEC7AE0} },
+/**/                  {{0X7C8C245B, 0XBFD1D27C} },
+/**/                  {{0XC6AA933F, 0XBFC2ED05} },
+/**/                  {{0XDDC5CF1F, 0X3FC8BE87} },
+/**/                  {{0XD594386F, 0XBF923FB6} } },
+/**/                 {{{0X6F7B9353, 0X3FD6BFFD} },
+/**/                  {{0XB4E066C0, 0X3FD5DBC1} },
+/**/                  {{0X456B591A, 0X3FEC6900} },
+/**/                  {{0XC2D6D0AA, 0XBFD1EE95} },
+/**/                  {{0XB11086F7, 0XBFC28A23} },
+/**/                  {{0XDDE22D5A, 0X3FC8B256} },
+/**/                  {{0X489D85A4, 0XBF94C19A} } },
+/**/                 {{{0XF02A83E4, 0X3FD6FFFB} },
+/**/                  {{0X6A237DC0, 0X3FD61480} },
+/**/                  {{0X4CC81773, 0X3FEC5704} },
+/**/                  {{0X4B9029CA, 0XBFD20A1A} },
+/**/                  {{0X89F5FB1C, 0XBFC22777} },
+/**/                  {{0X9B09E911, 0X3FC8A498} },
+/**/                  {{0X130D419A, 0XBF9737EC} } },
+/**/                 {{{0X128C213A, 0X3FD73FFE} },
+/**/                  {{0X42499480, 0X3FD64D1E} },
+/**/                  {{0X129C0D30, 0X3FEC44EC} },
+/**/                  {{0X83787259, 0XBFD2250C} },
+/**/                  {{0XD55BE4FC, 0XBFC1C4FF} },
+/**/                  {{0X36B2D603, 0X3FC89553} },
+/**/                  {{0X2E43DF46, 0XBF99A284} } },
+/**/                 {{{0XEA0CDC7A, 0X3FD77FFB} },
+/**/                  {{0X05B0E220, 0X3FD68594} },
+/**/                  {{0X687132C0, 0X3FEC32BA} },
+/**/                  {{0X7273497E, 0XBFD23F69} },
+/**/                  {{0XCD39B037, 0XBFC162CE} },
+/**/                  {{0XFA930AAF, 0X3FC8848F} },
+/**/                  {{0XA4554412, 0XBF9C013D} } },
+/**/                 {{{0XF18EDAB8, 0X3FD7C003} },
+/**/                  {{0X4127BEE0, 0X3FD6BDEE} },
+/**/                  {{0XC01607BD, 0X3FEC206B} },
+/**/                  {{0X5FEE2F42, 0XBFD25937} },
+/**/                  {{0X307761E1, 0XBFC100D4} },
+/**/                  {{0X5DFEC556, 0X3FC87252} },
+/**/                  {{0X7958F973, 0XBF9E53F6} } },
+/**/                 {{{0X41F35C4C, 0X3FD7FFFD} },
+/**/                  {{0XDA6607A0, 0X3FD6F616} },
+/**/                  {{0XCDDC8437, 0X3FEC0E07} },
+/**/                  {{0XBFB4DAEA, 0XBFD2726C} },
+/**/                  {{0XE0DB1472, 0XBFC09F3B} },
+/**/                  {{0X2A95AA1B, 0X3FC85EA9} },
+/**/                  {{0XD872CFA2, 0XBFA04D47} } },
+/**/                 {{{0X26C7C46B, 0X3FD84003} },
+/**/                  {{0X96B8BE00, 0X3FD72E25} },
+/**/                  {{0X4CDEDF38, 0X3FEBFB87} },
+/**/                  {{0XD09404F3, 0XBFD28B14} },
+/**/                  {{0XE7FB61F2, 0XBFC03DE1} },
+/**/                  {{0XACB33BE9, 0X3FC84993} },
+/**/                  {{0X9B1DE607, 0XBFA16A76} } },
+/**/                 {{{0XCA90B179, 0X3FD88003} },
+/**/                  {{0XA104A220, 0X3FD7660A} },
+/**/                  {{0XF236E2F6, 0X3FEBE8EF} },
+/**/                  {{0X19A94DDF, 0XBFD2A329} },
+/**/                  {{0X0856A081, 0XBFBFB9CE} },
+/**/                  {{0X33F70280, 0X3FC8331F} },
+/**/                  {{0XF01308CC, 0XBFA2817A} } },
+/**/                 {{{0XE9692FD5, 0X3FD8C003} },
+/**/                  {{0XF0B2CB00, 0X3FD79DC9} },
+/**/                  {{0XF2966495, 0X3FEBD640} },
+/**/                  {{0XFD6EC2EA, 0XBFD2BAAB} },
+/**/                  {{0XE08E9C2D, 0XBFBEF892} },
+/**/                  {{0X031873E3, 0X3FC81B52} },
+/**/                  {{0XAC12113D, 0XBFA39249} } },
+/**/                 {{{0X35BE5C5F, 0X3FD8FFFE} },
+/**/                  {{0XBDCCDFC0, 0X3FD7D55E} },
+/**/                  {{0X6EABCF77, 0X3FEBC37C} },
+/**/                  {{0X2D74F445, 0XBFD2D19C} },
+/**/                  {{0XE63F2CDB, 0XBFBE382C} },
+/**/                  {{0X0E6FE2AE, 0X3FC80236} },
+/**/                  {{0X0E66AB41, 0XBFA49CD9} } },
+/**/                 {{{0XAA8974CD, 0X3FD94002} },
+/**/                  {{0XB8AFD880, 0X3FD80CD6} },
+/**/                  {{0X4468CCBA, 0X3FEBB09E} },
+/**/                  {{0XEC84E686, 0XBFD2E7FF} },
+/**/                  {{0X88C659E8, 0XBFBD7876} },
+/**/                  {{0XC2F15460, 0X3FC7E7CC} },
+/**/                  {{0XB410D3ED, 0XBFA5A120} } },
+/**/                 {{{0XE08EFDEA, 0X3FD98002} },
+/**/                  {{0X34856920, 0X3FD84425} },
+/**/                  {{0X3F290478, 0X3FEB9DAB} },
+/**/                  {{0XBB81EDEF, 0XBFD2FDD2} },
+/**/                  {{0X31E68398, 0XBFBCB9A5} },
+/**/                  {{0XC2DBB11B, 0X3FC7CC23} },
+/**/                  {{0X98467E78, 0XBFA69F19} } },
+/**/                 {{{0X75294B6B, 0X3FD9C002} },
+/**/                  {{0X299F6200, 0X3FD87B4D} },
+/**/                  {{0XDE96CF1F, 0X3FEB8AA2} },
+/**/                  {{0X8C4D45D2, 0XBFD31316} },
+/**/                  {{0XEDCE4DBA, 0XBFBBFBB7} },
+/**/                  {{0X8907FEC9, 0X3FC7AF41} },
+/**/                  {{0X07419F55, 0XBFA796BE} } },
+/**/                 {{{0XF3E490EC, 0X3FDA0002} },
+/**/                  {{0XC21A4500, 0X3FD8B24F} },
+/**/                  {{0X3B5EF7DD, 0X3FEB7785} },
+/**/                  {{0X8EAE70CD, 0XBFD327CC} },
+/**/                  {{0XD49E40DA, 0XBFBB3EB3} },
+/**/                  {{0X4D93F7EA, 0X3FC7912D} },
+/**/                  {{0X9E21606A, 0XBFA88809} } },
+/**/                 {{{0X458461B6, 0X3FDA3FFF} },
+/**/                  {{0X7754D2C0, 0X3FD8E928} },
+/**/                  {{0X6A0DAF0E, 0X3FEB6454} },
+/**/                  {{0XDC2A9A3F, 0XBFD33BF3} },
+/**/                  {{0X4917D003, 0XBFBA82B1} },
+/**/                  {{0X7C7566CF, 0X3FC771F1} },
+/**/                  {{0X3D700DD8, 0XBFA972F9} } },
+/**/                 {{{0X87E12AAE, 0X3FDA8002} },
+/**/                  {{0XA5DFD000, 0X3FD91FE0} },
+/**/                  {{0XA0D82E05, 0X3FEB510D} },
+/**/                  {{0XA76AD312, 0XBFD34F90} },
+/**/                  {{0XDEEC35AD, 0XBFB9C798} },
+/**/                  {{0X8A0EF43E, 0X3FC75190} },
+/**/                  {{0X0872EFC8, 0XBFAA578B} } },
+/**/                 {{{0X49A86C84, 0X3FDAC001} },
+/**/                  {{0X5C4516E0, 0X3FD9566E} },
+/**/                  {{0XDD03F6B6, 0X3FEB3DB4} },
+/**/                  {{0X291C1F82, 0XBFD362A0} },
+/**/                  {{0X03F6DF60, 0XBFB90D95} },
+/**/                  {{0X25091E92, 0X3FC73018} },
+/**/                  {{0X577A022B, 0XBFAB35BE} } },
+/**/                 {{{0X2F4CC2E1, 0X3FDAFFFF} },
+/**/                  {{0X94226540, 0X3FD98CD4} },
+/**/                  {{0X9297200A, 0X3FEB2A49} },
+/**/                  {{0X5153FD01, 0XBFD37524} },
+/**/                  {{0XAE3DE27E, 0XBFB854A3} },
+/**/                  {{0X7EB3F331, 0X3FC70D8E} },
+/**/                  {{0XB6AD570E, 0XBFAC0D93} } },
+/**/                 {{{0XC2F3711E, 0X3FDB4000} },
+/**/                  {{0X01CDC4C0, 0X3FD9C317} },
+/**/                  {{0XEA63781B, 0X3FEB16CA} },
+/**/                  {{0X3665B649, 0XBFD3871F} },
+/**/                  {{0X3F70FBC6, 0XBFB79CC0} },
+/**/                  {{0X061DFC2E, 0X3FC6E9F9} },
+/**/                  {{0XD837F9C3, 0XBFACDF0C} } },
+/**/                 {{{0XA777E180, 0X3FDB8000} },
+/**/                  {{0XF3748F20, 0X3FD9F930} },
+/**/                  {{0X0FB0162A, 0X3FEB033B} },
+/**/                  {{0X25978CAB, 0XBFD39890} },
+/**/                  {{0X5C765AAB, 0XBFB6E602} },
+/**/                  {{0X9C16D678, 0X3FC6C562} },
+/**/                  {{0X92A16EBF, 0XBFADAA2C} } },
+/**/                 {{{0X087E14ED, 0X3FDBBFFD} },
+/**/                  {{0XBF0DDB00, 0X3FDA2F20} },
+/**/                  {{0X1CCE6E94, 0X3FEAEF9B} },
+/**/                  {{0X8B73E3C3, 0XBFD3A977} },
+/**/                  {{0X09EFD1CC, 0XBFB63077} },
+/**/                  {{0X58408D3A, 0X3FC69FD4} },
+/**/                  {{0XD2E48013, 0XBFAE6EF6} } },
+/**/                 {{{0XF0086783, 0X3FDC0000} },
+/**/                  {{0X8D448080, 0X3FDA64EF} },
+/**/                  {{0X35990B5A, 0X3FEADBE8} },
+/**/                  {{0X27241B86, 0XBFD3B9D9} },
+/**/                  {{0XC20E4001, 0XBFB57C06} },
+/**/                  {{0X90E6C8AB, 0X3FC6794F} },
+/**/                  {{0X9A630A27, 0XBFAF2D70} } },
+/**/                 {{{0X863E58F8, 0X3FDC4001} },
+/**/                  {{0X1C3A1BA0, 0X3FDA9A94} },
+/**/                  {{0X35ED7DD2, 0X3FEAC826} },
+/**/                  {{0X0C075B50, 0XBFD3C9B3} },
+/**/                  {{0XA429793C, 0XBFB4C8D7} },
+/**/                  {{0X95903C22, 0X3FC651E2} },
+/**/                  {{0XF0F8B649, 0XBFAFE59F} } },
+/**/                 {{{0X6C62C3BF, 0X3FDC7FFC} },
+/**/                  {{0X580A5840, 0X3FDAD00C} },
+/**/                  {{0X62D1D808, 0X3FEAB456} },
+/**/                  {{0XACBB06EC, 0XBFD3D905} },
+/**/                  {{0X421E42DC, 0XBFB416F7} },
+/**/                  {{0XE5608EFD, 0X3FC62996} },
+/**/                  {{0XF14B649A, 0XBFB04BC5} } },
+/**/                 {{{0X34B2A209, 0X3FDCC002} },
+/**/                  {{0XF68F3B40, 0X3FDB0565} },
+/**/                  {{0X1E3DC946, 0X3FEAA074} },
+/**/                  {{0XE2DB674E, 0XBFD3E7D5} },
+/**/                  {{0XA4833FFE, 0XBFB3663E} },
+/**/                  {{0XC4F0392B, 0X3FC60069} },
+/**/                  {{0X38B10201, 0XBFB0A19E} } },
+/**/                 {{{0XAAC5F9F9, 0X3FDCFFFC} },
+/**/                  {{0X59C45CC0, 0X3FDB3A8E} },
+/**/                  {{0XD2389C24, 0X3FEA8C86} },
+/**/                  {{0X8362B2CB, 0XBFD3F61F} },
+/**/                  {{0XC6C746A6, 0XBFB2B6F1} },
+/**/                  {{0X426D2946, 0X3FC5D671} },
+/**/                  {{0X4981CE75, 0XBFB0F45D} } },
+/**/                 {{{0X0D800C64, 0X3FDD4004} },
+/**/                  {{0X88AF6580, 0X3FDB6F99} },
+/**/                  {{0X7498CED2, 0X3FEA7887} },
+/**/                  {{0XEF8975C0, 0XBFD403E8} },
+/**/                  {{0XBEA81E2B, 0XBFB208D4} },
+/**/                  {{0X283FFA4E, 0X3FC5ABA5} },
+/**/                  {{0X11705130, 0XBFB14408} } },
+/**/                 {{{0XB0E64500, 0X3FDD7FFE} },
+/**/                  {{0X2324E140, 0X3FDBA472} },
+/**/                  {{0X8C5AD680, 0X3FEA647E} },
+/**/                  {{0XA03F042D, 0XBFD4112D} },
+/**/                  {{0X9580389C, 0XBFB15C33} },
+/**/                  {{0X49D9889E, 0X3FC5801E} },
+/**/                  {{0XEF96554F, 0XBFB190A3} } },
+/**/                 {{{0X2DFCF4EB, 0X3FDDBFFE} },
+/**/                  {{0X9F1D27A0, 0X3FDBD926} },
+/**/                  {{0X1AC286CA, 0X3FEA5067} },
+/**/                  {{0X590A4DE1, 0XBFD41DF2} },
+/**/                  {{0X8BD1EFA5, 0XBFB0B0E4} },
+/**/                  {{0X702506D0, 0X3FC553D8} },
+/**/                  {{0XADA415A6, 0XBFB1DA36} } },
+/**/                 {{{0X8A34BBC2, 0X3FDDFFFD} },
+/**/                  {{0XC4F7A2C0, 0X3FDC0DB2} },
+/**/                  {{0X2EF70BB3, 0X3FEA3C43} },
+/**/                  {{0X16EE647C, 0XBFD42A37} },
+/**/                  {{0XDB6270BB, 0XBFB006FA} },
+/**/                  {{0X86F08DE6, 0X3FC526DE} },
+/**/                  {{0X7E5061FB, 0XBFB220C6} } },
+/**/                 {{{0XD26415C0, 0X3FDE3FFD} },
+/**/                  {{0X58282940, 0X3FDC4217} },
+/**/                  {{0XF391DDCB, 0X3FEA2812} },
+/**/                  {{0X18EDDF0A, 0XBFD435FD} },
+/**/                  {{0X88A589AF, 0XBFAEBCF2} },
+/**/                  {{0X4CF96163, 0X3FC4F937} },
+/**/                  {{0XF6A18481, 0XBFB26459} } },
+/**/                 {{{0X37F72672, 0X3FDE7FFF} },
+/**/                  {{0X67AA3DC0, 0X3FDC7654} },
+/**/                  {{0XD6CE86B3, 0X3FEA13D6} },
+/**/                  {{0X74037E91, 0XBFD44145} },
+/**/                  {{0X3B2CC445, 0XBFAD6EC9} },
+/**/                  {{0X0564F101, 0X3FC4CAEA} },
+/**/                  {{0X0C49CD64, 0XBFB2A4F8} } },
+/**/                 {{{0XA11BC00F, 0X3FDEBFFD} },
+/**/                  {{0X85E23660, 0X3FDCAA66} },
+/**/                  {{0XA25C2396, 0X3FE9FF90} },
+/**/                  {{0X8A64724F, 0XBFD44C10} },
+/**/                  {{0X2F871E82, 0XBFAC2399} },
+/**/                  {{0X0AFBFB85, 0X3FC49C01} },
+/**/                  {{0X0F0FF3FE, 0XBFB2E2A8} } },
+/**/                 {{{0X3313756D, 0X3FDEFFFF} },
+/**/                  {{0X9D30CC20, 0X3FDCDE52} },
+/**/                  {{0XDFF9491F, 0X3FE9EB3E} },
+/**/                  {{0X7E6ABAAE, 0XBFD45660} },
+/**/                  {{0X3E8AA98D, 0XBFAADB4C} },
+/**/                  {{0X25D8FF7D, 0X3FC46C7F} },
+/**/                  {{0XA71D448D, 0XBFB31D71} } },
+/**/                 {{{0X914B856E, 0X3FDF4001} },
+/**/                  {{0XAAC1BB20, 0X3FDD1216} },
+/**/                  {{0XC9BC4315, 0X3FE9D6E2} },
+/**/                  {{0X004E7E91, 0XBFD46036} },
+/**/                  {{0XFB901F89, 0XBFA995F7} },
+/**/                  {{0X3F5BE04A, 0X3FC43C6D} },
+/**/                  {{0XCE8ABF92, 0XBFB3555C} } },
+/**/                 {{{0XCD144428, 0X3FDF8003} },
+/**/                  {{0XD93E9640, 0X3FDD45B1} },
+/**/                  {{0X256FDFEB, 0X3FE9C27D} },
+/**/                  {{0X09F7C145, 0XBFD46992} },
+/**/                  {{0XED521174, 0XBFA853A9} },
+/**/                  {{0X2B27751F, 0X3FC40BD3} },
+/**/                  {{0XCFA5C5F2, 0XBFB38A71} } },
+/**/                 {{{0X00545BD9, 0X3FDFC002} },
+/**/                  {{0XF536D960, 0X3FDD7920} },
+/**/                  {{0XAAE99EA5, 0X3FE9AE0F} },
+/**/                  {{0X38DD66F4, 0XBFD47275} },
+/**/                  {{0XB5484F74, 0XBFA7147D} },
+/**/                  {{0XF8EFC373, 0X3FC3DABA} },
+/**/                  {{0X3EA6B864, 0XBFB3BCB9} } },
+/**/                 {{{0XDA6F2AA8, 0X3FDFFFFB} },
+/**/                  {{0XB420FAA0, 0X3FDDAC63} },
+/**/                  {{0XED4D0CAB, 0X3FE9999A} },
+/**/                  {{0XBFCC6072, 0XBFD47AE0} },
+/**/                  {{0X25BF7A4A, 0XBFA5D87C} },
+/**/                  {{0XF5999EE5, 0X3FC3A92B} },
+/**/                  {{0XF7F09D08, 0XBFB3EC3B} } },
+/**/                 {{{0XA65118C8, 0X3FE01FFF} },
+/**/                  {{0X2BF70C00, 0X3FDDDF85} },
+/**/                  {{0XECD72AE5, 0X3FE9851A} },
+/**/                  {{0X8F5794C5, 0XBFD482D7} },
+/**/                  {{0X2E4A020B, 0XBFA49F68} },
+/**/                  {{0X25A156DA, 0X3FC37722} },
+/**/                  {{0X19F58064, 0XBFB41903} } },
+/**/                 {{{0X9C0B0556, 0X3FE04001} },
+/**/                  {{0XFA2BA200, 0X3FDE127D} },
+/**/                  {{0X08C17A55, 0X3FE97093} },
+/**/                  {{0X957A7EFD, 0XBFD48A59} },
+/**/                  {{0X2648F2BB, 0XBFA36976} },
+/**/                  {{0X592569B1, 0X3FC344AB} },
+/**/                  {{0X03752DDB, 0XBFB44318} } },
+/**/                 {{{0XC24501DB, 0X3FE05FFF} },
+/**/                  {{0XA495BCC0, 0X3FDE4547} },
+/**/                  {{0X4F225B79, 0X3FE95C06} },
+/**/                  {{0X2163F5B8, 0XBFD49167} },
+/**/                  {{0X4B79B89F, 0XBFA236D3} },
+/**/                  {{0XB530B7BE, 0X3FC311D4} },
+/**/                  {{0X4D931476, 0XBFB46A84} } },
+/**/                 {{{0X865125FC, 0X3FE07FFE} },
+/**/                  {{0X2A5FAD60, 0X3FDE77E9} },
+/**/                  {{0X5C13B0EA, 0X3FE94772} },
+/**/                  {{0X6F33ABCA, 0XBFD49802} },
+/**/                  {{0XDE947C6B, 0XBFA1075A} },
+/**/                  {{0XD8D5E01B, 0X3FC2DE9D} },
+/**/                  {{0XCA17CA60, 0XBFB48F51} } },
+/**/                 {{{0X107EAC25, 0X3FE0A002} },
+/**/                  {{0X08243180, 0X3FDEAA69} },
+/**/                  {{0XF339824B, 0X3FE932D4} },
+/**/                  {{0X7145F475, 0XBFD49E2D} },
+/**/                  {{0X00571424, 0XBF9FB5D8} },
+/**/                  {{0X85D1CF84, 0X3FC2AB06} },
+/**/                  {{0X7DBBBABE, 0XBFB4B18A} } },
+/**/                 {{{0X7376E5D4, 0X3FE0BFFF} },
+/**/                  {{0XF79FF560, 0X3FDEDCB5} },
+/**/                  {{0X8EE1B492, 0X3FE91E35} },
+/**/                  {{0X49498453, 0XBFD4A3E7} },
+/**/                  {{0XBE685C6F, 0XBF9D63E4} },
+/**/                  {{0XC4B1F032, 0X3FC27726} },
+/**/                  {{0X9E6ECC3A, 0XBFB4D138} } },
+/**/                 {{{0X1715EE2E, 0X3FE0DFFE} },
+/**/                  {{0X9BE1BB80, 0X3FDF0EDB} },
+/**/                  {{0XD993BD60, 0X3FE9098F} },
+/**/                  {{0X9B84E907, 0XBFD4A932} },
+/**/                  {{0XE07DBA5E, 0XBF9B185A} },
+/**/                  {{0XF2D7A804, 0X3FC242F8} },
+/**/                  {{0X8DDAA340, 0XBFB4EE66} } },
+/**/                 {{{0X7F3D776C, 0X3FE10001} },
+/**/                  {{0X6119E100, 0X3FDF40DF} },
+/**/                  {{0XFB44BCFB, 0X3FE8F4E1} },
+/**/                  {{0X16E3467E, 0XBFD4AE11} },
+/**/                  {{0XCF368422, 0XBF98D304} },
+/**/                  {{0X736708AE, 0X3FC20E7D} },
+/**/                  {{0XD7B3658D, 0XBFB5091E} } },
+/**/                 {{{0XFD8C7B65, 0X3FE11FFE} },
+/**/                  {{0X8FD21560, 0X3FDF72B0} },
+/**/                  {{0X4770FB0A, 0X3FE8E033} },
+/**/                  {{0X5C0F6783, 0XBFD4B282} },
+/**/                  {{0X7FFE0364, 0XBF9694AC} },
+/**/                  {{0XE529BF4C, 0X3FC1D9CB} },
+/**/                  {{0X2C73E5F0, 0XBFB5216C} } },
+/**/                 {{{0XAFA3EE71, 0X3FE14000} },
+/**/                  {{0XE3324D60, 0X3FDFA45E} },
+/**/                  {{0X9FF684DF, 0X3FE8CB7D} },
+/**/                  {{0X17ADD34D, 0XBFD4B689} },
+/**/                  {{0X67276E70, 0XBF945CA3} },
+/**/                  {{0XA1FBF3B1, 0X3FC1A4D9} },
+/**/                  {{0X5FBA2374, 0XBFB53759} } },
+/**/                 {{{0X73336187, 0X3FE15FFF} },
+/**/                  {{0X3DE48D00, 0X3FDFD5DF} },
+/**/                  {{0X0CBE3546, 0X3FE8B6C6} },
+/**/                  {{0X9B291BCB, 0XBFD4BA25} },
+/**/                  {{0X5FB712CC, 0XBF922B6F} },
+/**/                  {{0X55E28B0B, 0X3FC16FB8} },
+/**/                  {{0X633F423C, 0XBFB54AF1} } },
+/**/                 {{{0X6C447B82, 0X3FE17FFF} },
+/**/                  {{0X0208ECC0, 0X3FE0039C} },
+/**/                  {{0X48F15926, 0X3FE8A20A} },
+/**/                  {{0XA5808AC3, 0XBFD4BD59} },
+/**/                  {{0X5EEF6F2A, 0XBF9000CD} },
+/**/                  {{0XEBE54AA7, 0X3FC13A66} },
+/**/                  {{0X45420CE4, 0XBFB55C3F} } },
+/**/                 {{{0XAE932B61, 0X3FE19FFF} },
+/**/                  {{0XE0091BC0, 0X3FE01C33} },
+/**/                  {{0X55664E00, 0X3FE88D4B} },
+/**/                  {{0X579F5ABB, 0XBFD4C026} },
+/**/                  {{0X8797C32A, 0XBF8BB9A6} },
+/**/                  {{0X95D4F64E, 0X3FC104EC} },
+/**/                  {{0X2BBC325E, 0XBFB56B4E} } },
+/**/                 {{{0XBA12AE50, 0X3FE1BFFF} },
+/**/                  {{0XD3ABA020, 0X3FE034B6} },
+/**/                  {{0XEBDCCF04, 0X3FE87889} },
+/**/                  {{0XE6D463C1, 0XBFD4C28C} },
+/**/                  {{0XB36211FC, 0XBF877F1C} },
+/**/                  {{0XB90B11E7, 0X3FC0CF4F} },
+/**/                  {{0X52DCBE1A, 0XBFB57829} } },
+/**/                 {{{0X4B459E41, 0X3FE1E001} },
+/**/                  {{0X2DC05800, 0X3FE04D26} },
+/**/                  {{0X51625B6A, 0X3FE863C5} },
+/**/                  {{0XAFFDD399, 0XBFD4C48E} },
+/**/                  {{0X603059CA, 0XBF8351CB} },
+/**/                  {{0XDE65D0D9, 0X3FC09992} },
+/**/                  {{0X087BB367, 0XBFB582DC} } },
+/**/                 {{{0X32306F33, 0X3FE20000} },
+/**/                  {{0XBAFB6CE0, 0X3FE0657E} },
+/**/                  {{0XA1E2EEC3, 0X3FE84F00} },
+/**/                  {{0XB79EC8C6, 0XBFD4C62C} },
+/**/                  {{0XD95DE8D1, 0XBF7E6488} },
+/**/                  {{0X661DF241, 0X3FC063C2} },
+/**/                  {{0XAAA63BAD, 0XBFB58B71} } },
+/**/                 {{{0XD30A486C, 0X3FE22000} },
+/**/                  {{0XD2165080, 0X3FE07DC3} },
+/**/                  {{0X66B3E5BF, 0X3FE83A39} },
+/**/                  {{0X7DE04DEE, 0XBFD4C768} },
+/**/                  {{0X800F052F, 0XBF763FF7} },
+/**/                  {{0X28F35EDD, 0X3FC02DDC} },
+/**/                  {{0XA351CF91, 0XBFB591F5} } },
+/**/                 {{{0X215E03FC, 0X3FE23FFE} },
+/**/                  {{0X9F380A00, 0X3FE095F1} },
+/**/                  {{0X48BE5F3F, 0X3FE82573} },
+/**/                  {{0X1B793F77, 0XBFD4C843} },
+/**/                  {{0X625993B8, 0XBF6C6E63} },
+/**/                  {{0X8C5E4B3B, 0X3FBFEFDB} },
+/**/                  {{0X66FE9CA7, 0XBFB59673} } },
+/**/                 {{{0X6833D65D, 0X3FE26000} },
+/**/                  {{0X6496A8C0, 0X3FE0AE0E} },
+/**/                  {{0X45B44AA3, 0X3FE810A9} },
+/**/                  {{0X055B407A, 0XBFD4C8BE} },
+/**/                  {{0XAE83F0A4, 0XBF5920A7} },
+/**/                  {{0X860A6A5E, 0X3FBF83DC} },
+/**/                  {{0X70D98EE7, 0XBFB598F6} } },
+/**/                 {{{0XE82D4D50, 0X3FE28000} },
+/**/                  {{0X095F5300, 0X3FE0C615} },
+/**/                  {{0X1E9337B7, 0X3FE7FBE0} },
+/**/                  {{0X573C6F6A, 0XBFD4C8DA} },
+/**/                  {{0XC50F565D, 0X3F38B6C7} },
+/**/                  {{0XC9C4B6CA, 0X3FBF17DB} },
+/**/                  {{0X45D6DAE0, 0XBFB5998A} } },
+/**/                 {{{0X203B6A0B, 0X3FE29FFF} },
+/**/                  {{0X30852720, 0X3FE0DE05} },
+/**/                  {{0X8520538D, 0X3FE7E718} },
+/**/                  {{0X668C6963, 0XBFD4C899} },
+/**/                  {{0XBECA8AB0, 0X3F6286EC} },
+/**/                  {{0X9B6AC5BD, 0X3FBEABE4} },
+/**/                  {{0X575A9684, 0XBFB5983A} } },
+/**/                 {{{0XE91A9D93, 0X3FE2C001} },
+/**/                  {{0XF7817A20, 0X3FE0F5E3} },
+/**/                  {{0X63A45D97, 0X3FE7D24E} },
+/**/                  {{0X5F83C46D, 0XBFD4C7FC} },
+/**/                  {{0X5D9C800A, 0X3F70E199} },
+/**/                  {{0X3721A8E0, 0X3FBE3FE9} },
+/**/                  {{0X377DA840, 0XBFB59512} } },
+/**/                 {{{0XC6FB4948, 0X3FE2DFFF} },
+/**/                  {{0X4CE36040, 0X3FE10DAA} },
+/**/                  {{0X3E39011F, 0X3FE7BD88} },
+/**/                  {{0XB5EAE11F, 0XBFD4C704} },
+/**/                  {{0X192C622B, 0X3F786398} },
+/**/                  {{0XB62BA357, 0X3FBDD412} },
+/**/                  {{0X5F0E020E, 0XBFB5901D} } },
+/**/                 {{{0X39CB4EED, 0X3FE2FFFF} },
+/**/                  {{0X0970AD60, 0X3FE1255D} },
+/**/                  {{0X365B7A9B, 0X3FE7A8C2} },
+/**/                  {{0X8925F532, 0XBFD4C5B3} },
+/**/                  {{0X785E3070, 0X3F7FCB03} },
+/**/                  {{0X0EEDF3B3, 0X3FBD6854} },
+/**/                  {{0X479C252A, 0XBFB58967} } },
+/**/                 {{{0X002E31CB, 0X3FE31FFE} },
+/**/                  {{0X81FD3780, 0X3FE13CFA} },
+/**/                  {{0X1BBE9667, 0X3FE793FE} },
+/**/                  {{0X3046F4C7, 0XBFD4C40A} },
+/**/                  {{0X8F5E6BF1, 0X3F838BAE} },
+/**/                  {{0X83775C98, 0X3FBCFCBD} },
+/**/                  {{0X62E887AB, 0XBFB580FB} } },
+/**/                 {{{0XEDC7BFFD, 0X3FE34000} },
+/**/                  {{0X44D05200, 0X3FE15486} },
+/**/                  {{0X244A1DA5, 0X3FE77F39} },
+/**/                  {{0X9FB764C1, 0XBFD4C209} },
+/**/                  {{0X851B0BE5, 0X3F8724E2} },
+/**/                  {{0X507C76E0, 0X3FBC9147} },
+/**/                  {{0X19C7F0AB, 0XBFB576E5} } },
+/**/                 {{{0XCE042830, 0X3FE36001} },
+/**/                  {{0XC1656AE0, 0X3FE16BFB} },
+/**/                  {{0XAD3B2B77, 0X3FE76A77} },
+/**/                  {{0X74AAC296, 0XBFD4BFB3} },
+/**/                  {{0X05B229C2, 0X3F8AB070} },
+/**/                  {{0X87DCA54B, 0X3FBC260E} },
+/**/                  {{0XC90DF763, 0XBFB56B2F} } },
+/**/                 {{{0X89B8FC54, 0X3FE37FFE} },
+/**/                  {{0X77D0BA80, 0X3FE18359} },
+/**/                  {{0X660CAA3D, 0X3FE755BB} },
+/**/                  {{0X308BB975, 0XBFD4BD09} },
+/**/                  {{0XFE0A1240, 0X3F8E2E26} },
+/**/                  {{0X18790F26, 0X3FBBBB22} },
+/**/                  {{0XC094F3DA, 0XBFB55DE6} } },
+/**/                 {{{0X9B4DA842, 0X3FE3A001} },
+/**/                  {{0X100CD140, 0X3FE19AA7} },
+/**/                  {{0XD801F889, 0X3FE740FD} },
+/**/                  {{0X2C32C656, 0XBFD4BA0B} },
+/**/                  {{0X8ECA44A2, 0X3F90CF99} },
+/**/                  {{0XC9863443, 0X3FBB5066} },
+/**/                  {{0X406672B5, 0XBFB54F15} } },
+/**/                 {{{0XCE6B63E8, 0X3FE3C000} },
+/**/                  {{0X1D0B0AE0, 0X3FE1B1DD} },
+/**/                  {{0XF28670E6, 0X3FE72C45} },
+/**/                  {{0X92422E2E, 0XBFD4B6BB} },
+/**/                  {{0XA0D32146, 0X3F928141} },
+/**/                  {{0X37452321, 0X3FBAE606} },
+/**/                  {{0X77D91F56, 0XBFB53EC6} } },
+/**/                 {{{0X114A2607, 0X3FE3DFFF} },
+/**/                  {{0XC6FF6F20, 0X3FE1C8FD} },
+/**/                  {{0X206847A7, 0X3FE71792} },
+/**/                  {{0X669BD306, 0XBFD4B31B} },
+/**/                  {{0X04FFD28A, 0X3F942C3A} },
+/**/                  {{0XE7FC0825, 0X3FBA7BFD} },
+/**/                  {{0X82F471BA, 0XBFB52D05} } },
+/**/                 {{{0XC1DA9B7D, 0X3FE3FFFF} },
+/**/                  {{0X7F2E8840, 0X3FE1E00B} },
+/**/                  {{0X84371133, 0X3FE702E0} },
+/**/                  {{0X8012FBE4, 0XBFD4AF2B} },
+/**/                  {{0XBFC47F4B, 0X3F95D0B4} },
+/**/                  {{0XD80AB6C5, 0X3FBA1249} },
+/**/                  {{0X69A4108D, 0XBFB519DD} } },
+/**/                 {{{0XE11D9C33, 0X3FE41FFE} },
+/**/                  {{0X67C3EC20, 0X3FE1F703} },
+/**/                  {{0X026A76A0, 0X3FE6EE34} },
+/**/                  {{0X96514B12, 0XBFD4AAED} },
+/**/                  {{0X07BA2905, 0X3F976E83} },
+/**/                  {{0X261A1221, 0X3FB9A8FE} },
+/**/                  {{0X1D552BA0, 0XBFB50559} } },
+/**/                 {{{0XFA174676, 0X3FE43FFF} },
+/**/                  {{0X0FAFF860, 0X3FE20DE8} },
+/**/                  {{0X9EA6D162, 0X3FE6D98A} },
+/**/                  {{0X6B927B3B, 0XBFD4A662} },
+/**/                  {{0XF84ADBB0, 0X3F9905D8} },
+/**/                  {{0XDD484DB5, 0X3FB94015} },
+/**/                  {{0X783EEF44, 0XBFB4EF83} } },
+/**/                 {{{0X0D457FA4, 0X3FE45FFF} },
+/**/                  {{0X9F675300, 0X3FE224B6} },
+/**/                  {{0X3A093351, 0X3FE6C4E7} },
+/**/                  {{0XCBF2BFF8, 0XBFD4A18B} },
+/**/                  {{0X84BB8C16, 0X3F9A968A} },
+/**/                  {{0X93FBB975, 0X3FB8D7A4} },
+/**/                  {{0X3B37E4FB, 0XBFB4D867} } },
+/**/                 {{{0X8F910E57, 0X3FE47FFE} },
+/**/                  {{0XDD92B840, 0X3FE23B70} },
+/**/                  {{0X89B04359, 0X3FE6B048} },
+/**/                  {{0X974B07FF, 0XBFD49C6A} },
+/**/                  {{0X25F20251, 0X3F9C20BE} },
+/**/                  {{0X82E9673D, 0X3FB86FA8} },
+/**/                  {{0X0D12F550, 0XBFB4C00F} } },
+/**/                 {{{0X7323FC6B, 0X3FE4A001} },
+/**/                  {{0XE34E3420, 0X3FE25218} },
+/**/                  {{0XF277FE27, 0X3FE69BAC} },
+/**/                  {{0X7F856ABA, 0XBFD496FF} },
+/**/                  {{0X9928150C, 0X3F9DA49E} },
+/**/                  {{0X3EB66A26, 0X3FB8081E} },
+/**/                  {{0X78AB06C5, 0XBFB4A685} } },
+/**/                 {{{0XB1BF0500, 0X3FE4C000} },
+/**/                  {{0XBD8B2C80, 0X3FE268A9} },
+/**/                  {{0X42ABBD42, 0X3FE68719} },
+/**/                  {{0XEC74E64A, 0XBFD4914C} },
+/**/                  {{0XD0C3EEEC, 0X3F9F21DE} },
+/**/                  {{0X5B30AA05, 0X3FB7A122} },
+/**/                  {{0XEC53EF43, 0XBFB48BD4} } },
+/**/                 {{{0X1D07207B, 0X3FE4E001} },
+/**/                  {{0XDA64F7A0, 0X3FE27F26} },
+/**/                  {{0XA7CFBEB2, 0X3FE6728A} },
+/**/                  {{0X3FCBB247, 0XBFD48B53} },
+/**/                  {{0XA7354A41, 0X3FA04C60} },
+/**/                  {{0XEFF6F27A, 0X3FB73AAA} },
+/**/                  {{0XB81A6BB2, 0XBFB47007} } },
+/**/                 {{{0X5F36EB46, 0X3FE4FFFE} },
+/**/                  {{0X35DDD180, 0X3FE2958D} },
+/**/                  {{0X307B6AF3, 0X3FE65E04} },
+/**/                  {{0X828BB6E6, 0XBFD48514} },
+/**/                  {{0X48993ED9, 0X3FA1048E} },
+/**/                  {{0X468D7C59, 0X3FB6D4CB} },
+/**/                  {{0X0D484989, 0XBFB45328} } },
+/**/                 {{{0X2AFDF759, 0X3FE52001} },
+/**/                  {{0XEB1C3280, 0X3FE2ABE2} },
+/**/                  {{0X8DC5DAAD, 0X3FE64980} },
+/**/                  {{0X2C11E3B7, 0XBFD47E90} },
+/**/                  {{0X88E1B343, 0X3FA1B9AE} },
+/**/                  {{0XFF4501BF, 0X3FB66F6C} },
+/**/                  {{0XFCD6B8DE, 0XBFB4353F} } },
+/**/                 {{{0XDFDB2423, 0X3FE54001} },
+/**/                  {{0XAB0402C0, 0X3FE2C222} },
+/**/                  {{0XE7E657FB, 0X3FE63504} },
+/**/                  {{0XEEE53FA9, 0XBFD477C8} },
+/**/                  {{0X696CD845, 0X3FA26B9A} },
+/**/                  {{0X6A3AA6EF, 0X3FB60AAD} },
+/**/                  {{0X7704E1F4, 0XBFB41659} } },
+/**/                 {{{0X72D2A74F, 0X3FE55FFE} },
+/**/                  {{0X16BE7240, 0X3FE2D84B} },
+/**/                  {{0XCE54AEDE, 0X3FE62092} },
+/**/                  {{0X7B764156, 0XBFD470C0} },
+/**/                  {{0X4D9ABEE7, 0X3FA31A4C} },
+/**/                  {{0XA899A63D, 0X3FB5A697} },
+/**/                  {{0X49FA7FB1, 0XBFB3F67E} } },
+/**/                 {{{0XEE716C33, 0X3FE58000} },
+/**/                  {{0X284F3FE0, 0X3FE2EE63} },
+/**/                  {{0X181C5720, 0X3FE60C24} },
+/**/                  {{0XC383B0C1, 0XBFD46975} },
+/**/                  {{0XC40A1A5A, 0X3FA3C5FF} },
+/**/                  {{0X0B7B3B72, 0X3FB54311} },
+/**/                  {{0X21700401, 0XBFB3D5B8} } },
+/**/                 {{{0X9825CD2A, 0X3FE59FFF} },
+/**/                  {{0X2DEFCF40, 0X3FE30464} },
+/**/                  {{0X3C14A317, 0X3FE5F7BF} },
+/**/                  {{0X227A4CDE, 0XBFD461EC} },
+/**/                  {{0X6DA8D837, 0X3FA46E85} },
+/**/                  {{0X6162F4C8, 0X3FB4E03C} },
+/**/                  {{0X857F5976, 0XBFB3B410} } },
+/**/                 {{{0XFE2A42CD, 0X3FE5BFFD} },
+/**/                  {{0XA5110DC0, 0X3FE31A50} },
+/**/                  {{0X33CF1268, 0X3FE5E362} },
+/**/                  {{0XF68B7DBC, 0XBFD45A23} },
+/**/                  {{0XDE40F0E9, 0X3FA513F5} },
+/**/                  {{0XDE05901E, 0X3FB47E12} },
+/**/                  {{0XDA5CABB5, 0XBFB39190} } },
+/**/                 {{{0X57330799, 0X3FE5E000} },
+/**/                  {{0X75253480, 0X3FE3302B} },
+/**/                  {{0X901DA45A, 0X3FE5CF0A} },
+/**/                  {{0X552754CF, 0XBFD4521D} },
+/**/                  {{0XBBF000BB, 0X3FA5B66B} },
+/**/                  {{0XD2BAF7B2, 0X3FB41C8B} },
+/**/                  {{0X5F53241A, 0XBFB36E42} } },
+/**/                 {{{0X4D6055DA, 0X3FE60001} },
+/**/                  {{0XFF2EDA60, 0X3FE345F0} },
+/**/                  {{0XF2EA5900, 0X3FE5BABB} },
+/**/                  {{0XB2008754, 0XBFD449DA} },
+/**/                  {{0X18F56FBB, 0X3FA655D1} },
+/**/                  {{0X89A0C1B2, 0X3FB3BBBB} },
+/**/                  {{0X2E8D60FC, 0XBFB34A2E} } },
+/**/                 {{{0X2C3809CB, 0X3FE62001} },
+/**/                  {{0X812D5040, 0X3FE35BA1} },
+/**/                  {{0X671E49E9, 0X3FE5A676} },
+/**/                  {{0X230E6216, 0XBFD4415D} },
+/**/                  {{0X6B05C7F7, 0X3FA6F22D} },
+/**/                  {{0XCFE6B72B, 0X3FB35BA4} },
+/**/                  {{0X3C3BFA3B, 0XBFB3255D} } },
+/**/                 {{{0X87B47ECC, 0X3FE64000} },
+/**/                  {{0X69715580, 0X3FE3713D} },
+/**/                  {{0XC8FB0E69, 0X3FE59239} },
+/**/                  {{0XA5BD1F6E, 0XBFD438A5} },
+/**/                  {{0X7F9B13CF, 0X3FA78B89} },
+/**/                  {{0X74F57C8F, 0X3FB2FC49} },
+/**/                  {{0X566CAACA, 0XBFB2FFD8} } },
+/**/                 {{{0XA746397F, 0X3FE66000} },
+/**/                  {{0X9D968940, 0X3FE386C5} },
+/**/                  {{0X83073C58, 0X3FE57E05} },
+/**/                  {{0XFE3D0083, 0XBFD42FB4} },
+/**/                  {{0X4B9E1EEB, 0X3FA821F1} },
+/**/                  {{0X1952EE82, 0X3FB29DA9} },
+/**/                  {{0X245866A8, 0XBFB2D9A8} } },
+/**/                 {{{0XE4E3094B, 0X3FE68000} },
+/**/                  {{0XB5FE3900, 0X3FE39C39} },
+/**/                  {{0X36DD131E, 0X3FE569DA} },
+/**/                  {{0X74778FE0, 0XBFD4268C} },
+/**/                  {{0X9AB0310F, 0X3FA8B567} },
+/**/                  {{0XF2E43205, 0X3FB23FC8} },
+/**/                  {{0X26483573, 0XBFB2B2D5} } },
+/**/                 {{{0XE2E37787, 0X3FE6A001} },
+/**/                  {{0X27D52620, 0X3FE3B19A} },
+/**/                  {{0XB5D865CD, 0X3FE555B7} },
+/**/                  {{0XF1600CD3, 0XBFD41D2C} },
+/**/                  {{0X4B79E859, 0X3FA945F5} },
+/**/                  {{0X46A0B02D, 0X3FB1E2AA} },
+/**/                  {{0XB508A35B, 0XBFB28B67} } },
+/**/                 {{{0X0DF4BBFB, 0X3FE6BFFE} },
+/**/                  {{0X46F2B6E0, 0X3FE3C6E3} },
+/**/                  {{0XB658AFBE, 0X3FE541A1} },
+/**/                  {{0X388DA137, 0XBFD41399} },
+/**/                  {{0XE5B3C2BA, 0X3FA9D387} },
+/**/                  {{0X173397F9, 0X3FB18660} },
+/**/                  {{0X01DB4945, 0XBFB26368} } },
+/**/                 {{{0XEA406CEA, 0X3FE6DFFF} },
+/**/                  {{0X1BB3D400, 0X3FE3DC1C} },
+/**/                  {{0XD33FFE8E, 0X3FE52D91} },
+/**/                  {{0X36BCFFE9, 0XBFD409CF} },
+/**/                  {{0X174405AF, 0X3FAA5E54} },
+/**/                  {{0XDC041806, 0X3FB12ACE} },
+/**/                  {{0X160D6557, 0XBFB23ADE} } },
+/**/                 {{{0XED01EA65, 0X3FE70000} },
+/**/                  {{0X54E51400, 0X3FE3F140} },
+/**/                  {{0X5C8B9119, 0X3FE5198C} },
+/**/                  {{0XF2EA4FF7, 0XBFD3FFD1} },
+/**/                  {{0X308C81CD, 0X3FAAE643} },
+/**/                  {{0X1960AAF7, 0X3FB0D00C} },
+/**/                  {{0XD2F50D25, 0XBFB211D1} } },
+/**/                 {{{0X00D515EB, 0X3FE72002} },
+/**/                  {{0X983BB3E0, 0X3FE40650} },
+/**/                  {{0XF2175C71, 0X3FE50590} },
+/**/                  {{0X361BB15C, 0XBFD3F5A2} },
+/**/                  {{0X9B536AFC, 0X3FAB6B5F} },
+/**/                  {{0XA731624D, 0X3FB07617} },
+/**/                  {{0XF1A8C054, 0XBFB1E84A} } },
+/**/                 {{{0X1323DE6D, 0X3FE74001} },
+/**/                  {{0X9483E720, 0X3FE41B4B} },
+/**/                  {{0X1027BA01, 0X3FE4F1A1} },
+/**/                  {{0XBB978C8F, 0XBFD3EB41} },
+/**/                  {{0X7765626A, 0X3FABEDA7} },
+/**/                  {{0X97F58C8A, 0X3FB01CF9} },
+/**/                  {{0X03074348, 0XBFB1BE51} } },
+/**/                 {{{0X25CAB4CA, 0X3FE75FFF} },
+/**/                  {{0X0001D5C0, 0X3FE43032} },
+/**/                  {{0X4573FB6C, 0X3FE4DDBC} },
+/**/                  {{0X41F21D2A, 0XBFD3E0B1} },
+/**/                  {{0XD1BDA00F, 0X3FAC6D25} },
+/**/                  {{0X5935EE68, 0X3FAF8962} },
+/**/                  {{0X6F8E0689, 0XBFB193EB} } },
+/**/                 {{{0X90921F76, 0X3FE77FFE} },
+/**/                  {{0X6CC6AF00, 0X3FE44505} },
+/**/                  {{0X4CFFBDAE, 0X3FE4C9E1} },
+/**/                  {{0X0B247EC4, 0XBFD3D5F1} },
+/**/                  {{0X943F4516, 0X3FACE9EA} },
+/**/                  {{0XF24A8AF1, 0X3FAEDA73} },
+/**/                  {{0X776AAC42, 0XBFB16921} } },
+/**/                 {{{0X47B2F83B, 0X3FE79FFE} },
+/**/                  {{0X35C19F20, 0X3FE459C5} },
+/**/                  {{0XFC8F20BD, 0X3FE4B610} },
+/**/                  {{0X73DF2A0D, 0XBFD3CB02} },
+/**/                  {{0X23C5D6DE, 0X3FAD63F8} },
+/**/                  {{0X9C5116AB, 0X3FAE2D31} },
+/**/                  {{0X326E2972, 0XBFB13DFA} } },
+/**/                 {{{0X2F1E79A9, 0X3FE7BFFF} },
+/**/                  {{0XF84DF5C0, 0X3FE46E71} },
+/**/                  {{0XF586B1BD, 0X3FE4A24A} },
+/**/                  {{0X2EF81E5B, 0XBFD3BFE6} },
+/**/                  {{0X738896F0, 0X3FADDB58} },
+/**/                  {{0X2515DE78, 0X3FAD819A} },
+/**/                  {{0X9026FDD0, 0XBFB1127C} } },
+/**/                 {{{0X973C8D05, 0X3FE7E001} },
+/**/                  {{0XF0FB9580, 0X3FE4830B} },
+/**/                  {{0X3466B08E, 0X3FE48E8F} },
+/**/                  {{0X1C53A01A, 0XBFD3B49D} },
+/**/                  {{0X25103EED, 0X3FAE5013} },
+/**/                  {{0X5290F4AF, 0X3FACD7AF} },
+/**/                  {{0X57EF003B, 0XBFB0E6AF} } },
+/**/                 {{{0X69EFC092, 0X3FE7FFFF} },
+/**/                  {{0X431C3800, 0X3FE4978F} },
+/**/                  {{0XA3E1064A, 0X3FE47AE1} },
+/**/                  {{0X666C50C4, 0XBFD3A92A} },
+/**/                  {{0X4098A4BE, 0X3FAEC219} },
+/**/                  {{0X2EEE57E0, 0X3FAC2F94} },
+/**/                  {{0X290D5730, 0XBFB0BA99} } },
+/**/                 {{{0XC52B5232, 0X3FE82001} },
+/**/                  {{0XD2B83340, 0X3FE4AC01} },
+/**/                  {{0XD31B7CF5, 0X3FE4673C} },
+/**/                  {{0XC67D05F0, 0XBFD39D8B} },
+/**/                  {{0X2A81B5D5, 0X3FAF3192} },
+/**/                  {{0X8AA20E90, 0X3FAB891B} },
+/**/                  {{0X7ADCEFD6, 0XBFB08E40} } },
+/**/                 {{{0XBD4D4E3F, 0X3FE84000} },
+/**/                  {{0X9B1DBC60, 0X3FE4C05E} },
+/**/                  {{0XC8D629F7, 0X3FE453A5} },
+/**/                  {{0X13E9EF47, 0XBFD391C5} },
+/**/                  {{0X17383D6B, 0X3FAF9E69} },
+/**/                  {{0X278E21B9, 0X3FAAE471} },
+/**/                  {{0X9CF54D10, 0XBFB061AB} } },
+/**/                 {{{0X8C869CBD, 0X3FE86001} },
+/**/                  {{0XFD2285A0, 0X3FE4D4A8} },
+/**/                  {{0X79B82471, 0X3FE44019} },
+/**/                  {{0X5C3E2929, 0XBFD385D5} },
+/**/                  {{0X7B2C8FF2, 0X3FB0045B} },
+/**/                  {{0X39D7CA4F, 0X3FAA417C} },
+/**/                  {{0XB767B7D4, 0XBFB034E0} } },
+/**/                 {{{0XB5DB3710, 0X3FE87FFE} },
+/**/                  {{0X8B93BCA0, 0X3FE4E8DD} },
+/**/                  {{0X66C6E6BF, 0X3FE42C9B} },
+/**/                  {{0XA32EE2A1, 0XBFD379BF} },
+/**/                  {{0X6187FE0F, 0X3FB03838} },
+/**/                  {{0X8B3A0B33, 0X3FA9A05A} },
+/**/                  {{0XCAEE03A9, 0XBFB007E5} } },
+/**/                 {{{0X863C77E3, 0X3FE8A000} },
+/**/                  {{0X8FCD1E80, 0X3FE4FD01} },
+/**/                  {{0XA8A8093F, 0X3FE41926} },
+/**/                  {{0XB5EE344D, 0XBFD36D81} },
+/**/                  {{0X2841F292, 0X3FB06ADC} },
+/**/                  {{0X2484560B, 0X3FA900E4} },
+/**/                  {{0X62792F0A, 0XBFAFB581} } },
+/**/                 {{{0X0ED982AF, 0X3FE8BFFF} },
+/**/                  {{0X16E28AC0, 0X3FE51110} },
+/**/                  {{0X389112EE, 0X3FE405C0} },
+/**/                  {{0X89D38DC7, 0XBFD3611F} },
+/**/                  {{0XB450B9F7, 0X3FB09C3D} },
+/**/                  {{0X312D0C4A, 0X3FA86342} },
+/**/                  {{0X3A6CA012, 0XBFAF5AEE} } },
+/**/                 {{{0X02C3AEAE, 0X3FE8E000} },
+/**/                  {{0XC0AB0A40, 0X3FE5250C} },
+/**/                  {{0XC65593C5, 0X3FE3F264} },
+/**/                  {{0XD82BE900, 0XBFD35497} },
+/**/                  {{0X68546D39, 0X3FB0CC69} },
+/**/                  {{0XDB8499FD, 0X3FA7C759} },
+/**/                  {{0X36A32337, 0XBFAF001D} } },
+/**/                 {{{0XECBFA97B, 0X3FE90000} },
+/**/                  {{0X0E8D4EE0, 0X3FE538F6} },
+/**/                  {{0XF4119333, 0X3FE3DF15} },
+/**/                  {{0X7D2149F4, 0XBFD347EC} },
+/**/                  {{0XFA921D3C, 0X3FB0FB5E} },
+/**/                  {{0X69693E89, 0X3FA72D38} },
+/**/                  {{0X23A0F5F3, 0XBFAEA519} } },
+/**/                 {{{0XD251C01C, 0X3FE91FFF} },
+/**/                  {{0XD3F3BD20, 0X3FE54CCA} },
+/**/                  {{0X1554DD15, 0X3FE3CBD5} },
+/**/                  {{0X2BC94245, 0XBFD33B1F} },
+/**/                  {{0X2FC4C3F6, 0X3FB1291F} },
+/**/                  {{0X1B7A765C, 0X3FA694E8} },
+/**/                  {{0X826E86F6, 0XBFAE49EC} } },
+/**/                 {{{0XD90AF4E6, 0X3FE94001} },
+/**/                  {{0X4D4EC640, 0X3FE5608E} },
+/**/                  {{0X3445EF72, 0X3FE3B89F} },
+/**/                  {{0XB7BBD79A, 0XBFD32E2E} },
+/**/                  {{0XE401D071, 0X3FB155B4} },
+/**/                  {{0X3A256F1C, 0X3FA5FE51} },
+/**/                  {{0X890FF662, 0XBFADEEA1} } },
+/**/                 {{{0X04FD6C17, 0X3FE96001} },
+/**/                  {{0XD5673C20, 0X3FE5743C} },
+/**/                  {{0X09EBC6E2, 0X3FE3A578} },
+/**/                  {{0X6DA5039C, 0XBFD3211E} },
+/**/                  {{0X4E62286B, 0X3FB1811B} },
+/**/                  {{0X71BECE9D, 0X3FA56990} },
+/**/                  {{0X23911641, 0XBFAD9342} } },
+/**/                 {{{0X2D214B82, 0X3FE98000} },
+/**/                  {{0X3B0D6120, 0X3FE587D8} },
+/**/                  {{0X01EAAC3E, 0X3FE3925E} },
+/**/                  {{0X08425504, 0XBFD313EE} },
+/**/                  {{0X02BDB571, 0X3FB1AB5A} },
+/**/                  {{0X9EBD70B8, 0X3FA4D698} },
+/**/                  {{0XF482965A, 0XBFAD37D7} } },
+/**/                 {{{0XEB980651, 0X3FE99FFD} },
+/**/                  {{0XB16BA7A0, 0X3FE59B5F} },
+/**/                  {{0X10B1AB7A, 0X3FE37F52} },
+/**/                  {{0XF993D676, 0XBFD3069E} },
+/**/                  {{0XCDED25A8, 0X3FB1D472} },
+/**/                  {{0X2D0ABD9A, 0X3FA44570} },
+/**/                  {{0X56221AA1, 0XBFACDC6C} } },
+/**/                 {{{0XE5504053, 0X3FE9BFFF} },
+/**/                  {{0XB55DE6A0, 0X3FE5AED6} },
+/**/                  {{0XFA91C51E, 0X3FE36C50} },
+/**/                  {{0XBE311E56, 0XBFD2F92F} },
+/**/                  {{0X5BE3AF05, 0X3FB1FC70} },
+/**/                  {{0XACD5CDC7, 0X3FA3B5FD} },
+/**/                  {{0X5ADBB9B8, 0XBFAC8108} } },
+/**/                 {{{0X6E60A234, 0X3FE9E001} },
+/**/                  {{0X79ACD480, 0X3FE5C23A} },
+/**/                  {{0XA5FAB2EA, 0X3FE3595D} },
+/**/                  {{0X1DDECEEA, 0XBFD2EBA3} },
+/**/                  {{0X35736518, 0X3FB22350} },
+/**/                  {{0X22F9FD28, 0X3FA32856} },
+/**/                  {{0XCE8B2259, 0XBFAC25B4} } },
+/**/                 {{{0XB685741B, 0X3FE9FFFF} },
+/**/                  {{0X5AD40460, 0X3FE5D589} },
+/**/                  {{0XD832B8D3, 0X3FE34679} },
+/**/                  {{0X230EDA41, 0XBFD2DDFB} },
+/**/                  {{0XB23C0BA2, 0X3FB24912} },
+/**/                  {{0X4C4E86DA, 0X3FA29C85} },
+/**/                  {{0X37002A55, 0XBFABCA7A} } },
+/**/                 {{{0X9D59B943, 0X3FEA2001} },
+/**/                  {{0X8C187EA0, 0X3FE5E8C7} },
+/**/                  {{0X9EDE2183, 0X3FE333A1} },
+/**/                  {{0XB0043779, 0XBFD2D035} },
+/**/                  {{0X7AB9110C, 0X3FB26DC3} },
+/**/                  {{0X959CFC0E, 0X3FA2126C} },
+/**/                  {{0XD556233E, 0XBFAB6F60} } },
+/**/                 {{{0XBE9E153F, 0X3FEA3FFF} },
+/**/                  {{0XA9C08AE0, 0X3FE5FBF0} },
+/**/                  {{0X6F7861AA, 0X3FE320D9} },
+/**/                  {{0XC2200F18, 0XBFD2C256} },
+/**/                  {{0XA6795293, 0X3FB2915D} },
+/**/                  {{0X256A8FDE, 0X3FA18A2B} },
+/**/                  {{0XA67A4E89, 0XBFAB1470} } },
+/**/                 {{{0X7A23A1CE, 0X3FEA5FFE} },
+/**/                  {{0X63200600, 0X3FE60F07} },
+/**/                  {{0XD13D395E, 0X3FE30E1E} },
+/**/                  {{0X44403932, 0XBFD2B45D} },
+/**/                  {{0XC967F013, 0X3FB2B3E9} },
+/**/                  {{0X35D002B8, 0X3FA103AD} },
+/**/                  {{0X6496A8F1, 0XBFAAB9B1} } },
+/**/                 {{{0X57F250B8, 0X3FEA8001} },
+/**/                  {{0XDD6453A0, 0X3FE6220D} },
+/**/                  {{0XCFFFCC1E, 0X3FE2FB6F} },
+/**/                  {{0X6F8D8291, 0XBFD2A648} },
+/**/                  {{0X03654CC3, 0X3FB2D56F} },
+/**/                  {{0X4BB6E7A6, 0X3FA07EE3} },
+/**/                  {{0X87992F03, 0XBFAA5F2A} } },
+/**/                 {{{0XDD839D49, 0X3FEAA000} },
+/**/                  {{0XB412C9A0, 0X3FE634FF} },
+/**/                  {{0XE2D59E01, 0X3FE2E8D0} },
+/**/                  {{0X5467CFDD, 0XBFD2981C} },
+/**/                  {{0XFF1FADB5, 0X3FB2F5E8} },
+/**/                  {{0XA3BA803C, 0X3F9FF7D6} },
+/**/                  {{0X46AF8DB7, 0XBFAA04E3} } },
+/**/                 {{{0X770DF220, 0X3FEAC000} },
+/**/                  {{0XFEF70020, 0X3FE647DE} },
+/**/                  {{0X220AFF7F, 0X3FE2D640} },
+/**/                  {{0X36F9E74F, 0XBFD289D8} },
+/**/                  {{0XE509140A, 0X3FB3155E} },
+/**/                  {{0X61AB0B7F, 0X3F9EF56B} },
+/**/                  {{0X98CE391F, 0XBFA9AAE2} } },
+/**/                 {{{0X125BBE48, 0X3FEAE001} },
+/**/                  {{0X57A24D20, 0X3FE65AAC} },
+/**/                  {{0X1BFB3559, 0X3FE2C3BD} },
+/**/                  {{0X6DDE55DD, 0XBFD27B7C} },
+/**/                  {{0X15C4C270, 0X3FB333D5} },
+/**/                  {{0X9BAC4ECF, 0X3F9DF67A} },
+/**/                  {{0X363A972B, 0XBFA9512F} } },
+/**/                 {{{0X7C321839, 0X3FEAFFFE} },
+/**/                  {{0X569B83C0, 0X3FE66D65} },
+/**/                  {{0X53FBF8D9, 0X3FE2B14A} },
+/**/                  {{0X9CFA03CE, 0XBFD26D0B} },
+/**/                  {{0X2CAA2E0C, 0X3FB3514B} },
+/**/                  {{0X4597BE9A, 0X3F9CFB22} },
+/**/                  {{0X99110022, 0XBFA8F7CF} } },
+/**/                 {{{0X75486924, 0X3FEB1FFE} },
+/**/                  {{0X68CEFB40, 0X3FE6800D} },
+/**/                  {{0X8E6AA814, 0X3FE29EE4} },
+/**/                  {{0XE8AFA7EB, 0XBFD25E83} },
+/**/                  {{0XFB0E8AC8, 0X3FB36DC9} },
+/**/                  {{0XAD5D66CA, 0X3F9C0331} },
+/**/                  {{0XFEDB1E8B, 0XBFA89EC9} } },
+/**/                 {{{0X5FB8DEB8, 0X3FEB4001} },
+/**/                  {{0XD137C500, 0X3FE692A4} },
+/**/                  {{0XABFF668E, 0X3FE28C8B} },
+/**/                  {{0XD8E71E0A, 0XBFD24FE5} },
+/**/                  {{0X1297317A, 0X3FB38955} },
+/**/                  {{0X1D844655, 0X3F9B0EA3} },
+/**/                  {{0X6914067D, 0XBFA84624} } },
+/**/                 {{{0X386C27B9, 0X3FEB6000} },
+/**/                  {{0X8CDF6FC0, 0X3FE6A527} },
+/**/                  {{0XC5758DB8, 0X3FE27A43} },
+/**/                  {{0X59CADCE0, 0XBFD24135} },
+/**/                  {{0XEE34AE91, 0X3FB3A3E9} },
+/**/                  {{0X1C5FFF05, 0X3F9A1DA8} },
+/**/                  {{0X9EC8AAC6, 0XBFA7EDE4} } },
+/**/                 {{{0XD1EFDDB3, 0X3FEB8000} },
+/**/                  {{0X0ACCB660, 0X3FE6B799} },
+/**/                  {{0X9983AAB2, 0X3FE26809} },
+/**/                  {{0X76047E08, 0XBFD23270} },
+/**/                  {{0XF132139B, 0X3FB3BD90} },
+/**/                  {{0X58DEB3E1, 0X3F993010} },
+/**/                  {{0X2D194CE9, 0XBFA79610} } },
+/**/                 {{{0X42CC4047, 0X3FEB9FFE} },
+/**/                  {{0X86445E60, 0X3FE6C9F6} },
+/**/                  {{0X069F871F, 0X3FE255E0} },
+/**/                  {{0X25461639, 0XBFD2239A} },
+/**/                  {{0XA926C127, 0X3FB3D649} },
+/**/                  {{0XC5A21F70, 0X3F9845FB} },
+/**/                  {{0X68E20BE6, 0XBFA73EAC} } },
+/**/                 {{{0X951AEAAD, 0X3FEBC001} },
+/**/                  {{0X3C4E45A0, 0X3FE6DC45} },
+/**/                  {{0XFF6573B0, 0X3FE243C1} },
+/**/                  {{0XE38FA7E7, 0XBFD214AE} },
+/**/                  {{0X5EA1330F, 0X3FB3EE1E} },
+/**/                  {{0X2BCCE6DF, 0X3F975F24} },
+/**/                  {{0X6F3902C5, 0XBFA6E7BE} } },
+/**/                 {{{0X6616FE11, 0X3FEBDFFE} },
+/**/                  {{0X27106FE0, 0X3FE6EE7E} },
+/**/                  {{0X97B587F0, 0X3FE231B6} },
+/**/                  {{0X240FEF32, 0XBFD205B5} },
+/**/                  {{0X44EB818C, 0X3FB40509} },
+/**/                  {{0X108160F9, 0X3F967BDE} },
+/**/                  {{0X271D18AD, 0XBFA6914B} } },
+/**/                 {{{0X54511C72, 0X3FEBFFFF} },
+/**/                  {{0X643BBB40, 0X3FE700A7} },
+/**/                  {{0XE1823C8B, 0X3FE21FB7} },
+/**/                  {{0X9A854F7A, 0XBFD1F6A8} },
+/**/                  {{0X71F04837, 0X3FB41B15} },
+/**/                  {{0XBBD10F7C, 0X3F959BD8} },
+/**/                  {{0X41F03711, 0XBFA63B57} } },
+/**/                 {{{0XC537593E, 0X3FEC2000} },
+/**/                  {{0XF36D6400, 0X3FE712BE} },
+/**/                  {{0XF754B2D5, 0X3FE20DC7} },
+/**/                  {{0X9D24DBED, 0XBFD1E78B} },
+/**/                  {{0X94F485E0, 0X3FB43043} },
+/**/                  {{0X122A6884, 0X3F94BF29} },
+/**/                  {{0X3D2AA4E9, 0XBFA5E5E7} } },
+/**/                 {{{0XDDD35719, 0X3FEC4000} },
+/**/                  {{0XD7FA3000, 0X3FE724C3} },
+/**/                  {{0XF2A8B1BF, 0X3FE1FBE7} },
+/**/                  {{0XB25DDDF6, 0XBFD1D85F} },
+/**/                  {{0XD2E3B20F, 0X3FB44495} },
+/**/                  {{0X7FCC1B30, 0X3F93E5D6} },
+/**/                  {{0X62D0D00F, 0XBFA590FF} } },
+/**/                 {{{0X402375B6, 0X3FEC6000} },
+/**/                  {{0X7DFF3720, 0X3FE736B6} },
+/**/                  {{0X86C92387, 0X3FE1EA17} },
+/**/                  {{0X31DDFC58, 0XBFD1C925} },
+/**/                  {{0XF8B6CBC2, 0X3FB4580F} },
+/**/                  {{0X00CE998E, 0X3F930FD7} },
+/**/                  {{0XCB299E5F, 0XBFA53CA3} } },
+/**/                 {{{0X19904FE4, 0X3FEC7FFF} },
+/**/                  {{0X0F395860, 0X3FE74897} },
+/**/                  {{0XA825BA33, 0X3FE1D856} },
+/**/                  {{0XA75E0FC5, 0XBFD1B9DC} },
+/**/                  {{0X79F8FD7D, 0X3FB46AB5} },
+/**/                  {{0XA5A90AFE, 0X3F923D23} },
+/**/                  {{0X5D2F574B, 0XBFA4E8D8} } },
+/**/                 {{{0XF9E2409D, 0X3FEC9FFE} },
+/**/                  {{0X79E7F1C0, 0X3FE75A66} },
+/**/                  {{0X8740D2E9, 0X3FE1C6A4} },
+/**/                  {{0XF198392C, 0XBFD1AA85} },
+/**/                  {{0X808C583A, 0X3FB47C8A} },
+/**/                  {{0X857F2526, 0X3F916DAC} },
+/**/                  {{0XD0477576, 0XBFA495A0} } },
+/**/                 {{{0XE038EF72, 0X3FECC001} },
+/**/                  {{0XE6815140, 0X3FE76C25} },
+/**/                  {{0X19BDADF8, 0X3FE1B500} },
+/**/                  {{0XB4A469AE, 0XBFD19B20} },
+/**/                  {{0X42387EA2, 0X3FB48D93} },
+/**/                  {{0X7305BAF5, 0X3F90A15F} },
+/**/                  {{0XACAE4E17, 0XBFA44300} } },
+/**/                 {{{0XEB72037F, 0X3FECDFFE} },
+/**/                  {{0X7A7A4AA0, 0X3FE77DD0} },
+/**/                  {{0X4F1F6702, 0X3FE1A36E} },
+/**/                  {{0XD0992CF8, 0XBFD18BB1} },
+/**/                  {{0X5AA4990D, 0X3FB49DCE} },
+/**/                  {{0X63759665, 0X3F8FB0DD} },
+/**/                  {{0X4D2F0C0F, 0XBFA3F0FB} } },
+/**/                 {{{0XEA4839ED, 0X3FECFFFF} },
+/**/                  {{0XB17088C0, 0X3FE78F6B} },
+/**/                  {{0XCF32122F, 0X3FE191E9} },
+/**/                  {{0X220400AC, 0XBFD17C35} },
+/**/                  {{0X0A159641, 0X3FB4AD44} },
+/**/                  {{0X80894CA9, 0X3F8E252C} },
+/**/                  {{0XDF89C265, 0XBFA39F93} } },
+/**/                 {{{0XEC3EC8B2, 0X3FED1FFD} },
+/**/                  {{0XC8C6C880, 0X3FE7A0F3} },
+/**/                  {{0X729F01D6, 0X3FE18076} },
+/**/                  {{0X98515540, 0XBFD16CAE} },
+/**/                  {{0X1B0933FF, 0X3FB4BBF4} },
+/**/                  {{0XE09A60CD, 0X3F8C9FF5} },
+/**/                  {{0X662A5704, 0XBFA34ECD} } },
+/**/                 {{{0X7084EDD4, 0X3FED3FFF} },
+/**/                  {{0X5F02F220, 0X3FE7B26C} },
+/**/                  {{0XB9973206, 0X3FE16F10} },
+/**/                  {{0X9E1E0A54, 0XBFD15D1B} },
+/**/                  {{0XAC2C9A30, 0X3FB4C9E4} },
+/**/                  {{0XEFCE76CC, 0X3F8B20DD} },
+/**/                  {{0XB888BC37, 0XBFA2FEAA} } },
+/**/                 {{{0X8D728E7C, 0X3FED5FFE} },
+/**/                  {{0X488D7E80, 0X3FE7C3D2} },
+/**/                  {{0XE622A5A7, 0X3FE15DBB} },
+/**/                  {{0XA305CEB2, 0XBFD14D7F} },
+/**/                  {{0X417BF1C7, 0X3FB4D716} },
+/**/                  {{0XE19FE239, 0X3F89A81E} },
+/**/                  {{0X84DDAD07, 0XBFA2AF2E} } },
+/**/                 {{{0X70AA3B03, 0X3FED7FFF} },
+/**/                  {{0XDB239580, 0X3FE7D527} },
+/**/                  {{0XBE4FEA01, 0X3FE14C75} },
+/**/                  {{0X2AD706AA, 0XBFD13DD9} },
+/**/                  {{0XB49D32AA, 0X3FB4E38D} },
+/**/                  {{0X37DF2B6D, 0X3F88357A} },
+/**/                  {{0X507CD77B, 0XBFA2605B} } },
+/**/                 {{{0X1434FBA3, 0X3FED9FFF} },
+/**/                  {{0X82C8A720, 0X3FE7E66B} },
+/**/                  {{0XED9B7FED, 0X3FE13B3F} },
+/**/                  {{0X3AC9D646, 0XBFD12E2A} },
+/**/                  {{0XE7B01CF5, 0X3FB4EF4C} },
+/**/                  {{0XD25FD52D, 0X3F86C905} },
+/**/                  {{0X798666EF, 0XBFA21233} } },
+/**/                 {{{0XA8C8DE8C, 0X3FEDBFFE} },
+/**/                  {{0XF4A0A520, 0X3FE7F79D} },
+/**/                  {{0XD7FC2119, 0X3FE12A19} },
+/**/                  {{0XC6BE19DF, 0XBFD11E72} },
+/**/                  {{0X634E1B91, 0X3FB4FA57} },
+/**/                  {{0X47F96DF5, 0X3F8562A6} },
+/**/                  {{0X373AF599, 0XBFA1C4B9} } },
+/**/                 {{{0X26573DF5, 0X3FEDE000} },
+/**/                  {{0X4DBCB960, 0X3FE808C0} },
+/**/                  {{0X7903E4B9, 0X3FE11902} },
+/**/                  {{0X5CDFED06, 0XBFD10EB2} },
+/**/                  {{0XCCA681FA, 0X3FB504B0} },
+/**/                  {{0X6F3CDE09, 0X3F840238} },
+/**/                  {{0X9BA8FA6A, 0XBFA177EE} } },
+/**/                 {{{0X35009B66, 0X3FEDFFFE} },
+/**/                  {{0XC2CB5340, 0X3FE819CF} },
+/**/                  {{0XB1C942B5, 0X3FE107FC} },
+/**/                  {{0X230D7D92, 0XBFD0FEEC} },
+/**/                  {{0X75C5B4F1, 0X3FB50E5A} },
+/**/                  {{0XE3C139D8, 0X3F82A7E8} },
+/**/                  {{0X93FA642B, 0XBFA12BD5} } },
+/**/                 {{{0X492D4C68, 0X3FEE2000} },
+/**/                  {{0X5CCB8680, 0X3FE82AD0} },
+/**/                  {{0X928E55DF, 0X3FE0F704} },
+/**/                  {{0XEE0B0721, 0XBFD0EF1C} },
+/**/                  {{0X937BFB74, 0X3FB51759} },
+/**/                  {{0X2BC9FDDB, 0X3F815359} },
+/**/                  {{0XEA1D1824, 0XBFA0E06F} } },
+/**/                 {{{0X9412BB65, 0X3FEE4000} },
+/**/                  {{0X14001A60, 0X3FE83BBF} },
+/**/                  {{0X37F485DA, 0X3FE0E61D} },
+/**/                  {{0X1B2BD37D, 0XBFD0DF48} },
+/**/                  {{0X64024D14, 0X3FB51FAF} },
+/**/                  {{0X9B849698, 0X3F8004B9} },
+/**/                  {{0X450A2434, 0XBFA095BF} } },
+/**/                 {{{0X4758EF2F, 0X3FEE5FFF} },
+/**/                  {{0X1531C180, 0X3FE84C9C} },
+/**/                  {{0X8B7FECE7, 0X3FE0D546} },
+/**/                  {{0X105BFE1E, 0XBFD0CF6E} },
+/**/                  {{0XF9C5E03A, 0X3FB5275E} },
+/**/                  {{0X17AA1137, 0X3F7D77F2} },
+/**/                  {{0X2A6891E1, 0XBFA04BC5} } },
+/**/                 {{{0X380F819F, 0X3FEE8000} },
+/**/                  {{0X74CCC060, 0X3FE85D69} },
+/**/                  {{0X8F1DA5B5, 0X3FE0C47E} },
+/**/                  {{0X62AD700F, 0XBFD0BF8D} },
+/**/                  {{0X1F3FBC2B, 0X3FB52E6C} },
+/**/                  {{0XEE24AD7D, 0X3F7AF1C3} },
+/**/                  {{0XFECE26C9, 0XBFA00282} } },
+/**/                 {{{0XA6D8CB7B, 0X3FEEA000} },
+/**/                  {{0XD00E3A60, 0X3FE86E25} },
+/**/                  {{0XBA314D62, 0X3FE0B3C6} },
+/**/                  {{0XE7CB2D84, 0XBFD0AFA7} },
+/**/                  {{0X08E9071F, 0X3FB534D9} },
+/**/                  {{0X4CE5E5C9, 0X3F787704} },
+/**/                  {{0X0EB7C9D5, 0XBF9F73F4} } },
+/**/                 {{{0X5A13BA60, 0X3FEEC000} },
+/**/                  {{0X19B163E0, 0X3FE87ED1} },
+/**/                  {{0X2EBB7AD7, 0X3FE0A31F} },
+/**/                  {{0X33A3FCE1, 0XBFD09FBE} },
+/**/                  {{0X89D9AF5D, 0X3FB53AA8} },
+/**/                  {{0XF7F7040B, 0X3F760799} },
+/**/                  {{0XD3F0B3FB, 0XBF9EE456} } },
+/**/                 {{{0X58F8DD18, 0X3FEEDFFF} },
+/**/                  {{0X6681CA80, 0X3FE88F6B} },
+/**/                  {{0XEC4360B3, 0X3FE09287} },
+/**/                  {{0XB7CE07E5, 0XBFD08FD0} },
+/**/                  {{0X7BDEDD3F, 0X3FB53FDD} },
+/**/                  {{0X70C52E66, 0X3F73A366} },
+/**/                  {{0X5DCA7315, 0XBF9E5630} } },
+/**/                 {{{0XBE033400, 0X3FEEFFFF} },
+/**/                  {{0XDD4D7960, 0X3FE89FF5} },
+/**/                  {{0XDFFE15BD, 0X3FE081FF} },
+/**/                  {{0XDAE56C0F, 0XBFD07FDE} },
+/**/                  {{0XF84D6F5D, 0X3FB5447A} },
+/**/                  {{0X7982941E, 0X3F714A24} },
+/**/                  {{0X81E68835, 0XBF9DC982} } },
+/**/                 {{{0XE6B5125D, 0X3FEF2001} },
+/**/                  {{0XBBE88160, 0X3FE8B070} },
+/**/                  {{0XDF7122E2, 0X3FE07186} },
+/**/                  {{0XDE905325, 0XBFD06FE8} },
+/**/                  {{0XB5DEEC7A, 0X3FB54883} },
+/**/                  {{0XB4A186D5, 0X3F6DF762} },
+/**/                  {{0XDE20F495, 0XBF9D3E4E} } },
+/**/                 {{{0XF770E0DB, 0X3FEF3FFD} },
+/**/                  {{0X09E96380, 0X3FE8C0D8} },
+/**/                  {{0XF5A576A9, 0X3FE06120} },
+/**/                  {{0X1D2912FF, 0XBFD05FF3} },
+/**/                  {{0X8CD1001F, 0X3FB54BF9} },
+/**/                  {{0X6E90DC16, 0X3F6970FC} },
+/**/                  {{0XD8EB587E, 0XBF9CB496} } },
+/**/                 {{{0X4E16DA33, 0X3FEF5FFE} },
+/**/                  {{0X29BCCDC0, 0X3FE8D131} },
+/**/                  {{0XD33BA4E9, 0X3FE050C8} },
+/**/                  {{0XD74C83D2, 0XBFD04FF8} },
+/**/                  {{0X592BB252, 0X3FB54EE0} },
+/**/                  {{0X7193EEB5, 0X3F64FF61} },
+/**/                  {{0XA459AC86, 0XBF9C2C5B} } },
+/**/                 {{{0X4576FF2E, 0X3FEF8000} },
+/**/                  {{0XCCE443A0, 0X3FE8E17A} },
+/**/                  {{0XD8A97B6C, 0X3FE0407F} },
+/**/                  {{0XC91B3E55, 0XBFD03FFB} },
+/**/                  {{0X5F3357F7, 0X3FB5513A} },
+/**/                  {{0X14C92B53, 0X3F60A2BA} },
+/**/                  {{0X3E70DF71, 0XBF9BA59E} } },
+/**/                 {{{0X39B6A330, 0X3FEF9FFF} },
+/**/                  {{0XA7F515A0, 0X3FE8F1B2} },
+/**/                  {{0X63064158, 0X3FE03048} },
+/**/                  {{0XACBAADA8, 0XBFD02FFE} },
+/**/                  {{0XF27448C0, 0X3FB55309} },
+/**/                  {{0X4850006B, 0X3F58B6D6} },
+/**/                  {{0X742323DF, 0XBF9B205F} } },
+/**/                 {{{0XAA76C0B9, 0X3FEFC001} },
+/**/                  {{0X15D66D80, 0X3FE901DC} },
+/**/                  {{0X28D9B4AA, 0X3FE0201F} },
+/**/                  {{0XA98D4C38, 0XBFD01FFE} },
+/**/                  {{0X089780F8, 0X3FB55452} },
+/**/                  {{0X7F35C5BB, 0X3F5050B5} },
+/**/                  {{0XE19247AF, 0XBF9A9C9F} } },
+/**/                 {{{0X39A592CA, 0X3FEFDFFE} },
+/**/                  {{0X6D88A780, 0X3FE911F2} },
+/**/                  {{0XE40C6538, 0X3FE01008} },
+/**/                  {{0XD31688DE, 0XBFD01000} },
+/**/                  {{0XE32F1816, 0X3FB55514} },
+/**/                  {{0X4E1628D2, 0X3F402A15} },
+/**/                  {{0XF4FAF5A0, 0XBF9A1A5F} } },
+/**/                 {{{0X8E92D1B0, 0X3FEFF801} },
+/**/                  {{0X9BB4BF00, 0X3FE91DFB} },
+/**/                  {{0XB884C5A9, 0X3FE003FF} },
+/**/                  {{0X3876A954, 0XBFD003FF} },
+/**/                  {{0X5539DDFB, 0X3FB55551} },
+/**/                  {{0X7B95E6C2, 0X3F2007E7} },
+/**/                  {{0X18A3BA58, 0XBF99B9A7} } },
+  };
+
+  static const number
+     hij[241][16] = {                             /* x0,hij for (1/16,1) */
+/**/                 {{{0x00000000, 0x3fb04000} },
+/**/                  {{0x1c06693d, 0x3fb03a6d} },
+/**/                  {{0xd4e7f128, 0xbc428a02} },
+/**/                  {{0xe92592ae, 0x3fefdf1f} },
+/**/                  {{0xb5490162, 0x3c88bfc0} },
+/**/                  {{0x8f7e4151, 0xbfb01ead} },
+/**/                  {{0x0b64d205, 0xbc5395e8} },
+/**/                  {{0x433dd49b, 0xbfd4d29f} },
+/**/                  {{0x4aa42633, 0xbc75b19d} },
+/**/                  {{0xce35961d, 0x3fafda41} },
+/**/                  {{0x425d7696, 0x3c4e6a5f} },
+/**/                  {{0x6c1bb5e2, 0x3fc814dd} },
+/**/                  {{0x2b33739f, 0xbfaf4cb7} },
+/**/                  {{0xc267d8ec, 0xbfc048b2} },
+/**/                  {{0xe8ababc6, 0x3fae9649} },
+/**/                  {{0xfe802692, 0x3fb78293} } },
+/**/                 {{{0x00000000, 0x3fb10000} },
+/**/                  {{0xa71d52a7, 0x3fb0f99e} },
+/**/                  {{0xeec3624f, 0xbc22069f} },
+/**/                  {{0x9a49d2a9, 0x3fefdc08} },
+/**/                  {{0x68b2ce25, 0x3c7780f7} },
+/**/                  {{0x9da73e1d, 0xbfb0d9de} },
+/**/                  {{0xa1a487bf, 0x3c4ebf46} },
+/**/                  {{0xd13ea108, 0xbfd4c669} },
+/**/                  {{0xebb4528c, 0x3c7354bc} },
+/**/                  {{0x789374c1, 0x3fb0a137} },
+/**/                  {{0xc3f2c5c2, 0xbc56c223} },
+/**/                  {{0x79c60cda, 0x3fc7f0e7} },
+/**/                  {{0xcdcc7b81, 0xbfb05062} },
+/**/                  {{0xc5266783, 0xbfc019e4} },
+/**/                  {{0xf2540289, 0x3fafd0b2} },
+/**/                  {{0xf6d3cd8a, 0x3fb71107} } },
+/**/                 {{{0x00000000, 0x3fb20000} },
+/**/                  {{0xbf082d59, 0x3fb1f86d} },
+/**/                  {{0x7732ef81, 0xbc4095dc} },
+/**/                  {{0x01722b81, 0x3fefd7b3} },
+/**/                  {{0x8a212e02, 0xbc5e618c} },
+/**/                  {{0xee4e9cfa, 0xbfb1d2c5} },
+/**/                  {{0x29abece0, 0x3c426273} },
+/**/                  {{0x37eb7f46, 0xbfd4b551} },
+/**/                  {{0x01d8bf12, 0x3c73b360} },
+/**/                  {{0x6adb6a7c, 0x3fb18fa7} },
+/**/                  {{0x398999ad, 0xbc5c00d8} },
+/**/                  {{0xf4a7cff3, 0x3fc7bea5} },
+/**/                  {{0x61f84829, 0xbfb13008} },
+/**/                  {{0xa8e135a1, 0xbfbfb14f} },
+/**/                  {{0x4324f177, 0x3fb0b532} },
+/**/                  {{0x3498dd9d, 0x3fb6734a} } },
+/**/                 {{{0x00000000, 0x3fb30000} },
+/**/                  {{0x318a4a9a, 0x3fb2f719} },
+/**/                  {{0x79b9801f, 0x3c03fd17} },
+/**/                  {{0x48e238fe, 0x3fefd31f} },
+/**/                  {{0xd8c45327, 0xbc876a7a} },
+/**/                  {{0x852096e2, 0xbfb2cada} },
+/**/                  {{0x11efd787, 0x3c460860} },
+/**/                  {{0x2e476a39, 0xbfd4a34b} },
+/**/                  {{0xeb11ee51, 0x3c7254f2} },
+/**/                  {{0xc54ae225, 0x3fb27c13} },
+/**/                  {{0x4ae66f0c, 0x3c513096} },
+/**/                  {{0xef0d59d0, 0x3fc789ca} },
+/**/                  {{0x6d9aaa8c, 0xbfb20c06} },
+/**/                  {{0x846ba912, 0xbfbf2885} },
+/**/                  {{0xc697ef5e, 0x3fb17c5f} },
+/**/                  {{0xcad31e6e, 0x3fb5ce93} } },
+/**/                 {{{0x00000000, 0x3fb40000} },
+/**/                  {{0x0e7c559d, 0x3fb3f59f} },
+/**/                  {{0x285df847, 0x3c5ac4ce} },
+/**/                  {{0xa6ab93e9, 0x3fefce4d} },
+/**/                  {{0x18a97736, 0xbc6be46b} },
+/**/                  {{0x4d22b635, 0xbfb3c211} },
+/**/                  {{0x6950679f, 0x3c42033c} },
+/**/                  {{0xc4d74033, 0xbfd49059} },
+/**/                  {{0xd7e376aa, 0x3c57dd7c} },
+/**/                  {{0xc0896a7c, 0x3fb36662} },
+/**/                  {{0xd79232cf, 0xbc36cf6a} },
+/**/                  {{0xa13a97a2, 0x3fc75261} },
+/**/                  {{0x5fdd1509, 0xbfb2e431} },
+/**/                  {{0x6e52db32, 0xbfbe9999} },
+/**/                  {{0xb0a71e9f, 0x3fb23da4} },
+/**/                  {{0xe3bc8178, 0x3fb52335} } },
+/**/                 {{{0x00000000, 0x3fb50000} },
+/**/                  {{0x677292fb, 0x3fb4f3fd} },
+/**/                  {{0x6264979e, 0x3c4008d3} },
+/**/                  {{0x53a1ee0d, 0x3fefc93e} },
+/**/                  {{0x20fd2bdf, 0xbc64421a} },
+/**/                  {{0x4aba88e3, 0xbfb4b85f} },
+/**/                  {{0x3c9d1e89, 0x3c54f184} },
+/**/                  {{0x25ae4668, 0xbfd47c7f} },
+/**/                  {{0x816630d1, 0xbc7d7581} },
+/**/                  {{0x07f85056, 0x3fb44e7b} },
+/**/                  {{0x910bdf4f, 0x3c56d63c} },
+/**/                  {{0xc439029c, 0x3fc71875} },
+/**/                  {{0xf2bcfa10, 0xbfb3b85e} },
+/**/                  {{0x9707b205, 0xbfbe04bb} },
+/**/                  {{0x95e3e0cc, 0x3fb2f8c6} },
+/**/                  {{0x8093431b, 0x3fb47184} } },
+/**/                 {{{0x00000000, 0x3fb60000} },
+/**/                  {{0x4fd2d7b2, 0x3fb5f232} },
+/**/                  {{0x4401318e, 0x3c58a8da} },
+/**/                  {{0x8b549418, 0x3fefc3f1} },
+/**/                  {{0x836f8130, 0x3c34d896} },
+/**/                  {{0x9cdd92e7, 0xbfb5adb9} },
+/**/                  {{0xeb397cc3, 0x3c4d4161} },
+/**/                  {{0x93f8f1dc, 0xbfd467bd} },
+/**/                  {{0xffc760ad, 0xbc609d7b} },
+/**/                  {{0xbea6b2fe, 0x3fb53443} },
+/**/                  {{0x4b24f5db, 0x3c5eb03c} },
+/**/                  {{0x8de3d005, 0x3fc6dc13} },
+/**/                  {{0x37d2d99d, 0xbfb48866} },
+/**/                  {{0xf6663fcb, 0xbfbd6a1d} },
+/**/                  {{0x0adff464, 0x3fb3ad8e} },
+/**/                  {{0x4159c223, 0x3fb3b9d6} } },
+/**/                 {{{0x00000000, 0x3fb70000} },
+/**/                  {{0xdcea4b0d, 0x3fb6f03b} },
+/**/                  {{0x512fa17d, 0xbc33f00e} },
+/**/                  {{0x8c07a436, 0x3fefbe67} },
+/**/                  {{0x46250d6f, 0xbc84baaa} },
+/**/                  {{0x7e3ba4c7, 0xbfb6a215} },
+/**/                  {{0x54503f8d, 0xbc3504e7} },
+/**/                  {{0x6b82d03a, 0xbfd45217} },
+/**/                  {{0xbebdd1db, 0x3c7d1f0d} },
+/**/                  {{0x841d5604, 0x3fb617a4} },
+/**/                  {{0x6681c436, 0xbc47168b} },
+/**/                  {{0xaccec6ce, 0x3fc69d47} },
+/**/                  {{0xa4715800, 0xbfb5541f} },
+/**/                  {{0x335a1c1b, 0xbfbcc9f4} },
+/**/                  {{0xbac0061f, 0x3fb45bc6} },
+/**/                  {{0x2b3853b6, 0x3fb2fc84} } },
+/**/                 {{{0x00000000, 0x3fb80000} },
+/**/                  {{0x2602f10f, 0x3fb7ee18} },
+/**/                  {{0x4c0c3d98, 0xbc5cfb65} },
+/**/                  {{0x96acfacc, 0x3fefb8a0} },
+/**/                  {{0x18495af3, 0xbc82962e} },
+/**/                  {{0x46635c89, 0xbfb79568} },
+/**/                  {{0xa6bfd498, 0x3c5ac468} },
+/**/                  {{0x2037b997, 0xbfd43b8f} },
+/**/                  {{0xe2f12373, 0xbc72ad53} },
+/**/                  {{0x7900c4ee, 0x3fb6f885} },
+/**/                  {{0x0aef1f9d, 0x3c53145d} },
+/**/                  {{0x4409ba0e, 0x3fc65c1f} },
+/**/                  {{0x1d176e0c, 0xbfb61b65} },
+/**/                  {{0x8ad65152, 0xbfbc2473} },
+/**/                  {{0x7bc246c1, 0x3fb5033f} },
+/**/                  {{0x6db30b46, 0x3fb239e9} } },
+/**/                 {{{0x00000000, 0x3fb90000} },
+/**/                  {{0x4478fb28, 0x3fb8ebc5} },
+/**/                  {{0x0cad24cc, 0x3c473288} },
+/**/                  {{0xeedcd6d7, 0x3fefb29c} },
+/**/                  {{0x23ea50f0, 0x3c8efa9e} },
+/**/                  {{0x6ae09982, 0xbfb887a7} },
+/**/                  {{0x53801511, 0x3c5b2275} },
+/**/                  {{0x3da0757c, 0xbfd42427} },
+/**/                  {{0x311c7ac8, 0xbc7199e5} },
+/**/                  {{0x4388717b, 0x3fb7d6cf} },
+/**/                  {{0x3dd070b4, 0xbc5c4eb2} },
+/**/                  {{0xe6c2b5f3, 0x3fc618a7} },
+/**/                  {{0x00313569, 0xbfb6de12} },
+/**/                  {{0xb6316619, 0xbfbb79d2} },
+/**/                  {{0x61af5c21, 0x3fb5a3ca} },
+/**/                  {{0x26e60289, 0x3fb17263} } },
+/**/                 {{{0x00000000, 0x3fba0000} },
+/**/                  {{0x53cfdcf1, 0x3fb9e941} },
+/**/                  {{0x1d69c47e, 0x3c5a332e} },
+/**/                  {{0xdace3776, 0x3fefac5c} },
+/**/                  {{0x1ad91ab5, 0xbc8c9a78} },
+/**/                  {{0x8054ad75, 0xbfb978c8} },
+/**/                  {{0x8ed66c17, 0xbc5e35b8} },
+/**/                  {{0x665afed1, 0xbfd40be2} },
+/**/                  {{0x08ef10fb, 0x3c62eeef} },
+/**/                  {{0x13c989d2, 0x3fb8b26b} },
+/**/                  {{0xbfeab3ba, 0x3c329f11} },
+/**/                  {{0x93c8f97c, 0x3fc5d2ef} },
+/**/                  {{0x30234881, 0xbfb79c03} },
+/**/                  {{0xd0f650c8, 0xbfbaca49} },
+/**/                  {{0xce2dcccc, 0x3fb63d3c} },
+/**/                  {{0x26fb0af2, 0x3fb0a650} } },
+/**/                 {{{0x00000000, 0x3fbb0000} },
+/**/                  {{0x71c722b8, 0x3fbae68a} },
+/**/                  {{0x6910b9db, 0x3c4c014e} },
+/**/                  {{0xa34ef42b, 0x3fefa5e0} },
+/**/                  {{0xeb56d5b9, 0xbc836583} },
+/**/                  {{0x3b881779, 0xbfba68c1} },
+/**/                  {{0x13a09314, 0xbc473a0d} },
+/**/                  {{0x538e939c, 0xbfd3f2c3} },
+/**/                  {{0xee53e648, 0xbc68ed49} },
+/**/                  {{0xa7d45973, 0x3fb98b42} },
+/**/                  {{0x461ca7c4, 0xbc523943} },
+/**/                  {{0xb0f2e2bb, 0x3fc58b04} },
+/**/                  {{0x1c9d23dc, 0xbfb85517} },
+/**/                  {{0x3e3b5a66, 0xbfba1612} },
+/**/                  {{0x7ef1d0b9, 0x3fb6cf6f} },
+/**/                  {{0x6617b315, 0x3fafac21} } },
+/**/                 {{{0x00000000, 0x3fbc0000} },
+/**/                  {{0xbe6f07c3, 0x3fbbe39e} },
+/**/                  {{0x29a05987, 0x3c5f7b8f} },
+/**/                  {{0x93bb9192, 0x3fef9f28} },
+/**/                  {{0x7cd1bdab, 0x3c78260b} },
+/**/                  {{0x72759741, 0xbfbb5787} },
+/**/                  {{0xa6767247, 0x3c52f93f} },
+/**/                  {{0xd45bbe91, 0xbfd3d8cc} },
+/**/                  {{0x2edc0762, 0x3c664839} },
+/**/                  {{0x4fa31d26, 0x3fba6140} },
+/**/                  {{0x97891510, 0x3c400647} },
+/**/                  {{0x0668fd66, 0x3fc540f6} },
+/**/                  {{0xcb2f6e8f, 0xbfb9092d} },
+/**/                  {{0x8d902073, 0xbfb95d66} },
+/**/                  {{0x99c53d16, 0x3fb75a3e} },
+/**/                  {{0x8f475e61, 0x3fae040c} } },
+/**/                 {{{0x00000000, 0x3fbd0000} },
+/**/                  {{0x5c3cca32, 0x3fbce07c} },
+/**/                  {{0x425918a7, 0x3c4138e6} },
+/**/                  {{0xf9f6d421, 0x3fef9834} },
+/**/                  {{0x8c22a239, 0x3c6f3089} },
+/**/                  {{0x1d4e69a5, 0xbfbc4511} },
+/**/                  {{0xd2083ce8, 0x3c254c0f} },
+/**/                  {{0xcd488978, 0xbfd3be01} },
+/**/                  {{0x6362ec0f, 0x3c5612db} },
+/**/                  {{0xf0d94873, 0x3fbb344e} },
+/**/                  {{0xfdf7db72, 0xbc182beb} },
+/**/                  {{0xb9d86c04, 0x3fc4f4d2} },
+/**/                  {{0xdf238807, 0xbfb9b828} },
+/**/                  {{0x5f93ffd6, 0xbfb8a082} },
+/**/                  {{0xb6650b0c, 0x3fb7dd89} },
+/**/                  {{0xb62676ef, 0x3fac5526} } },
+/**/                 {{{0x00000000, 0x3fbe0000} },
+/**/                  {{0x701eba6e, 0x3fbddd21} },
+/**/                  {{0xcd76fe58, 0x3c594eff} },
+/**/                  {{0x266112ba, 0x3fef9106} },
+/**/                  {{0x6b7e18b1, 0x3c74c302} },
+/**/                  {{0x5777816c, 0xbfbd3154} },
+/**/                  {{0x1f9dbddd, 0x3c5dc7e4} },
+/**/                  {{0x37a90881, 0xbfd3a265} },
+/**/                  {{0xeb7ba840, 0xbc75bd61} },
+/**/                  {{0x0a52514b, 0x3fbc045a} },
+/**/                  {{0xcff49a99, 0xbc35ca88} },
+/**/                  {{0x498eeb56, 0x3fc4a6aa} },
+/**/                  {{0xa09232cf, 0xbfba61eb} },
+/**/                  {{0x4a464027, 0xbfb7dfa2} },
+/**/                  {{0xe633c053, 0x3fb85933} },
+/**/                  {{0x3f920107, 0x3faaa036} } },
+/**/                 {{{0x00000000, 0x3fbf0000} },
+/**/                  {{0x2190043b, 0x3fbed98c} },
+/**/                  {{0x592c7b13, 0xbc23a598} },
+/**/                  {{0x6bcf4ad8, 0x3fef899c} },
+/**/                  {{0x912c09b0, 0x3c55fd73} },
+/**/                  {{0x607f91a0, 0xbfbe1c47} },
+/**/                  {{0x5b5db022, 0x3c576677} },
+/**/                  {{0x21046f5f, 0xbfd385fa} },
+/**/                  {{0x4487f4b8, 0x3c7f01c3} },
+/**/                  {{0xb77f2d51, 0x3fbcd14d} },
+/**/                  {{0x30a2ccfe, 0x3c57a86d} },
+/**/                  {{0x8782b530, 0x3fc4568c} },
+/**/                  {{0x02b7ad2d, 0xbfbb065b} },
+/**/                  {{0xbd215555, 0xbfb71b03} },
+/**/                  {{0xb9c1c1de, 0x3fb8cd23} },
+/**/                  {{0x8dbfa69b, 0x3fa8e602} } },
+/**/                 {{{0x00000000, 0x3fc00000} },
+/**/                  {{0x9aac2f6e, 0x3fbfd5ba} },
+/**/                  {{0x86760c17, 0xbc4cd376} },
+/**/                  {{0x1f81f820, 0x3fef81f8} },
+/**/                  {{0x1f81f820, 0xbc8f81f8} },
+/**/                  {{0x9d0dc11b, 0xbfbf05e0} },
+/**/                  {{0x1d821725, 0xbc35a199} },
+/**/                  {{0xaa76e1d7, 0xbfd368c3} },
+/**/                  {{0xc796f8cd, 0xbc672d4c} },
+/**/                  {{0xb391c2e3, 0x3fbd9b16} },
+/**/                  {{0x8086c51d, 0x3c58051b} },
+/**/                  {{0x94488c86, 0x3fc40489} },
+/**/                  {{0xa98401c8, 0xbfbba55d} },
+/**/                  {{0xe5127e64, 0xbfb652e4} },
+/**/                  {{0x442e53ae, 0x3fb93943} },
+/**/                  {{0x86286f75, 0x3fa72753} } },
+/**/                 {{{0x00000000, 0x3fc08000} },
+/**/                  {{0x84212b3e, 0x3fc068d5} },
+/**/                  {{0x83019bfd, 0xbc69e2d2} },
+/**/                  {{0x991bb133, 0x3fef7a19} },
+/**/                  {{0x66627723, 0x3c7a956a} },
+/**/                  {{0x97c8e137, 0xbfbfee16} },
+/**/                  {{0x66dbe7af, 0x3c4d9399} },
+/**/                  {{0x0810323a, 0xbfd34ac5} },
+/**/                  {{0x6bc6c512, 0x3c6a1a57} },
+/**/                  {{0x5c75a6f9, 0x3fbe61a2} },
+/**/                  {{0xd75c8f85, 0xbc492b99} },
+/**/                  {{0xd9fa3f20, 0x3fc3b0b1} },
+/**/                  {{0xee66d309, 0xbfbc3edb} },
+/**/                  {{0x905eeb33, 0xbfb58784} },
+/**/                  {{0x1c65bb14, 0x3fb99d80} },
+/**/                  {{0x18a09884, 0x3fa564f1} } },
+/**/                 {{{0x00000000, 0x3fc10000} },
+/**/                  {{0xccf40882, 0x3fc0e6ad} },
+/**/                  {{0x1bb98d0d, 0xbc6d71a3} },
+/**/                  {{0x32978bad, 0x3fef7201} },
+/**/                  {{0x599381e9, 0x3c816476} },
+/**/                  {{0x011b81fd, 0xbfc06a70} },
+/**/                  {{0x9ba697ca, 0xbc422f5d} },
+/**/                  {{0x802fc0a5, 0xbfd32c01} },
+/**/                  {{0x08a20868, 0x3c7d8e47} },
+/**/                  {{0xb59597fe, 0x3fbf24de} },
+/**/                  {{0x410d31eb, 0xbc43288f} },
+/**/                  {{0x070feb24, 0x3fc35b16} },
+/**/                  {{0xe4565b78, 0xbfbcd2bf} },
+/**/                  {{0x128768c6, 0xbfb4b922} },
+/**/                  {{0x5c42a097, 0x3fb9f9cb} },
+/**/                  {{0xc7f97f2e, 0x3fa39fa2} } },
+/**/                 {{{0x00000000, 0x3fc18000} },
+/**/                  {{0x41060850, 0x3fc16465} },
+/**/                  {{0x8ae7ea92, 0x3c66bcee} },
+/**/                  {{0x483f492b, 0x3fef69af} },
+/**/                  {{0x57db963e, 0xbc6e3280} },
+/**/                  {{0xdacaa844, 0xbfc0dd19} },
+/**/                  {{0xad7fc21e, 0xbc6133c7} },
+/**/                  {{0x6addaea8, 0xbfd30c7c} },
+/**/                  {{0x89161c76, 0xbc71443d} },
+/**/                  {{0x6a6d3cd2, 0x3fbfe4ba} },
+/**/                  {{0x423ee67a, 0x3c50d4b8} },
+/**/                  {{0x092e569a, 0x3fc303c7} },
+/**/                  {{0x5b11d3b6, 0xbfbd60f5} },
+/**/                  {{0x283b5c55, 0xbfb3e7fd} },
+/**/                  {{0x9d9a6ab7, 0x3fba4e19} },
+/**/                  {{0x3487cc29, 0x3fa1d82f} } },
+/**/                 {{{0x00000000, 0x3fc20000} },
+/**/                  {{0xfb043727, 0x3fc1e1fa} },
+/**/                  {{0x14dacf8c, 0xbc4b4859} },
+/**/                  {{0x38a14f5e, 0x3fef6124} },
+/**/                  {{0x001f6124, 0x3c798e9e} },
+/**/                  {{0x59d3fb7c, 0xbfc14f04} },
+/**/                  {{0x4cc99cb2, 0x3c531efa} },
+/**/                  {{0x31219b34, 0xbfd2ec39} },
+/**/                  {{0x6e004611, 0xbc618697} },
+/**/                  {{0x68736312, 0x3fc05092} },
+/**/                  {{0x8a06e4b5, 0x3c67aad4} },
+/**/                  {{0x07eca5ec, 0x3fc2aad6} },
+/**/                  {{0xe19fe31c, 0xbfbde969} },
+/**/                  {{0xdb6b9127, 0xbfb31455} },
+/**/                  {{0xf53dd9ee, 0x3fba9a62} },
+/**/                  {{0xa8e4ede0, 0x3fa00f5b} } },
+/**/                 {{{0x00000000, 0x3fc28000} },
+/**/                  {{0x171a535c, 0x3fc25f6e} },
+/**/                  {{0xbde1a310, 0x3c67c6d7} },
+/**/                  {{0x64866d22, 0x3fef5860} },
+/**/                  {{0xd1f6326c, 0x3c88c6ff} },
+/**/                  {{0x13c11396, 0xbfc1c02b} },
+/**/                  {{0xffeb1a0f, 0xbc51b469} },
+/**/                  {{0x4c571b0f, 0xbfd2cb3b} },
+/**/                  {{0x2fb0b163, 0x3c6e4f76} },
+/**/                  {{0xf5c213ab, 0x3fc0ad06} },
+/**/                  {{0xabea9e66, 0x3c625bf2} },
+/**/                  {{0x5f93bbb2, 0x3fc25054} },
+/**/                  {{0xc80a32c8, 0xbfbe6c0c} },
+/**/                  {{0x678d0d1e, 0xbfb23e6c} },
+/**/                  {{0xebf8ae4b, 0x3fbadea2} },
+/**/                  {{0x527f133b, 0x3f9c8bd7} } },
+/**/                 {{{0x00000000, 0x3fc30000} },
+/**/                  {{0xb2fba1ff, 0x3fc2dcbd} },
+/**/                  {{0x05561534, 0x3c58f287} },
+/**/                  {{0x2ee76e94, 0x3fef4f64} },
+/**/                  {{0xc6da5865, 0x3c80ec89} },
+/**/                  {{0xb322f867, 0xbfc23089} },
+/**/                  {{0x5fcd0d6f, 0x3c4c2b54} },
+/**/                  {{0x45802261, 0xbfd2a986} },
+/**/                  {{0x5ae78b8a, 0xbc79a132} },
+/**/                  {{0x35a9d974, 0x3fc107b3} },
+/**/                  {{0xb725e335, 0x3c5ef22d} },
+/**/                  {{0x9bd98832, 0x3fc1f453} },
+/**/                  {{0x2057aad4, 0xbfbee8cf} },
+/**/                  {{0x1e1bc3a1, 0xbfb16681} },
+/**/                  {{0x759c8f58, 0x3fbb1ad8} },
+/**/                  {{0x0b15b4aa, 0x3f98f941} } },
+/**/                 {{{0x00000000, 0x3fc38000} },
+/**/                  {{0xedeb99a4, 0x3fc359e8} },
+/**/                  {{0x4e4604c6, 0xbc6a5fd7} },
+/**/                  {{0xfce28238, 0x3fef462f} },
+/**/                  {{0xd90595d1, 0x3c83dc01} },
+/**/                  {{0xf7edfa6d, 0xbfc2a01b} },
+/**/                  {{0x4a3b5c9a, 0xbc6b11fb} },
+/**/                  {{0xb4959402, 0xbfd2871d} },
+/**/                  {{0x2fcf7ea3, 0xbc4a3702} },
+/**/                  {{0xd8d7fe8c, 0x3fc1608f} },
+/**/                  {{0xf8f1d41c, 0x3c61ac60} },
+/**/                  {{0x729a89ca, 0x3fc196e5} },
+/**/                  {{0xbec74f31, 0xbfbf5fa3} },
+/**/                  {{0x4b6c9767, 0xbfb08cd4} },
+/**/                  {{0xe624ce15, 0x3fbb4f05} },
+/**/                  {{0xddb2020c, 0x3f956871} } },
+/**/                 {{{0x00000000, 0x3fc40000} },
+/**/                  {{0xe8c6626c, 0x3fc3d6ee} },
+/**/                  {{0x0ce9281b, 0x3c661a3b} },
+/**/                  {{0x35b0713c, 0x3fef3cc4} },
+/**/                  {{0xe69ea094, 0x3c81d0a7} },
+/**/                  {{0xb7d169f0, 0xbfc30edd} },
+/**/                  {{0xae999b97, 0x3c6b3394} },
+/**/                  {{0x3fd62b3c, 0xbfd26405} },
+/**/                  {{0xc0736df9, 0x3c73e339} },
+/**/                  {{0xe8e57ee3, 0x3fc1b795} },
+/**/                  {{0x0a42c7f6, 0xbc6130dc} },
+/**/                  {{0xbe93b8e5, 0x3fc1381b} },
+/**/                  {{0x394e1bf7, 0xbfbfd07f} },
+/**/                  {{0x37bb5315, 0xbfaf634c} },
+/**/                  {{0xe501e57b, 0x3fbb7b30} },
+/**/                  {{0x20503792, 0x3f91dae1} } },
+/**/                 {{{0x00000000, 0x3fc48000} },
+/**/                  {{0xc6092a9e, 0x3fc453ce} },
+/**/                  {{0xb3a5a78b, 0x3c61f653} },
+/**/                  {{0x4299ace8, 0x3fef3321} },
+/**/                  {{0x3a742b30, 0xbc87414c} },
+/**/                  {{0xde8b2323, 0xbfc37cca} },
+/**/                  {{0x7b50aedf, 0x3c649378} },
+/**/                  {{0x9b13f4d0, 0xbfd24040} },
+/**/                  {{0xb7dc85c0, 0x3c7e271f} },
+/**/                  {{0xc9024068, 0x3fc20cbe} },
+/**/                  {{0x88ef3da7, 0x3c50921f} },
+/**/                  {{0x7a1f1270, 0x3fc0d808} },
+/**/                  {{0xf32d5436, 0xbfc01dab} },
+/**/                  {{0x02e6f09c, 0xbfadaa6d} },
+/**/                  {{0x5e9cd766, 0x3fbb9f62} },
+/**/                  {{0xab964c04, 0x3f8ca3fe} } },
+/**/                 {{{0x00000000, 0x3fc50000} },
+/**/                  {{0xa9da4f17, 0x3fc4d087} },
+/**/                  {{0xf1adf158, 0x3c61f323} },
+/**/                  {{0x8eeb3352, 0x3fef2947} },
+/**/                  {{0x8799a164, 0x3c871eb0} },
+/**/                  {{0x6e36e75c, 0xbfc3e9df} },
+/**/                  {{0x4e37666f, 0x3c541555} },
+/**/                  {{0x87008bd0, 0xbfd21bd3} },
+/**/                  {{0xc24ff75f, 0xbc609e14} },
+/**/                  {{0x36860504, 0x3fc26004} },
+/**/                  {{0x1ebc8c40, 0xbc58f8ca} },
+/**/                  {{0xb9f4ead3, 0x3fc076bd} },
+/**/                  {{0xed70ddd5, 0xbfc05012} },
+/**/                  {{0x33e194b1, 0xbfabef8a} },
+/**/                  {{0x7423a91f, 0x3fbbbba6} },
+/**/                  {{0xdd99da12, 0x3f859e6a} } },
+/**/                 {{{0x00000000, 0x3fc58000} },
+/**/                  {{0xba11570a, 0x3fc54d18} },
+/**/                  {{0xf2884073, 0x3c618282} },
+/**/                  {{0x87eb4d7d, 0x3fef1f37} },
+/**/                  {{0xedda13e6, 0x3c8476f0} },
+/**/                  {{0x7f997c7c, 0xbfc45617} },
+/**/                  {{0x6423ceda, 0xbc46bf5b} },
+/**/                  {{0xd0784ec7, 0xbfd1f6c1} },
+/**/                  {{0xd106a8e0, 0xbc74ec12} },
+/**/                  {{0x4967338d, 0x3fc2b160} },
+/**/                  {{0x61339c25, 0x3c5309c0} },
+/**/                  {{0xa7f42962, 0x3fc0144d} },
+/**/                  {{0x73dbaeec, 0xbfc07f71} },
+/**/                  {{0x2aeda9a4, 0xbfaa3322} },
+/**/                  {{0x69b152b3, 0x3fbbd00c} },
+/**/                  {{0x4c782821, 0x3f7d4f90} } },
+/**/                 {{{0x00000000, 0x3fc60000} },
+/**/                  {{0x1e3ec26a, 0x3fc5c981} },
+/**/                  {{0x2c010f3d, 0xbc5054ab} },
+/**/                  {{0x9cce28eb, 0x3fef14f1} },
+/**/                  {{0x2708cd6e, 0xbc8b7c25} },
+/**/                  {{0x42678d07, 0xbfc4c16f} },
+/**/                  {{0xc1560017, 0x3c5f55ba} },
+/**/                  {{0x4fccc153, 0xbfd1d10f} },
+/**/                  {{0x1bcc361d, 0x3c529588} },
+/**/                  {{0x74979f8c, 0x3fc300cd} },
+/**/                  {{0x0bc1e891, 0xbc6b1da5} },
+/**/                  {{0xfbe70208, 0x3fbf6194} },
+/**/                  {{0x4b1c266f, 0xbfc0abc5} },
+/**/                  {{0x3b74e858, 0xbfa875b2} },
+/**/                  {{0x92e46f11, 0x3fbbdca6} },
+/**/                  {{0x9de94aef, 0x3f6f0b17} } },
+/**/                 {{{0x00000000, 0x3fc68000} },
+/**/                  {{0xffb3aa74, 0x3fc645bf} },
+/**/                  {{0x677c2cb4, 0xbc3f536b} },
+/**/                  {{0x3eaa4ed6, 0x3fef0a76} },
+/**/                  {{0x0b06c761, 0x3c888c52} },
+/**/                  {{0xfd884489, 0xbfc52be2} },
+/**/                  {{0xbe5c728a, 0x3c67ec59} },
+/**/                  {{0xe80e4e0a, 0xbfd1aabf} },
+/**/                  {{0xe90c909e, 0xbc71320e} },
+/**/                  {{0x864781ca, 0x3fc34e46} },
+/**/                  {{0x126138ee, 0x3c42fcb3} },
+/**/                  {{0x013b5d4f, 0x3fbe988d} },
+/**/                  {{0x122409a2, 0xbfc0d50d} },
+/**/                  {{0x7bb562c1, 0xbfa6b7b6} },
+/**/                  {{0x3df8dee8, 0x3fbbe18a} },
+/**/                  {{0x8809e1ef, 0x3f3e4009} } },
+/**/                 {{{0x00000000, 0x3fc70000} },
+/**/                  {{0x898933d9, 0x3fc6c1d4} },
+/**/                  {{0x7603c427, 0xbc52954a} },
+/**/                  {{0xe06cfb34, 0x3feeffc5} },
+/**/                  {{0x379877c2, 0xbc85c037} },
+/**/                  {{0x0f53a52c, 0xbfc5956f} },
+/**/                  {{0xe566376c, 0x3c4d46a2} },
+/**/                  {{0x86559c11, 0xbfd183d7} },
+/**/                  {{0x64734c7f, 0x3c7d2520} },
+/**/                  {{0xa80eddd5, 0x3fc399c6} },
+/**/                  {{0x40fbef6f, 0x3c616c26} },
+/**/                  {{0xf4b571a7, 0x3fbdcda7} },
+/**/                  {{0x3fd42996, 0xbfc0fb48} },
+/**/                  {{0x95c85118, 0xbfa4f9a9} },
+/**/                  {{0x9d795df4, 0x3fbbdecf} },
+/**/                  {{0xb85bf719, 0xbf672003} } },
+/**/                 {{{0x00000000, 0x3fc78000} },
+/**/                  {{0xe8a7d202, 0x3fc73dbd} },
+/**/                  {{0x6d4a665d, 0xbc55ad0f} },
+/**/                  {{0xf6ce5590, 0x3feef4e0} },
+/**/                  {{0x556900ef, 0xbc833df6} },
+/**/                  {{0xedcc9488, 0xbfc5fe0f} },
+/**/                  {{0xd2b9e35c, 0x3c5078de} },
+/**/                  {{0x210cab36, 0xbfd15c5a} },
+/**/                  {{0xf55e532a, 0x3c67fa93} },
+/**/                  {{0x5efd9a41, 0x3fc3e349} },
+/**/                  {{0xc8573a12, 0xbc6cf709} },
+/**/                  {{0x6c903aef, 0x3fbd010a} },
+/**/                  {{0x20571328, 0xbfc11e77} },
+/**/                  {{0x9a1875dd, 0xbfa33c04} },
+/**/                  {{0xb09ec0ce, 0x3fbbd491} },
+/**/                  {{0x35537a65, 0xbf78d197} } },
+/**/                 {{{0x00000000, 0x3fc80000} },
+/**/                  {{0x4bce5b02, 0x3fc7b97b} },
+/**/                  {{0xb4f881ca, 0x3c5347b0} },
+/**/                  {{0xf8458e02, 0x3feee9c7} },
+/**/                  {{0x7ba71fe1, 0xbc616380} },
+/**/                  {{0x26d69eeb, 0xbfc665c2} },
+/**/                  {{0xfdb5eea8, 0xbc572a33} },
+/**/                  {{0xb737e8f3, 0xbfd1344b} },
+/**/                  {{0x62badf41, 0xbc757b70} },
+/**/                  {{0x8b929b0b, 0x3fc42aca} },
+/**/                  {{0x7a8b7d91, 0x3c43cdb5} },
+/**/                  {{0xf683981c, 0x3fbc32d8} },
+/**/                  {{0xd22d5ecc, 0xbfc13e9a} },
+/**/                  {{0xd35c8c33, 0xbfa17f3e} },
+/**/                  {{0x2a73307e, 0x3fbbc2ee} },
+/**/                  {{0x2bddc834, 0xbf82ee04} } },
+/**/                 {{{0x00000000, 0x3fc88000} },
+/**/                  {{0xe398ebc8, 0x3fc8350b} },
+/**/                  {{0x32b9c90d, 0xbc55a913} },
+/**/                  {{0x5cfce04c, 0x3feede7b} },
+/**/                  {{0x3b51a72f, 0x3c8507c2} },
+/**/                  {{0x6067718b, 0xbfc6cc82} },
+/**/                  {{0xdbfc430f, 0x3c6d00ca} },
+/**/                  {{0x4fbf6fe8, 0xbfd10bb0} },
+/**/                  {{0x53749c72, 0x3c321748} },
+/**/                  {{0x699a36ad, 0x3fc47046} },
+/**/                  {{0x3994d40c, 0xbc63924c} },
+/**/                  {{0x0dfb7483, 0x3fbb6338} },
+/**/                  {{0x42ee5820, 0xbfc15bb5} },
+/**/                  {{0x385194fc, 0xbf9f879b} },
+/**/                  {{0x57d040e9, 0x3fbbaa05} },
+/**/                  {{0xada71ca0, 0xbf895566} } },
+/**/                 {{{0x00000000, 0x3fc90000} },
+/**/                  {{0xe2879c29, 0x3fc8b06e} },
+/**/                  {{0x30308c4f, 0xbc6118cd} },
+/**/                  {{0x9ec57f51, 0x3feed2fb} },
+/**/                  {{0xc0d106ba, 0xbc83fdc5} },
+/**/                  {{0x58b40d27, 0xbfc7324d} },
+/**/                  {{0xfc062163, 0x3c68e240} },
+/**/                  {{0xf8b8a2bf, 0xbfd0e28b} },
+/**/                  {{0x64c55b39, 0xbc7b8d8a} },
+/**/                  {{0x8ff46730, 0x3fc4b3b9} },
+/**/                  {{0x988563da, 0xbc5af146} },
+/**/                  {{0x1277a10d, 0x3fba924c} },
+/**/                  {{0x2bbfd54d, 0xbfc175c9} },
+/**/                  {{0x6c522340, 0xbf9c1448} },
+/**/                  {{0x044f2f6b, 0x3fbb89fa} },
+/**/                  {{0xaaecc742, 0xbf8f9cc7} } },
+/**/                 {{{0x00000000, 0x3fc98000} },
+/**/                  {{0x7d050272, 0x3fc92ba3} },
+/**/                  {{0xd0ff4764, 0xbc60d3de} },
+/**/                  {{0x390b6afe, 0x3feec749} },
+/**/                  {{0x4e3659ca, 0xbc5c3d17} },
+/**/                  {{0xe659b3de, 0xbfc7971f} },
+/**/                  {{0x373f554d, 0x3c4cab11} },
+/**/                  {{0xc6b052a4, 0xbfd0b8e2} },
+/**/                  {{0x6f3b74bc, 0x3c7da014} },
+/**/                  {{0xf0432146, 0x3fc4f520} },
+/**/                  {{0xa8027290, 0xbc6769ad} },
+/**/                  {{0x3e17b570, 0x3fb9c039} },
+/**/                  {{0x0d8833a4, 0xbfc18cda} },
+/**/                  {{0x4627d340, 0xbf98a567} },
+/**/                  {{0x5e42eff7, 0x3fbb62f1} },
+/**/                  {{0x7ee3bed3, 0xbf92e10a} } },
+/**/                 {{{0x00000000, 0x3fca0000} },
+/**/                  {{0xe96c8626, 0x3fc9a6a8} },
+/**/                  {{0xe7b4348e, 0x3c4cf601} },
+/**/                  {{0xa8c932d7, 0x3feebb64} },
+/**/                  {{0x79aae302, 0x3c20538d} },
+/**/                  {{0xf88295fe, 0xbfc7faf6} },
+/**/                  {{0x932909e9, 0xbc687a81} },
+/**/                  {{0xd3f5a07b, 0xbfd08eb8} },
+/**/                  {{0xfb7d6aaa, 0xbc620a05} },
+/**/                  {{0xd6814372, 0x3fc53479} },
+/**/                  {{0x0a0c6620, 0xbc53c682} },
+/**/                  {{0x9c562d77, 0x3fb8ed23} },
+/**/                  {{0x2cdd89fd, 0xbfc1a0ec} },
+/**/                  {{0xfec9df82, 0xbf953bd4} },
+/**/                  {{0xd9d3f0f6, 0x3fbb3512} },
+/**/                  {{0x4534ccf5, 0xbf95e1ab} } },
+/**/                 {{{0x00000000, 0x3fca8000} },
+/**/                  {{0x601081a6, 0x3fca217e} },
+/**/                  {{0xa60af374, 0xbc60def8} },
+/**/                  {{0x6c7ba732, 0x3feeaf4e} },
+/**/                  {{0xe91fffe1, 0x3c89fa72} },
+/**/                  {{0x970642c3, 0xbfc85dcf} },
+/**/                  {{0x5b7f0ad0, 0xbc5732c2} },
+/**/                  {{0x3fe5c74d, 0xbfd06412} },
+/**/                  {{0x4a82f9b1, 0xbc7d0053} },
+/**/                  {{0xe882973d, 0x3fc571c1} },
+/**/                  {{0x9090f12c, 0x3c59d9a3} },
+/**/                  {{0x00f5d0e0, 0x3fb8192f} },
+/**/                  {{0x8db53983, 0xbfc1b204} },
+/**/                  {{0xbdd7b47e, 0xbf91d869} },
+/**/                  {{0x1355a903, 0x3fbb0088} },
+/**/                  {{0x724a2ad9, 0xbf98cf57} } },
+/**/                 {{{0x00000000, 0x3fcb0000} },
+/**/                  {{0x1b403279, 0x3fca9c23} },
+/**/                  {{0xe89cca85, 0x3c60e8bb} },
+/**/                  {{0x04157b4f, 0x3feea307} },
+/**/                  {{0xfd8bf1f0, 0x3c8ad743} },
+/**/                  {{0xe285e2fd, 0xbfc8bfa6} },
+/**/                  {{0x9c834c8f, 0xbc6ce765} },
+/**/                  {{0x2e38fd26, 0xbfd038f3} },
+/**/                  {{0xef212a80, 0x3c6a42ec} },
+/**/                  {{0x255d65d5, 0x3fc5acf7} },
+/**/                  {{0xbe486771, 0xbc619fba} },
+/**/                  {{0xff244e15, 0x3fb7447e} },
+/**/                  {{0xeed71b69, 0xbfc1c028} },
+/**/                  {{0xaceecf68, 0xbf8cf7f0} },
+/**/                  {{0xb0ee161b, 0x3fbac57c} },
+/**/                  {{0xefc8f53e, 0xbf9ba92d} } },
+/**/                 {{{0x00000000, 0x3fcb8000} },
+/**/                  {{0x574d780c, 0x3fcb1696} },
+/**/                  {{0xfc15a673, 0xbc585ab8} },
+/**/                  {{0xf0f2da5a, 0x3fee968e} },
+/**/                  {{0x69710f0d, 0xbc6fffe1} },
+/**/                  {{0x148444b5, 0xbfc9207a} },
+/**/                  {{0x1802fa91, 0xbc66661a} },
+/**/                  {{0xc65096ca, 0xbfd00d5f} },
+/**/                  {{0x8920e744, 0x3c7f2a2e} },
+/**/                  {{0xe4be288d, 0x3fc5e617} },
+/**/                  {{0x99be934f, 0x3c67fa48} },
+/**/                  {{0xe0d4c87a, 0x3fb66f36} },
+/**/                  {{0xc5179ce8, 0xbfc1cb5f} },
+/**/                  {{0x1011bb6c, 0xbf864e9c} },
+/**/                  {{0x43a75476, 0x3fba841e} },
+/**/                  {{0x845fc859, 0xbf9e6e5b} } },
+/**/                 {{{0x00000000, 0x3fcc0000} },
+/**/                  {{0x529260a2, 0x3fcb90d7} },
+/**/                  {{0xd2e0e5ab, 0x3c217b10} },
+/**/                  {{0xb5ccf172, 0x3fee89e6} },
+/**/                  {{0x153be26a, 0x3c820357} },
+/**/                  {{0x7f79bfd6, 0xbfc98046} },
+/**/                  {{0xf5d60955, 0xbc0799ee} },
+/**/                  {{0x650d32f4, 0xbfcfc2b8} },
+/**/                  {{0x4d01b49e, 0xbc6b59de} },
+/**/                  {{0xd625e475, 0x3fc61d22} },
+/**/                  {{0xe23c6105, 0xbc68013f} },
+/**/                  {{0x9e54f300, 0x3fb59979} },
+/**/                  {{0x365c2b85, 0xbfc1d3b0} },
+/**/                  {{0x0afb6b97, 0xbf7f6cc9} },
+/**/                  {{0x28035c12, 0x3fba3c9c} },
+/**/                  {{0x8331488a, 0xbfa08f0d} } },
+/**/                 {{{0x00000000, 0x3fcc8000} },
+/**/                  {{0x4d768467, 0x3fcc0ae5} },
+/**/                  {{0xf55f26dc, 0xbc604cdb} },
+/**/                  {{0xd6ad70cb, 0x3fee7d0e} },
+/**/                  {{0xee20d17d, 0x3c8e6761} },
+/**/                  {{0x8ee3fcf8, 0xbfc9df09} },
+/**/                  {{0xed723e81, 0x3c62daa3} },
+/**/                  {{0x3efdc9b4, 0xbfcf69d9} },
+/**/                  {{0x85a20110, 0x3c6c7b6f} },
+/**/                  {{0x0013c661, 0x3fc65217} },
+/**/                  {{0xab1387be, 0xbc678a0c} },
+/**/                  {{0xd61f268e, 0x3fb4c369} },
+/**/                  {{0x146d6110, 0xbfc1d922} },
+/**/                  {{0xc0b0ed0a, 0xbf726199} },
+/**/                  {{0x6629c856, 0x3fb9ef27} },
+/**/                  {{0xc1ea955d, 0xbfa1dbda} } },
+/**/                 {{{0x00000000, 0x3fcd0000} },
+/**/                  {{0x8a742e6e, 0x3fcc84bf} },
+/**/                  {{0x0682ea26, 0xbc595bdd} },
+/**/                  {{0xd8e205ea, 0x3fee7007} },
+/**/                  {{0x7b2991c1, 0x3c816199} },
+/**/                  {{0xc751a854, 0xbfca3cc0} },
+/**/                  {{0x4efbc78c, 0xbc66a2fd} },
+/**/                  {{0x76f43baa, 0xbfcf102a} },
+/**/                  {{0x38d996b1, 0x3c6cfc38} },
+/**/                  {{0xbf1a9ad6, 0x3fc684f3} },
+/**/                  {{0x7c3b6690, 0x3c52eaf7} },
+/**/                  {{0xc4ebba84, 0x3fb3ed29} },
+/**/                  {{0xd79a6a53, 0xbfc1dbbd} },
+/**/                  {{0xfd09510e, 0xbf55fa5b} },
+/**/                  {{0x91c74d50, 0x3fb99bf2} },
+/**/                  {{0x3002c38b, 0xbfa31d41} } },
+/**/                 {{{0x00000000, 0x3fcd8000} },
+/**/                  {{0x4e1d5395, 0x3fccfe65} },
+/**/                  {{0x3f71eafb, 0x3c647b9a} },
+/**/                  {{0x42efd10e, 0x3fee62d2} },
+/**/                  {{0xa021973e, 0x3c850a65} },
+/**/                  {{0xc66a1be4, 0xbfca9969} },
+/**/                  {{0x3753f036, 0x3c326164} },
+/**/                  {{0x6b550477, 0xbfceb5b4} },
+/**/                  {{0xa3ef610f, 0xbc64cacb} },
+/**/                  {{0xc4e2c295, 0x3fc6b5b8} },
+/**/                  {{0x98b2ac7f, 0x3c66b228} },
+/**/                  {{0x3e03bb80, 0x3fb316db} },
+/**/                  {{0x99312ba1, 0xbfc1db8c} },
+/**/                  {{0x8536556f, 0x3f5ce5b0} },
+/**/                  {{0xa9b62abf, 0x3fb94331} },
+/**/                  {{0xb36f42fc, 0xbfa452f3} } },
+/**/                 {{{0x00000000, 0x3fce0000} },
+/**/                  {{0xdf205736, 0x3fcd77d5} },
+/**/                  {{0x1534597e, 0x3c6c648d} },
+/**/                  {{0x9c86d7c6, 0x3fee556e} },
+/**/                  {{0x34c9abfd, 0xbc830c25} },
+/**/                  {{0x42f10c89, 0xbfcaf502} },
+/**/                  {{0xf8576d95, 0xbc411261} },
+/**/                  {{0x7b1596d9, 0xbfce5a7f} },
+/**/                  {{0x78f7ae18, 0x3c574baa} },
+/**/                  {{0x171949b1, 0x3fc6e466} },
+/**/                  {{0x52f9c399, 0xbc6ff86b} },
+/**/                  {{0xa3d6f244, 0x3fb2409f} },
+/**/                  {{0x0dceacbf, 0xbfc1d898} },
+/**/                  {{0xdc715080, 0x3f73c3b6} },
+/**/                  {{0xf78687ab, 0x3fb8e519} },
+/**/                  {{0x6b1251ec, 0xbfa57cac} } },
+/**/                 {{{0x00000000, 0x3fce8000} },
+/**/                  {{0x864c9d9e, 0x3fcdf110} },
+/**/                  {{0x53bf4781, 0xbc35818b} },
+/**/                  {{0x6e7576a6, 0x3fee47dd} },
+/**/                  {{0x24b84595, 0x3c89d322} },
+/**/                  {{0x0cc64717, 0xbfcb4f88} },
+/**/                  {{0x44bb97a3, 0xbc624035} },
+/**/                  {{0x046e8a3b, 0xbfcdfe94} },
+/**/                  {{0xd278da00, 0xbc6078ee} },
+/**/                  {{0x0e4ccbb7, 0x3fc710fc} },
+/**/                  {{0x1da51f71, 0xbc58c89c} },
+/**/                  {{0xe0d7022a, 0x3fb16a97} },
+/**/                  {{0x7f8b58f8, 0xbfc1d2ea} },
+/**/                  {{0xaf259d18, 0x3f800ed5} },
+/**/                  {{0xeefd29c7, 0x3fb881e1} },
+/**/                  {{0xae6aa0c1, 0xbfa69a2c} } },
+/**/                 {{{0x00000000, 0x3fcf0000} },
+/**/                  {{0x8e96ec4d, 0x3fce6a14} },
+/**/                  {{0x2029f765, 0x3c6866b2} },
+/**/                  {{0x429bd423, 0x3fee3a1f} },
+/**/                  {{0x48961291, 0xbc86174a} },
+/**/                  {{0x0ce18ad9, 0xbfcba8f9} },
+/**/                  {{0xb50eb15d, 0x3c62e3e9} },
+/**/                  {{0x63927806, 0xbfcda1fa} },
+/**/                  {{0x8073bacf, 0xbbed7b15} },
+/**/                  {{0x54b8d3bb, 0x3fc73b7b} },
+/**/                  {{0x74869c1c, 0x3c602afb} },
+/**/                  {{0x60993bd6, 0x3fb094e4} },
+/**/                  {{0xc806a157, 0xbfc1ca8e} },
+/**/                  {{0xa854d278, 0x3f862263} },
+/**/                  {{0x0d9e7452, 0x3fb819c1} },
+/**/                  {{0x08743869, 0xbfa7ab3d} } },
+/**/                 {{{0x00000000, 0x3fcf8000} },
+/**/                  {{0x451d980d, 0x3fcee2e1} },
+/**/                  {{0x8c46ba91, 0xbc59a770} },
+/**/                  {{0xa3df5666, 0x3fee2c34} },
+/**/                  {{0x19a92865, 0xbc8ef949} },
+/**/                  {{0x454a9009, 0xbfcc0153} },
+/**/                  {{0xda1123ca, 0x3c5572bf} },
+/**/                  {{0xf169cd42, 0xbfcd44ba} },
+/**/                  {{0xf1052e0a, 0xbc6db0f2} },
+/**/                  {{0xe5006ad1, 0x3fc763e4} },
+/**/                  {{0x3e902796, 0x3c66e21a} },
+/**/                  {{0x12812c7d, 0x3faf7f4a} },
+/**/                  {{0x4a558d9d, 0xbfc1bf90} },
+/**/                  {{0x2be7fbfd, 0x3f8c1b52} },
+/**/                  {{0xba5b0263, 0x3fb7acef} },
+/**/                  {{0x2dddf4e5, 0xbfa8afad} } },
+/**/                 {{{0x00000000, 0x3fd00000} },
+/**/                  {{0xf92c80dd, 0x3fcf5b75} },
+/**/                  {{0x3cf7afbd, 0x3c68ab6e} },
+/**/                  {{0x1e1e1e1e, 0x3fee1e1e} },
+/**/                  {{0x1e1e1e1e, 0x3c6e1e1e} },
+/**/                  {{0xd10d4986, 0xbfcc5894} },
+/**/                  {{0xc4a6886a, 0x3c5f00e2} },
+/**/                  {{0x0253d27e, 0xbfcce6de} },
+/**/                  {{0x3c5fce89, 0xbc65d764} },
+/**/                  {{0x08d88b02, 0x3fc78a3a} },
+/**/                  {{0x32bd57e4, 0x3c4fc5d6} },
+/**/                  {{0x6a622b44, 0x3fadd5f2} },
+/**/                  {{0xecd7c4e0, 0xbfc1b1fa} },
+/**/                  {{0x1fc8b549, 0x3f90fc3e} },
+/**/                  {{0x25728acf, 0x3fb73ba7} },
+/**/                  {{0xeeba051f, 0xbfa9a753} } },
+/**/                 {{{0x00000000, 0x3fd04000} },
+/**/                  {{0xfc40dbe4, 0x3fcfd3d1} },
+/**/                  {{0xf3a1c5ea, 0x3c437146} },
+/**/                  {{0x3e228818, 0x3fee0fdc} },
+/**/                  {{0x8c042ef5, 0xbc62e075} },
+/**/                  {{0xe42a71b9, 0xbfccaebb} },
+/**/                  {{0x8025fd1d, 0xbc69fa0a} },
+/**/                  {{0xe4ed28e5, 0xbfcc886b} },
+/**/                  {{0x7604b95a, 0xbc59ccc3} },
+/**/                  {{0x57a32fb9, 0x3fc7ae7c} },
+/**/                  {{0xe36848c2, 0x3c67393b} },
+/**/                  {{0x5a1b7b6f, 0x3fac2dff} },
+/**/                  {{0x12f690d4, 0xbfc1a1db} },
+/**/                  {{0xa575dc1d, 0x3f93dc65} },
+/**/                  {{0x28a107f6, 0x3fb6c621} },
+/**/                  {{0x23d2c35f, 0xbfaa920f} } },
+/**/                 {{{0x00000000, 0x3fd08000} },
+/**/                  {{0x510665b6, 0x3fd025fa} },
+/**/                  {{0x6832fa48, 0xbc7672df} },
+/**/                  {{0x9196b776, 0x3fee016f} },
+/**/                  {{0xb14efc08, 0x3c81da3a} },
+/**/                  {{0xcb847375, 0xbfcd03c6} },
+/**/                  {{0xfc4c6f52, 0xbc6819f2} },
+/**/                  {{0xe0dbf8a5, 0xbfcc296c} },
+/**/                  {{0x27fb1c17, 0xbc55cc84} },
+/**/                  {{0xb4fbbf40, 0x3fc7d0ad} },
+/**/                  {{0x41b71641, 0x3c6378b3} },
+/**/                  {{0x440404cd, 0x3faa87ad} },
+/**/                  {{0x96d156a8, 0xbfc18f3d} },
+/**/                  {{0x9ef40490, 0x3f96ad9b} },
+/**/                  {{0x27a95e14, 0x3fb64c98} },
+/**/                  {{0x97cfdce0, 0xbfab6fc3} } },
+/**/                 {{{0x00000000, 0x3fd0c000} },
+/**/                  {{0xa03d6291, 0x3fd061ee} },
+/**/                  {{0xdb154301, 0xbc45f760} },
+/**/                  {{0xa6f82a61, 0x3fedf2d8} },
+/**/                  {{0x560866af, 0xbc6cedbb} },
+/**/                  {{0xecc8c02c, 0xbfcd57b3} },
+/**/                  {{0x85b9541c, 0x3c641512} },
+/**/                  {{0x35a209c0, 0xbfcbc9e9} },
+/**/                  {{0x4914a5d1, 0x3c65bfd8} },
+/**/                  {{0x4f358b07, 0x3fc7f0d0} },
+/**/                  {{0x3f47a5cc, 0xbc60dc70} },
+/**/                  {{0x50af01c1, 0x3fa8e337} },
+/**/                  {{0xc2daf61b, 0xbfc17a2f} },
+/**/                  {{0x57b649f0, 0x3f996f63} },
+/**/                  {{0xf14fef28, 0x3fb5cf46} },
+/**/                  {{0xec5a22c2, 0xbfac405c} } },
+/**/                 {{{0x00000000, 0x3fd10000} },
+/**/                  {{0x97d86362, 0x3fd09dc5} },
+/**/                  {{0x390cb865, 0x3c762e47} },
+/**/                  {{0x0d8b5ae6, 0x3fede418} },
+/**/                  {{0x23f66cf0, 0x3c719298} },
+/**/                  {{0xc655a596, 0xbfcdaa81} },
+/**/                  {{0x6a90480b, 0x3c666d0d} },
+/**/                  {{0x1974fd6c, 0xbfcb69e9} },
+/**/                  {{0xec28723f, 0xbc68e199} },
+/**/                  {{0x9dcd2641, 0x3fc80ee6} },
+/**/                  {{0x45b4bb82, 0x3c37ccfe} },
+/**/                  {{0x64b143be, 0x3fa740d7} },
+/**/                  {{0x4b6b7330, 0xbfc162bf} },
+/**/                  {{0x7a20d203, 0x3f9c2147} },
+/**/                  {{0xa0d6b625, 0x3fb54e68} },
+/**/                  {{0x7b6e81ad, 0xbfad03cd} } },
+/**/                 {{{0x00000000, 0x3fd14000} },
+/**/                  {{0xe509acb3, 0x3fd0d97e} },
+/**/                  {{0x7bd5a3eb, 0x3c747c31} },
+/**/                  {{0x554f6dcf, 0x3fedd52e} },
+/**/                  {{0xddcd060b, 0xbc75c686} },
+/**/                  {{0xef1cb578, 0xbfcdfc2e} },
+/**/                  {{0xd1677d50, 0xbc46ae20} },
+/**/                  {{0xb81cdb34, 0xbfcb0974} },
+/**/                  {{0xda61c86c, 0x3c36ed8e} },
+/**/                  {{0x5fcd53c1, 0x3fc82af3} },
+/**/                  {{0x57b559e7, 0xbc424fe5} },
+/**/                  {{0x17013aef, 0x3fa5a0c6} },
+/**/                  {{0x484940dd, 0xbfc148fa} },
+/**/                  {{0x1737ca6d, 0x3f9ec2da} },
+/**/                  {{0x800ba495, 0x3fb4ca38} },
+/**/                  {{0x35128042, 0xbfadba0e} } },
+/**/                 {{{0x00000000, 0x3fd18000} },
+/**/                  {{0x362431ca, 0x3fd1151a} },
+/**/                  {{0xc9077b9f, 0xbc74dc8d} },
+/**/                  {{0x0ef1f116, 0x3fedc61c} },
+/**/                  {{0x2d41c166, 0xbc8fe39f} },
+/**/                  {{0x1681d2c9, 0xbfce4cba} },
+/**/                  {{0x369a3c18, 0x3c340fb4} },
+/**/                  {{0x31d921e2, 0xbfcaa894} },
+/**/                  {{0x64c48da4, 0x3c6bf59e} },
+/**/                  {{0x9a284cea, 0x3fc844f9} },
+/**/                  {{0x629cfeb8, 0xbc563be0} },
+/**/                  {{0xa7f26285, 0x3fa4033a} },
+/**/                  {{0x2e2d72ea, 0xbfc12cef} },
+/**/                  {{0x554d151d, 0x3fa0a9da} },
+/**/                  {{0xe9f9174f, 0x3fb442f1} },
+/**/                  {{0x799e467c, 0xbfae631e} } },
+/**/                 {{{0x00000000, 0x3fd1c000} },
+/**/                  {{0x3a9ce547, 0x3fd15097} },
+/**/                  {{0x7f9ca328, 0xbc7796ba} },
+/**/                  {{0xcbc2abaa, 0x3fedb6e1} },
+/**/                  {{0xc39a4e7c, 0xbc823b7a} },
+/**/                  {{0x0436f806, 0xbfce9c22} },
+/**/                  {{0x885803cb, 0xbc64a5ec} },
+/**/                  {{0x9a4c8963, 0xbfca474f} },
+/**/                  {{0x6793b663, 0x3c671cf3} },
+/**/                  {{0x9606243b, 0x3fc85cfc} },
+/**/                  {{0x1dcd45ed, 0x3c5fd2b2} },
+/**/                  {{0xf8cc655f, 0x3fa2686a} },
+/**/                  {{0xc8460b94, 0xbfc10eac} },
+/**/                  {{0x0d6eb5ba, 0x3fa1e9bc} },
+/**/                  {{0x2e4749c2, 0x3fb3b8d0} },
+/**/                  {{0xf0d19201, 0xbfaeff03} } },
+/**/                 {{{0x00000000, 0x3fd20000} },
+/**/                  {{0xa30bf178, 0x3fd18bf5} },
+/**/                  {{0x748b1bf9, 0x3c630ca4} },
+/**/                  {{0x1da7801e, 0x3feda780} },
+/**/                  {{0x961ff896, 0xbc861ff8} },
+/**/                  {{0x9814cb11, 0xbfceea65} },
+/**/                  {{0x34cb01ca, 0xbc5f9845} },
+/**/                  {{0xf76f9fa1, 0xbfc9e5ae} },
+/**/                  {{0xa3ee6a86, 0x3c688b7a} },
+/**/                  {{0xdf090624, 0x3fc872ff} },
+/**/                  {{0x6fbad4bb, 0x3c31016f} },
+/**/                  {{0x83fe02bc, 0x3fa0d08b} },
+/**/                  {{0x31b98637, 0xbfc0ee42} },
+/**/                  {{0x5b309f28, 0x3fa320e6} },
+/**/                  {{0x755cbc43, 0x3fb32c0e} },
+/**/                  {{0x5dea1ddb, 0xbfaf8dca} } },
+/**/                 {{{0x00000000, 0x3fd24000} },
+/**/                  {{0x212dd884, 0x3fd1c735} },
+/**/                  {{0x78cb2f2e, 0xbc67d9ac} },
+/**/                  {{0x971063d2, 0x3fed97f7} },
+/**/                  {{0xc8b326b7, 0x3c67a20b} },
+/**/                  {{0xc9f01359, 0xbfcf3783} },
+/**/                  {{0xd0a651ad, 0x3c4a8b96} },
+/**/                  {{0x408a6757, 0xbfc983ba} },
+/**/                  {{0xe6424f06, 0x3c6dfff9} },
+/**/                  {{0x41881aad, 0x3fc88707} },
+/**/                  {{0x2204fd29, 0xbc63baf9} },
+/**/                  {{0xabd6e10d, 0x3f9e779e} },
+/**/                  {{0xcf2eab41, 0xbfc0cbbe} },
+/**/                  {{0x1659f377, 0x3fa44f31} },
+/**/                  {{0xa54a8a94, 0x3fb29ce7} },
+/**/                  {{0xb87973d7, 0xbfb007c1} } },
+/**/                 {{{0x00000000, 0x3fd28000} },
+/**/                  {{0x67e47c96, 0x3fd20255} },
+/**/                  {{0x28f4290e, 0xbc618323} },
+/**/                  {{0xcaeb6c2a, 0x3fed8848} },
+/**/                  {{0xa08296a2, 0x3c81e70d} },
+/**/                  {{0xa96c2792, 0xbfcf837b} },
+/**/                  {{0xc6884369, 0xbc6ab5ce} },
+/**/                  {{0x5d351cdb, 0xbfc92179} },
+/**/                  {{0x68719d81, 0x3c617000} },
+/**/                  {{0xc8c1ca07, 0x3fc89916} },
+/**/                  {{0x18b0f81b, 0xbc6a3339} },
+/**/                  {{0x0caf6121, 0x3f9b54d0} },
+/**/                  {{0x485ba392, 0xbfc0a732} },
+/**/                  {{0xc250c31e, 0x3fa57477} },
+/**/                  {{0x4790b4a8, 0x3fb20b96} },
+/**/                  {{0x4ac23178, 0xbfb04223} } },
+/**/                 {{{0x00000000, 0x3fd2c000} },
+/**/                  {{0x2b381042, 0x3fd23d56} },
+/**/                  {{0x16200088, 0xbc5c5317} },
+/**/                  {{0x4c98f347, 0x3fed7874} },
+/**/                  {{0x9a72647e, 0xbc8a7dac} },
+/**/                  {{0x5dca68a2, 0xbfcfce4c} },
+/**/                  {{0x8fb9ffdd, 0x3c6433de} },
+/**/                  {{0x246041ce, 0xbfc8bef4} },
+/**/                  {{0x1fb39160, 0xbc66c620} },
+/**/                  {{0xbd062535, 0x3fc8a932} },
+/**/                  {{0xfbc3a86c, 0xbc6e24c7} },
+/**/                  {{0x64d0109d, 0x3f98390b} },
+/**/                  {{0x819f2998, 0xbfc080ac} },
+/**/                  {{0x8784ffb8, 0x3fa69099} },
+/**/                  {{0x6fc55e9b, 0x3fb17854} },
+/**/                  {{0x5f970a81, 0xbfb07618} } },
+/**/                 {{{0x00000000, 0x3fd30000} },
+/**/                  {{0x2057ef46, 0x3fd27837} },
+/**/                  {{0xd36dfc81, 0xbc7077cd} },
+/**/                  {{0xafdfd5ba, 0x3fed687a} },
+/**/                  {{0xe19d8d3d, 0xbc782e68} },
+/**/                  {{0x92db6fdb, 0xbfd00bfa} },
+/**/                  {{0xc0af523f, 0x3c7854cd} },
+/**/                  {{0x5b640da2, 0xbfc85c32} },
+/**/                  {{0x5e6f23d6, 0x3c5d5bdd} },
+/**/                  {{0xa1da32d2, 0x3fc8b75f} },
+/**/                  {{0x29860bfe, 0x3c2788df} },
+/**/                  {{0xee810d60, 0x3f9524ad} },
+/**/                  {{0x95a69dea, 0xbfc0583d} },
+/**/                  {{0x2b4d3dec, 0x3fa7a379} },
+/**/                  {{0xa3290dfe, 0x3fb0e35b} },
+/**/                  {{0x19e12287, 0xbfb0a3b2} } },
+/**/                 {{{0x00000000, 0x3fd34000} },
+/**/                  {{0xfd9b5fe2, 0x3fd2b2f7} },
+/**/                  {{0xc1c2d443, 0x3c2423cf} },
+/**/                  {{0x88e1caa2, 0x3fed585c} },
+/**/                  {{0x01239e18, 0xbc2c8af2} },
+/**/                  {{0xab890af7, 0xbfd0303a} },
+/**/                  {{0x726290e6, 0x3c7d42bf} },
+/**/                  {{0xb5175de0, 0xbfc7f93b} },
+/**/                  {{0xe0ddc367, 0x3c5d5d4b} },
+/**/                  {{0x3414de7c, 0x3fc8c3a2} },
+/**/                  {{0xba92bfce, 0x3c5ade9b} },
+/**/                  {{0xda70853d, 0x3f921811} },
+/**/                  {{0xcf23aaf0, 0xbfc02df5} },
+/**/                  {{0x06445ff8, 0x3fa8acfd} },
+/**/                  {{0xc130eba4, 0x3fb04ce4} },
+/**/                  {{0x29de3135, 0xbfb0cb04} } },
+/**/                 {{{0x00000000, 0x3fd38000} },
+/**/                  {{0x7a823cfe, 0x3fd2ed98} },
+/**/                  {{0x8ea012ca, 0x3c6b9125} },
+/**/                  {{0x6c0fd782, 0x3fed481a} },
+/**/                  {{0x85ff74ea, 0x3c82dda4} },
+/**/                  {{0x2f5c1e18, 0xbfd053e6} },
+/**/                  {{0x8ec637b8, 0xbc679cf2} },
+/**/                  {{0xd0ee3e3b, 0xbfc79617} },
+/**/                  {{0x732049a6, 0xbc4e91e0} },
+/**/                  {{0x67f6478d, 0x3fc8cdff} },
+/**/                  {{0xf5079e63, 0xbc5cb659} },
+/**/                  {{0x8e8ef686, 0x3f8e271c} },
+/**/                  {{0xa2940881, 0xbfc001e5} },
+/**/                  {{0xf937caae, 0x3fa9ad0e} },
+/**/                  {{0xda1e257f, 0x3faf6a4f} },
+/**/                  {{0xb07d42be, 0xbfb0ec24} } },
+/**/                 {{{0x00000000, 0x3fd3c000} },
+/**/                  {{0x4fb58952, 0x3fd32818} },
+/**/                  {{0xa9939f2f, 0xbc7a95f0} },
+/**/                  {{0xee1ee130, 0x3fed37b4} },
+/**/                  {{0x6fbb1f2d, 0x3c747541} },
+/**/                  {{0xe022dd0d, 0xbfd076fc} },
+/**/                  {{0x5534523a, 0x3c6d8659} },
+/**/                  {{0x3a201d6b, 0xbfc732ce} },
+/**/                  {{0xc98a3a62, 0xbc56a551} },
+/**/                  {{0x673a29b8, 0x3fc8d67c} },
+/**/                  {{0xff95efe6, 0xbc54ae9d} },
+/**/                  {{0x74ce6814, 0x3f882eee} },
+/**/                  {{0x503ba8f4, 0xbfbfa83b} },
+/**/                  {{0x60b63f75, 0x3faaa39c} },
+/**/                  {{0xf07ff274, 0x3fae38b8} },
+/**/                  {{0x2200fe4d, 0xbfb1072c} } },
+/**/                 {{{0x00000000, 0x3fd40000} },
+/**/                  {{0x3707ebcc, 0x3fd36277} },
+/**/                  {{0x44b672d8, 0xbc6963a5} },
+/**/                  {{0xa3fc5b1a, 0x3fed272c} },
+/**/                  {{0x272ca3fc, 0x3c8ae01d} },
+/**/                  {{0x8aec9d8e, 0xbfd0997e} },
+/**/                  {{0x72595f36, 0x3c74aeda} },
+/**/                  {{0x66d5c0ff, 0xbfc6cf66} },
+/**/                  {{0x3ca66cc1, 0x3c410e2a} },
+/**/                  {{0x8f2617b5, 0x3fc8dd1e} },
+/**/                  {{0x4facfb67, 0xbc6d173e} },
+/**/                  {{0x33966883, 0x3f82483b} },
+/**/                  {{0x2b05b16b, 0xbfbf495d} },
+/**/                  {{0x074fdeaf, 0x3fab9096} },
+/**/                  {{0x9c4605c9, 0x3fad0571} },
+/**/                  {{0x280318fd, 0xbfb11c35} } },
+/**/                 {{{0x00000000, 0x3fd44000} },
+/**/                  {{0xeb76157c, 0x3fd39cb4} },
+/**/                  {{0x5a214713, 0xbc72f4da} },
+/**/                  {{0x22c31625, 0x3fed1682} },
+/**/                  {{0xd5e51b41, 0x3c8ac111} },
+/**/                  {{0x07e9a89a, 0xbfd0bb6b} },
+/**/                  {{0x7faa1dda, 0x3c76fb53} },
+/**/                  {{0xb75f0772, 0xbfc66be7} },
+/**/                  {{0xee6d618b, 0xbc69a77d} },
+/**/                  {{0x6e943d69, 0x3fc8e1eb} },
+/**/                  {{0xc5ec9ebe, 0xbc6982c4} },
+/**/                  {{0x9c2d3c0c, 0x3f78e73c} },
+/**/                  {{0x7059f387, 0xbfbee752} },
+/**/                  {{0x16982f58, 0x3fac73f0} },
+/**/                  {{0xc146b407, 0x3fabd0e4} },
+/**/                  {{0x82f43254, 0xbfb12b5c} } },
+/**/                 {{{0x00000000, 0x3fd48000} },
+/**/                  {{0x29271134, 0x3fd3d6d1} },
+/**/                  {{0x41cc958a, 0x3c7137ca} },
+/**/                  {{0xffb0304c, 0x3fed05b5} },
+/**/                  {{0x33e896e5, 0xbc8fc921} },
+/**/                  {{0x3a49e254, 0xbfd0dcc2} },
+/**/                  {{0x925cb599, 0x3c704578} },
+/**/                  {{0x75708502, 0xbfc60859} },
+/**/                  {{0x9feebe6c, 0xbc5f88bc} },
+/**/                  {{0xc3fb5c1c, 0x3fc8e4e8} },
+/**/                  {{0xd6b77a05, 0x3c6de114} },
+/**/                  {{0xdbc6c857, 0x3f6ac6b3} },
+/**/                  {{0xdeabd793, 0xbfbe823c} },
+/**/                  {{0x06fb52a7, 0x3fad4da2} },
+/**/                  {{0x2bea698c, 0x3faa9b7b} },
+/**/                  {{0xeb32d745, 0xbfb134c0} } },
+/**/                 {{{0x00000000, 0x3fd4c000} },
+/**/                  {{0xad6c7d33, 0x3fd410cb} },
+/**/                  {{0xae13b512, 0xbc7b0c8b} },
+/**/                  {{0xd0182625, 0x3fecf4c8} },
+/**/                  {{0xf4103798, 0x3c8e6308} },
+/**/                  {{0x101a5438, 0xbfd0fd84} },
+/**/                  {{0x7d2e3e34, 0x3c425fcd} },
+/**/                  {{0xd36904f6, 0xbfc5a4c2} },
+/**/                  {{0x54f27bb6, 0x3c5d3583} },
+/**/                  {{0x7b74b00c, 0x3fc8e61c} },
+/**/                  {{0xefe568b6, 0x3c32f7ad} },
+/**/                  {{0xaa3667f2, 0x3f402f60} },
+/**/                  {{0x4c9859c0, 0xbfbe1a3e} },
+/**/                  {{0x8e77c589, 0x3fae1da6} },
+/**/                  {{0x6ed5823e, 0x3fa9659b} },
+/**/                  {{0xf1d3d420, 0xbfb13882} } },
+/**/                 {{{0x00000000, 0x3fd50000} },
+/**/                  {{0x36c2af0a, 0x3fd44aa4} },
+/**/                  {{0x3c55b3ba, 0xbc75d5e4} },
+/**/                  {{0x295c0773, 0x3fece3bb} },
+/**/                  {{0x91851b41, 0xbc826fd5} },
+/**/                  {{0x8221a582, 0xbfd11db0} },
+/**/                  {{0xa9f31d11, 0x3c7e9654} },
+/**/                  {{0xeb9ef661, 0xbfc5412a} },
+/**/                  {{0x5e60433c, 0x3c573faf} },
+/**/                  {{0xacc06b3a, 0x3fc8e58c} },
+/**/                  {{0x64dd81ed, 0xbc5dba9a} },
+/**/                  {{0xcfe3f01e, 0xbf625ff7} },
+/**/                  {{0x9dae4b1c, 0xbfbdaf78} },
+/**/                  {{0x8e4e3e16, 0x3faee3fb} },
+/**/                  {{0xc2c60fed, 0x3fa82fa9} },
+/**/                  {{0xe13555d9, 0xbfb136c4} } },
+/**/                 {{{0x00000000, 0x3fd54000} },
+/**/                  {{0x84d0c21b, 0x3fd4845a} },
+/**/                  {{0x7563c6a6, 0x3c71e28a} },
+/**/                  {{0xa0decfad, 0x3fecd28d} },
+/**/                  {{0x49610c12, 0xbc72b2c8} },
+/**/                  {{0x93bb8da8, 0xbfd13d47} },
+/**/                  {{0x1b48d912, 0x3c5df07a} },
+/**/                  {{0xbfb5c8b7, 0xbfc4dd98} },
+/**/                  {{0x39a108d7, 0x3c58a9ff} },
+/**/                  {{0x99496dc4, 0x3fc8e33f} },
+/**/                  {{0x19d3995c, 0x3c380d8b} },
+/**/                  {{0xba1bc2d2, 0xbf743d59} },
+/**/                  {{0xb77862a1, 0xbfbd420d} },
+/**/                  {{0xffb9511c, 0x3fafa0a1} },
+/**/                  {{0xe8a86cad, 0x3fa6fa07} },
+/**/                  {{0x9d75a109, 0xbfb12faa} } },
+/**/                 {{{0x00000000, 0x3fd58000} },
+/**/                  {{0x586890e7, 0x3fd4bdee} },
+/**/                  {{0x7c22a757, 0xbc6e4dc7} },
+/**/                  {{0xcbfae3a7, 0x3fecc140} },
+/**/                  {{0xd8b6f9b9, 0xbc41045d} },
+/**/                  {{0x52b34cdc, 0xbfd15c49} },
+/**/                  {{0x2daa60ac, 0x3c729992} },
+/**/                  {{0x37fb39ef, 0xbfc47a13} },
+/**/                  {{0x3482d371, 0x3c5cb3b2} },
+/**/                  {{0xaa28e022, 0x3fc8df3b} },
+/**/                  {{0x969a5447, 0xbc61a8ab} },
+/**/                  {{0xc651ecb4, 0xbf7f2135} },
+/**/                  {{0x76cc63f7, 0xbfbcd21f} },
+/**/                  {{0xefdf4de1, 0x3fb029ce} },
+/**/                  {{0x0de3bf96, 0x3fa5c515} },
+/**/                  {{0x84e55ab4, 0xbfb12359} } },
+/**/                 {{{0x00000000, 0x3fd5c000} },
+/**/                  {{0x73869979, 0x3fd4f75f} },
+/**/                  {{0xf7ff1108, 0xbc595a1c} },
+/**/                  {{0x3ff7b52c, 0x3fecafd5} },
+/**/                  {{0x684b6314, 0x3c86e099} },
+/**/                  {{0xd71d366e, 0xbfd17ab5} },
+/**/                  {{0xae2f7b71, 0x3c602f2c} },
+/**/                  {{0x22cc956f, 0xbfc416a1} },
+/**/                  {{0xe98c24c1, 0x3c61d29e} },
+/**/                  {{0x6e2a4f9f, 0x3fc8d987} },
+/**/                  {{0x4a6a7880, 0xbc60de73} },
+/**/                  {{0x909e42ec, 0xbf84ed52} },
+/**/                  {{0xa56263a8, 0xbfbc5fcf} },
+/**/                  {{0x0d159803, 0x3fb07e7b} },
+/**/                  {{0xb2ddf20b, 0x3fa4912d} },
+/**/                  {{0x508c8585, 0xbfb111f8} } },
+/**/                 {{{0x00000000, 0x3fd60000} },
+/**/                  {{0x9951cd4a, 0x3fd530ad} },
+/**/                  {{0x80884082, 0xbc625664} },
+/**/                  {{0x91ff8d87, 0x3fec9e4b} },
+/**/                  {{0x1b0da370, 0xbc7723ff} },
+/**/                  {{0x432f5908, 0xbfd1988d} },
+/**/                  {{0xf8714cda, 0x3c7d065e} },
+/**/                  {{0x3403e07c, 0xbfc3b349} },
+/**/                  {{0x2717fbb0, 0x3c6b571d} },
+/**/                  {{0x97d0e938, 0x3fc8d229} },
+/**/                  {{0xb08a0625, 0x3c66b228} },
+/**/                  {{0xc2fe9cde, 0xbf8a3464} },
+/**/                  {{0xefb6f244, 0xbfbbeb3f} },
+/**/                  {{0x39e67c0b, 0x3fb0ce5a} },
+/**/                  {{0x93b4fb73, 0x3fa35eab} },
+/**/                  {{0xf4d86f78, 0xbfb0fbae} } },
+/**/                 {{{0x00000000, 0x3fd64000} },
+/**/                  {{0x8e1b4cd8, 0x3fd569d8} },
+/**/                  {{0xe713cfe2, 0xbc6fec61} },
+/**/                  {{0x57157fc9, 0x3fec8ca4} },
+/**/                  {{0x515734ba, 0x3c70da14} },
+/**/                  {{0xc3195094, 0xbfd1b5cf} },
+/**/                  {{0xa9537e45, 0x3c740cce} },
+/**/                  {{0x046cee83, 0xbfc35012} },
+/**/                  {{0xe446fd10, 0xbc651b6c} },
+/**/                  {{0xfb5e6a95, 0x3fc8c928} },
+/**/                  {{0x82469bf3, 0x3c656cd2} },
+/**/                  {{0xa4afbb1b, 0xbf8f6568} },
+/**/                  {{0xdb3aba50, 0xbfbb7491} },
+/**/                  {{0xb9fd56ec, 0x3fb11972} },
+/**/                  {{0x9329e15e, 0x3fa22de5} },
+/**/                  {{0x8287d93d, 0xbfb0e0a6} } },
+/**/                 {{{0x00000000, 0x3fd68000} },
+/**/                  {{0x175e0f4e, 0x3fd5a2e0} },
+/**/                  {{0x8f82e457, 0x3c713b7a} },
+/**/                  {{0x240b83ae, 0x3fec7ae0} },
+/**/                  {{0x10d398ed, 0xbc885b56} },
+/**/                  {{0x8cdb4db0, 0xbfd1d27d} },
+/**/                  {{0x2db0447f, 0x3c11d95f} },
+/**/                  {{0x11425541, 0xbfc2ed02} },
+/**/                  {{0x6b2cbaa3, 0xbc11d124} },
+/**/                  {{0x8cdc5c4d, 0x3fc8be8c} },
+/**/                  {{0x794444b0, 0xbc542511} },
+/**/                  {{0xd25a5415, 0xbf923ffd} },
+/**/                  {{0xbcd1df44, 0xbfbafbe6} },
+/**/                  {{0x26bdf05c, 0x3fb15fcc} },
+/**/                  {{0xa7b853e6, 0x3fa0ff2f} },
+/**/                  {{0x07e9a35f, 0xbfb0c109} } },
+/**/                 {{{0x00000000, 0x3fd6c000} },
+/**/                  {{0xfbbe768d, 0x3fd5dbc3} },
+/**/                  {{0x1b76f7da, 0x3c6ea0ec} },
+/**/                  {{0x8d78b9ce, 0x3fec68ff} },
+/**/                  {{0x4cb5a0c3, 0xbc83ab41} },
+/**/                  {{0xe01c5e6e, 0xbfd1ee96} },
+/**/                  {{0xfb76d8dd, 0x3c73922c} },
+/**/                  {{0xbbb23677, 0xbfc28a1f} },
+/**/                  {{0x288601f2, 0x3c6e592a} },
+/**/                  {{0x5e282403, 0x3fc8b25b} },
+/**/                  {{0x707e09fa, 0xbbef7d58} },
+/**/                  {{0xb65add31, 0xbf94c1e0} },
+/**/                  {{0xafa52f1b, 0xbfba815f} },
+/**/                  {{0x63712acc, 0x3fb1a16f} },
+/**/                  {{0x95a8d3ad, 0x3f9fa5b5} },
+/**/                  {{0x72814750, 0xbfb09d01} } },
+/**/                 {{{0x00000000, 0x3fd70000} },
+/**/                  {{0x0309cfe2, 0x3fd61484} },
+/**/                  {{0x15711f00, 0xbc7a7257} },
+/**/                  {{0x27afd9eb, 0x3fec5703} },
+/**/                  {{0xb32c1d72, 0x3c63c2ab} },
+/**/                  {{0x06000419, 0xbfd20a1c} },
+/**/                  {{0xf51a3a28, 0xbc7b5fe7} },
+/**/                  {{0x486ad2c8, 0xbfc22771} },
+/**/                  {{0xf84a7eae, 0xbc499ab5} },
+/**/                  {{0x9d027817, 0x3fc8a49c} },
+/**/                  {{0x2e376ecc, 0xbc53fcab} },
+/**/                  {{0xeaabcb23, 0xbf973831} },
+/**/                  {{0x8c46fbce, 0xbfba051d} },
+/**/                  {{0x9132e9cc, 0x3fb1de66} },
+/**/                  {{0xd48d5d65, 0x3f9d5269} },
+/**/                  {{0x712354a4, 0xbfb074bb} } },
+/**/                 {{{0x00000000, 0x3fd74000} },
+/**/                  {{0xf635c1c6, 0x3fd64d1f} },
+/**/                  {{0xe7c0fdbe, 0xbc7fa403} },
+/**/                  {{0x86b5cbf8, 0x3fec44eb} },
+/**/                  {{0xbc5b562d, 0xbc6a4101} },
+/**/                  {{0x50fb21ad, 0xbfd2250d} },
+/**/                  {{0xa39bdc1a, 0xbc750066} },
+/**/                  {{0xdf2ed728, 0xbfc1c4fc} },
+/**/                  {{0x006772e9, 0x3c6a87bb} },
+/**/                  {{0x9122b9b7, 0x3fc89557} },
+/**/                  {{0x45b04f75, 0xbc05454e} },
+/**/                  {{0x6c7888f1, 0xbf99a2c9} },
+/**/                  {{0xe02d36ad, 0xbfb98740} },
+/**/                  {{0x02a99665, 0x3fb216bd} },
+/**/                  {{0xb73aeccb, 0x3f9b0511} },
+/**/                  {{0x569b1738, 0xbfb04863} } },
+/**/                 {{{0x00000000, 0x3fd78000} },
+/**/                  {{0x9f5fa6fe, 0x3fd68597} },
+/**/                  {{0x4d1ada9c, 0xbc425781} },
+/**/                  {{0x3e386c7f, 0x3fec32b9} },
+/**/                  {{0x8cbaa5bf, 0x3c756033} },
+/**/                  {{0x1ca84e79, 0xbfd23f6b} },
+/**/                  {{0xf123d574, 0x3c604cc0} },
+/**/                  {{0x8a715435, 0xbfc162c8} },
+/**/                  {{0x454fb8fd, 0x3c5cf6db} },
+/**/                  {{0x9a4eb534, 0x3fc88493} },
+/**/                  {{0x42b959b0, 0xbc668a5c} },
+/**/                  {{0x42580bb5, 0xbf9c0182} },
+/**/                  {{0xe5822d56, 0xbfb907e9} },
+/**/                  {{0x2f8f8273, 0x3fb24a7f} },
+/**/                  {{0xa3527f46, 0x3f98be3c} },
+/**/                  {{0xfce97270, 0xbfb01825} } },
+/**/                 {{{0x00000000, 0x3fd7c000} },
+/**/                  {{0xc9cbd76d, 0x3fd6bdea} },
+/**/                  {{0x3e6de828, 0xbc5a5c56} },
+/**/                  {{0xe1857d04, 0x3fec206c} },
+/**/                  {{0xf5c83872, 0xbc80439f} },
+/**/                  {{0xcd9b9870, 0xbfd25935} },
+/**/                  {{0xf1ec7306, 0x3c6aaf98} },
+/**/                  {{0x36f94d02, 0xbfc100da} },
+/**/                  {{0xd96d84ff, 0xbc6e72ca} },
+/**/                  {{0x2e774351, 0x3fc87258} },
+/**/                  {{0xb8860ef0, 0x3c6c50a2} },
+/**/                  {{0x741ef0ec, 0xbf9e543a} },
+/**/                  {{0x7b4d0ec2, 0xbfb88738} },
+/**/                  {{0xa8164103, 0x3fb279ba} },
+/**/                  {{0xa7f1ae35, 0x3f967e73} },
+/**/                  {{0x5257c3de, 0xbfafc861} } },
+/**/                 {{{0x00000000, 0x3fd80000} },
+/**/                  {{0x41e4def1, 0x3fd6f619} },
+/**/                  {{0xe6f6e918, 0xbc7c63aa} },
+/**/                  {{0x0381c0e0, 0x3fec0e07} },
+/**/                  {{0x0381c0e0, 0x3c8c0e07} },
+/**/                  {{0xd135c174, 0xbfd2726d} },
+/**/                  {{0xe0951cf8, 0xbc2d352d} },
+/**/                  {{0xb38cc8cf, 0xbfc09f37} },
+/**/                  {{0xae75327f, 0xbc69db81} },
+/**/                  {{0xd7da413c, 0x3fc85eac} },
+/**/                  {{0x6ebae2bc, 0x3c5b1a89} },
+/**/                  {{0x80fcc815, 0xbfa04d69} },
+/**/                  {{0x1df326f9, 0xbfb8054c} },
+/**/                  {{0x082bda60, 0x3fb2a47e} },
+/**/                  {{0x7091d5a4, 0x3f944639} },
+/**/                  {{0xe072e48c, 0xbfaf5961} } },
+/**/                 {{{0x00000000, 0x3fd84000} },
+/**/                  {{0xd53aa2aa, 0x3fd72e22} },
+/**/                  {{0x4e79f27c, 0xbc7d9c93} },
+/**/                  {{0x36a04729, 0x3febfb88} },
+/**/                  {{0x9ac2ea21, 0xbc872745} },
+/**/                  {{0x9d7702cf, 0xbfd28b13} },
+/**/                  {{0x4be8bff6, 0x3c7819b9} },
+/**/                  {{0xb0a35176, 0xbfc03de6} },
+/**/                  {{0xc83347af, 0x3c5dbfb0} },
+/**/                  {{0x332a4f86, 0x3fc84999} },
+/**/                  {{0x0a22d12d, 0x3c5d304e} },
+/**/                  {{0xed6b2d30, 0xbfa16a97} },
+/**/                  {{0xe0128950, 0xbfb78243} },
+/**/                  {{0xeaa98f57, 0x3fb2cad8} },
+/**/                  {{0x3bb39c5b, 0x3f92160a} },
+/**/                  {{0x3804caa3, 0xbfaee3a9} } },
+/**/                 {{{0x00000000, 0x3fd88000} },
+/**/                  {{0x52817502, 0x3fd76607} },
+/**/                  {{0x91cc7600, 0xbc4dd117} },
+/**/                  {{0x0cd9e1fe, 0x3febe8f1} },
+/**/                  {{0xa21e102a, 0xbc7a9688} },
+/**/                  {{0xb0d161e9, 0xbfd2a327} },
+/**/                  {{0x14b44140, 0xbc60a2a9} },
+/**/                  {{0x803f8d3b, 0xbfbfb9d9} },
+/**/                  {{0x2a5c4097, 0x3c5e5779} },
+/**/                  {{0xedbcc363, 0x3fc83324} },
+/**/                  {{0xa0442744, 0x3c651fbc} },
+/**/                  {{0xe91477c3, 0xbfa2819b} },
+/**/                  {{0x63b6abf0, 0xbfb6fe3e} },
+/**/                  {{0xdc73a89a, 0x3fb2ecdb} },
+/**/                  {{0xaa755298, 0x3f8fdcb7} },
+/**/                  {{0x237c2f3d, 0xbfae6793} } },
+/**/                 {{{0x00000000, 0x3fd8c000} },
+/**/                  {{0x899118d1, 0x3fd79dc6} },
+/**/                  {{0xa0ef606d, 0x3c2b7413} },
+/**/                  {{0x17a4cbc3, 0x3febd642} },
+/**/                  {{0x3200a548, 0xbc55ee5d} },
+/**/                  {{0x91faa133, 0xbfd2baaa} },
+/**/                  {{0xfaf41548, 0xbc6bd391} },
+/**/                  {{0xaa22d832, 0xbfbef89e} },
+/**/                  {{0xc874fdb9, 0x3c413b3b} },
+/**/                  {{0xc3be300a, 0x3fc81b57} },
+/**/                  {{0xc01a615f, 0x3c6baf9b} },
+/**/                  {{0x4a872ec7, 0xbfa3926a} },
+/**/                  {{0xd3e743cd, 0xbfb67959} },
+/**/                  {{0x4f919505, 0x3fb30a98} },
+/**/                  {{0x28b78b08, 0x3f8b9f3b} },
+/**/                  {{0x71e33e9d, 0xbfade57b} } },
+/**/                 {{{0x00000000, 0x3fd90000} },
+/**/                  {{0x4b63b3f7, 0x3fd7d560} },
+/**/                  {{0x5c2b249a, 0x3c769c88} },
+/**/                  {{0xe7ec7a8d, 0x3febc37b} },
+/**/                  {{0x2b0e2727, 0xbc6f1246} },
+/**/                  {{0xcfbdd7fa, 0xbfd2d19c} },
+/**/                  {{0x5e00c582, 0x3c7d0b11} },
+/**/                  {{0x86f8309b, 0xbfbe3827} },
+/**/                  {{0xfa6c56a7, 0x3c5d64e9} },
+/**/                  {{0x7e6de8de, 0x3fc80239} },
+/**/                  {{0x7776e849, 0x3c68d62f} },
+/**/                  {{0x4f6d8017, 0xbfa49cf9} },
+/**/                  {{0xde917e27, 0xbfb5f3b3} },
+/**/                  {{0x8e455cc2, 0x3fb32420} },
+/**/                  {{0xb9fc88fe, 0x3f877470} },
+/**/                  {{0xc6b10536, 0xbfad5dbd} } },
+/**/                 {{{0x00000000, 0x3fd94000} },
+/**/                  {{0x6a14b1d1, 0x3fd80cd4} },
+/**/                  {{0x9684fa19, 0xbc7e79f9} },
+/**/                  {{0x0e09a222, 0x3febb09f} },
+/**/                  {{0x7e047edd, 0x3c85748e} },
+/**/                  {{0x00ccbbc8, 0xbfd2e7ff} },
+/**/                  {{0x96875561, 0xbc78eb0a} },
+/**/                  {{0x804ecc06, 0xbfbd787e} },
+/**/                  {{0x2e4351f8, 0xbc27263b} },
+/**/                  {{0xf260d7b4, 0x3fc7e7d1} },
+/**/                  {{0x8ed258e3, 0xbc430525} },
+/**/                  {{0x968d3d02, 0xbfa5a140} },
+/**/                  {{0xaecb845e, 0xbfb56d69} },
+/**/                  {{0xae292f95, 0x3fb33987} },
+/**/                  {{0x48e09ecd, 0x3f835d1d} },
+/**/                  {{0x6b6f9aca, 0xbfacd0b5} } },
+/**/                 {{{0x00000000, 0x3fd98000} },
+/**/                  {{0xb8df95d7, 0x3fd84422} },
+/**/                  {{0x299b41b6, 0x3c7d76a0} },
+/**/                  {{0x19ba64d6, 0x3feb9dac} },
+/**/                  {{0xa13ee09f, 0xbc4f643a} },
+/**/                  {{0xc390a5c9, 0xbfd2fdd1} },
+/**/                  {{0xaa856fcc, 0x3c575152} },
+/**/                  {{0xc0e99751, 0xbfbcb9ad} },
+/**/                  {{0x1347a357, 0x3c4e2d44} },
+/**/                  {{0xfdcbfd40, 0x3fc7cc28} },
+/**/                  {{0xe516db08, 0x3c60dc32} },
+/**/                  {{0x19851d86, 0xbfa69f39} },
+/**/                  {{0xe772087d, 0xbfb4e697} },
+/**/                  {{0x835992de, 0x3fb34ae1} },
+/**/                  {{0xe5326389, 0x3f7eb3f1} },
+/**/                  {{0x234575e8, 0xbfac3ebd} } },
+/**/                 {{{0x00000000, 0x3fd9c000} },
+/**/                  {{0x0c1ebedc, 0x3fd87b4b} },
+/**/                  {{0xa2fa470f, 0xbc76dcfa} },
+/**/                  {{0x9a1ab378, 0x3feb8aa3} },
+/**/                  {{0xb797ab93, 0x3c8efdb0} },
+/**/                  {{0xbdfb5e5a, 0xbfd31315} },
+/**/                  {{0x862f0c0d, 0x3c5813a8} },
+/**/                  {{0x3478f169, 0xbfbbfbbf} },
+/**/                  {{0xd9e52582, 0xbc51e810} },
+/**/                  {{0x86d6ec76, 0x3fc7af46} },
+/**/                  {{0x3c13b159, 0xbc6336de} },
+/**/                  {{0x264b8050, 0xbfa796dd} },
+/**/                  {{0x9e1f6bef, 0xbfb45f5a} },
+/**/                  {{0x93b26fc1, 0x3fb35842} },
+/**/                  {{0x39bc3abf, 0x3f76d75e} },
+/**/                  {{0x006e38b2, 0xbfaba82f} } },
+/**/                 {{{0x00000000, 0x3fda0000} },
+/**/                  {{0x394a1b25, 0x3fd8b24d} },
+/**/                  {{0xa3748fa8, 0x3c7b6d0b} },
+/**/                  {{0x1d9cdc98, 0x3feb7786} },
+/**/                  {{0x345bd7a8, 0xbc62e22c} },
+/**/                  {{0x9d57b8f5, 0xbfd327cb} },
+/**/                  {{0x753cc4f1, 0xbc135343} },
+/**/                  {{0x8761b154, 0xbfbb3ebc} },
+/**/                  {{0x8c168fdd, 0x3c5abeec} },
+/**/                  {{0x79f68c54, 0x3fc79132} },
+/**/                  {{0xd8d15eda, 0xbc658ab9} },
+/**/                  {{0x5872d73c, 0xbfa88828} },
+/**/                  {{0x567be750, 0xbfb3d7cd} },
+/**/                  {{0x0a24fc71, 0x3fb361c0} },
+/**/                  {{0x46aa98b6, 0x3f6e4b7a} },
+/**/                  {{0x3bad3a76, 0xbfab0d64} } },
+/**/                 {{{0x00000000, 0x3fda4000} },
+/**/                  {{0x16f5cde8, 0x3fd8e929} },
+/**/                  {{0xe12bfafb, 0x3c74c0a7} },
+/**/                  {{0x32024b37, 0x3feb6454} },
+/**/                  {{0x69cc9b53, 0xbc7987f7} },
+/**/                  {{0x161a0a40, 0xbfd33bf4} },
+/**/                  {{0x83ff46db, 0x3c7a2321} },
+/**/                  {{0x26913418, 0xbfba82af} },
+/**/                  {{0x10a559fe, 0x3c3c4c62} },
+/**/                  {{0xc8506679, 0x3fc771f4} },
+/**/                  {{0x63c7ccc3, 0xbc54aaed} },
+/**/                  {{0x9237e7ff, 0xbfa97317} },
+/**/                  {{0xfde5f112, 0xbfb3500a} },
+/**/                  {{0xaa2c3459, 0x3fb3676f} },
+/**/                  {{0x04721907, 0x3f5e80cd} },
+/**/                  {{0x0dc212a5, 0xbfaa6eb5} } },
+/**/                 {{{0x00000000, 0x3fda8000} },
+/**/                  {{0x7cd0c662, 0x3fd91fde} },
+/**/                  {{0x88054b53, 0x3c710741} },
+/**/                  {{0x6454751c, 0x3feb510e} },
+/**/                  {{0x7e0f2dca, 0xbc199bfd} },
+/**/                  {{0xe3b081f4, 0xbfd34f8f} },
+/**/                  {{0x3e2c0515, 0x3c7d7209} },
+/**/                  {{0x3f5e2d2f, 0xbfb9c7a0} },
+/**/                  {{0xea3bd312, 0xbc20b02e} },
+/**/                  {{0x6626c39a, 0x3fc75195} },
+/**/                  {{0xb4219a8a, 0x3c6f30d2} },
+/**/                  {{0xf55dfea5, 0xbfaa57a8} },
+/**/                  {{0xe771fa17, 0xbfb2c82d} },
+/**/                  {{0xc3654ab4, 0x3fb36967} },
+/**/                  {{0xa23eb6eb, 0x3f11f322} },
+/**/                  {{0x8ae579b1, 0xbfa9cc78} } },
+/**/                 {{{0x00000000, 0x3fdac000} },
+/**/                  {{0x43a34907, 0x3fd9566d} },
+/**/                  {{0x37e0af2b, 0x3c69b015} },
+/**/                  {{0x40ddf8d3, 0x3feb3db5} },
+/**/                  {{0x793c10b8, 0xbc616f46} },
+/**/                  {{0xc8537217, 0xbfd3629f} },
+/**/                  {{0x38143614, 0x3c505738} },
+/**/                  {{0xbf75f20a, 0xbfb90d98} },
+/**/                  {{0x6b842647, 0x3c4dc715} },
+/**/                  {{0x494dd1e6, 0x3fc7301c} },
+/**/                  {{0xf49f85b4, 0x3c5ec3d6} },
+/**/                  {{0xdbdd23b1, 0xbfab35db} },
+/**/                  {{0xc8407216, 0xbfb2404f} },
+/**/                  {{0x255139f9, 0x3fb367bf} },
+/**/                  {{0x65acd6da, 0xbf5b8a0d} },
+/**/                  {{0x8052f51d, 0xbfa92704} } },
+/**/                 {{{0x00000000, 0x3fdb0000} },
+/**/                  {{0x454d6b18, 0x3fd98cd5} },
+/**/                  {{0x88fd0a77, 0x3c79e6c9} },
+/**/                  {{0x5323eb6a, 0x3feb2a49} },
+/**/                  {{0x70cc9678, 0xbc572202} },
+/**/                  {{0x8cd58cc4, 0xbfd37524} },
+/**/                  {{0xda42aa4e, 0x3c6978a3} },
+/**/                  {{0x54d5f784, 0xbfb854a1} },
+/**/                  {{0xb33b3d0d, 0xbc5e9a15} },
+/**/                  {{0x67aa0c46, 0x3fc70d91} },
+/**/                  {{0xa4ac9df8, 0xbc6aa72f} },
+/**/                  {{0xd0665a46, 0xbfac0db0} },
+/**/                  {{0xb428e30d, 0xbfb1b889} },
+/**/                  {{0x134448b0, 0x3fb3628d} },
+/**/                  {{0x67619c9c, 0xbf6bbbc1} },
+/**/                  {{0x53e1f653, 0xbfa87ead} } },
+/**/                 {{{0x00000000, 0x3fdb4000} },
+/**/                  {{0x5cc58107, 0x3fd9c316} },
+/**/                  {{0x02250cfb, 0x3c4b6696} },
+/**/                  {{0x25df55f4, 0x3feb16cb} },
+/**/                  {{0xf48e26bc, 0xbc653abc} },
+/**/                  {{0x00742189, 0xbfd3871f} },
+/**/                  {{0xc05df451, 0xbc725ae2} },
+/**/                  {{0x6dd13675, 0xbfb79cc2} },
+/**/                  {{0x991905e4, 0x3be1d4e0} },
+/**/                  {{0xb5b8147e, 0x3fc6e9fc} },
+/**/                  {{0xa57d4eca, 0x3c46463b} },
+/**/                  {{0x86c1db89, 0xbfacdf29} },
+/**/                  {{0x1ab8d1c4, 0xbfb130f4} },
+/**/                  {{0x38881228, 0x3fb359e9} },
+/**/                  {{0x53bec2ff, 0xbf74a987} },
+/**/                  {{0xe5af58b6, 0xbfa7d3c5} } },
+/**/                 {{{0x00000000, 0x3fdb8000} },
+/**/                  {{0x66168002, 0x3fd9f930} },
+/**/                  {{0x47c9439a, 0xbc7c8270} },
+/**/                  {{0x42f6e2c9, 0x3feb033b} },
+/**/                  {{0xc48702a7, 0xbc6eb80c} },
+/**/                  {{0xf8a76337, 0xbfd3988f} },
+/**/                  {{0x5b1bb38a, 0xbc636968} },
+/**/                  {{0x39212b04, 0xbfb6e604} },
+/**/                  {{0xba255e71, 0xbc3c2e20} },
+/**/                  {{0x251e2d41, 0x3fc6c566} },
+/**/                  {{0x47236369, 0x3c230ab3} },
+/**/                  {{0xd40b3417, 0xbfadaa48} },
+/**/                  {{0xc484f2cc, 0xbfb0a9a6} },
+/**/                  {{0x9cb4573e, 0x3fb34deb} },
+/**/                  {{0x1def6f17, 0xbf7b44ca} },
+/**/                  {{0x73d683b8, 0xbfa7269f} } },
+/**/                 {{{0x00000000, 0x3fdbc000} },
+/**/                  {{0x3e5e530b, 0x3fda2f23} },
+/**/                  {{0xf797086b, 0x3c5814d5} },
+/**/                  {{0x3378ba79, 0x3feaef9a} },
+/**/                  {{0x4476e241, 0x3c7da16a} },
+/**/                  {{0x50f2beab, 0xbfd3a978} },
+/**/                  {{0xad5a31ea, 0x3c7b7e7f} },
+/**/                  {{0xa602212f, 0xbfb6306e} },
+/**/                  {{0x9ec38d55, 0xbc31ec15} },
+/**/                  {{0xa3477c6a, 0x3fc69fd5} },
+/**/                  {{0xb2996038, 0x3c571f2f} },
+/**/                  {{0xa6cf162d, 0xbfae6f12} },
+/**/                  {{0xd0cb2655, 0xbfb022b8} },
+/**/                  {{0x9842912f, 0x3fb33eac} },
+/**/                  {{0x4919e78d, 0xbf80d789} },
+/**/                  {{0x8037e242, 0xbfa67789} } },
+/**/                 {{{0x00000000, 0x3fdc0000} },
+/**/                  {{0xc3cc23fd, 0x3fda64ee} },
+/**/                  {{0x1b50b7ff, 0xbc724dec} },
+/**/                  {{0x7f94905e, 0x3feadbe8} },
+/**/                  {{0x7f94905e, 0x3c2adbe8} },
+/**/                  {{0xeab54af9, 0xbfd3b9d8} },
+/**/                  {{0x54fd0941, 0x3c75b97d} },
+/**/                  {{0x645a7f9e, 0xbfb57c09} },
+/**/                  {{0x09320811, 0xbc5e79f6} },
+/**/                  {{0x180938f2, 0x3fc67953} },
+/**/                  {{0xe7aee726, 0x3c6246f2} },
+/**/                  {{0xff0ea012, 0xbfaf2d8b} },
+/**/                  {{0x66c7250c, 0xbfaf3881} },
+/**/                  {{0xc95ff694, 0x3fb32c44} },
+/**/                  {{0x25d7ff49, 0xbf83f3f0} },
+/**/                  {{0xb848e1d1, 0xbfa5c6d1} } },
+/**/                 {{{0x00000000, 0x3fdc4000} },
+/**/                  {{0xd59e98cf, 0x3fda9a92} },
+/**/                  {{0xff75d817, 0x3c42e42d} },
+/**/                  {{0xae95dea9, 0x3feac826} },
+/**/                  {{0x633dec57, 0xbc534eec} },
+/**/                  {{0xacfa5b18, 0xbfd3c9b2} },
+/**/                  {{0x6c4d8d27, 0x3c7a7e0c} },
+/**/                  {{0xe4ecc0f6, 0xbfb4c8db} },
+/**/                  {{0xc0c32772, 0xbc534990} },
+/**/                  {{0x6451e377, 0x3fc651e6} },
+/**/                  {{0x2a9bb1f1, 0xbc6ea814} },
+/**/                  {{0xe62bc1b2, 0xbfafe5ba} },
+/**/                  {{0x65fe3642, 0xbfae2ca8} },
+/**/                  {{0x09015968, 0x3fb316cd} },
+/**/                  {{0x3ce97a26, 0xbf86f764} },
+/**/                  {{0xdee8421b, 0xbfa514c3} } },
+/**/                 {{{0x00000000, 0x3fdc8000} },
+/**/                  {{0x5422058b, 0x3fdad00f} },
+/**/                  {{0x3891d2e8, 0x3c7fc4c3} },
+/**/                  {{0x46de51cf, 0x3feab455} },
+/**/                  {{0xdbc38cc9, 0xbc5b834a} },
+/**/                  {{0x844a38eb, 0xbfd3d906} },
+/**/                  {{0xbc44eee8, 0x3c6198e5} },
+/**/                  {{0x5993cade, 0xbfb416ed} },
+/**/                  {{0xfa289b6c, 0xbc235ccb} },
+/**/                  {{0x60e2a3af, 0x3fc62997} },
+/**/                  {{0xcf7bda0e, 0xbc69a660} },
+/**/                  {{0x33612b72, 0xbfb04bd3} },
+/**/                  {{0xcf62bcd9, 0xbfad2210} },
+/**/                  {{0x603bfc37, 0x3fb2fe5e} },
+/**/                  {{0xa9bce7ec, 0xbf89e1ba} },
+/**/                  {{0xb83029d5, 0xbfa461a9} } },
+/**/                 {{{0x00000000, 0x3fdcc000} },
+/**/                  {{0x20ae9344, 0x3fdb0564} },
+/**/                  {{0x46363455, 0xbc793139} },
+/**/                  {{0xcde0631f, 0x3feaa074} },
+/**/                  {{0x143fe6d4, 0x3c84b49a} },
+/**/                  {{0x627b115b, 0xbfd3e7d5} },
+/**/                  {{0x332989c0, 0x3c77a502} },
+/**/                  {{0xb589513f, 0xbfb36644} },
+/**/                  {{0x105eec96, 0x3c3abdc9} },
+/**/                  {{0xdd12e0be, 0x3fc6006d} },
+/**/                  {{0x5d67cb35, 0xbc4f0281} },
+/**/                  {{0x4238ba83, 0xbfb0a1ab} },
+/**/                  {{0x73889526, 0xbfac18e3} },
+/**/                  {{0xfde6351a, 0x3fb2e311} },
+/**/                  {{0xc256833f, 0xbf8cb2d2} },
+/**/                  {{0xf73e36f0, 0xbfa3adca} } },
+/**/                 {{{0x00000000, 0x3fdd0000} },
+/**/                  {{0x1da65c6c, 0x3fdb3a91} },
+/**/                  {{0xb1ca5040, 0x3c7ae187} },
+/**/                  {{0xc81a2254, 0x3fea8c85} },
+/**/                  {{0x8d67728b, 0xbc83c191} },
+/**/                  {{0x3e8218e0, 0xbfd3f620} },
+/**/                  {{0x52bd43ef, 0xbc72bf32} },
+/**/                  {{0xadb5f398, 0xbfb2b6e8} },
+/**/                  {{0x6b74d451, 0x3c340287} },
+/**/                  {{0x9d9e25fc, 0x3fc5d671} },
+/**/                  {{0x518d7a71, 0x3c639669} },
+/**/                  {{0x19cc29a0, 0xbfb0f46a} },
+/**/                  {{0xc1a69750, 0xbfab1147} },
+/**/                  {{0x2c826e6b, 0x3fb2c501} },
+/**/                  {{0xcbc1b186, 0xbf8f6a95} },
+/**/                  {{0x2de89811, 0xbfa2f96d} } },
+/**/                 {{{0x00000000, 0x3fdd4000} },
+/**/                  {{0x2e737efc, 0x3fdb6f96} },
+/**/                  {{0x64981e71, 0xbc5ca534} },
+/**/                  {{0xb9102ddc, 0x3fea7888} },
+/**/                  {{0x3c46d7d5, 0xbc7791b2} },
+/**/                  {{0x1444efb5, 0xbfd403e8} },
+/**/                  {{0x4f3d22a6, 0xbc6047c5} },
+/**/                  {{0xb90ac1cc, 0xbfb208df} },
+/**/                  {{0x2d2115d8, 0x3c4078b1} },
+/**/                  {{0x5b7c61a2, 0x3fc5abaa} },
+/**/                  {{0x2bd2d19a, 0x3c3eef6a} },
+/**/                  {{0xa8850e1a, 0xbfb14414} },
+/**/                  {{0xc6580343, 0xbfaa0b63} },
+/**/                  {{0x4876cfdf, 0x3fb2a445} },
+/**/                  {{0x562d0829, 0xbf91047b} },
+/**/                  {{0xbe562a83, 0xbfa244d3} } },
+/**/                 {{{0x00000000, 0x3fdd8000} },
+/**/                  {{0x378624a5, 0x3fdba473} },
+/**/                  {{0xb46e4aff, 0x3c7519a1} },
+/**/                  {{0x2348d9a3, 0x3fea647e} },
+/**/                  {{0x9156e59f, 0xbc84f6c2} },
+/**/                  {{0xe46b4c91, 0xbfd4112d} },
+/**/                  {{0x110fe0b7, 0xbc78c11d} },
+/**/                  {{0x10e3d572, 0xbfb15c30} },
+/**/                  {{0x4427c00b, 0x3c53b45b} },
+/**/                  {{0xc2c486ae, 0x3fc5801f} },
+/**/                  {{0xc20ced8b, 0xbc49bb5e} },
+/**/                  {{0x4cddef65, 0xbfb190b0} },
+/**/                  {{0x2ae4bcd0, 0xbfa9075c} },
+/**/                  {{0xb69396b9, 0x3fb280f7} },
+/**/                  {{0xce179ccb, 0xbf9246f8} },
+/**/                  {{0xce6e9b2b, 0xbfa1903f} } },
+/**/                 {{{0x00000000, 0x3fddc000} },
+/**/                  {{0x1e528192, 0x3fdbd928} },
+/**/                  {{0x39af6b66, 0xbc74b154} },
+/**/                  {{0x88478403, 0x3fea5066} },
+/**/                  {{0xbe71620f, 0xbc85c7e8} },
+/**/                  {{0xb430f4ac, 0xbfd41df2} },
+/**/                  {{0xe79c7595, 0xbc55db82} },
+/**/                  {{0xb173ac76, 0xbfb0b0df} },
+/**/                  {{0xe4738d25, 0x3c57f440} },
+/**/                  {{0x7199976b, 0x3fc553d9} },
+/**/                  {{0x2a872a12, 0x3c54990c} },
+/**/                  {{0xd137dd01, 0xbfb1da42} },
+/**/                  {{0x350bfdb5, 0xbfa80554} },
+/**/                  {{0xdae9e17f, 0x3fb25b31} },
+/**/                  {{0xe9e265b4, 0xbf937cc5} },
+/**/                  {{0x3d16a202, 0xbfa0dbf0} } },
+/**/                 {{{0x00000000, 0x3fde0000} },
+/**/                  {{0xc94ec9f0, 0x3fdc0db4} },
+/**/                  {{0x70934c34, 0xbc7cc1ce} },
+/**/                  {{0x68881898, 0x3fea3c42} },
+/**/                  {{0xe5c3bd97, 0x3c8f907f} },
+/**/                  {{0x8d38076d, 0xbfd42a37} },
+/**/                  {{0x7e19d62d, 0xbc6b8354} },
+/**/                  {{0x5a36f1bd, 0xbfb006f4} },
+/**/                  {{0xca398c09, 0xbc41701e} },
+/**/                  {{0xf7221a2a, 0x3fc526de} },
+/**/                  {{0x8041247e, 0xbc211868} },
+/**/                  {{0x67b0229a, 0xbfb220d2} },
+/**/                  {{0xc74d0c66, 0xbfa7056d} },
+/**/                  {{0x0ff472e2, 0x3fb2330d} },
+/**/                  {{0x9cb74216, 0xbf94a5e9} },
+/**/                  {{0x992b9e1f, 0xbfa02821} } },
+/**/                 {{{0x00000000, 0x3fde4000} },
+/**/                  {{0x1ff11eb7, 0x3fdc4219} },
+/**/                  {{0x434b3eee, 0xbc7b17df} },
+/**/                  {{0x437ac09e, 0x3fea2812} },
+/**/                  {{0xf9618c21, 0xbc540368} },
+/**/                  {{0x7d5ba406, 0xbfd435fd} },
+/**/                  {{0x5e0a732a, 0x3c75605b} },
+/**/                  {{0x1ce0c104, 0xbfaebce7} },
+/**/                  {{0xd4eb3297, 0xbc446d02} },
+/**/                  {{0xd289f60b, 0x3fc4f937} },
+/**/                  {{0xe736fa8b, 0x3c5b88b7} },
+/**/                  {{0xa5f78db4, 0xbfb26465} },
+/**/                  {{0x61a972db, 0xbfa607c9} },
+/**/                  {{0x9e13b088, 0x3fb208a2} },
+/**/                  {{0x06c33653, 0xbf95c26f} },
+/**/                  {{0x346237b1, 0xbf9eea1c} } },
+/**/                 {{{0x00000000, 0x3fde8000} },
+/**/                  {{0x0aad71f9, 0x3fdc7655} },
+/**/                  {{0xff7043e4, 0xbc774b8b} },
+/**/                  {{0x977fc070, 0x3fea13d6} },
+/**/                  {{0xd9440881, 0xbc86c451} },
+/**/                  {{0x9682eee2, 0xbfd44145} },
+/**/                  {{0xb13901b4, 0x3c74156f} },
+/**/                  {{0x2b58de73, 0xbfad6ec5} },
+/**/                  {{0xdf653988, 0x3c2ced26} },
+/**/                  {{0x720eb232, 0x3fc4caeb} },
+/**/                  {{0x92f3f809, 0x3c614246} },
+/**/                  {{0x812caa81, 0xbfb2a503} },
+/**/                  {{0x22dc20a7, 0xbfa50c86} },
+/**/                  {{0xb35de59d, 0x3fb1dc0b} },
+/**/                  {{0x4adc8c38, 0xbf96d265} },
+/**/                  {{0x35444e0c, 0xbf9d85db} } },
+/**/                 {{{0x00000000, 0x3fdec000} },
+/**/                  {{0x72f3631b, 0x3fdcaa68} },
+/**/                  {{0x81636f48, 0x3c295067} },
+/**/                  {{0xe1e381db, 0x3fe9ff8f} },
+/**/                  {{0x00701e1c, 0xbc6fffe6} },
+/**/                  {{0xee747cac, 0xbfd44c10} },
+/**/                  {{0xced401ad, 0xbc7a7f22} },
+/**/                  {{0xf898de26, 0xbfac238c} },
+/**/                  {{0xdaa7d32f, 0x3c1eb191} },
+/**/                  {{0x32160e42, 0x3fc49c01} },
+/**/                  {{0x03d0023c, 0x3c649f02} },
+/**/                  {{0x49ba4fb7, 0xbfb2e2b3} },
+/**/                  {{0xca00d6c7, 0xbfa413c1} },
+/**/                  {{0x5bc495cf, 0x3fb1ad61} },
+/**/                  {{0x63d0ff69, 0xbf97d5df} },
+/**/                  {{0x27af7010, 0xbf9c23eb} } },
+/**/                 {{{0x00000000, 0x3fdf0000} },
+/**/                  {{0x432c1351, 0x3fdcde53} },
+/**/                  {{0x4418f1ad, 0xbc7a2cfa} },
+/**/                  {{0x9edacacc, 0x3fe9eb3e} },
+/**/                  {{0x87d23ca5, 0xbc8942c5} },
+/**/                  {{0x9eaa285d, 0xbfd45660} },
+/**/                  {{0x52cf85b4, 0x3c4fe8e6} },
+/**/                  {{0x28319af3, 0xbfaadb48} },
+/**/                  {{0x31b456b0, 0xbc207b46} },
+/**/                  {{0x5c4ee7c2, 0x3fc46c80} },
+/**/                  {{0xb4443c76, 0x3c4bdfc1} },
+/**/                  {{0xa73bc33f, 0xbfb31d7c} },
+/**/                  {{0xb8a731f5, 0xbfa31d98} },
+/**/                  {{0x798f7481, 0x3fb17cbc} },
+/**/                  {{0xf977e9ca, 0xbf98ccf3} },
+/**/                  {{0x36ea1578, 0xbf9ac4b2} } },
+/**/                 {{{0x00000000, 0x3fdf4000} },
+/**/                  {{0x66b7f2ad, 0x3fdd1215} },
+/**/                  {{0x35886c30, 0x3c7be678} },
+/**/                  {{0x497f1fed, 0x3fe9d6e3} },
+/**/                  {{0x9a35c454, 0xbc8ec056} },
+/**/                  {{0xc4255988, 0xbfd46035} },
+/**/                  {{0x7144427c, 0x3c7ddb7b} },
+/**/                  {{0xe9b44acd, 0xbfa995ff} },
+/**/                  {{0xb529cf65, 0x3c3c9d56} },
+/**/                  {{0x26dc5cda, 0x3fc43c70} },
+/**/                  {{0xfde6cd82, 0x3c6d6ee6} },
+/**/                  {{0x9467b39a, 0xbfb35567} },
+/**/                  {{0xf54ca1ba, 0xbfa22a25} },
+/**/                  {{0xbe2d5d2d, 0x3fb14a35} },
+/**/                  {{0x35a34e74, 0xbf99b7bd} },
+/**/                  {{0xc4948489, 0xbf996891} } },
+/**/                 {{{0x00000000, 0x3fdf8000} },
+/**/                  {{0xc9ec862b, 0x3fdd45ae} },
+/**/                  {{0x163ef92d, 0x3c689421} },
+/**/                  {{0x5bcb52c7, 0x3fe9c27e} },
+/**/                  {{0xf148a350, 0xbc892d91} },
+/**/                  {{0x7f43bff0, 0xbfd46991} },
+/**/                  {{0x8da13c27, 0xbc738b23} },
+/**/                  {{0xf9f19dcd, 0xbfa853bc} },
+/**/                  {{0x2433c5cf, 0x3c2ea7a9} },
+/**/                  {{0xb38b19e0, 0x3fc40bd7} },
+/**/                  {{0x1c2a2863, 0xbc5d466e} },
+/**/                  {{0x5b0333a7, 0xbfb38a7c} },
+/**/                  {{0x2e3896d7, 0xbfa13983} },
+/**/                  {{0xa35b7545, 0x3fb115e5} },
+/**/                  {{0x99098556, 0xbf9a9658} },
+/**/                  {{0x693ac59e, 0xbf980fe6} } },
+/**/                 {{{0x00000000, 0x3fdfc000} },
+/**/                  {{0x5a1226f5, 0x3fdd791f} },
+/**/                  {{0xa5b64a76, 0xbc64017e} },
+/**/                  {{0x4e983ae9, 0x3fe9ae10} },
+/**/                  {{0x52b783d7, 0xbc8d45ed} },
+/**/                  {{0xf394891f, 0xbfd47274} },
+/**/                  {{0x22e08713, 0xbc7cd478} },
+/**/                  {{0xa445379d, 0xbfa71487} },
+/**/                  {{0x831d87b7, 0x3c1569aa} },
+/**/                  {{0x0f10bc36, 0x3fc3dabe} },
+/**/                  {{0x1cb9bbe6, 0x3bd8df2b} },
+/**/                  {{0x8fddd862, 0xbfb3bcc3} },
+/**/                  {{0xbcb632d9, 0xbfa04bc8} },
+/**/                  {{0x64a26d77, 0x3fb0dfe4} },
+/**/                  {{0xd04027d1, 0xbf9b68e6} },
+/**/                  {{0xf792c5d9, 0xbf96bb07} } },
+/**/                 {{{0x00000000, 0x3fe00000} },
+/**/                  {{0x0561bb4f, 0x3fddac67} },
+/**/                  {{0x222f65e2, 0x3c7a2b7f} },
+/**/                  {{0x9999999a, 0x3fe99999} },
+/**/                  {{0x9999999a, 0xbc899999} },
+/**/                  {{0x47ae147b, 0xbfd47ae1} },
+/**/                  {{0xeb851eb8, 0x3c5eb851} },
+/**/                  {{0xc3ece2a5, 0xbfa5d867} },
+/**/                  {{0xd7b900af, 0xbc3a485c} },
+/**/                  {{0x30553261, 0x3fc3a92a} },
+/**/                  {{0x94467382, 0x3c6f06f6} },
+/**/                  {{0x0ed80a18, 0xbfb3ec46} },
+/**/                  {{0x514d88d8, 0xbf9ec21b} },
+/**/                  {{0xf929a833, 0x3fb0a849} },
+/**/                  {{0x88dfb80c, 0xbf9c2f8b} },
+/**/                  {{0x8245bf09, 0xbf956a49} } },
+/**/                 {{{0x00000000, 0x3fe02000} },
+/**/                  {{0xbb026974, 0x3fdddf85} },
+/**/                  {{0x0c0a1226, 0x3c643bbb} },
+/**/                  {{0xb35b2797, 0x3fe9851a} },
+/**/                  {{0x18a8fead, 0x3c89cd14} },
+/**/                  {{0xa5042a2d, 0xbfd482d7} },
+/**/                  {{0xa8224d16, 0x3c0dbc04} },
+/**/                  {{0xc56ade02, 0xbfa49f64} },
+/**/                  {{0x47da7eea, 0x3c451e52} },
+/**/                  {{0xf7c5fe7d, 0x3fc37722} },
+/**/                  {{0xd22c4b5c, 0xbc5165be} },
+/**/                  {{0xf6f48c5d, 0xbfb4190c} },
+/**/                  {{0x58d0c132, 0xbf9cf2cf} },
+/**/                  {{0x0ddfdd74, 0x3fb06f2e} },
+/**/                  {{0x46e65336, 0xbf9cea6d} },
+/**/                  {{0x6423af3b, 0xbf941df9} } },
+/**/                 {{{0x00000000, 0x3fe04000} },
+/**/                  {{0x6b0744b0, 0x3fde127b} },
+/**/                  {{0x6398d4ab, 0xbc52b098} },
+/**/                  {{0x113dcc5a, 0x3fe97094} },
+/**/                  {{0x4de8c575, 0xbc842780} },
+/**/                  {{0x37beb8e5, 0xbfd48a59} },
+/**/                  {{0x9dc7541e, 0xbc601dd2} },
+/**/                  {{0xa7f2a8fe, 0xbfa36985} },
+/**/                  {{0x7437d42d, 0xbc45e414} },
+/**/                  {{0x2eb33dd6, 0x3fc344af} },
+/**/                  {{0xe3a3193c, 0xbc6d66e9} },
+/**/                  {{0xa6763232, 0xbfb44321} },
+/**/                  {{0x7217dfc9, 0xbf9b29d6} },
+/**/                  {{0xfff8a866, 0x3fb034a7} },
+/**/                  {{0x3a6e931d, 0xbf9d99b5} },
+/**/                  {{0x4a9f7e19, 0xbf92d661} } },
+/**/                 {{{0x00000000, 0x3fe06000} },
+/**/                  {{0x066cf51a, 0x3fde4548} },
+/**/                  {{0x12ce98f2, 0x3c43a3aa} },
+/**/                  {{0x2774fe53, 0x3fe95c06} },
+/**/                  {{0x3b851412, 0x3c810dfd} },
+/**/                  {{0x2e911e43, 0xbfd49167} },
+/**/                  {{0x09466fcd, 0xbc7f6506} },
+/**/                  {{0xfedfb0c1, 0xbfa236d0} },
+/**/                  {{0x79cb63a9, 0xbc3f6870} },
+/**/                  {{0x86b6561c, 0x3fc311d5} },
+/**/                  {{0x9543fc9a, 0x3c561982} },
+/**/                  {{0xb70aa5a7, 0xbfb46a8d} },
+/**/                  {{0xf5ac1efc, 0xbf996756} },
+/**/                  {{0xaf7c84b3, 0x3faff19d} },
+/**/                  {{0x15ce96b8, 0xbf9e3d8f} },
+/**/                  {{0x42726021, 0xbf9193c6} } },
+/**/                 {{{0x00000000, 0x3fe08000} },
+/**/                  {{0x7f175a34, 0x3fde77eb} },
+/**/                  {{0xc1bf3435, 0x3c70e53d} },
+/**/                  {{0x69044ba4, 0x3fe94771} },
+/**/                  {{0x92d5fbc1, 0xbc7d53e2} },
+/**/                  {{0xba91fd89, 0xbfd49802} },
+/**/                  {{0xc3c8c4f3, 0x3c71963e} },
+/**/                  {{0xf33546d5, 0xbfa1074c} },
+/**/                  {{0xc71ad288, 0x3c4bc296} },
+/**/                  {{0x99222665, 0x3fc2de9c} },
+/**/                  {{0x28dadb64, 0x3c6e4a10} },
+/**/                  {{0xfa031cb1, 0xbfb48f5a} },
+/**/                  {{0xbc0c6420, 0xbf97ab74} },
+/**/                  {{0x876d0f75, 0x3faf7772} },
+/**/                  {{0xe431fc96, 0xbf9ed628} },
+/**/                  {{0xc64515ec, 0xbf905668} } },
+/**/                 {{{0x00000000, 0x3fe0a000} },
+/**/                  {{0xc7cf28c4, 0x3fdeaa65} },
+/**/                  {{0xeca3bf05, 0x3c62fb2c} },
+/**/                  {{0x47bd0aaa, 0x3fe932d6} },
+/**/                  {{0x697b6e3c, 0x3c6bdfec} },
+/**/                  {{0x0f13a7e8, 0xbfd49e2d} },
+/**/                  {{0x20412940, 0x3c6198c5} },
+/**/                  {{0x8a4e92df, 0xbf9fb5fe} },
+/**/                  {{0x6309a51a, 0xbc3cbb58} },
+/**/                  {{0xe67c9829, 0x3fc2ab0a} },
+/**/                  {{0x06a4c4ef, 0xbc647643} },
+/**/                  {{0x749bc711, 0xbfb4b193} },
+/**/                  {{0x27bef265, 0xbf95f651} },
+/**/                  {{0x28347ebf, 0x3faefafb} },
+/**/                  {{0xe0c06e2f, 0xbf9f63b2} },
+/**/                  {{0x9e7b9dd7, 0xbf8e3d09} } },
+/**/                 {{{0x00000000, 0x3fe0c000} },
+/**/                  {{0xd43f8435, 0x3fdedcb6} },
+/**/                  {{0x330884e4, 0xbc5fc976} },
+/**/                  {{0x343c31e5, 0x3fe91e35} },
+/**/                  {{0x9bb96799, 0xbc8fd46f} },
+/**/                  {{0x617d19a1, 0xbfd4a3e7} },
+/**/                  {{0xea58b250, 0xbc7d7303} },
+/**/                  {{0x9b55d156, 0xbf9d63da} },
+/**/                  {{0xd5b4cc6c, 0xbc14bf72} },
+/**/                  {{0xd6016a7c, 0x3fc27726} },
+/**/                  {{0x435ec4b4, 0x3c4eba22} },
+/**/                  {{0x5c52b3c6, 0xbfb4d141} },
+/**/                  {{0x2fdd9fbd, 0xbf94480b} },
+/**/                  {{0x6d3af4b6, 0x3fae7c63} },
+/**/                  {{0x4e61315b, 0xbf9fe65f} },
+/**/                  {{0xcea37283, 0xbf8bd8a3} } },
+/**/                 {{{0x00000000, 0x3fe0e000} },
+/**/                  {{0x98f393d0, 0x3fdf0ede} },
+/**/                  {{0x87cb1894, 0xbc72f40a} },
+/**/                  {{0x9de85688, 0x3fe9098e} },
+/**/                  {{0xa3791e64, 0xbc7c2de1} },
+/**/                  {{0xe9238ed7, 0xbfd4a932} },
+/**/                  {{0x28864386, 0xbc67a1bb} },
+/**/                  {{0x001dec68, 0xbf9b1838} },
+/**/                  {{0x8f0ffbdd, 0xbc33ee0e} },
+/**/                  {{0xb52e1005, 0x3fc242f6} },
+/**/                  {{0x371fd2c1, 0xbc5476eb} },
+/**/                  {{0x134edf2d, 0xbfb4ee6f} },
+/**/                  {{0x6b13becc, 0xbf92a0bf} },
+/**/                  {{0x650f859c, 0x3fadfbd6} },
+/**/                  {{0x281586f4, 0xbfa02f31} },
+/**/                  {{0x7a73449e, 0xbf898006} } },
+/**/                 {{{0x00000000, 0x3fe10000} },
+/**/                  {{0x0b541418, 0x3fdf40dd} },
+/**/                  {{0xdc382a23, 0xbc6a3992} },
+/**/                  {{0xf2efd135, 0x3fe8f4e2} },
+/**/                  {{0xd4218911, 0xbc74c3c0} },
+/**/                  {{0xdf24b2d1, 0xbfd4ae10} },
+/**/                  {{0x79d0ac37, 0x3c713b12} },
+/**/                  {{0xd7365f3f, 0xbf98d31f} },
+/**/                  {{0x62531dc5, 0xbc18bf3b} },
+/**/                  {{0xb7567664, 0x3fc20e80} },
+/**/                  {{0xd450197f, 0xbc54a699} },
+/**/                  {{0x24d80ddd, 0xbfb50927} },
+/**/                  {{0x1b0516ab, 0xbf910088} },
+/**/                  {{0x4a356567, 0x3fad797e} },
+/**/                  {{0xe14758ed, 0xbfa065f8} },
+/**/                  {{0x73d2f6bb, 0xbf87338f} } },
+/**/                 {{{0x00000000, 0x3fe12000} },
+/**/                  {{0x21a4e495, 0x3fdf72b2} },
+/**/                  {{0x0f7eb740, 0x3c5489c2} },
+/**/                  {{0xa0470831, 0x3fe8e032} },
+/**/                  {{0xe75570cd, 0xbc8c154a} },
+/**/                  {{0x7e416c35, 0xbfd4b282} },
+/**/                  {{0x60646afd, 0xbc7f1837} },
+/**/                  {{0x7a6bec27, 0xbf96949a} },
+/**/                  {{0xe6b77ba9, 0x3c38238f} },
+/**/                  {{0xf5428c61, 0x3fc1d9ca} },
+/**/                  {{0xcd7881aa, 0x3c6a968d} },
+/**/                  {{0x41e00b6e, 0xbfb52174} },
+/**/                  {{0x702ad3de, 0xbf8ecefa} },
+/**/                  {{0x7c8ae0dc, 0x3facf584} },
+/**/                  {{0x8aa44fa8, 0xbfa097a2} },
+/**/                  {{0x2ed63408, 0xbf84f394} } },
+/**/                 {{{0x00000000, 0x3fe14000} },
+/**/                  {{0xd3029259, 0x3fdfa45d} },
+/**/                  {{0xdc28d8b5, 0xbc7ca563} },
+/**/                  {{0x11a6de80, 0x3fe8cb7e} },
+/**/                  {{0xac22b8f8, 0x3c610be6} },
+/**/                  {{0x02b9488a, 0xbfd4b689} },
+/**/                  {{0xaf91d442, 0x3c5ea0bd} },
+/**/                  {{0x821fd17e, 0xbf945caf} },
+/**/                  {{0x0e51a049, 0x3c38e464} },
+/**/                  {{0x6cd45aad, 0x3fc1a4db} },
+/**/                  {{0xf4200d5e, 0x3c2288e0} },
+/**/                  {{0x3d9dd7c4, 0xbfb53761} },
+/**/                  {{0xfb107457, 0xbf8bab68} },
+/**/                  {{0x7b46ebd1, 0x3fac7011} },
+/**/                  {{0x93134a8f, 0xbfa0c44a} },
+/**/                  {{0xf1fa4589, 0xbf82c061} } },
+/**/                 {{{0x00000000, 0x3fe16000} },
+/**/                  {{0x175fdf83, 0x3fdfd5e0} },
+/**/                  {{0x1ec49b15, 0x3c63a87b} },
+/**/                  {{0xb18b4749, 0x3fe8b6c5} },
+/**/                  {{0xb7d58c0a, 0xbc5fabb8} },
+/**/                  {{0xaa26890c, 0xbfd4ba25} },
+/**/                  {{0x0ef9b688, 0x3c50e395} },
+/**/                  {{0xc8a9b4c0, 0xbf922b65} },
+/**/                  {{0xd319146f, 0x3c2835ee} },
+/**/                  {{0x00b681bd, 0x3fc16fb8} },
+/**/                  {{0x279133b0, 0x3c1df633} },
+/**/                  {{0x0a3b410c, 0xbfb54af9} },
+/**/                  {{0xebe14682, 0xbf889682} },
+/**/                  {{0xdf89e086, 0x3fabe94c} },
+/**/                  {{0x0e55a6f8, 0xbfa0ec0e} },
+/**/                  {{0x08af68f3, 0xbf809a3e} } },
+/**/                 {{{0x00000000, 0x3fe18000} },
+/**/                  {{0x73c1a40c, 0x3fe0039c} },
+/**/                  {{0x49c9d593, 0xbc8b32c9} },
+/**/                  {{0xe931fcd3, 0x3fe8a209} },
+/**/                  {{0x8e68c94c, 0x3c6cb8f0} },
+/**/                  {{0xb35ad2d8, 0xbfd4bd59} },
+/**/                  {{0xcaa606b4, 0xbc61ac1a} },
+/**/                  {{0x6dc339ef, 0xbf9000c3} },
+/**/                  {{0xaeaeaa73, 0x3c2c62e2} },
+/**/                  {{0x7812ee2d, 0x3fc13a66} },
+/**/                  {{0x948ffe5b, 0x3c6a8cc2} },
+/**/                  {{0xb5955c9c, 0xbfb55c46} },
+/**/                  {{0x0fd2b503, 0xbf85906b} },
+/**/                  {{0x577de2da, 0x3fab615d} },
+/**/                  {{0xa34d31ec, 0xbfa10f0a} },
+/**/                  {{0xefe48ad0, 0xbf7d02cb} } },
+/**/                 {{{0x00000000, 0x3fe1a000} },
+/**/                  {{0x1e82422d, 0x3fe01c34} },
+/**/                  {{0xfcca90ee, 0x3c83db44} },
+/**/                  {{0x20995a88, 0x3fe88d4b} },
+/**/                  {{0x1e42e681, 0x3c802777} },
+/**/                  {{0x5e3c840f, 0xbfd4c026} },
+/**/                  {{0x3800420d, 0x3c7d7c65} },
+/**/                  {{0xb3f88703, 0xbf8bb99b} },
+/**/                  {{0x4bf63e82, 0x3c1f62ec} },
+/**/                  {{0x7e5193ee, 0x3fc104ec} },
+/**/                  {{0xbae4e07d, 0xbc27771e} },
+/**/                  {{0x66104515, 0xbfb56b55} },
+/**/                  {{0x061a20d1, 0xbf829940} },
+/**/                  {{0xa20334d9, 0x3faad868} },
+/**/                  {{0x7aba8ee6, 0xbfa12d5e} },
+/**/                  {{0x69774b8d, 0xbf78ec1f} } },
+/**/                 {{{0x00000000, 0x3fe1c000} },
+/**/                  {{0x09250488, 0x3fe034b7} },
+/**/                  {{0x8d855410, 0x3c78f9b3} },
+/**/                  {{0xbe7f594b, 0x3fe87889} },
+/**/                  {{0xc826e7a3, 0xbc7530e1} },
+/**/                  {{0xeba4af80, 0xbfd4c28c} },
+/**/                  {{0xe6a95faa, 0x3c7104a9} },
+/**/                  {{0x846dba10, 0xbf877f13} },
+/**/                  {{0x4abd0010, 0x3c2bc924} },
+/**/                  {{0xa2deff9f, 0x3fc0cf4f} },
+/**/                  {{0xa013c015, 0xbc67d17e} },
+/**/                  {{0x577e7899, 0xbfb57830} },
+/**/                  {{0xb49ea16d, 0xbf7f6238} },
+/**/                  {{0x8ae4a926, 0x3faa4e93} },
+/**/                  {{0x2e77f633, 0xbfa14728} },
+/**/                  {{0xb81c893e, 0xbf74f0d3} } },
+/**/                 {{{0x00000000, 0x3fe1e000} },
+/**/                  {{0x314342e6, 0x3fe04d25} },
+/**/                  {{0x6442c767, 0xbc81c863} },
+/**/                  {{0x2860ad7e, 0x3fe863c6} },
+/**/                  {{0x137a2d8f, 0xbc81dcb2} },
+/**/                  {{0x9d3dc03a, 0xbfd4c48e} },
+/**/                  {{0x197b1db9, 0xbc7d92af} },
+/**/                  {{0x5653b1a7, 0xbf8351f6} },
+/**/                  {{0x2127dea7, 0xbbe368b4} },
+/**/                  {{0x58fa8ca4, 0x3fc09995} },
+/**/                  {{0x530429e5, 0xbc446391} },
+/**/                  {{0xd81c26eb, 0xbfb582e2} },
+/**/                  {{0x3e63c109, 0xbf79b02d} },
+/**/                  {{0xe7904294, 0x3fa9c401} },
+/**/                  {{0xb933b0f3, 0xbfa15c86} },
+/**/                  {{0xd8d860e1, 0xbf711137} } },
+/**/                 {{{0x00000000, 0x3fe20000} },
+/**/                  {{0x94db30d0, 0x3fe0657e} },
+/**/                  {{0x5f6349e6, 0xbc7d5b49} },
+/**/                  {{0xc2780614, 0x3fe84f00} },
+/**/                  {{0xff3d87fa, 0xbc7fe7b0} },
+/**/                  {{0xb562c625, 0xbfd4c62c} },
+/**/                  {{0xa78e848c, 0x3c77b2c3} },
+/**/                  {{0xb3a4bcb7, 0xbf7e6495} },
+/**/                  {{0xe3f2b0a5, 0x3c14eb89} },
+/**/                  {{0xf78c0dc4, 0x3fc063c2} },
+/**/                  {{0x7539dc13, 0xbc6badf0} },
+/**/                  {{0x459eb443, 0xbfb58b78} },
+/**/                  {{0x1386e6b4, 0xbf741c83} },
+/**/                  {{0x944ff706, 0x3fa938d6} },
+/**/                  {{0x66ad4037, 0xbfa16d99} },
+/**/                  {{0x01fc736a, 0xbf6a9b1a} } },
+/**/                 {{{0x00000000, 0x3fe22000} },
+/**/                  {{0x324e9b38, 0x3fe07dc3} },
+/**/                  {{0xe04450ac, 0x3c7b70c9} },
+/**/                  {{0xefbd6bfe, 0x3fe83a39} },
+/**/                  {{0x21f5de26, 0xbc7b2885} },
+/**/                  {{0x76ff6c9e, 0xbfd4c768} },
+/**/                  {{0xdebc1603, 0x3c56a2c0} },
+/**/                  {{0xd9cccfd7, 0xbf76402c} },
+/**/                  {{0x4e9786c1, 0xbc1b39c0} },
+/**/                  {{0xb900b57a, 0x3fc02ddd} },
+/**/                  {{0xea88a215, 0x3c45d916} },
+/**/                  {{0x0a58ab40, 0xbfb591fc} },
+/**/                  {{0x32a37ac9, 0xbf6d4eb0} },
+/**/                  {{0x71fe75f8, 0x3fa8ad33} },
+/**/                  {{0xc477a855, 0xbfa17a7f} },
+/**/                  {{0x2b035011, 0xbf634c0e} } },
+/**/                 {{{0x00000000, 0x3fe24000} },
+/**/                  {{0x0861a590, 0x3fe095f3} },
+/**/                  {{0x0a15a9f3, 0xbc7121b2} },
+/**/                  {{0x11e5c14d, 0x3fe82572} },
+/**/                  {{0xacd80b09, 0xbc7df9fc} },
+/**/                  {{0x25709bff, 0xbfd4c843} },
+/**/                  {{0x1790f484, 0x3c7a9ef6} },
+/**/                  {{0x8a0def34, 0xbf6c6d74} },
+/**/                  {{0x2a8142d7, 0xbc051e57} },
+/**/                  {{0x765e156b, 0x3fbfefd5} },
+/**/                  {{0xf0e29c9e, 0xbc3e6048} },
+/**/                  {{0x9a724e28, 0xbfb59679} },
+/**/                  {{0xcf13e192, 0xbf62a185} },
+/**/                  {{0x6433c13f, 0x3fa82139} },
+/**/                  {{0x9342e95d, 0xbfa18359} },
+/**/                  {{0x8f974107, 0xbf586b34} } },
+/**/                 {{{0x00000000, 0x3fe26000} },
+/**/                  {{0x1639866c, 0x3fe0ae0e} },
+/**/                  {{0xf2de445a, 0x3c7075ab} },
+/**/                  {{0x89625f5d, 0x3fe810a9} },
+/**/                  {{0x0fcf7262, 0xbc8e4bea} },
+/**/                  {{0x0465c69b, 0xbfd4c8be} },
+/**/                  {{0xd7f7f89c, 0x3c462ef4} },
+/**/                  {{0x4de612d5, 0xbf59210e} },
+/**/                  {{0xba53898d, 0xbbf43659} },
+/**/                  {{0xfe836c69, 0x3fbf83dd} },
+/**/                  {{0x27f5499a, 0xbc36cb56} },
+/**/                  {{0x7136edda, 0xbfb598fc} },
+/**/                  {{0x00013fb7, 0xbf50634c} },
+/**/                  {{0x4fe557c2, 0x3fa79508} },
+/**/                  {{0xb8ae41dc, 0xbfa18846} },
+/**/                  {{0xe36bd239, 0xbf455fce} } },
+/**/                 {{{0x00000000, 0x3fe28000} },
+/**/                  {{0x5b5b43da, 0x3fe0c614} },
+/**/                  {{0x13b5404f, 0x3c5974fa} },
+/**/                  {{0xb560d35c, 0x3fe7fbe0} },
+/**/                  {{0xae5a0887, 0xbc84f066} },
+/**/                  {{0x57c2e1cb, 0xbfd4c8da} },
+/**/                  {{0xe0a3774c, 0x3c73de0e} },
+/**/                  {{0x61c69f3c, 0x3f38b341} },
+/**/                  {{0x7b200371, 0x3bd7b2e2} },
+/**/                  {{0xd351e8ed, 0x3fbf17de} },
+/**/                  {{0x650c5a9c, 0x3c5bce38} },
+/**/                  {{0x0e77234c, 0xbfb59990} },
+/**/                  {{0x99f594ee, 0x3f3006ef} },
+/**/                  {{0x1a75a6cc, 0x3fa708bf} },
+/**/                  {{0x31a471d5, 0xbfa18967} },
+/**/                  {{0x59bf0521, 0x3f24cc7e} } },
+/**/                 {{{0x00000000, 0x3fe2a000} },
+/**/                  {{0xd7aa6f7d, 0x3fe0de05} },
+/**/                  {{0xb1c529ab, 0xbc783684} },
+/**/                  {{0xf3cab884, 0x3fe7e717} },
+/**/                  {{0x3b1fa4c7, 0x3c7e1b21} },
+/**/                  {{0x63830b4b, 0xbfd4c899} },
+/**/                  {{0xae3ffeff, 0xbc7b6e32} },
+/**/                  {{0xfc06cc4f, 0x3f628757} },
+/**/                  {{0x56f01f66, 0xbbb4c155} },
+/**/                  {{0x8424efd8, 0x3fbeabe1} },
+/**/                  {{0x6e5604ea, 0x3bdf5129} },
+/**/                  {{0xf3ffff64, 0xbfb5983f} },
+/**/                  {{0x1f564189, 0x3f57ec04} },
+/**/                  {{0xa92e6e68, 0x3fa67c7b} },
+/**/                  {{0x0542d0ff, 0xbfa186db} },
+/**/                  {{0x11a37bde, 0x3f4ee247} } },
+/**/                 {{{0x00000000, 0x3fe2c000} },
+/**/                  {{0x8b67e295, 0x3fe0f5e2} },
+/**/                  {{0x7ec990d0, 0x3be311b1} },
+/**/                  {{0xa145af59, 0x3fe7d24f} },
+/**/                  {{0xabdb623b, 0xbc83c6d1} },
+/**/                  {{0x6b9bdb30, 0xbfd4c7fc} },
+/**/                  {{0xd3bbb84b, 0x3c7c2fae} },
+/**/                  {{0xc729b366, 0x3f70e125} },
+/**/                  {{0x7a19993c, 0x3c1291fb} },
+/**/                  {{0x66cf0dd8, 0x3fbe3fef} },
+/**/                  {{0xcd5e7640, 0xbc5428b7} },
+/**/                  {{0xa3273c21, 0xbfb59517} },
+/**/                  {{0x36891acb, 0x3f65adcf} },
+/**/                  {{0xe121c017, 0x3fa5f05a} },
+/**/                  {{0x384bad65, 0xbfa180c2} },
+/**/                  {{0xd31e02a7, 0x3f5bd6f1} } },
+/**/                 {{{0x00000000, 0x3fe2e000} },
+/**/                  {{0x77307a0d, 0x3fe10daa} },
+/**/                  {{0xd44c7b05, 0x3c869c33} },
+/**/                  {{0x19337139, 0x3fe7bd88} },
+/**/                  {{0x00e777ef, 0xbc7fd248} },
+/**/                  {{0xb3e16264, 0xbfd4c704} },
+/**/                  {{0xd46ed4e3, 0xbc7ed720} },
+/**/                  {{0x62c1daf7, 0x3f7863a5} },
+/**/                  {{0x30cc82d1, 0x3c155e73} },
+/**/                  {{0x97a241da, 0x3fbdd411} },
+/**/                  {{0x9ac44edd, 0x3c27a15a} },
+/**/                  {{0x9a6c71a6, 0xbfb59022} },
+/**/                  {{0xb5534ebe, 0x3f6f285a} },
+/**/                  {{0xa76d3cf7, 0x3fa56478} },
+/**/                  {{0xc1240db6, 0xbfa1773c} },
+/**/                  {{0x3891a70c, 0x3f63e5a1} } },
+/**/                 {{{0x00000000, 0x3fe30000} },
+/**/                  {{0x9bfbd2a9, 0x3fe1255d} },
+/**/                  {{0xe1c0ee35, 0xbc52bdae} },
+/**/                  {{0xb5b1ffa1, 0x3fe7a8c1} },
+/**/                  {{0x4e005ea3, 0x3c873e4a} },
+/**/                  {{0x7fead5b8, 0xbfd4c5b3} },
+/**/                  {{0x55abc25a, 0x3c77958e} },
+/**/                  {{0x01e4c970, 0x3f7fcb31} },
+/**/                  {{0xc5337fda, 0xbc1ad968} },
+/**/                  {{0xf983ecf1, 0x3fbd6850} },
+/**/                  {{0x02ed6910, 0xbc3e45e6} },
+/**/                  {{0x532f49b6, 0xbfb5896c} },
+/**/                  {{0xeaefcf7f, 0x3f7432e2} },
+/**/                  {{0xe1db38f0, 0x3fa4d8ef} },
+/**/                  {{0x7c5c9def, 0xbfa16a6a} },
+/**/                  {{0x7b6fe5d0, 0x3f69a742} } },
+/**/                 {{{0x00000000, 0x3fe32000} },
+/**/                  {{0xfb1b056e, 0x3fe13cfb} },
+/**/                  {{0x6fc3ed38, 0x3c83110e} },
+/**/                  {{0xcf9bee6c, 0x3fe793fc} },
+/**/                  {{0xd8d91b6c, 0xbc8dc7d2} },
+/**/                  {{0x12f7e51f, 0xbfd4c40a} },
+/**/                  {{0x0d5d686d, 0x3c7d1e10} },
+/**/                  {{0x839d28fa, 0x3f838be8} },
+/**/                  {{0x52131640, 0x3c13427a} },
+/**/                  {{0x360bfed5, 0x3fbcfcb6} },
+/**/                  {{0xa36f599f, 0xbc5e3cb4} },
+/**/                  {{0x3f7aa463, 0xbfb58100} },
+/**/                  {{0xb76f2bc0, 0x3f78b31e} },
+/**/                  {{0x77dd6b80, 0x3fa44dda} },
+/**/                  {{0x21c53ca9, 0xbfa15a6b} },
+/**/                  {{0x6cd99ed4, 0x3f6f30a7} } },
+/**/                 {{{0x00000000, 0x3fe34000} },
+/**/                  {{0x9637646a, 0x3fe15485} },
+/**/                  {{0x548bf3c3, 0xbc84ba7c} },
+/**/                  {{0xbe88c85e, 0x3fe77f39} },
+/**/                  {{0x9b6750c8, 0xbc6a983f} },
+/**/                  {{0xafd6bee5, 0xbfd4c209} },
+/**/                  {{0x5e73e93a, 0x3c7d21ef} },
+/**/                  {{0xfc556ca7, 0x3f8724c7} },
+/**/                  {{0x42e5673e, 0xbc23cef2} },
+/**/                  {{0xbdaef67d, 0x3fbc9149} },
+/**/                  {{0x3f04fcdc, 0xbc1e549c} },
+/**/                  {{0xc7e4996a, 0xbfb576e9} },
+/**/                  {{0xba6ceedb, 0x3f7d14fc} },
+/**/                  {{0x53dcdc4a, 0x3fa3c351} },
+/**/                  {{0x3a0a53a1, 0xbfa1475e} },
+/**/                  {{0x62102619, 0x3f724116} } },
+/**/                 {{{0x00000000, 0x3fe36000} },
+/**/                  {{0x6f5137e1, 0x3fe16bfa} },
+/**/                  {{0xe141bd35, 0x3c79606f} },
+/**/                  {{0xd8cd8d65, 0x3fe76a78} },
+/**/                  {{0xddf1f71f, 0x3c854a99} },
+/**/                  {{0x98cabe40, 0xbfd4bfb3} },
+/**/                  {{0x9ef99598, 0xbc61e24d} },
+/**/                  {{0x388e6864, 0x3f8ab03d} },
+/**/                  {{0xc340d113, 0x3c210541} },
+/**/                  {{0xc7f24ec4, 0x3fbc2613} },
+/**/                  {{0x0a59af31, 0x3c54042a} },
+/**/                  {{0x49833ac1, 0xbfb56b34} },
+/**/                  {{0x22f6cd28, 0x3f80ac4f} },
+/**/                  {{0x64dac153, 0x3fa3396c} },
+/**/                  {{0x14dadf32, 0xbfa13163} },
+/**/                  {{0x21aeee27, 0x3f74ce20} } },
+/**/                 {{{0x00000000, 0x3fe38000} },
+/**/                  {{0x88be7c13, 0x3fe1835a} },
+/**/                  {{0xec00c301, 0x3c8c621c} },
+/**/                  {{0x737d49ca, 0x3fe755ba} },
+/**/                  {{0xd4cb44c6, 0xbc8abaf3} },
+/**/                  {{0x0f73c4b3, 0xbfd4bd09} },
+/**/                  {{0xa9936e0b, 0x3c3e9ebf} },
+/**/                  {{0x8920477f, 0x3f8e2e4f} },
+/**/                  {{0x0360e009, 0xbc0889e3} },
+/**/                  {{0x53aaefa0, 0x3fbbbb1c} },
+/**/                  {{0xa1007b7f, 0xbc5edb26} },
+/**/                  {{0x13f5f619, 0xbfb55deb} },
+/**/                  {{0xe675741e, 0x3f82bf14} },
+/**/                  {{0xa05e0ebf, 0x3fa2b042} },
+/**/                  {{0xbf95c5c1, 0xbfa11898} },
+/**/                  {{0xe421ee51, 0x3f773faf} } },
+/**/                 {{{0x00000000, 0x3fe3a000} },
+/**/                  {{0xe5299f9a, 0x3fe19aa5} },
+/**/                  {{0x2c58f835, 0xbc8a606c} },
+/**/                  {{0xe269c5b3, 0x3fe740fe} },
+/**/                  {{0x4c82509c, 0x3c873eff} },
+/**/                  {{0x54b63d79, 0xbfd4ba0b} },
+/**/                  {{0x75bceeff, 0xbc51d68a} },
+/**/                  {{0x9d9b3eb0, 0x3f90cf83} },
+/**/                  {{0x68a7ca2f, 0xbc107399} },
+/**/                  {{0x27453d35, 0x3fbb506b} },
+/**/                  {{0x00bdfedd, 0x3c326b36} },
+/**/                  {{0x67836cef, 0xbfb54f19} },
+/**/                  {{0x567ed6e8, 0x3f84c2e5} },
+/**/                  {{0x04a983e8, 0x3fa227ea} },
+/**/                  {{0xfc7ce22f, 0xbfa0fd1d} },
+/**/                  {{0x2ffea71d, 0x3f79960c} } },
+/**/                 {{{0x00000000, 0x3fe3c000} },
+/**/                  {{0x87904285, 0x3fe1b1dc} },
+/**/                  {{0x8aef8f29, 0xbc621e8c} },
+/**/                  {{0x78244c5a, 0x3fe72c46} },
+/**/                  {{0xe664f3a2, 0x3c888c36} },
+/**/                  {{0xa8a3ca2f, 0xbfd4b6bb} },
+/**/                  {{0x1e1f3e19, 0xbc778793} },
+/**/                  {{0xc8a3d8bb, 0x3f928136} },
+/**/                  {{0x140daf1c, 0x3c3dc4d8} },
+/**/                  {{0xd1165ef3, 0x3fbae607} },
+/**/                  {{0x6305876c, 0xbc5fbfaa} },
+/**/                  {{0x734b94bd, 0xbfb53eca} },
+/**/                  {{0x7c458eb1, 0x3f86b7d8} },
+/**/                  {{0x9b360f57, 0x3fa1a077} },
+/**/                  {{0x3a6beabd, 0xbfa0df11} },
+/**/                  {{0xaf42dc87, 0x3f7bd182} } },
+/**/                 {{{0x00000000, 0x3fe3e000} },
+/**/                  {{0x7341f64f, 0x3fe1c8fe} },
+/**/                  {{0x9d5e792a, 0x3c728bbc} },
+/**/                  {{0x85fe8a32, 0x3fe71791} },
+/**/                  {{0xe8bbb0d0, 0x3c8f15bd} },
+/**/                  {{0x4a6497be, 0xbfd4b31b} },
+/**/                  {{0x782968f7, 0x3c737223} },
+/**/                  {{0x5e0c3122, 0x3f942c46} },
+/**/                  {{0x86422b13, 0xbc33e26a} },
+/**/                  {{0xa7b659b8, 0x3fba7bf9} },
+/**/                  {{0x25381986, 0xbc3cdf63} },
+/**/                  {{0x538deb45, 0xbfb52d09} },
+/**/                  {{0xa0c1f425, 0x3f889e08} },
+/**/                  {{0x7b6d72e6, 0x3fa119ff} },
+/**/                  {{0x8d11287b, 0xbfa0be90} },
+/**/                  {{0xbce83ad4, 0x3f7df267} } },
+/**/                 {{{0x00000000, 0x3fe40000} },
+/**/                  {{0xabdefeb4, 0x3fe1e00b} },
+/**/                  {{0x287a668f, 0xbc5928df} },
+/**/                  {{0x5c0b8170, 0x3fe702e0} },
+/**/                  {{0x5c0b8170, 0x3c7702e0} },
+/**/                  {{0x78215a76, 0xbfd4af2b} },
+/**/                  {{0xab3a13d8, 0xbc581c2e} },
+/**/                  {{0xe9e4a9d0, 0x3f95d0b7} },
+/**/                  {{0xebf91fc7, 0xbc3aa02a} },
+/**/                  {{0xca629942, 0x3fba1247} },
+/**/                  {{0xc245db83, 0xbc46961a} },
+/**/                  {{0x100385b4, 0xbfb519e1} },
+/**/                  {{0x32616ed8, 0x3f8a7592} },
+/**/                  {{0xcda1223a, 0x3fa09494} },
+/**/                  {{0xa5a5c251, 0xbfa09bb9} },
+/**/                  {{0xf489d8ba, 0x3f7ff915} } },
+/**/                 {{{0x00000000, 0x3fe42000} },
+/**/                  {{0x3557138a, 0x3fe1f704} },
+/**/                  {{0xf6d7dd47, 0x3c76c659} },
+/**/                  {{0x4920943e, 0x3fe6ee33} },
+/**/                  {{0x61a3a541, 0xbc62723e} },
+/**/                  {{0x6eedf042, 0xbfd4aaed} },
+/**/                  {{0xe7561ed4, 0x3c5b337a} },
+/**/                  {{0x68796803, 0x3f976e91} },
+/**/                  {{0x44d1db93, 0xbc0e806f} },
+/**/                  {{0x21688625, 0x3fb9a8f9} },
+/**/                  {{0xb1ec0554, 0x3c540185} },
+/**/                  {{0x9a4cbc61, 0xbfb5055c} },
+/**/                  {{0xab0be204, 0x3f8c3e93} },
+/**/                  {{0xce3968a1, 0x3fa01049} },
+/**/                  {{0xcc2331ba, 0xbfa076a9} },
+/**/                  {{0xe220db7e, 0x3f80f2f6} } },
+/**/                 {{{0x00000000, 0x3fe44000} },
+/**/                  {{0x13e823b2, 0x3fe20de8} },
+/**/                  {{0x53ebb744, 0xbc8791d7} },
+/**/                  {{0x9ad6a3fd, 0x3fe6d98a} },
+/**/                  {{0xc4e69862, 0xbc808110} },
+/**/                  {{0x6ab4a79d, 0xbfd4a662} },
+/**/                  {{0x9fc1cc2b, 0x3c52ed25} },
+/**/                  {{0x42e6dc28, 0x3f9905d9} },
+/**/                  {{0xe39b7707, 0xbc228c79} },
+/**/                  {{0x5e97c6f4, 0x3fb94014} },
+/**/                  {{0xf8779202, 0xbc52b822} },
+/**/                  {{0xcc723054, 0xbfb4ef86} },
+/**/                  {{0x76852811, 0x3f8df92d} },
+/**/                  {{0xa231ee3f, 0x3f9f1a5f} },
+/**/                  {{0xd8f34e77, 0xbfa04f7d} },
+/**/                  {{0x80706a34, 0x3f81dcaa} } },
+/**/                 {{{0x00000000, 0x3fe46000} },
+/**/                  {{0x4c1d192a, 0x3fe224b7} },
+/**/                  {{0xf88a60c4, 0x3c8d6d3d} },
+/**/                  {{0x9d8b44ec, 0x3fe6c4e6} },
+/**/                  {{0x4ed04ec2, 0xbc589d5c} },
+/**/                  {{0xa6222a08, 0xbfd4a18b} },
+/**/                  {{0xd3867dbd, 0xbc66c919} },
+/**/                  {{0x4bb5a8a0, 0x3f9a9696} },
+/**/                  {{0x927bb5bd, 0x3c36698e} },
+/**/                  {{0xfdbbcc76, 0x3fb8d79f} },
+/**/                  {{0x4efb71a1, 0x3c2578bd} },
+/**/                  {{0x6778e363, 0xbfb4d86a} },
+/**/                  {{0xd930230d, 0x3f8fa581} },
+/**/                  {{0x8a6221aa, 0x3f9e16ae} },
+/**/                  {{0x2f183972, 0xbfa02652} },
+/**/                  {{0x3e507f4f, 0x3f82b9db} } },
+/**/                 {{{0x00000000, 0x3fe48000} },
+/**/                  {{0xe2cc9e6a, 0x3fe23b71} },
+/**/                  {{0x9f38224e, 0x3c6c421c} },
+/**/                  {{0x9c620595, 0x3fe6b047} },
+/**/                  {{0x07d7f0c2, 0x3c8867df} },
+/**/                  {{0x5a920887, 0xbfd49c6a} },
+/**/                  {{0x37bcc433, 0xbc764547} },
+/**/                  {{0xbb7e5931, 0x3f9c20cf} },
+/**/                  {{0x4db6bef2, 0xbc3d86f5} },
+/**/                  {{0x451c4a5d, 0x3fb86fa2} },
+/**/                  {{0x15afb52c, 0xbc475142} },
+/**/                  {{0x120917da, 0xbfb4c012} },
+/**/                  {{0x6b9c3fad, 0x3f90a1da} },
+/**/                  {{0x708543e5, 0x3f9d159f} },
+/**/                  {{0x6d929bce, 0xbf9ff685} },
+/**/                  {{0xd0361a66, 0x3f838ac0} } },
+/**/                 {{{0x00000000, 0x3fe4a000} },
+/**/                  {{0xdd17e501, 0x3fe25217} },
+/**/                  {{0x8c1b679c, 0x3c856aa8} },
+/**/                  {{0xe145c95d, 0x3fe69bad} },
+/**/                  {{0x5605046d, 0xbc873257} },
+/**/                  {{0xbffbe8a8, 0xbfd496ff} },
+/**/                  {{0xc7b45e6f, 0x3c36a5c5} },
+/**/                  {{0x2d9556eb, 0x3f9da48d} },
+/**/                  {{0x1871a19d, 0x3c3ff0e8} },
+/**/                  {{0x46043f42, 0x3fb80821} },
+/**/                  {{0xe660cfa1, 0x3c550eec} },
+/**/                  {{0x5727a8cb, 0xbfb4a688} },
+/**/                  {{0x0e13efbc, 0x3f9169f6} },
+/**/                  {{0xb59149dd, 0x3f9c174f} },
+/**/                  {{0xb10444dd, 0xbf9f9cd5} },
+/**/                  {{0x03e91dd9, 0x3f844f95} } },
+/**/                 {{{0x00000000, 0x3fe4c000} },
+/**/                  {{0x40696da6, 0x3fe268a9} },
+/**/                  {{0xa04c73cc, 0x3c5d1348} },
+/**/                  {{0xb4ea3592, 0x3fe68719} },
+/**/                  {{0x088ed284, 0xbc7ecf86} },
+/**/                  {{0x0ce1507d, 0xbfd4914d} },
+/**/                  {{0x4dff2946, 0xbc6410ef} },
+/**/                  {{0x9cbf7eb7, 0x3f9f21d6} },
+/**/                  {{0xeaaad7e2, 0x3c39bc22} },
+/**/                  {{0xdd4f3070, 0x3fb7a122} },
+/**/                  {{0x1cfe44af, 0x3c50d950} },
+/**/                  {{0xa50188df, 0xbfb48bd7} },
+/**/                  {{0x71756204, 0x3f922b27} },
+/**/                  {{0x0810a33a, 0x3f9b1bdb} },
+/**/                  {{0xf1011313, 0xbf9f3fca} },
+/**/                  {{0x8fe0f49b, 0x3f850893} } },
+/**/                 {{{0x00000000, 0x3fe4e000} },
+/**/                  {{0x1273d1b3, 0x3fe27f26} },
+/**/                  {{0x6151dd9f, 0x3c843bf3} },
+/**/                  {{0x5ecd3069, 0x3fe6728b} },
+/**/                  {{0x539f23ff, 0x3c67417b} },
+/**/                  {{0x763c0fe8, 0xbfd48b53} },
+/**/                  {{0x6027975c, 0xbc677a1a} },
+/**/                  {{0x2ff7dd6a, 0x3fa04c5a} },
+/**/                  {{0x496202e8, 0xbc40808e} },
+/**/                  {{0xb3fc3f7c, 0x3fb73aac} },
+/**/                  {{0x86b114ff, 0x3c4b58cb} },
+/**/                  {{0x4bc91249, 0xbfb4700a} },
+/**/                  {{0xef2490f8, 0x3f92e582} },
+/**/                  {{0x6c875580, 0x3f9a235b} },
+/**/                  {{0xe55cd596, 0xbf9edf99} },
+/**/                  {{0xe40c5a18, 0x3f85b5f9} } },
+/**/                 {{{0x00000000, 0x3fe50000} },
+/**/                  {{0x59308e31, 0x3fe2958e} },
+/**/                  {{0xb0c6c087, 0xbc709e73} },
+/**/                  {{0x2538713c, 0x3fe65e03} },
+/**/                  {{0x42c09163, 0xbc601392} },
+/**/                  {{0x2f6d4575, 0xbfd48514} },
+/**/                  {{0x4568af3f, 0xbc356341} },
+/**/                  {{0x9386fd1d, 0x3fa10497} },
+/**/                  {{0x230a452f, 0xbc4a756a} },
+/**/                  {{0x3fc6c180, 0x3fb6d4c4} },
+/**/                  {{0xdb3fe137, 0x3c5ab2b9} },
+/**/                  {{0x7ca4cfd0, 0xbfb4532a} },
+/**/                  {{0x90eb1d30, 0x3f93991d} },
+/**/                  {{0x46163051, 0x3f992de9} },
+/**/                  {{0x2de874ff, 0xbf9e7c76} },
+/**/                  {{0xfc0c1cb2, 0x3f865806} } },
+/**/                 {{{0x00000000, 0x3fe52000} },
+/**/                  {{0x1aded073, 0x3fe2abe2} },
+/**/                  {{0x01ad022e, 0x3c8c28c0} },
+/**/                  {{0x4d432177, 0x3fe64981} },
+/**/                  {{0x055e240c, 0x3c83f41b} },
+/**/                  {{0x6a2cfd01, 0xbfd47e90} },
+/**/                  {{0xf152d080, 0x3c628585} },
+/**/                  {{0xfbe3ed9e, 0x3fa1b9a7} },
+/**/                  {{0xf259fe04, 0xbc18a085} },
+/**/                  {{0xc3c40175, 0x3fb66f6e} },
+/**/                  {{0xb0fda762, 0x3c41d80a} },
+/**/                  {{0x48af643a, 0xbfb43542} },
+/**/                  {{0x05ad7652, 0x3f94460d} },
+/**/                  {{0x5f55ab26, 0x3f983b9b} },
+/**/                  {{0x4be18b23, 0xbf9e1692} },
+/**/                  {{0x32e755a3, 0x3f86eefb} } },
+/**/                 {{{0x00000000, 0x3fe54000} },
+/**/                  {{0x5e024466, 0x3fe2c221} },
+/**/                  {{0xda3a4be1, 0xbc44b810} },
+/**/                  {{0x1ad38da0, 0x3fe63506} },
+/**/                  {{0x94ec14b0, 0xbc67f12a} },
+/**/                  {{0x567a6652, 0xbfd477c9} },
+/**/                  {{0xbbb9df88, 0x3c7be71c} },
+/**/                  {{0x1535acb9, 0x3fa26b90} },
+/**/                  {{0xff041454, 0xbc30ff6c} },
+/**/                  {{0x5105d8fa, 0x3fb60ab1} },
+/**/                  {{0x3f2d6492, 0x3c535a89} },
+/**/                  {{0xa0083319, 0xbfb4165b} },
+/**/                  {{0x965eb0a7, 0x3f94ec67} },
+/**/                  {{0xf36231e5, 0x3f974c86} },
+/**/                  {{0x9c25f4a4, 0xbf9dae1f} },
+/**/                  {{0x183e42dc, 0x3f877b18} } },
+/**/                 {{{0x00000000, 0x3fe56000} },
+/**/                  {{0x2961e48c, 0x3fe2d84c} },
+/**/                  {{0x0a36e506, 0xbc7f2542} },
+/**/                  {{0xd0a0e5d4, 0x3fe62091} },
+/**/                  {{0xcccb008e, 0x3c82a27d} },
+/**/                  {{0x228ca1b6, 0xbfd470c0} },
+/**/                  {{0x32884415, 0xbc788e9b} },
+/**/                  {{0xb365e4d9, 0x3fa31a54} },
+/**/                  {{0xda0f99ae, 0x3c3e6e70} },
+/**/                  {{0xc741ccb7, 0x3fb5a690} },
+/**/                  {{0x6508ffe1, 0xbc383905} },
+/**/                  {{0x50f46c17, 0xbfb3f680} },
+/**/                  {{0x1b344c30, 0x3f958c44} },
+/**/                  {{0xb713db8a, 0x3f9660bf} },
+/**/                  {{0x5224992a, 0xbf9d434e} },
+/**/                  {{0x46ffb16e, 0x3f87fca0} } },
+/**/                 {{{0x00000000, 0x3fe58000} },
+/**/                  {{0x8406cbca, 0x3fe2ee62} },
+/**/                  {{0x9ff0cf8d, 0x3c8c5d5e} },
+/**/                  {{0xb0350d38, 0x3fe60c24} },
+/**/                  {{0xf3db4fcb, 0x3c81ffe9} },
+/**/                  {{0xfac420bd, 0xbfd46975} },
+/**/                  {{0x850528a0, 0x3c7e6994} },
+/**/                  {{0xd098b4ee, 0x3fa3c5fa} },
+/**/                  {{0xaa6a6874, 0x3c353c41} },
+/**/                  {{0xd57c5b53, 0x3fb54311} },
+/**/                  {{0x72d146e0, 0x3c50d02e} },
+/**/                  {{0x071017e0, 0xbfb3d5ba} },
+/**/                  {{0xf11b08a7, 0x3f9625b9} },
+/**/                  {{0xe25bbc6f, 0x3f957857} },
+/**/                  {{0x7384981f, 0xbf9cd64d} },
+/**/                  {{0x3da3b8d5, 0x3f8873d7} } },
+/**/                 {{{0x00000000, 0x3fe5a000} },
+/**/                  {{0x753b090b, 0x3fe30464} },
+/**/                  {{0x61da18f3, 0xbc73e712} },
+/**/                  {{0xf9ee77b6, 0x3fe5f7be} },
+/**/                  {{0x854f9928, 0x3c8949f7} },
+/**/                  {{0x099c98f6, 0xbfd461ec} },
+/**/                  {{0x3eafe889, 0x3c5da491} },
+/**/                  {{0x8ba9e286, 0x3fa46e87} },
+/**/                  {{0x5377a1a9, 0x3c42573a} },
+/**/                  {{0xfab82ffb, 0x3fb4e038} },
+/**/                  {{0x402ef939, 0xbc414e45} },
+/**/                  {{0x4a8ec478, 0xbfb3b412} },
+/**/                  {{0xef6dba07, 0x3f96b8e0} },
+/**/                  {{0x39c13c6e, 0x3f949360} },
+/**/                  {{0xd47bfddb, 0xbf9c674a} },
+/**/                  {{0x37ed6935, 0x3f88e101} } },
+/**/                 {{{0x00000000, 0x3fe5c000} },
+/**/                  {{0x048874be, 0x3fe31a52} },
+/**/                  {{0x87a7ac24, 0x3c840cab} },
+/**/                  {{0xed021586, 0x3fe5e360} },
+/**/                  {{0xb32ab7e4, 0x3c86a444} },
+/**/                  {{0x779f86c4, 0xbfd45a23} },
+/**/                  {{0x6b782501, 0xbc75b9dc} },
+/**/                  {{0x26af940c, 0x3fa51400} },
+/**/                  {{0xf9ce64e2, 0x3c4f700e} },
+/**/                  {{0x86a8eb42, 0x3fb47e0a} },
+/**/                  {{0x36377584, 0xbc5a4df9} },
+/**/                  {{0x7f8b6d42, 0xbfb39192} },
+/**/                  {{0x5deeeabc, 0x3f9745d1} },
+/**/                  {{0x17fa1033, 0x3f93b1e8} },
+/**/                  {{0x14cf2061, 0xbf9bf673} },
+/**/                  {{0x0a340016, 0x3f894463} } },
+/**/                 {{{0x00000000, 0x3fe5e000} },
+/**/                  {{0x39b78856, 0x3fe3302b} },
+/**/                  {{0xd87ba82b, 0x3c85dd2e} },
+/**/                  {{0xc77d4bea, 0x3fe5cf0a} },
+/**/                  {{0x0d42ab66, 0xbc8684ab} },
+/**/                  {{0x6b573e11, 0xbfd4521d} },
+/**/                  {{0xb90c9c27, 0xbc7601b9} },
+/**/                  {{0x0582aeaa, 0x3fa5b66a} },
+/**/                  {{0x8cc985ad, 0x3c281575} },
+/**/                  {{0x9a69373d, 0x3fb41c8a} },
+/**/                  {{0x25ea8f67, 0xbc33df07} },
+/**/                  {{0xe5673a18, 0xbfb36e43} },
+/**/                  {{0xeb05f3bc, 0x3f97cca3} },
+/**/                  {{0x7797abe9, 0x3f92d3fd} },
+/**/                  {{0x9d71c254, 0xbf9b83f1} },
+/**/                  {{0xfe333861, 0x3f899e41} } },
+/**/                 {{{0x00000000, 0x3fe60000} },
+/**/                  {{0x1cce37bb, 0x3fe345f0} },
+/**/                  {{0x37c71102, 0x3c810211} },
+/**/                  {{0xc647fa91, 0x3fe5babc} },
+/**/                  {{0x8056eaf3, 0x3c84339b} },
+/**/                  {{0x094286d0, 0xbfd449db} },
+/**/                  {{0x512b1c7b, 0x3c75e178} },
+/**/                  {{0xac4cf102, 0x3fa655ca} },
+/**/                  {{0x61e8206a, 0xbc27a1e4} },
+/**/                  {{0x2933dd9c, 0x3fb3bbbd} },
+/**/                  {{0xbd42c006, 0xbc517633} },
+/**/                  {{0x9636afc9, 0xbfb34a2f} },
+/**/                  {{0xa2400f6f, 0x3f984d71} },
+/**/                  {{0xfcc53cab, 0x3f91f9ac} },
+/**/                  {{0x9ec31ef1, 0xbf9b0ff0} },
+/**/                  {{0xb1615b05, 0x3f89eee3} } },
+/**/                 {{{0x00000000, 0x3fe62000} },
+/**/                  {{0xb60eccce, 0x3fe35ba0} },
+/**/                  {{0x9b9368b9, 0x3c8e3ba1} },
+/**/                  {{0x25268d22, 0x3fe5a677} },
+/**/                  {{0xaf72cee6, 0x3c7bc76e} },
+/**/                  {{0x73c8c31c, 0xbfd4415d} },
+/**/                  {{0xe00e5645, 0xbc3e5b3c} },
+/**/                  {{0xbe1ce1b6, 0x3fa6f227} },
+/**/                  {{0xe699fcac, 0xbc04a922} },
+/**/                  {{0xf91f9885, 0x3fb35ba5} },
+/**/                  {{0x418827b3, 0xbc43f8be} },
+/**/                  {{0x863cebc9, 0xbfb3255e} },
+/**/                  {{0xe315ca66, 0x3f98c853} },
+/**/                  {{0xff116cac, 0x3f912301} },
+/**/                  {{0x0f5e09c2, 0xbf9a9a99} },
+/**/                  {{0xf4c8d587, 0x3f8a368d} } },
+/**/                 {{{0x00000000, 0x3fe64000} },
+/**/                  {{0x0df6c504, 0x3fe3713d} },
+/**/                  {{0xe031606d, 0xbc54f789} },
+/**/                  {{0x1ebc184f, 0x3fe5923a} },
+/**/                  {{0xbe5956dd, 0x3c829fe8} },
+/**/                  {{0xcb2e9cc9, 0xbfd438a5} },
+/**/                  {{0x7d6ce3eb, 0xbc7c1839} },
+/**/                  {{0xfb7fa678, 0x3fa78b86} },
+/**/                  {{0xd082025e, 0x3befb53e} },
+/**/                  {{0xa3dd5905, 0x3fb2fc48} },
+/**/                  {{0x06b78682, 0x3c5fd567} },
+/**/                  {{0x8374843c, 0xbfb2ffd9} },
+/**/                  {{0x57f51471, 0x3f993d64} },
+/**/                  {{0x933f6cc5, 0x3f905006} },
+/**/                  {{0xab7658df, 0xbf9a2412} },
+/**/                  {{0xae624ab4, 0x3f8a7586} } },
+/**/                 {{{0x00000000, 0x3fe66000} },
+/**/                  {{0x2d3db11f, 0x3fe386c5} },
+/**/                  {{0xcbebe6a0, 0xbc8b78e1} },
+/**/                  {{0xec8c8203, 0x3fe57e05} },
+/**/                  {{0x5e7f92dc, 0x3c8ea585} },
+/**/                  {{0x2d8b381e, 0xbfd42fb5} },
+/**/                  {{0x5cff451e, 0xbc63afe6} },
+/**/                  {{0x4120d643, 0x3fa821ee} },
+/**/                  {{0xcbc4d2dc, 0xbc3e664f} },
+/**/                  {{0x9778bfdb, 0x3fb29da8} },
+/**/                  {{0x7c2057a5, 0x3c3760dd} },
+/**/                  {{0x3525a55a, 0xbfb2d9a9} },
+/**/                  {{0xed9015c8, 0x3f99acbc} },
+/**/                  {{0x2a35e7d2, 0x3f8f0187} },
+/**/                  {{0xf4bcdfc7, 0xbf99ac83} },
+/**/                  {{0xbbeb4f11, 0x3f8aac13} } },
+/**/                 {{{0x00000000, 0x3fe68000} },
+/**/                  {{0x1cd4171a, 0x3fe39c39} },
+/**/                  {{0x31d8bf46, 0xbc823043} },
+/**/                  {{0xc6feb417, 0x3fe569da} },
+/**/                  {{0x0625e450, 0x3c803ce5} },
+/**/                  {{0xb6bde980, 0xbfd4268c} },
+/**/                  {{0xe8258561, 0xbc6e8f76} },
+/**/                  {{0x86705749, 0x3fa8b563} },
+/**/                  {{0xe6172281, 0x3c418e14} },
+/**/                  {{0x171a8768, 0x3fb23fc9} },
+/**/                  {{0x3225d825, 0xbc562184} },
+/**/                  {{0x1b8904fd, 0xbfb2b2d6} },
+/**/                  {{0xca70ce88, 0x3f9a1677} },
+/**/                  {{0x62963581, 0x3f8d6a81} },
+/**/                  {{0x32c353bb, 0xbf993412} },
+/**/                  {{0xd7354ec0, 0x3f8ada7a} } },
+/**/                 {{{0x00000000, 0x3fe6a000} },
+/**/                  {{0xe5e2564b, 0x3fe3b198} },
+/**/                  {{0x1f0752ac, 0xbc72f922} },
+/**/                  {{0xe55ed910, 0x3fe555b8} },
+/**/                  {{0x656f2eb2, 0xbc5615bc} },
+/**/                  {{0x80646bca, 0xbfd41d2d} },
+/**/                  {{0x1ff3506f, 0xbc75d1d6} },
+/**/                  {{0xdc4e5727, 0x3fa945ec} },
+/**/                  {{0x18968922, 0x3c213c8e} },
+/**/                  {{0x3bcc9fa4, 0x3fb1e2ad} },
+/**/                  {{0x0a43c591, 0x3c2b899c} },
+/**/                  {{0x8f774533, 0xbfb28b68} },
+/**/                  {{0x46d16acc, 0x3f9a7aaf} },
+/**/                  {{0xde405cc6, 0x3f8bdb08} },
+/**/                  {{0x73d9884b, 0xbf98bae1} },
+/**/                  {{0x7be7742a, 0x3f8b0101} } },
+/**/                 {{{0x00000000, 0x3fe6c000} },
+/**/                  {{0x91c78dc5, 0x3fe3c6e4} },
+/**/                  {{0x94fd0ba7, 0xbc8e1450} },
+/**/                  {{0x7de0a269, 0x3fe541a0} },
+/**/                  {{0x163b639c, 0x3c8b9072} },
+/**/                  {{0xa1d194fc, 0xbfd41398} },
+/**/                  {{0x8629402d, 0xbc7ef191} },
+/**/                  {{0x6bbd69eb, 0x3fa9d390} },
+/**/                  {{0xd2c4a6a5, 0x3c488aec} },
+/**/                  {{0xf53fbee6, 0x3fb18657} },
+/**/                  {{0x0104d1dd, 0x3c54e6aa} },
+/**/                  {{0xc2245ee6, 0xbfb26368} },
+/**/                  {{0xe4b91b16, 0x3f9ad97d} },
+/**/                  {{0x74b192c7, 0x3f8a5328} },
+/**/                  {{0x8e5d8b31, 0xbf984114} },
+/**/                  {{0xceadce82, 0x3f8b1fec} } },
+/**/                 {{{0x00000000, 0x3fe6e000} },
+/**/                  {{0x2a188504, 0x3fe3dc1c} },
+/**/                  {{0x70f4e971, 0x3c82ce63} },
+/**/                  {{0xc5a197ed, 0x3fe52d91} },
+/**/                  {{0x1baab820, 0xbc804b92} },
+/**/                  {{0x300486f8, 0xbfd409cf} },
+/**/                  {{0xae804189, 0xbc6d3bb8} },
+/**/                  {{0x749adab8, 0x3faa5e54} },
+/**/                  {{0xc631cfd3, 0x3c20b0d5} },
+/**/                  {{0x0a922c54, 0x3fb12acc} },
+/**/                  {{0x7cbc4417, 0x3c521a06} },
+/**/                  {{0xbce6ae05, 0xbfb23ade} },
+/**/                  {{0x485d279b, 0x3f9b32fe} },
+/**/                  {{0xd9b56b96, 0x3f88d2e8} },
+/**/                  {{0x227841f4, 0xbf97c6cd} },
+/**/                  {{0x85cf6ba0, 0x3f8b3781} } },
+/**/                 {{{0x00000000, 0x3fe70000} },
+/**/                  {{0xb89e96f4, 0x3fe3f13f} },
+/**/                  {{0x492644f0, 0x3c7ecf8b} },
+/**/                  {{0xf0ab6f99, 0x3fe5198c} },
+/**/                  {{0x5e1ffaba, 0x3c71b875} },
+/**/                  {{0x3da059f4, 0xbfd3ffd2} },
+/**/                  {{0x77eee53d, 0x3c5bba8e} },
+/**/                  {{0x4c5d36dc, 0x3faae63f} },
+/**/                  {{0x2a3994d6, 0xbc4e6e4e} },
+/**/                  {{0x1b178ada, 0x3fb0d00c} },
+/**/                  {{0xb3e710cc, 0x3c4b94c3} },
+/**/                  {{0x61093929, 0xbfb211d2} },
+/**/                  {{0x30c5dd59, 0x3f9b874b} },
+/**/                  {{0xb0b899ed, 0x3f875a50} },
+/**/                  {{0x9c404912, 0xbf974c2b} },
+/**/                  {{0xd3249a4d, 0x3f8b4803} } },
+/**/                 {{{0x00000000, 0x3fe72000} },
+/**/                  {{0x47569f49, 0x3fe4064f} },
+/**/                  {{0xf91bf2b2, 0xbc8aad88} },
+/**/                  {{0x31f66da7, 0x3fe50592} },
+/**/                  {{0x134b7507, 0xbc8837f1} },
+/**/                  {{0xdae43e4d, 0xbfd3f5a2} },
+/**/                  {{0xdc59e382, 0xbc7f29b0} },
+/**/                  {{0x5cd91a8c, 0x3fab6b57} },
+/**/                  {{0xd6ab0dfc, 0xbc225bf7} },
+/**/                  {{0x9f216d7a, 0x3fb0761a} },
+/**/                  {{0xe546203e, 0x3c577818} },
+/**/                  {{0x67a8cf31, 0xbfb1e84b} },
+/**/                  {{0x70b6dd6f, 0x3f9bd67f} },
+/**/                  {{0x9ff677e5, 0x3f85e964} },
+/**/                  {{0x363cf426, 0xbf96d14f} },
+/**/                  {{0x4f6617de, 0x3f8b51b7} } },
+/**/                 {{{0x00000000, 0x3fe74000} },
+/**/                  {{0xe06fea41, 0x3fe41b4a} },
+/**/                  {{0x53277652, 0x3c63d60a} },
+/**/                  {{0xbb6bcc2c, 0x3fe4f1a1} },
+/**/                  {{0x7c81f558, 0x3c5c8d69} },
+/**/                  {{0x15a41364, 0xbfd3eb42} },
+/**/                  {{0x617c316a, 0x3c728a9c} },
+/**/                  {{0x230c44b8, 0x3fabeda3} },
+/**/                  {{0x50d9e9da, 0x3c41fa15} },
+/**/                  {{0xe8c87fc3, 0x3fb01cf9} },
+/**/                  {{0xa175df34, 0x3c410990} },
+/**/                  {{0x619b963c, 0xbfb1be51} },
+/**/                  {{0xe7da421c, 0x3f9c20b5} },
+/**/                  {{0x637b86b0, 0x3f848027} },
+/**/                  {{0xfc436ff1, 0xbf965655} },
+/**/                  {{0xe6cd859f, 0x3f8b54de} } },
+/**/                 {{{0x00000000, 0x3fe76000} },
+/**/                  {{0x8e4b26d6, 0x3fe43032} },
+/**/                  {{0x1070b99f, 0xbc813159} },
+/**/                  {{0xbde829f5, 0x3fe4ddbb} },
+/**/                  {{0xb6d17615, 0xbc735ff2} },
+/**/                  {{0xf941711a, 0xbfd3e0b0} },
+/**/                  {{0xe9027227, 0x3c7d3454} },
+/**/                  {{0x2deef5c2, 0x3fac6d29} },
+/**/                  {{0x0ba13bb6, 0x3c476533} },
+/**/                  {{0x496c1e5e, 0x3faf8958} },
+/**/                  {{0xe1abdf2f, 0x3c49ebf2} },
+/**/                  {{0xb762a82c, 0xbfb193eb} },
+/**/                  {{0x7c2df93f, 0x3f9c6609} },
+/**/                  {{0xdff7724a, 0x3f831e99} },
+/**/                  {{0xcea82a5a, 0xbf95db5c} },
+/**/                  {{0xc6ff27bb, 0x3f8b51bc} } },
+/**/                 {{{0x00000000, 0x3fe78000} },
+/**/                  {{0x5b795b56, 0x3fe44506} },
+/**/                  {{0x163f79c8, 0xbc7f76d0} },
+/**/                  {{0x693e0015, 0x3fe4c9e0} },
+/**/                  {{0x60fff59b, 0xbc7b0fcb} },
+/**/                  {{0x8ea521a8, 0xbfd3d5f0} },
+/**/                  {{0xb5bcc402, 0x3c561573} },
+/**/                  {{0x1d4b9b62, 0x3face9f0} },
+/**/                  {{0xf2c93cfb, 0x3c481226} },
+/**/                  {{0xb5db8847, 0x3faeda66} },
+/**/                  {{0x3a386670, 0xbc44ec99} },
+/**/                  {{0xa92559e3, 0xbfb16921} },
+/**/                  {{0x13b2a17d, 0x3f9ca695} },
+/**/                  {{0x355982b3, 0x3f81c4bb} },
+/**/                  {{0x65bec936, 0xbf95607f} },
+/**/                  {{0x4e349f67, 0x3f8b4892} } },
+/**/                 {{{0x00000000, 0x3fe7a000} },
+/**/                  {{0x52badc7f, 0x3fe459c6} },
+/**/                  {{0x8e8e135c, 0x3c819969} },
+/**/                  {{0xec381dcb, 0x3fe4b60f} },
+/**/                  {{0x4724e4f2, 0xbc6b9874} },
+/**/                  {{0xdc390960, 0xbfd3cb01} },
+/**/                  {{0x7ba1320c, 0xbc7243b1} },
+/**/                  {{0xa09cca72, 0x3fad63fe} },
+/**/                  {{0xe5ab8d04, 0x3c48308c} },
+/**/                  {{0xdf2eb652, 0x3fae2d22} },
+/**/                  {{0x4eb29ad3, 0xbc4988a3} },
+/**/                  {{0x4eb5cb96, 0xbfb13dfa} },
+/**/                  {{0x8e5b2657, 0x3f9ce273} },
+/**/                  {{0xd132be74, 0x3f807288} },
+/**/                  {{0x55a31e9e, 0xbf94e5d8} },
+/**/                  {{0xfba00cb2, 0x3f8b399f} } },
+/**/                 {{{0x00000000, 0x3fe7c000} },
+/**/                  {{0x7efe4716, 0x3fe46e72} },
+/**/                  {{0x1b844cc9, 0xbc639b9b} },
+/**/                  {{0x749c2a47, 0x3fe4a24a} },
+/**/                  {{0x82d8a2e5, 0xbc8f9d05} },
+/**/                  {{0xe5e27a03, 0xbfd3bfe5} },
+/**/                  {{0xb30f6d58, 0xbc5047da} },
+/**/                  {{0x75f185ec, 0x3faddb5b} },
+/**/                  {{0x23d5084a, 0x3c43b680} },
+/**/                  {{0x479061d2, 0x3fad8190} },
+/**/                  {{0x602d3547, 0xbbf4565c} },
+/**/                  {{0x979e619e, 0xbfb1127c} },
+/**/                  {{0xc03c4720, 0x3f9d19bf} },
+/**/                  {{0x01b2b45f, 0x3f7e4ffd} },
+/**/                  {{0x1245b0bb, 0xbf946b81} },
+/**/                  {{0x60fec8ec, 0x3f8b2525} } },
+/**/                 {{{0x00000000, 0x3fe7e000} },
+/**/                  {{0xeb5f7bfe, 0x3fe4830a} },
+/**/                  {{0x66764a73, 0xbc5a2656} },
+/**/                  {{0x2f2d2be4, 0x3fe48e90} },
+/**/                  {{0x969bba3b, 0x3c810a8e} },
+/**/                  {{0xacfcef4d, 0xbfd3b49d} },
+/**/                  {{0xb7a61548, 0xbc6a4f98} },
+/**/                  {{0x68d7d101, 0x3fae500d} },
+/**/                  {{0x04860c21, 0xbc305c3e} },
+/**/                  {{0x2c98ea9c, 0x3facd7b2} },
+/**/                  {{0xd46adca0, 0x3c48692b} },
+/**/                  {{0x4b37c6a5, 0xbfb0e6af} },
+/**/                  {{0x6bfb2662, 0x3f9d4c94} },
+/**/                  {{0x0692cc75, 0x3f7bca2d} },
+/**/                  {{0xf3b69312, 0xbf93f191} },
+/**/                  {{0x1552b8ee, 0x3f8b0b61} } },
+/**/                 {{{0x00000000, 0x3fe80000} },
+/**/                  {{0xa3269ee1, 0x3fe4978f} },
+/**/                  {{0x87f2a458, 0x3c72419a} },
+/**/                  {{0x47ae147b, 0x3fe47ae1} },
+/**/                  {{0xeb851eb8, 0xbc6eb851} },
+/**/                  {{0x30553261, 0xbfd3a92a} },
+/**/                  {{0x94467382, 0xbc7f06f6} },
+/**/                  {{0x514d88d8, 0x3faec21b} },
+/**/                  {{0xf45873a6, 0x3c3cd061} },
+/**/                  {{0x88dfb80c, 0x3fac2f8b} },
+/**/                  {{0x53add20b, 0xbc14fcbc} },
+/**/                  {{0x08c71945, 0xbfb0ba99} },
+/**/                  {{0x3d79f13f, 0x3f9d7b0c} },
+/**/                  {{0x357dfc67, 0x3f795393} },
+/**/                  {{0x3aa97829, 0xbf937822} },
+/**/                  {{0xa8b90db0, 0x3f8aec90} } },
+/**/                 {{{0x00000000, 0x3fe82000} },
+/**/                  {{0xb1c71762, 0x3fe4ac00} },
+/**/                  {{0x2382b900, 0x3c8b20e7} },
+/**/                  {{0xe8e45252, 0x3fe4673d} },
+/**/                  {{0x67458f9c, 0x3c57d208} },
+/**/                  {{0x6c24e1b3, 0xbfd39d8c} },
+/**/                  {{0x973c6d15, 0xbc7830c5} },
+/**/                  {{0x12b78147, 0x3faf318c} },
+/**/                  {{0xd318184c, 0xbc4fa440} },
+/**/                  {{0x158b44e7, 0x3fab891f} },
+/**/                  {{0x45d7f1f3, 0x3c4d5f9f} },
+/**/                  {{0x47a3e8ba, 0xbfb08e40} },
+/**/                  {{0xc4c1a21a, 0x3f9da541} },
+/**/                  {{0x3c0d1d71, 0x3f76ec1e} },
+/**/                  {{0x152e0bfc, 0xbf92ff48} },
+/**/                  {{0x9955298f, 0x3f8ac8f0} } },
+/**/                 {{{0x00000000, 0x3fe84000} },
+/**/                  {{0x22de94e5, 0x3fe4c05e} },
+/**/                  {{0xf09f2edf, 0xbc8c0ac1} },
+/**/                  {{0x3c9a6560, 0x3fe453a6} },
+/**/                  {{0x828bba02, 0x3c77a95f} },
+/**/                  {{0x5a0e5b1c, 0xbfd391c5} },
+/**/                  {{0xcd3f76d2, 0x3c7d553d} },
+/**/                  {{0x9adede86, 0x3faf9e66} },
+/**/                  {{0xd6d2bac0, 0xbc225e54} },
+/**/                  {{0x4bdf89d7, 0x3faae46f} },
+/**/                  {{0x2b25b8d9, 0x3c39c98c} },
+/**/                  {{0x5765a5c1, 0xbfb061ab} },
+/**/                  {{0x7127d649, 0x3f9dcb4f} },
+/**/                  {{0x13002646, 0x3f7493ba} },
+/**/                  {{0xa397d1a6, 0xbf928718} },
+/**/                  {{0x494648b5, 0x3f8aa0bc} } },
+/**/                 {{{0x00000000, 0x3fe86000} },
+/**/                  {{0x023414e8, 0x3fe4d4a8} },
+/**/                  {{0x1daa88b0, 0x3c6e3a89} },
+/**/                  {{0x6ba2786e, 0x3fe4401a} },
+/**/                  {{0xe3b5f317, 0xbc4b8213} },
+/**/                  {{0xf11905c0, 0xbfd385d5} },
+/**/                  {{0xa2f42dd1, 0xbc72a1e9} },
+/**/                  {{0xf07a526f, 0x3fb00458} },
+/**/                  {{0xac5fd817, 0xbc14f965} },
+/**/                  {{0x66ca7da2, 0x3faa417e} },
+/**/                  {{0xa050b433, 0x3c4b1e1a} },
+/**/                  {{0x60182e4f, 0xbfb034e0} },
+/**/                  {{0x8cafa41b, 0x3f9ded4f} },
+/**/                  {{0x1fa4f037, 0x3f724a50} },
+/**/                  {{0xfd90e915, 0xbf920fa7} },
+/**/                  {{0xf59e7acf, 0x3f8a742d} } },
+/**/                 {{{0x00000000, 0x3fe88000} },
+/**/                  {{0x5bb6ec04, 0x3fe4e8de} },
+/**/                  {{0xbeb3796c, 0x3c84a33d} },
+/**/                  {{0x9dd8fdc1, 0x3fe42c9a} },
+/**/                  {{0xaf80050b, 0x3c5192da} },
+/**/                  {{0x25adf97f, 0xbfd379bf} },
+/**/                  {{0x20cd3651, 0xbc774019} },
+/**/                  {{0x724dbb01, 0x3fb0383a} },
+/**/                  {{0xeb93e538, 0x3c5c4e67} },
+/**/                  {{0x646e65df, 0x3fa9a04e} },
+/**/                  {{0x894a6b77, 0x3c21a7cb} },
+/**/                  {{0x62771c79, 0xbfb007e5} },
+/**/                  {{0x37a45544, 0x3f9e0b5c} },
+/**/                  {{0x54993092, 0x3f700fc7} },
+/**/                  {{0x37534c25, 0xbf919909} },
+/**/                  {{0xae51732a, 0x3f8a437e} } },
+/**/                 {{{0x00000000, 0x3fe8a000} },
+/**/                  {{0x3b7dd17e, 0x3fe4fd01} },
+/**/                  {{0x3e7c24b5, 0x3c7d513f} },
+/**/                  {{0xfa274ef1, 0x3fe41926} },
+/**/                  {{0x4d72ecb3, 0x3c8ad830} },
+/**/                  {{0xe995018a, 0xbfd36d81} },
+/**/                  {{0x6fd6094d, 0x3c7e7ec5} },
+/**/                  {{0x567bb975, 0x3fb06adb} },
+/**/                  {{0xf0d7364f, 0x3c5212c1} },
+/**/                  {{0x07a9b624, 0x3fa900e1} },
+/**/                  {{0xc16bcc85, 0xbc4e5b5b} },
+/**/                  {{0x705f052b, 0xbfafb580} },
+/**/                  {{0x646ce12e, 0x3f9e258f} },
+/**/                  {{0xa3c63841, 0x3f6bc808} },
+/**/                  {{0x67043d41, 0xbf91234e} },
+/**/                  {{0x4f11b221, 0x3f8a0ee6} } },
+/**/                 {{{0x00000000, 0x3fe8c000} },
+/**/                  {{0xadc5ed81, 0x3fe51110} },
+/**/                  {{0x6832a63e, 0x3c723dcd} },
+/**/                  {{0xa6864f90, 0x3fe405bf} },
+/**/                  {{0x662cd5df, 0xbc7419c5} },
+/**/                  {{0x2bf1f7e4, 0xbfd3611f} },
+/**/                  {{0x65483b78, 0xbc6e94dd} },
+/**/                  {{0x23e21be9, 0x3fb09c3f} },
+/**/                  {{0xcaca858d, 0x3c22db63} },
+/**/                  {{0xd99c3f1d, 0x3fa86337} },
+/**/                  {{0xdc0a6dfc, 0x3c034382} },
+/**/                  {{0x284f8093, 0xbfaf5aed} },
+/**/                  {{0xd396fb43, 0x3f9e3c02} },
+/**/                  {{0x08b96150, 0x3f678dd3} },
+/**/                  {{0xaa2dcc3a, 0xbf90ae88} },
+/**/                  {{0x79128ee7, 0x3f89d69b} } },
+/**/                 {{{0x00000000, 0x3fe8e000} },
+/**/                  {{0xbef1e9fb, 0x3fe5250c} },
+/**/                  {{0xa3228870, 0xbc5539b7} },
+/**/                  {{0xc8011245, 0x3fe3f264} },
+/**/                  {{0x44cc720b, 0xbc6641f1} },
+/**/                  {{0xd942778a, 0xbfd35497} },
+/**/                  {{0x9bd7dbd6, 0x3c750a5a} },
+/**/                  {{0x6438739e, 0x3fb0cc69} },
+/**/                  {{0x435f798d, 0x3bf5d933} },
+/**/                  {{0x2b29722f, 0x3fa7c754} },
+/**/                  {{0x5b3af27b, 0xbbe736fe} },
+/**/                  {{0x059a3c24, 0xbfaf001c} },
+/**/                  {{0x101882b0, 0x3f9e4ed0} },
+/**/                  {{0x88dc4269, 0x3f6370ae} },
+/**/                  {{0x2b5280b6, 0xbf903ac8} },
+/**/                  {{0x8da5b2ad, 0x3f899ad3} } },
+/**/                 {{{0x00000000, 0x3fe90000} },
+/**/                  {{0x7b89061f, 0x3fe538f5} },
+/**/                  {{0xabda520c, 0xbc81bb74} },
+/**/                  {{0x82b78014, 0x3fe3df16} },
+/**/                  {{0xa43ff610, 0xbc7074be} },
+/**/                  {{0xdb5be2e4, 0xbfd347ec} },
+/**/                  {{0x8a0e9303, 0x3c7848c8} },
+/**/                  {{0xa3a11be4, 0x3fb0fb5d} },
+/**/                  {{0x09dd0d69, 0x3c3d68f2} },
+/**/                  {{0x16778170, 0x3fa72d37} },
+/**/                  {{0x2200d1d4, 0xbc4ea85d} },
+/**/                  {{0xd4cdbd49, 0xbfaea517} },
+/**/                  {{0x6bc61b6f, 0x3f9e5e10} },
+/**/                  {{0xd0517524, 0x3f5ee0af} },
+/**/                  {{0x4f2ec799, 0xbf8f9038} },
+/**/                  {{0xa9aaa5bb, 0x3f895bc2} } },
+/**/                 {{{0x00000000, 0x3fe92000} },
+/**/                  {{0xf0362c8f, 0x3fe54cca} },
+/**/                  {{0x7f8f43c1, 0x3c88a324} },
+/**/                  {{0xf9e1016e, 0x3fe3cbd4} },
+/**/                  {{0x431b67e7, 0xbc88dea6} },
+/**/                  {{0x1969bc63, 0xbfd33b1f} },
+/**/                  {{0x5f3d8fd8, 0x3c6ef16e} },
+/**/                  {{0x703d3bf6, 0x3fb1291f} },
+/**/                  {{0xb04e0672, 0xbc566e82} },
+/**/                  {{0x806b26f2, 0x3fa694e1} },
+/**/                  {{0xafcee740, 0x3c302819} },
+/**/                  {{0x16dcee96, 0xbfae49eb} },
+/**/                  {{0xfbfdb35f, 0x3f9e69dc} },
+/**/                  {{0x70c48510, 0x3f571910} },
+/**/                  {{0xe90198c8, 0xbf8ead25} },
+/**/                  {{0xa1c723cb, 0x3f89199b} } },
+/**/                 {{{0x00000000, 0x3fe94000} },
+/**/                  {{0x29c70c34, 0x3fe5608d} },
+/**/                  {{0xf0de8088, 0x3c89939c} },
+/**/                  {{0x4fcf28c3, 0x3fe3b8a0} },
+/**/                  {{0xcb80013c, 0xbc469c2b} },
+/**/                  {{0x77ec4ef9, 0xbfd32e2f} },
+/**/                  {{0xc61f7341, 0x3c7f9d06} },
+/**/                  {{0x59c3bcdf, 0x3fb155b2} },
+/**/                  {{0x3583c01b, 0xbc2d692e} },
+/**/                  {{0x1a1fe15d, 0x3fa5fe54} },
+/**/                  {{0x5d9bad81, 0x3c430dc5} },
+/**/                  {{0x01d944a8, 0xbfadeea0} },
+/**/                  {{0x9683b244, 0x3f9e724e} },
+/**/                  {{0x491379ef, 0x3f4f13d4} },
+/**/                  {{0x0b7cf74b, 0xbf8dcc74} },
+/**/                  {{0xff5f0625, 0x3f88d48f} } },
+/**/                 {{{0x00000000, 0x3fe96000} },
+/**/                  {{0x352b33ba, 0x3fe5743c} },
+/**/                  {{0x34c87ea6, 0xbc8ea00d} },
+/**/                  {{0xa5f05e48, 0x3fe3a578} },
+/**/                  {{0x00e4639b, 0xbc8ba1ec} },
+/**/                  {{0xd8b7a43f, 0xbfd3211e} },
+/**/                  {{0x676e23a8, 0xbc6d4b54} },
+/**/                  {{0xf11b2c2d, 0x3fb18119} },
+/**/                  {{0x3a3bf5fa, 0x3c34855b} },
+/**/                  {{0x625c76bf, 0x3fa5698f} },
+/**/                  {{0xbedb0264, 0xbc2f758a} },
+/**/                  {{0x81b60103, 0xbfad9340} },
+/**/                  {{0xce91900f, 0x3f9e777d} },
+/**/                  {{0x34fddb2f, 0x3f406543} },
+/**/                  {{0xe6077f81, 0xbf8cee3b} },
+/**/                  {{0xfe42afde, 0x3f888ccf} } },
+/**/                 {{{0x00000000, 0x3fe98000} },
+/**/                  {{0x1f732fbb, 0x3fe587d8} },
+/**/                  {{0xd8c5a950, 0xbc75e5c9} },
+/**/                  {{0x1cd28c98, 0x3fe3925e} },
+/**/                  {{0x1ffec6da, 0x3c8c8443} },
+/**/                  {{0x1af2c622, 0xbfd313ee} },
+/**/                  {{0xbc3f7ac8, 0x3c0a0e9b} },
+/**/                  {{0xc7f683c3, 0x3fb1ab59} },
+/**/                  {{0x12c04500, 0x3c5eaf17} },
+/**/                  {{0xa7039179, 0x3fa4d693} },
+/**/                  {{0xa4ce58a2, 0xbc4c8d74} },
+/**/                  {{0x391400b3, 0xbfad37d6} },
+/**/                  {{0xf2148a36, 0x3f9e7982} },
+/**/                  {{0xb6df63ca, 0x3f112956} },
+/**/                  {{0xfbd0f7ee, 0xbf8c1294} },
+/**/                  {{0x8b0b0a0e, 0x3f88428a} } },
+/**/                 {{{0x00000000, 0x3fe9a000} },
+/**/                  {{0xf5cfab9e, 0x3fe59b60} },
+/**/                  {{0x41026bc5, 0xbc81b04c} },
+/**/                  {{0xd425cdfc, 0x3fe37f50} },
+/**/                  {{0x518aef64, 0x3c865633} },
+/**/                  {{0x1b1749db, 0xbfd3069e} },
+/**/                  {{0xa119d9bc, 0xbc311c20} },
+/**/                  {{0x7074cee3, 0x3fb1d475} },
+/**/                  {{0x4ff61e2c, 0xbc5102e0} },
+/**/                  {{0x06804def, 0x3fa44561} },
+/**/                  {{0xc3865804, 0x3c4e829f} },
+/**/                  {{0x82158836, 0xbfacdc6a} },
+/**/                  {{0x071b2eec, 0x3f9e7876} },
+/**/                  {{0xf17c4beb, 0xbf375b85} },
+/**/                  {{0x2fa03971, 0xbf8b3995} },
+/**/                  {{0x421a433b, 0x3f87f5ed} } },
+/**/                 {{{0x00000000, 0x3fe9c000} },
+/**/                  {{0xc5909517, 0x3fe5aed6} },
+/**/                  {{0x714a9436, 0x3c87312f} },
+/**/                  {{0xeabf19f5, 0x3fe36c50} },
+/**/                  {{0x52485cca, 0x3c70d1dc} },
+/**/                  {{0xb2f12226, 0xbfd2f92f} },
+/**/                  {{0x3e5d3d61, 0x3c5400ba} },
+/**/                  {{0x7cc3a41b, 0x3fb1fc70} },
+/**/                  {{0x8819ff5b, 0x3c4b58e7} },
+/**/                  {{0x712e9269, 0x3fa3b5f7} },
+/**/                  {{0x7879d8ab, 0xbc4e436a} },
+/**/                  {{0x6f398221, 0xbfac8106} },
+/**/                  {{0xc97073c7, 0x3f9e746e} },
+/**/                  {{0xecfc2d6a, 0xbf4914de} },
+/**/                  {{0xcfa74bd5, 0xbf8a6350} },
+/**/                  {{0x6f38ad9e, 0x3f87a724} } },
+/**/                 {{{0x00000000, 0x3fe9e000} },
+/**/                  {{0x9c244261, 0x3fe5c239} },
+/**/                  {{0xe9e56b35, 0xbc831bd4} },
+/**/                  {{0x7e9af2dc, 0x3fe3595e} },
+/**/                  {{0x9dc90e6a, 0x3c81ef2d} },
+/**/                  {{0xb99eb689, 0xbfd2eba3} },
+/**/                  {{0x6a2f2701, 0xbc7b12ef} },
+/**/                  {{0x7ec46b9b, 0x3fb2234e} },
+/**/                  {{0x8d415d66, 0x3c59f30c} },
+/**/                  {{0xaabf0d26, 0x3fa32856} },
+/**/                  {{0x3f33d7ea, 0xbc122571} },
+/**/                  {{0xcc3da9ce, 0xbfac25b2} },
+/**/                  {{0xa8630cad, 0x3f9e6d84} },
+/**/                  {{0xbeba707a, 0xbf5308c5} },
+/**/                  {{0xa1585fd1, 0xbf898fda} },
+/**/                  {{0x0dc54356, 0x3f87565b} } },
+/**/                 {{{0x00000000, 0x3fea0000} },
+/**/                  {{0x87169b18, 0x3fe5d589} },
+/**/                  {{0x4bc5e7ca, 0x3c60028e} },
+/**/                  {{0xace01346, 0x3fe34679} },
+/**/                  {{0x04d19e6b, 0x3c8e6b38} },
+/**/                  {{0x03913da2, 0xbfd2ddfb} },
+/**/                  {{0x9a19adbd, 0xbc763ec8} },
+/**/                  {{0x07b46905, 0x3fb24913} },
+/**/                  {{0xd6f0307f, 0xbc4e7be8} },
+/**/                  {{0x4b96b773, 0x3fa29c7e} },
+/**/                  {{0x9182d783, 0xbc24c2cd} },
+/**/                  {{0x1f071f44, 0xbfabca78} },
+/**/                  {{0xc4b7b7c4, 0x3f9e63ce} },
+/**/                  {{0x125f35b0, 0xbf59529a} },
+/**/                  {{0xed369b2b, 0xbf88bf43} },
+/**/                  {{0xc97185cd, 0x3f8703ba} } },
+/**/                 {{{0x00000000, 0x3fea2000} },
+/**/                  {{0x941043d0, 0x3fe5e8c6} },
+/**/                  {{0xbe451e70, 0xbc70bf75} },
+/**/                  {{0x91e21aec, 0x3fe333a2} },
+/**/                  {{0x7acfc84f, 0x3c7ae035} },
+/**/                  {{0x628d5861, 0xbfd2d036} },
+/**/                  {{0xe463d006, 0x3c67c5fb} },
+/**/                  {{0xa7d77fb2, 0x3fb26dc1} },
+/**/                  {{0xc47ba861, 0xbc5432bd} },
+/**/                  {{0xc229bece, 0x3fa2126d} },
+/**/                  {{0x1da8ed9e, 0xbc4be1bf} },
+/**/                  {{0xa890e568, 0xbfab6f5e} },
+/**/                  {{0xeec5339a, 0x3f9e5763} },
+/**/                  {{0x5274aa52, 0xbf5f68a6} },
+/**/                  {{0x8a9df558, 0xbf87f19c} },
+/**/                  {{0xff809dc5, 0x3f86af6b} } },
+/**/                 {{{0x00000000, 0x3fea4000} },
+/**/                  {{0xd0d5cc4a, 0x3fe5fbf0} },
+/**/                  {{0x000b7158, 0xbc5b4cfd} },
+/**/                  {{0x49243ad8, 0x3fe320d9} },
+/**/                  {{0x433f7be5, 0xbc8ce5e0} },
+/**/                  {{0xa5abec2f, 0xbfd2c256} },
+/**/                  {{0x04494dc1, 0xbc68785b} },
+/**/                  {{0xee25a81c, 0x3fb2915d} },
+/**/                  {{0x68b37e8b, 0x3c3e7045} },
+/**/                  {{0x5451b7d2, 0x3fa18a24} },
+/**/                  {{0x79d21dd5, 0xbc3b2d29} },
+/**/                  {{0x65dfcf66, 0xbfab146e} },
+/**/                  {{0xa4b895b9, 0x3f9e485a} },
+/**/                  {{0x14770b65, 0xbf62a5d4} },
+/**/                  {{0xeb7dab0f, 0xbf8726f2} },
+/**/                  {{0xc081d40d, 0x3f865995} } },
+/**/                 {{{0x00000000, 0x3fea6000} },
+/**/                  {{0x4b46e05f, 0x3fe60f08} },
+/**/                  {{0x99945193, 0xbc8dbb86} },
+/**/                  {{0xed5be099, 0x3fe30e1d} },
+/**/                  {{0x373fae45, 0x3c6c6e78} },
+/**/                  {{0x995b3a02, 0xbfd2b45c} },
+/**/                  {{0xe7cea2ad, 0x3c7cb97b} },
+/**/                  {{0x67fb0cde, 0x3fb2b3eb} },
+/**/                  {{0x4920d50b, 0xbc402927} },
+/**/                  {{0x209f00e4, 0x3fa103a1} },
+/**/                  {{0xecac275a, 0xbc36fb57} },
+/**/                  {{0x10fb6629, 0xbfaab9af} },
+/**/                  {{0x1100b94a, 0x3f9e36c9} },
+/**/                  {{0x58620e6c, 0xbf657e30} },
+/**/                  {{0x2801158e, 0xbf865f54} },
+/**/                  {{0xd27eaf07, 0x3f86025d} } },
+/**/                 {{{0x00000000, 0x3fea8000} },
+/**/                  {{0x115d7b8e, 0x3fe6220d} },
+/**/                  {{0x350ee8c1, 0xbc62b785} },
+/**/                  {{0x98736048, 0x3fe2fb70} },
+/**/                  {{0x4df7c4fa, 0x3c87a751} },
+/**/                  {{0x07603054, 0xbfd2a649} },
+/**/                  {{0xf564247c, 0x3c7c41eb} },
+/**/                  {{0xa0cac592, 0x3fb2d56d} },
+/**/                  {{0x4e757ddf, 0x3c333138} },
+/**/                  {{0x1fa53ce5, 0x3fa07ee3} },
+/**/                  {{0x28113a76, 0xbc41bd0c} },
+/**/                  {{0x21eb5271, 0xbfaa5f28} },
+/**/                  {{0x08df7f4f, 0x3f9e22c5} },
+/**/                  {{0x107b528f, 0xbf683dca} },
+/**/                  {{0x0a22f693, 0xbf859acc} },
+/**/                  {{0xb39536ba, 0x3f85a9e8} } },
+/**/                 {{{0x00000000, 0x3feaa000} },
+/**/                  {{0x312d1f3b, 0x3fe634ff} },
+/**/                  {{0x15f2b598, 0x3c89d2f3} },
+/**/                  {{0x638c9d15, 0x3fe2e8d1} },
+/**/                  {{0xfe1a437d, 0x3c831ae5} },
+/**/                  {{0xb6d7f622, 0xbfd2981c} },
+/**/                  {{0x86e9fe4d, 0xbc53da87} },
+/**/                  {{0x21d425b2, 0x3fb2f5e8} },
+/**/                  {{0xae2616cb, 0xbc186482} },
+/**/                  {{0x4a85a0e4, 0x3f9ff7d2} },
+/**/                  {{0xe2d9205b, 0xbc294288} },
+/**/                  {{0xcfb8dc09, 0xbfaa04e0} },
+/**/                  {{0x0b1f9c73, 0x3f9e0c64} },
+/**/                  {{0xbd3845d8, 0xbf6ae504} },
+/**/                  {{0x19278cae, 0xbf84d965} },
+/**/                  {{0x9cf7183b, 0x3f855059} } },
+/**/                 {{{0x00000000, 0x3feac000} },
+/**/                  {{0xb8e20b90, 0x3fe647de} },
+/**/                  {{0x023a51cf, 0xbc5eca04} },
+/**/                  {{0x6703b033, 0x3fe2d640} },
+/**/                  {{0x38039b02, 0x3c870ae6} },
+/**/                  {{0x6c39acf5, 0xbfd289d8} },
+/**/                  {{0x0238a7ee, 0xbc71f038} },
+/**/                  {{0x71da955f, 0x3fb3155e} },
+/**/                  {{0xd41f84df, 0xbc5faa02} },
+/**/                  {{0xc3c69caa, 0x3f9ef563} },
+/**/                  {{0x75403dbd, 0x3c331d29} },
+/**/                  {{0x1174124f, 0xbfa9aae0} },
+/**/                  {{0x3eedb30b, 0x3f9df3bb} },
+/**/                  {{0x1c632765, 0xbf6d7445} },
+/**/                  {{0xa4fa03e7, 0xbf841b28} },
+/**/                  {{0x8646990d, 0x3f84f5d2} } },
+/**/                 {{{0x00000000, 0x3feae000} },
+/**/                  {{0xb6c07b03, 0x3fe65aab} },
+/**/                  {{0x3af32729, 0xbc67939b} },
+/**/                  {{0xba718de8, 0x3fe2c3bd} },
+/**/                  {{0xc4990a2b, 0xbc82d2fc} },
+/**/                  {{0xe9586818, 0xbfd27b7c} },
+/**/                  {{0x880839ca, 0x3c780d5e} },
+/**/                  {{0x14dfe9e3, 0x3fb333d4} },
+/**/                  {{0xbce74cae, 0x3c536469} },
+/**/                  {{0xc77983b8, 0x3f9df677} },
+/**/                  {{0xb42f53aa, 0x3c373272} },
+/**/                  {{0x9f3c360e, 0xbfa9512c} },
+/**/                  {{0x72d37b24, 0x3f9dd8df} },
+/**/                  {{0x02e417f5, 0xbf6febf1} },
+/**/                  {{0xd16a1579, 0xbf83601e} },
+/**/                  {{0x294a83e4, 0x3f849a74} } },
+/**/                 {{{0x00000000, 0x3feb0000} },
+/**/                  {{0x3923e087, 0x3fe66d66} },
+/**/                  {{0xebe8bbba, 0xbc76ea6f} },
+/**/                  {{0x74aea886, 0x3fe2b149} },
+/**/                  {{0xa9d6d16a, 0x3c868ffd} },
+/**/                  {{0xed65571e, 0xbfd26d0a} },
+/**/                  {{0x476fb5f2, 0x3c6cf972} },
+/**/                  {{0x8be1339f, 0x3fb3514c} },
+/**/                  {{0x3f722216, 0x3c5c8c0f} },
+/**/                  {{0x300f8f9b, 0x3f9cfb0b} },
+/**/                  {{0x38d1c932, 0xbc0edd81} },
+/**/                  {{0xf34b004f, 0xbfa8f7cc} },
+/**/                  {{0x1bd3bde0, 0x3f9dbbe5} },
+/**/                  {{0x9bf7dceb, 0xbf712637} },
+/**/                  {{0xa146e5b2, 0xbf82a84e} },
+/**/                  {{0x05f2718e, 0x3f843e5e} } },
+/**/                 {{{0x00000000, 0x3feb2000} },
+/**/                  {{0x4e7e2858, 0x3fe6800e} },
+/**/                  {{0x1b3e90f0, 0xbc58ea6a} },
+/**/                  {{0xabd5912c, 0x3fe29ee3} },
+/**/                  {{0xb17c28e3, 0xbc61b3cd} },
+/**/                  {{0x34f221eb, 0xbfd25e83} },
+/**/                  {{0xfa300585, 0xbc74c483} },
+/**/                  {{0x5495f6e3, 0x3fb36dcb} },
+/**/                  {{0x311973fe, 0x3c59b55b} },
+/**/                  {{0x9864d139, 0x3f9c031a} },
+/**/                  {{0xbd00e171, 0x3c28fdf3} },
+/**/                  {{0x4b026585, 0xbfa89ec7} },
+/**/                  {{0x54a5ed3d, 0x3f9d9ce0} },
+/**/                  {{0xa8cb6dfc, 0xbf724b13} },
+/**/                  {{0x015469a9, 0xbf81f3be} },
+/**/                  {{0x66a50a89, 0x3f83e1ae} } },
+/**/                 {{{0x00000000, 0x3feb4000} },
+/**/                  {{0x0556fb6a, 0x3fe692a4} },
+/**/                  {{0x5a8ea2cc, 0x3c8d94b9} },
+/**/                  {{0x75459603, 0x3fe28c8c} },
+/**/                  {{0x2945fc08, 0x3c8b1c3b} },
+/**/                  {{0x79f37468, 0xbfd24fe6} },
+/**/                  {{0x0ec1ef94, 0xbc4e3751} },
+/**/                  {{0xe931c53b, 0x3fb38953} },
+/**/                  {{0x16d80688, 0xbc3b108d} },
+/**/                  {{0x5e1b50b5, 0x3f9b0ea2} },
+/**/                  {{0x63fd1067, 0x3c0074c0} },
+/**/                  {{0xa7fc7800, 0xbfa84621} },
+/**/                  {{0xdd10256e, 0x3f9d7be4} },
+/**/                  {{0xc9592c5e, 0xbf7364c0} },
+/**/                  {{0xd318d707, 0xbf814271} },
+/**/                  {{0x64d217b8, 0x3f838482} } },
+/**/                 {{{0x00000000, 0x3feb6000} },
+/**/                  {{0x6c4b0576, 0x3fe6a527} },
+/**/                  {{0x9c46a69e, 0xbc8f6b65} },
+/**/                  {{0xe5a55de9, 0x3fe27a43} },
+/**/                  {{0xedc25d49, 0x3c66846e} },
+/**/                  {{0x73c3b821, 0xbfd24135} },
+/**/                  {{0x56ab5808, 0xbc79202a} },
+/**/                  {{0xc0282c84, 0x3fb3a3e9} },
+/**/                  {{0x03d25dab, 0x3c4057ca} },
+/**/                  {{0xa3eb854d, 0x3f9a1d9e} },
+/**/                  {{0xf03e2fb1, 0xbc3775ed} },
+/**/                  {{0xd11d1043, 0xbfa7ede1} },
+/**/                  {{0x195e6961, 0x3f9d5906} },
+/**/                  {{0x65130256, 0xbf747373} },
+/**/                  {{0xf77fd664, 0xbf80946d} },
+/**/                  {{0xedc272c2, 0x3f8326f5} } },
+/**/                 {{{0x00000000, 0x3feb8000} },
+/**/                  {{0x920b3d99, 0x3fe6b798} },
+/**/                  {{0x6188c50e, 0xbc8a8038} },
+/**/                  {{0x10e5813e, 0x3fe2680a} },
+/**/                  {{0x2242a6bc, 0xbc8f5497} },
+/**/                  {{0xd725fa1c, 0xbfd23270} },
+/**/                  {{0x5c781b14, 0x3c757282} },
+/**/                  {{0x4bf2f124, 0x3fb3bd90} },
+/**/                  {{0x6a14ed74, 0x3c31ae9c} },
+/**/                  {{0x53ea1533, 0x3f99300b} },
+/**/                  {{0x68f98d7e, 0x3c2a8d88} },
+/**/                  {{0x53a4e537, 0xbfa7960d} },
+/**/                  {{0x11f5f086, 0x3f9d3457} },
+/**/                  {{0x19baa1da, 0xbf757760} },
+/**/                  {{0xb2a2ca7e, 0xbf7fd36a} },
+/**/                  {{0xc7a02081, 0x3f82c923} } },
+/**/                 {{{0x00000000, 0x3feba000} },
+/**/                  {{0x855c3198, 0x3fe6c9f7} },
+/**/                  {{0x29bd280d, 0x3c7c09de} },
+/**/                  {{0x0a431fbd, 0x3fe255df} },
+/**/                  {{0xf09a745d, 0x3c8d9866} },
+/**/                  {{0x5648fb1f, 0xbfd22399} },
+/**/                  {{0xb4df0b3e, 0x3c412100} },
+/**/                  {{0xfada8899, 0x3fb3d64a} },
+/**/                  {{0x659c4346, 0x3c3dd891} },
+/**/                  {{0x21c2d0a1, 0x3f9845e4} },
+/**/                  {{0xf397827c, 0x3c28c6b1} },
+/**/                  {{0x8445c1cc, 0xbfa73ea9} },
+/**/                  {{0x730360f8, 0x3f9d0dea} },
+/**/                  {{0xac51ce30, 0xbf7670bb} },
+/**/                  {{0xeef50deb, 0xbf7e8493} },
+/**/                  {{0x96b119a9, 0x3f826b25} } },
+/**/                 {{{0x00000000, 0x3febc000} },
+/**/                  {{0x551553af, 0x3fe6dc44} },
+/**/                  {{0x3573828e, 0xbc5bf886} },
+/**/                  {{0xe44a7335, 0x3fe243c2} },
+/**/                  {{0x65d1ffd7, 0xbc667287} },
+/**/                  {{0xa0ca68d3, 0xbfd214af} },
+/**/                  {{0x88820895, 0xbc71296c} },
+/**/                  {{0x36c0c9a2, 0x3fb3ee1d} },
+/**/                  {{0x831dfabe, 0x3c540bf6} },
+/**/                  {{0x8ce8de84, 0x3f975f24} },
+/**/                  {{0x43eb5853, 0xbc125368} },
+/**/                  {{0x803788f8, 0xbfa6e7bb} },
+/**/                  {{0x8c42d5f9, 0x3f9ce5d2} },
+/**/                  {{0xfaadb3ab, 0xbf775fba} },
+/**/                  {{0xde4c28da, 0xbf7d3c59} },
+/**/                  {{0xe2bf7ef5, 0x3f820d13} } },
+/**/                 {{{0x00000000, 0x3febe000} },
+/**/                  {{0x10204aef, 0x3fe6ee7f} },
+/**/                  {{0xa3066272, 0x3c8692ee} },
+/**/                  {{0xb0d95ee5, 0x3fe231b5} },
+/**/                  {{0x1eb505b6, 0x3c7aae7e} },
+/**/                  {{0x63ba3e08, 0xbfd205b4} },
+/**/                  {{0xb975517d, 0x3c71c6d1} },
+/**/                  {{0x64edc729, 0x3fb4050a} },
+/**/                  {{0x715db809, 0x3c4960ed} },
+/**/                  {{0xe2bc143b, 0x3f967bc7} },
+/**/                  {{0xf0823143, 0xbc2cbf17} },
+/**/                  {{0x2e4dbc47, 0xbfa69148} },
+/**/                  {{0x50e0982e, 0x3f9cbc21} },
+/**/                  {{0xedaa432a, 0xbf784492} },
+/**/                  {{0x0b4850f3, 0xbf7bfabd} },
+/**/                  {{0x1caa2f2c, 0x3f81af06} } },
+/**/                 {{{0x00000000, 0x3fec0000} },
+/**/                  {{0xc5784634, 0x3fe700a7} },
+/**/                  {{0x25aadef6, 0xbc78c34d} },
+/**/                  {{0x8121fb78, 0x3fe21fb7} },
+/**/                  {{0x8121fb78, 0x3c621fb7} },
+/**/                  {{0x499e4889, 0xbfd1f6a8} },
+/**/                  {{0x6d4e0249, 0xbc60e934} },
+/**/                  {{0xe5decb17, 0x3fb41b15} },
+/**/                  {{0xab3541e6, 0x3c5194f4} },
+/**/                  {{0x40a374b5, 0x3f959bc9} },
+/**/                  {{0x54be0e10, 0xbc39dc6e} },
+/**/                  {{0x400d3c9a, 0xbfa63b54} },
+/**/                  {{0x57717232, 0x3f9c90e8} },
+/**/                  {{0x6bfa704e, 0xbf791f78} },
+/**/                  {{0x643da6dd, 0xbf7abfbc} },
+/**/                  {{0xa418ed31, 0x3f815112} } },
+/**/                 {{{0x00000000, 0x3fec2000} },
+/**/                  {{0x84295198, 0x3fe712be} },
+/**/                  {{0x337d8881, 0x3c85cd90} },
+/**/                  {{0x65ad1f5b, 0x3fe20dc8} },
+/**/                  {{0xd7b50d48, 0xbc88102a} },
+/**/                  {{0xfa75d2f4, 0xbfd1e78b} },
+/**/                  {{0x619624d2, 0x3c723734} },
+/**/                  {{0x1517663e, 0x3fb43043} },
+/**/                  {{0xe5e1ddf1, 0xbc4af8a4} },
+/**/                  {{0x961cd605, 0x3f94bf23} },
+/**/                  {{0x5ca14507, 0xbc26e86e} },
+/**/                  {{0x32c1ffd7, 0xbfa5e5e4} },
+/**/                  {{0xda0191cd, 0x3f9c6438} },
+/**/                  {{0x4d921d2b, 0xbf79f0a0} },
+/**/                  {{0x4e35d54e, 0xbf798b55} },
+/**/                  {{0xcd4f7bfd, 0x3f80f34e} } },
+/**/                 {{{0x00000000, 0x3fec4000} },
+/**/                  {{0x5b4fae7b, 0x3fe724c3} },
+/**/                  {{0x2db3499b, 0x3c5948b3} },
+/**/                  {{0x6e5ce35d, 0x3fe1fbe8} },
+/**/                  {{0x561e27a3, 0x3c8101d1} },
+/**/                  {{0x1bbd70f4, 0xbfd1d860} },
+/**/                  {{0xfa32c4d1, 0xbc7b4c97} },
+/**/                  {{0x48f48a77, 0x3fb44495} },
+/**/                  {{0xb47fdf89, 0xbc2ccfed} },
+/**/                  {{0xa6c1af2c, 0x3f93e5d1} },
+/**/                  {{0xc3b5a19b, 0xbc14af58} },
+/**/                  {{0x5094795f, 0xbfa590fc} },
+/**/                  {{0xb638ebc2, 0x3f9c3623} },
+/**/                  {{0x4fa66d0e, 0xbf7ab83f} },
+/**/                  {{0xb787e297, 0xbf785d83} },
+/**/                  {{0xe71b4cea, 0x3f8095ce} } },
+/**/                 {{{0x00000000, 0x3fec6000} },
+/**/                  {{0x5a172dff, 0x3fe736b6} },
+/**/                  {{0x06a892d1, 0x3c7775fd} },
+/**/                  {{0xaa6f2377, 0x3fe1ea17} },
+/**/                  {{0xcb44ec07, 0xbc8395a8} },
+/**/                  {{0x5072ec76, 0xbfd1c925} },
+/**/                  {{0xf650d5de, 0xbc6e11b3} },
+/**/                  {{0xd281a42b, 0x3fb4580f} },
+/**/                  {{0xf63226cb, 0xbc55bbce} },
+/**/                  {{0x0c411254, 0x3f930fce} },
+/**/                  {{0xc9852726, 0x3c3a4412} },
+/**/                  {{0xb19e766e, 0xbfa53ca0} },
+/**/                  {{0x6d941dd5, 0x3f9c06b9} },
+/**/                  {{0x094128b2, 0xbf7b768a} },
+/**/                  {{0x2a047c42, 0xbf773642} },
+/**/                  {{0x40d7925f, 0x3f8038a6} } },
+/**/                 {{{0x00000000, 0x3fec8000} },
+/**/                  {{0x8fba8e0f, 0x3fe74897} },
+/**/                  {{0x165884a1, 0x3c47b2a6} },
+/**/                  {{0x287ffb8a, 0x3fe1d856} },
+/**/                  {{0xfee27a9d, 0xbc658a1f} },
+/**/                  {{0x39195240, 0xbfd1b9dc} },
+/**/                  {{0x551dc6bf, 0x3c604646} },
+/**/                  {{0xfd4fa866, 0x3fb46ab5} },
+/**/                  {{0xc2febe43, 0x3c5f62a7} },
+/**/                  {{0x384eda2c, 0x3f923d13} },
+/**/                  {{0x1dfd9f34, 0x3c3b9a7c} },
+/**/                  {{0x3cff324c, 0xbfa4e8d5} },
+/**/                  {{0x25b0d0ad, 0x3f9bd60a} },
+/**/                  {{0xe063d1e6, 0xbf7c2bb4} },
+/**/                  {{0xdcb54dd5, 0xbf761589} },
+/**/                  {{0x61077b85, 0x3f7fb7ce} } },
+/**/                 {{{0x00000000, 0x3feca000} },
+/**/                  {{0x0b82d8d8, 0x3fe75a67} },
+/**/                  {{0x4c729087, 0x3c8ee4ac} },
+/**/                  {{0xf68c4011, 0x3fe1c6a3} },
+/**/                  {{0x32671c29, 0xbc8e54e4} },
+/**/                  {{0x73bd1c8f, 0xbfd1aa85} },
+/**/                  {{0x41d7bd80, 0x3c7525ad} },
+/**/                  {{0x0f4e0cc0, 0x3fb47c8b} },
+/**/                  {{0xd854875c, 0x3c2efdd1} },
+/**/                  {{0x7688134d, 0x3f916d9b} },
+/**/                  {{0x42a6f922, 0xbc1abef6} },
+/**/                  {{0xa9ee694e, 0xbfa4959d} },
+/**/                  {{0xa8aca118, 0x3f9ba425} },
+/**/                  {{0xffb6fa1f, 0xbf7cd7f3} },
+/**/                  {{0xc52e395a, 0xbf74fb52} },
+/**/                  {{0x31d14661, 0x3f7eff46} } },
+/**/                 {{{0x00000000, 0x3fecc000} },
+/**/                  {{0xdcc6c6c0, 0x3fe76c24} },
+/**/                  {{0x51adc83d, 0x3c819525} },
+/**/                  {{0x21f3f28c, 0x3fe1b501} },
+/**/                  {{0x5f1d67b6, 0xbc45712f} },
+/**/                  {{0x9bf87a43, 0xbfd19b21} },
+/**/                  {{0xb2071e48, 0xbc64520a} },
+/**/                  {{0x48a59e43, 0x3fb48d92} },
+/**/                  {{0x42014b8b, 0x3c5f8e56} },
+/**/                  {{0xee4caccb, 0x3f90a160} },
+/**/                  {{0x7b6daa67, 0x3c2bd92b} },
+/**/                  {{0x80ce3489, 0xbfa442fd} },
+/**/                  {{0x65959e45, 0x3f9b711b} },
+/**/                  {{0x4cc2673a, 0xbf7d7b7b} },
+/**/                  {{0xa86f8a8e, 0xbf73e793} },
+/**/                  {{0xdf91602d, 0x3f7e47d4} } },
+/**/                 {{{0x00000000, 0x3fece000} },
+/**/                  {{0x12ea22c7, 0x3fe77dd1} },
+/**/                  {{0x8fc10d3d, 0x3c873260} },
+/**/                  {{0xb77cb1a2, 0x3fe1a36d} },
+/**/                  {{0x6e625be9, 0xbc42c20d} },
+/**/                  {{0x4af7b13c, 0xbfd18bb1} },
+/**/                  {{0xbc063e5a, 0xbc68446b} },
+/**/                  {{0xe3952cbb, 0x3fb49dce} },
+/**/                  {{0x58cf9123, 0x3c588e60} },
+/**/                  {{0x491cfa44, 0x3f8fb0bb} },
+/**/                  {{0x0e3f2a43, 0x3c1534fc} },
+/**/                  {{0x1c3b7aca, 0xbfa3f0f8} },
+/**/                  {{0x70eb708a, 0x3f9b3cfa} },
+/**/                  {{0x5eaa8b7f, 0xbf7e167e} },
+/**/                  {{0x2b587c04, 0xbf72da42} },
+/**/                  {{0x882fa65b, 0x3f7d9199} } },
+/**/                 {{{0x00000000, 0x3fed0000} },
+/**/                  {{0xbd5d315e, 0x3fe78f6b} },
+/**/                  {{0x89803740, 0x3c8406a0} },
+/**/                  {{0xc35424ca, 0x3fe191e9} },
+/**/                  {{0xf4be863f, 0xbc8fa3c1} },
+/**/                  {{0x177d9a85, 0xbfd17c35} },
+/**/                  {{0x6a99d546, 0xbc717b81} },
+/**/                  {{0x144fffae, 0x3fb4ad44} },
+/**/                  {{0xdccca2a3, 0x3c3538b3} },
+/**/                  {{0xfb2b5523, 0x3f8e2516} },
+/**/                  {{0x60181bd9, 0x3c0f7c11} },
+/**/                  {{0xaa1cc641, 0xbfa39f90} },
+/**/                  {{0x85304289, 0x3f9b07d1} },
+/**/                  {{0x756fd193, 0xbf7ea930} },
+/**/                  {{0xe2a9a0de, 0xbf71d352} },
+/**/                  {{0x886fc912, 0x3f7cdcb1} } },
+/**/                 {{{0x00000000, 0x3fed2000} },
+/**/                  {{0xeb9c19a2, 0x3fe7a0f4} },
+/**/                  {{0xcd815f57, 0x3c613c67} },
+/**/                  {{0x5112636f, 0x3fe18075} },
+/**/                  {{0x7a335b20, 0x3c80a172} },
+/**/                  {{0x95e83705, 0xbfd16cad} },
+/**/                  {{0x7b21d5e1, 0x3c62a94b} },
+/**/                  {{0x08de0a7c, 0x3fb4bbf5} },
+/**/                  {{0x057457a0, 0x3c3570d0} },
+/**/                  {{0x7d750fdf, 0x3f8c9fc8} },
+/**/                  {{0xfe4cff3c, 0x3c2900a7} },
+/**/                  {{0x2caf50ea, 0xbfa34eca} },
+/**/                  {{0x03888c77, 0x3f9ad1af} },
+/**/                  {{0x71ac3a86, 0xbf7f33c4} },
+/**/                  {{0x6296fd58, 0xbf70d2b9} },
+/**/                  {{0x886d16b8, 0x3f7c2938} } },
+/**/                 {{{0x00000000, 0x3fed4000} },
+/**/                  {{0xad2e50fe, 0x3fe7b26c} },
+/**/                  {{0xf30411fb, 0xbc8ce80d} },
+/**/                  {{0x6bbc577a, 0x3fe16f10} },
+/**/                  {{0xbd8abf47, 0xbc7d0db6} },
+/**/                  {{0x58355b5f, 0xbfd15d1b} },
+/**/                  {{0xbcc70038, 0xbc5b5457} },
+/**/                  {{0xe8fdd51d, 0x3fb4c9e4} },
+/**/                  {{0x28ac9383, 0x3c462959} },
+/**/                  {{0x2029f143, 0x3f8b20c3} },
+/**/                  {{0x2b420400, 0xbc2f8a44} },
+/**/                  {{0x7b921c49, 0xbfa2fea7} },
+/**/                  {{0xf468e79e, 0x3f9a9aa0} },
+/**/                  {{0xcccbcb4f, 0xbf7fb66c} },
+/**/                  {{0x9bd39a5f, 0xbf6fb0d0} },
+/**/                  {{0x8813998f, 0x3f7b7748} } },
+/**/                 {{{0x00000000, 0x3fed6000} },
+/**/                  {{0x11a6092b, 0x3fe7c3d3} },
+/**/                  {{0x2d303288, 0x3c8bb3cb} },
+/**/                  {{0x1dc61b17, 0x3fe15dbb} },
+/**/                  {{0xbb77dc56, 0xbc8f0487} },
+/**/                  {{0xee0771ca, 0xbfd14d7e} },
+/**/                  {{0xdc2fcbd0, 0x3c72d38b} },
+/**/                  {{0xd6080f0e, 0x3fb4d716} },
+/**/                  {{0xa9fbc2c3, 0xbc5cb5bc} },
+/**/                  {{0xfc42e02f, 0x3f89a7f9} },
+/**/                  {{0x857be8a4, 0xbc201eec} },
+/**/                  {{0x44ceebb3, 0xbfa2af2b} },
+/**/                  {{0x08511639, 0x3f9a62b5} },
+/**/                  {{0xc8de23de, 0xbf8018ad} },
+/**/                  {{0xc964501a, 0xbf6dc8a2} },
+/**/                  {{0xeb913697, 0x3f7ac6f9} } },
+/**/                 {{{0x00000000, 0x3fed8000} },
+/**/                  {{0x289fa093, 0x3fe7d528} },
+/**/                  {{0x1e2f3aa9, 0x3c856082} },
+/**/                  {{0x711551bb, 0x3fe14c75} },
+/**/                  {{0x71970f2c, 0xbc80c88e} },
+/**/                  {{0xe4aa5095, 0xbfd13dd8} },
+/**/                  {{0xb4b7ae12, 0x3c66dd31} },
+/**/                  {{0xead4c211, 0x3fb4e38d} },
+/**/                  {{0xe392a31e, 0x3c513fb0} },
+/**/                  {{0xf6b74576, 0x3f88355f} },
+/**/                  {{0xf3561ab7, 0x3ba8cb44} },
+/**/                  {{0x0de0faaa, 0xbfa26058} },
+/**/                  {{0x989371f0, 0x3f9a29f8} },
+/**/                  {{0x2b085d9a, 0xbf805261} },
+/**/                  {{0x2511c555, 0xbf6beccb} },
+/**/                  {{0x87b9d333, 0x3f7a1863} } },
+/**/                 {{{0x00000000, 0x3feda000} },
+/**/                  {{0x01c114fe, 0x3fe7e66c} },
+/**/                  {{0x8b760b8d, 0xbc8c82b8} },
+/**/                  {{0x6f037c44, 0x3fe13b3f} },
+/**/                  {{0x8562c8c0, 0xbc635393} },
+/**/                  {{0xc7182435, 0xbfd12e29} },
+/**/                  {{0x0d0fda95, 0xbc73da80} },
+/**/                  {{0x3ba21a8b, 0x3fb4ef4d} },
+/**/                  {{0x9aa41146, 0xbc17c450} },
+/**/                  {{0xc39dff46, 0x3f86c8e7} },
+/**/                  {{0x800ba9ae, 0x3c1ddd70} },
+/**/                  {{0x34b94b56, 0xbfa21230} },
+/**/                  {{0xa827f95a, 0x3f99f078} },
+/**/                  {{0x19caa997, 0xbf808869} },
+/**/                  {{0xf8c46d26, 0xbf6a1d29} },
+/**/                  {{0xae59da17, 0x3f796b9a} } },
+/**/                 {{{0x00000000, 0x3fedc000} },
+/**/                  {{0xacb97898, 0x3fe7f79e} },
+/**/                  {{0x80ead221, 0x3c8fd5ca} },
+/**/                  {{0x20604825, 0x3fe12a19} },
+/**/                  {{0xa18970f8, 0xbc5cc7d6} },
+/**/                  {{0x1dfe6ba4, 0xbfd11e72} },
+/**/                  {{0x9d653d1c, 0x3c706717} },
+/**/                  {{0xd5fcbb3b, 0x3fb4fa57} },
+/**/                  {{0x5f50bc06, 0x3c1922c8} },
+/**/                  {{0xe93a179f, 0x3f856283} },
+/**/                  {{0x5ea7135a, 0xbc01c2ec} },
+/**/                  {{0xf0c06b4f, 0xbfa1c4b5} },
+/**/                  {{0xe48a3b04, 0x3f99b641} },
+/**/                  {{0xe1280a21, 0xbf80badd} },
+/**/                  {{0x1be3c5dd, 0xbf68599e} },
+/**/                  {{0x3a72c8e6, 0x3f78c0b3} } },
+/**/                 {{{0x00000000, 0x3fede000} },
+/**/                  {{0x3940694b, 0x3fe808c0} },
+/**/                  {{0x7715f6a5, 0xbc800f32} },
+/**/                  {{0x8d73d98e, 0x3fe11902} },
+/**/                  {{0x30f8e290, 0x3c71d158} },
+/**/                  {{0x6fc305eb, 0xbfd10eb2} },
+/**/                  {{0x3858c4b7, 0xbc7fd2e3} },
+/**/                  {{0xc0a99255, 0x3fb504b0} },
+/**/                  {{0x142e134f, 0x3c55c054} },
+/**/                  {{0xc2f371cf, 0x3f840226} },
+/**/                  {{0xfc7d6225, 0xbbfc85b0} },
+/**/                  {{0x53d58f53, 0xbfa177eb} },
+/**/                  {{0xa6a1627d, 0x3f997b60} },
+/**/                  {{0x89757c78, 0xbf80e9d7} },
+/**/                  {{0x0d433cd6, 0xbf66a205} },
+/**/                  {{0x9c5dbd9f, 0x3f7817bf} } },
+/**/                 {{{0x00000000, 0x3fee0000} },
+/**/                  {{0xb7158a4d, 0x3fe819d0} },
+/**/                  {{0x29d3b917, 0xbc7bf762} },
+/**/                  {{0xbe011080, 0x3fe107fb} },
+/**/                  {{0xbe011080, 0xbc8107fb} },
+/**/                  {{0x40894fcd, 0xbfd0feeb} },
+/**/                  {{0xc155af9a, 0x3c76fbb9} },
+/**/                  {{0xfb9125f7, 0x3fb50e5a} },
+/**/                  {{0x2f3313b0, 0x3c357762} },
+/**/                  {{0x843ba55a, 0x3f82a7c2} },
+/**/                  {{0x3fc197b7, 0x3c1f4994} },
+/**/                  {{0x4b4ae875, 0xbfa12bd2} },
+/**/                  {{0xf3b1b1ee, 0x3f993fe0} },
+/**/                  {{0xd4c2083b, 0xbf81156d} },
+/**/                  {{0x0c35aa9c, 0xbf64f63b} },
+/**/                  {{0xe5d0462f, 0x3f7770d0} } },
+/**/                 {{{0x00000000, 0x3fee2000} },
+/**/                  {{0x36000005, 0x3fe82ad0} },
+/**/                  {{0xce924d24, 0x3c74592f} },
+/**/                  {{0xb947c8b7, 0x3fe0f704} },
+/**/                  {{0x48a651b3, 0x3c436cd7} },
+/**/                  {{0x1237505b, 0xbfd0ef1d} },
+/**/                  {{0x1b86b9d1, 0x3c69239b} },
+/**/                  {{0x7fac4e21, 0x3fb51759} },
+/**/                  {{0xbfce0e36, 0xbc42a8cc} },
+/**/                  {{0x3b5f3edd, 0x3f815349} },
+/**/                  {{0x88c702d9, 0xbc25e1f1} },
+/**/                  {{0xa0df17a9, 0xbfa0e06c} },
+/**/                  {{0x7e56b8b1, 0x3f9903ce} },
+/**/                  {{0x3c701e30, 0xbf813db8} },
+/**/                  {{0x30c99e47, 0xbf63561b} },
+/**/                  {{0xd5bffce0, 0x3f76cbf6} } },
+/**/                 {{{0x00000000, 0x3fee4000} },
+/**/                  {{0xc5cdee22, 0x3fe83bbe} },
+/**/                  {{0x04ffc6c3, 0x3c631071} },
+/**/                  {{0x86071468, 0x3fe0e61d} },
+/**/                  {{0x59be09c9, 0xbc70ccc4} },
+/**/                  {{0x647af38b, 0xbfd0df48} },
+/**/                  {{0x427c295b, 0x3c7dd47c} },
+/**/                  {{0x3ef25277, 0x3fb51faf} },
+/**/                  {{0xa81026a7, 0x3bdf056a} },
+/**/                  {{0xd443a18b, 0x3f8004ac} },
+/**/                  {{0x8178f329, 0x3c027610} },
+/**/                  {{0xfbb3a658, 0xbfa095bb} },
+/**/                  {{0xa7859d46, 0x3f98c734} },
+/**/                  {{0xeefe9a81, 0xbf8162cd} },
+/**/                  {{0x8330eac0, 0xbf61c17f} },
+/**/                  {{0xe421c20a, 0x3f76293f} } },
+/**/                 {{{0x00000000, 0x3fee6000} },
+/**/                  {{0x7653f7eb, 0x3fe84c9c} },
+/**/                  {{0xfe0a3e8f, 0xbc383611} },
+/**/                  {{0x2a7f71b5, 0x3fe0d546} },
+/**/                  {{0x596848c6, 0x3c757061} },
+/**/                  {{0xb4cf51a6, 0xbfd0cf6d} },
+/**/                  {{0x5b18bb8c, 0x3c4c99ab} },
+/**/                  {{0x24486227, 0x3fb5275f} },
+/**/                  {{0xbb1f4f56, 0x3c5b4a59} },
+/**/                  {{0x36238bb2, 0x3f7d77be} },
+/**/                  {{0xcaec6ba2, 0x3c1ddbd1} },
+/**/                  {{0xe1406cd0, 0xbfa04bc1} },
+/**/                  {{0x7f96d6ca, 0x3f988a1e} },
+/**/                  {{0xcdffc380, 0xbf8184c5} },
+/**/                  {{0x12561f8b, 0xbf603841} },
+/**/                  {{0x4d81a668, 0x3f7588b9} } },
+/**/                 {{{0x00000000, 0x3fee8000} },
+/**/                  {{0x576cc2c5, 0x3fe85d69} },
+/**/                  {{0x7fc8b8c3, 0x3c66b66e} },
+/**/                  {{0xac74fadc, 0x3fe0c47e} },
+/**/                  {{0x77bb1887, 0xbc8035f8} },
+/**/                  {{0x7e8202a9, 0xbfd0bf8d} },
+/**/                  {{0x1f4d2357, 0x3c798048} },
+/**/                  {{0x13725c73, 0x3fb52e6c} },
+/**/                  {{0xf5b19ded, 0xbc34c3af} },
+/**/                  {{0x7d9c2711, 0x3f7af1a3} },
+/**/                  {{0x1af1098d, 0x3bea7ec7} },
+/**/                  {{0xb643d11f, 0xbfa0027f} },
+/**/                  {{0xc756b7d7, 0x3f984c96} },
+/**/                  {{0x6c3ca3ae, 0xbf81a3b6} },
+/**/                  {{0x13459246, 0xbf5d7470} },
+/**/                  {{0x1e70d9a4, 0x3f74ea6f} } },
+/**/                 {{{0x00000000, 0x3feea000} },
+/**/                  {{0x78f87ae5, 0x3fe86e25} },
+/**/                  {{0x375cfe34, 0x3c8022b1} },
+/**/                  {{0x11319104, 0x3fe0b3c7} },
+/**/                  {{0x25152519, 0x3c8ac394} },
+/**/                  {{0x3ab87c8a, 0xbfd0afa8} },
+/**/                  {{0x27b31384, 0x3c724f26} },
+/**/                  {{0xe904e078, 0x3fb534d8} },
+/**/                  {{0xf8948323, 0xbc55bfde} },
+/**/                  {{0xa7bb2dfb, 0x3f7876ec} },
+/**/                  {{0x8a87be50, 0xbc197116} },
+/**/                  {{0x7f5f95b4, 0xbf9f73ed} },
+/**/                  {{0xf11c3266, 0x3f980ea7} },
+/**/                  {{0x0c032389, 0xbf81bfb6} },
+/**/                  {{0x8bf305a1, 0xbf5a8e77} },
+/**/                  {{0x3ec72e6d, 0x3f744e6c} } },
+/**/                 {{{0x00000000, 0x3feec000} },
+/**/                  {{0xeadc5a2a, 0x3fe87ed0} },
+/**/                  {{0xd957f4bc, 0x3c70af5a} },
+/**/                  {{0x5d8701b3, 0x3fe0a31f} },
+/**/                  {{0x263ce937, 0xbc869b25} },
+/**/                  {{0x60757b83, 0xbfd09fbe} },
+/**/                  {{0xa96db9ef, 0x3c767aff} },
+/**/                  {{0x7a589afb, 0x3fb53aa8} },
+/**/                  {{0x0844ff86, 0xbc4b7e8e} },
+/**/                  {{0xacf1a65c, 0x3f76077c} },
+/**/                  {{0xb13331a9, 0xbc19a3b2} },
+/**/                  {{0x472733eb, 0xbf9ee450} },
+/**/                  {{0x21e541d7, 0x3f97d05c} },
+/**/                  {{0x9d9d4dfc, 0xbf81d8da} },
+/**/                  {{0xd3ce1b4a, 0xbf57be45} },
+/**/                  {{0x7cb60047, 0x3f73b4ba} } },
+/**/                 {{{0x00000000, 0x3feee000} },
+/**/                  {{0xbd023119, 0x3fe88f6b} },
+/**/                  {{0x25aba660, 0xbc532d1d} },
+/**/                  {{0x95d126c6, 0x3fe09287} },
+/**/                  {{0xeccc37a6, 0x3c85aad3} },
+/**/                  {{0x649e7367, 0xbfd08fd0} },
+/**/                  {{0xed21a127, 0x3c71e96c} },
+/**/                  {{0x957ec910, 0x3fb53fdd} },
+/**/                  {{0xaf97a601, 0xbc339c23} },
+/**/                  {{0x5a18e5a2, 0x3f73a336} },
+/**/                  {{0x477571de, 0xbc1f7225} },
+/**/                  {{0xd4044135, 0xbf9e5629} },
+/**/                  {{0x32786dc4, 0x3f9791bd} },
+/**/                  {{0xbdf030c4, 0xbf81ef39} },
+/**/                  {{0xe21b8bcb, 0xbf550386} },
+/**/                  {{0x97aa7fb2, 0x3f731d62} } },
+/**/                 {{{0x00000000, 0x3fef0000} },
+/**/                  {{0xff57f1f8, 0x3fe89ff5} },
+/**/                  {{0x5e177a1b, 0xbc855b9a} },
+/**/                  {{0xbdf80108, 0x3fe081ff} },
+/**/                  {{0x80108200, 0x3c6ffbdf} },
+/**/                  {{0xba010928, 0xbfd07fde} },
+/**/                  {{0x7bae0295, 0x3c38d37f} },
+/**/                  {{0x0136e69f, 0x3fb5447b} },
+/**/                  {{0x0dda278d, 0x3c50316a} },
+/**/                  {{0x55103947, 0x3f7149fc} },
+/**/                  {{0x849e505f, 0x3c176e96} },
+/**/                  {{0xfbe9a2ee, 0xbf9dc97b} },
+/**/                  {{0xb08adda9, 0x3f9752d4} },
+/**/                  {{0xb540d106, 0xbf8202e8} },
+/**/                  {{0x859de3e9, 0xbf525de5} },
+/**/                  {{0x4afd9f21, 0x3f72886c} } },
+/**/                 {{{0x00000000, 0x3fef2000} },
+/**/                  {{0xc1cf3dff, 0x3fe8b06f} },
+/**/                  {{0x2656db6d, 0xbc80fb31} },
+/**/                  {{0xd971cd38, 0x3fe07187} },
+/**/                  {{0x202c20ac, 0x3c89baa4} },
+/**/                  {{0xd15893ab, 0xbfd06fe9} },
+/**/                  {{0xdc0cb586, 0xbc7a864b} },
+/**/                  {{0x7ce57fed, 0x3fb54883} },
+/**/                  {{0x294f4b18, 0xbc49498e} },
+/**/                  {{0x426ebecc, 0x3f6df762} },
+/**/                  {{0xf28644c0, 0xbc022f08} },
+/**/                  {{0x5c564b44, 0xbf9d3e48} },
+/**/                  {{0xdfea7acf, 0x3f9713ab} },
+/**/                  {{0x761db35c, 0xbf8213fc} },
+/**/                  {{0x10d60f49, 0xbf4f9a17} },
+/**/                  {{0x58700e9b, 0x3f71f5de} } },
+/**/                 {{{0x00000000, 0x3fef4000} },
+/**/                  {{0x145cf49d, 0x3fe8c0d9} },
+/**/                  {{0x76dc4333, 0x3c8bea40} },
+/**/                  {{0xeb45139a, 0x3fe0611f} },
+/**/                  {{0x65aadb1f, 0x3c7e4998} },
+/**/                  {{0x1953a316, 0xbfd05ff2} },
+/**/                  {{0xa1b67b0f, 0x3c759922} },
+/**/                  {{0xc08c1d66, 0x3fb54bf9} },
+/**/                  {{0xd220330c, 0x3c5b9353} },
+/**/                  {{0x478cb604, 0x3f69706e} },
+/**/                  {{0xa22fd45a, 0xbbfdb6d3} },
+/**/                  {{0x5c0d1d38, 0xbf9cb490} },
+/**/                  {{0xbbaba2f2, 0x3f96d44b} },
+/**/                  {{0x9c6b7de1, 0xbf822289} },
+/**/                  {{0xa49803b6, 0xbf4aa143} },
+/**/                  {{0x9270e49e, 0x3f7165be} } },
+/**/                 {{{0x00000000, 0x3fef6000} },
+/**/                  {{0x06f8c4cb, 0x3fe8d132} },
+/**/                  {{0xbaa89a8b, 0xbc7b018c} },
+/**/                  {{0xf60ab1f4, 0x3fe050c7} },
+/**/                  {{0xc6cf5796, 0x3c63f8e2} },
+/**/                  {{0xfe998dc0, 0xbfd04ff7} },
+/**/                  {{0x7dc56419, 0x3c77873c} },
+/**/                  {{0x7cc24121, 0x3fb54ee0} },
+/**/                  {{0x8e5c84c5, 0x3c313117} },
+/**/                  {{0x50066301, 0x3f64fee1} },
+/**/                  {{0x017261a1, 0x3c043698} },
+/**/                  {{0x2cc5b4f1, 0xbf9c2c55} },
+/**/                  {{0xf759f369, 0x3f9694bc} },
+/**/                  {{0x6c93426a, 0xbf822ea4} },
+/**/                  {{0x135d6c51, 0xbf45d0a1} },
+/**/                  {{0xe62dc18f, 0x3f70d811} } },
+/**/                 {{{0x00000000, 0x3fef8000} },
+/**/                  {{0xa99cc05e, 0x3fe8e17a} },
+/**/                  {{0xab042f61, 0xbc7ec182} },
+/**/                  {{0xfbefe001, 0x3fe0407f} },
+/**/                  {{0xfbf80041, 0x3c401ffe} },
+/**/                  {{0xebd00209, 0xbfd03ffb} },
+/**/                  {{0xb9004112, 0xbc53ff3c} },
+/**/                  {{0x5aaf6d91, 0x3fb5513a} },
+/**/                  {{0xc0516ddb, 0x3c54a20d} },
+/**/                  {{0xc6ac4038, 0x3f60a27f} },
+/**/                  {{0x2a340912, 0x3bf06bee} },
+/**/                  {{0xccd6032a, 0xbf9ba597} },
+/**/                  {{0x002bb974, 0x3f965508} },
+/**/                  {{0xd2d1068b, 0xbf823860} },
+/**/                  {{0x666265bc, 0xbf41277e} },
+/**/                  {{0x656b66ea, 0x3f704cdc} } },
+/**/                 {{{0x00000000, 0x3fefa000} },
+/**/                  {{0x0c44f167, 0x3fe8f1b3} },
+/**/                  {{0xb93933fd, 0x3c6dd1ca} },
+/**/                  {{0xfeb82e4e, 0x3fe03047} },
+/**/                  {{0x5272e5ac, 0x3c69ee56} },
+/**/                  {{0x49a09c45, 0xbfd02ffe} },
+/**/                  {{0xb26267bb, 0xbc700a59} },
+/**/                  {{0xfc062d2f, 0x3fb55309} },
+/**/                  {{0xb11938e0, 0x3c5dba48} },
+/**/                  {{0xe4f365be, 0x3f58b61b} },
+/**/                  {{0xa79ad31a, 0x3bf8b585} },
+/**/                  {{0x08d4ad17, 0xbf9b2059} },
+/**/                  {{0xfe379940, 0x3f961534} },
+/**/                  {{0x62a1270e, 0xbf823fd2} },
+/**/                  {{0x3f3a0aec, 0xbf394a53} },
+/**/                  {{0xa04bcae2, 0x3f6f8842} } },
+/**/                 {{{0x00000000, 0x3fefc000} },
+/**/                  {{0x3eeef187, 0x3fe901db} },
+/**/                  {{0xe5603c8f, 0x3c868665} },
+/**/                  {{0xffbf7f80, 0x3fe0201f} },
+/**/                  {{0xffbf7f80, 0x3c20201f} },
+/**/                  {{0x7ebe8004, 0xbfd01fff} },
+/**/                  {{0xcf979001, 0xbc4213ff} },
+/**/                  {{0xfb0012db, 0x3fb55451} },
+/**/                  {{0xf73aa59f, 0xbc395606} },
+/**/                  {{0xfc757100, 0x3f50509f} },
+/**/                  {{0xfee554d0, 0x3bebc7da} },
+/**/                  {{0x7d3424d0, 0xbf9a9c99} },
+/**/                  {{0xd5ac0217, 0x3f95d54b} },
+/**/                  {{0x564b3c49, 0xbf82450c} },
+/**/                  {{0xe6d3e986, 0xbf3091df} },
+/**/                  {{0x3bef5a22, 0x3f6e7bc6} } },
+/**/                 {{{0x00000000, 0x3fefe000} },
+/**/                  {{0x5199833b, 0x3fe911f3} },
+/**/                  {{0x0edbf522, 0x3c63ae8a} },
+/**/                  {{0xfffbfbfe, 0x3fe01007} },
+/**/                  {{0xfffbfbfe, 0x3ba01007} },
+/**/                  {{0xefebf400, 0xbfd00fff} },
+/**/                  {{0xfff9f97d, 0xbc401209} },
+/**/                  {{0xea5aaaf6, 0x3fb55514} },
+/**/                  {{0xb5b7b240, 0xbc529baa} },
+/**/                  {{0xffc7abc4, 0x3f402827} },
+/**/                  {{0xbfee6ab3, 0x3b5ba3d6} },
+/**/                  {{0x97d67093, 0xbf9a1a59} },
+/**/                  {{0x28080aaf, 0x3f959554} },
+/**/                  {{0x8e892ce2, 0xbf824821} },
+/**/                  {{0xfe70a2a6, 0xbf204877} },
+/**/                  {{0x0e8ddd67, 0x3f6d7447} } },
+/**/                 {{{0x00000000, 0x3feff800} },
+/**/                  {{0xd439826e, 0x3fe91dfa} },
+/**/                  {{0x6df48d55, 0xbc786a19} },
+/**/                  {{0x7ffffbff, 0x3fe00400} },
+/**/                  {{0xffbff800, 0xbbeffffe} },
+/**/                  {{0xffbfebfd, 0xbfd003ff} },
+/**/                  {{0x9ffff9fe, 0xbb600480} },
+/**/                  {{0x53aa5aab, 0x3fb55551} },
+/**/                  {{0x9baaab5b, 0xbc542a4a} },
+/**/                  {{0x7fffc7eb, 0x3f200a02} },
+/**/                  {{0x4770e940, 0xbb7dfffe} },
+/**/                  {{0x9997d8d0, 0xbf99b9a5} },
+/**/                  {{0x50a80a03, 0x3f956555} },
+/**/                  {{0x86456493, 0xbf824914} },
+/**/                  {{0x7ffe7329, 0xbf001207} },
+/**/                  {{0x1c63fe2a, 0x3f6cb1ef} } },
+  };
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/uexp.h b/REORG.TODO/sysdeps/ieee754/dbl-64/uexp.h
new file mode 100644
index 0000000000..83f9b618f6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/uexp.h
@@ -0,0 +1,69 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:uexp.h                                             */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef UEXP_H
+#define UEXP_H
+
+#include "mydefs.h"
+
+const static double zero = 0.0, hhuge = 1.0e300, tiny = 1.0e-300,
+err_0 = 1.000014, err_1 = 0.000016;
+const static int4 bigint = 0x40862002,
+             badint = 0x40876000,smallint = 0x3C8fffff;
+const static int4 hugeint = 0x7FFFFFFF, infint = 0x7ff00000;
+
+#ifdef BIG_ENDI
+const static mynumber  inf  = {{0x7FF00000, 0}}; /* inf   */
+const static mynumber t256  = {{0x4ff00000, 0}}; /* 2^256 */
+
+const static mynumber ln_two1  = {{0x3FE62E42, 0xFEFA3800}};/*0.69314718055989033 */
+const static mynumber ln_two2  = {{0x3D2EF357, 0x93C76730}};/*5.4979230187083712e-14*/
+const static mynumber log2e    = {{0x3FF71547, 0x652B82FE}};/* 1.4426950408889634 */
+
+const static mynumber p2       = {{0x3FE00000, 0x000004DC}};/* 0.50000000000013811 */
+const static mynumber p3       = {{0x3FC55555, 0x55555A0F}};/* 0.16666666666670024 */
+
+const static mynumber three33  = {{0x42180000, 0}};         /* 25769803776 */
+const static mynumber three51  = {{0x43380000, 0}};         /*  6755399441055744 */
+
+#else
+#ifdef LITTLE_ENDI
+ const static mynumber  inf  = {{0, 0x7FF00000}}; /* inf   */
+ const static mynumber t256  = {{0, 0x4ff00000}}; /* 2^256 */
+
+ const static mynumber ln_two1 = {{0xFEFA3800, 0x3FE62E42}};/*0.69314718055989033 */
+ const static mynumber ln_two2 = {{0x93C76730, 0x3D2EF357}};/*5.4979230187083712e-14*/
+ const static mynumber log2e   = {{0x652B82FE, 0x3FF71547}};/* 1.4426950408889634 */
+
+ const static mynumber p2      = {{0x000004DC, 0x3FE00000}};/* 0.50000000000013811 */
+ const static mynumber p3      = {{0x55555A0F, 0x3FC55555}};/* 0.16666666666670024 */
+
+ const static mynumber three33 = {{0, 0x42180000}};   /*  25769803776      */
+ const static mynumber three51 = {{0, 0x43380000}};   /*  6755399441055744 */
+
+#endif
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/uexp.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/uexp.tbl
new file mode 100644
index 0000000000..3e5fdc5783
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/uexp.tbl
@@ -0,0 +1,1786 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/****************************************************************/
+/* TABLES FOR THE ulog() FUNCTION                               */
+/****************************************************************/
+
+#ifdef BIG_ENDI
+
+static const  union {
+  int i[1424];
+  double x[712];
+} coar = { .i = {
+  0x3FE69A59,  0xC8000000,  0x3DF22D4D,  0x6079C9F7,
+  0x3FE6A5A9,  0xC8000000,  0x3E19882D,  0x25AF6823,
+  0x3FE6B0FF,  0x74000000,  0xBE221476,  0x31DABF59,
+  0x3FE6BC5A,  0xC8000000,  0x3E2312AC,  0x99A2DC0A,
+  0x3FE6C7BB,  0xD0000000,  0xBE265926,  0xCE9F9355,
+  0x3FE6D322,  0x84000000,  0x3E2F2C26,  0x2D298DED,
+  0x3FE6DE8E,  0xF4000000,  0xBE2EC28E,  0x1E748D2F,
+  0x3FE6EA01,  0x14000000,  0x3E2D8C6D,  0xC68CB7E5,
+  0x3FE6F578,  0xF4000000,  0x3DEE1A9E,  0x419FE2F0,
+  0x3FE700F6,  0x90000000,  0xBDFF1AFD,  0xDEAEAE34,
+  0x3FE70C79,  0xEC000000,  0xBE0730FE,  0x558B7122,
+  0x3FE71803,  0x0C000000,  0xBE25CB85,  0x2D280C3B,
+  0x3FE72391,  0xF0000000,  0xBE06F2CE,  0x337B7B54,
+  0x3FE72F26,  0x9C000000,  0x3E289BCA,  0x45C02B72,
+  0x3FE73AC1,  0x18000000,  0xBE18DEA6,  0x5039F1CA,
+  0x3FE74661,  0x60000000,  0xBE09D090,  0x86CE0538,
+  0x3FE75207,  0x78000000,  0x3E290E79,  0xCFCE5DDB,
+  0x3FE75DB3,  0x68000000,  0x3DD61DF0,  0xB249A17C,
+  0x3FE76965,  0x2C000000,  0x3E2F22F7,  0xE13445F7,
+  0x3FE7751C,  0xD0000000,  0xBE2CD454,  0x874E75CE,
+  0x3FE780DA,  0x4C000000,  0xBE0159CE,  0xDF43E3BC,
+  0x3FE78C9D,  0xA8000000,  0x3E279291,  0x699A1332,
+  0x3FE79866,  0xEC000000,  0xBE2A0BCD,  0x2DD98C6C,
+  0x3FE7A436,  0x10000000,  0x3E25F375,  0x15AC979E,
+  0x3FE7B00B,  0x20000000,  0x3E26CCF5,  0x2FEAFCF6,
+  0x3FE7BBE6,  0x1C000000,  0x3E27D4F4,  0x53ADAD67,
+  0x3FE7C7C7,  0x08000000,  0x3E10EEC7,  0x7FBD9566,
+  0x3FE7D3AD,  0xE4000000,  0x3E2837F0,  0x9A831D86,
+  0x3FE7DF9A,  0xB8000000,  0xBE129BE0,  0x5CB4C35B,
+  0x3FE7EB8D,  0x80000000,  0x3E23990A,  0x0234F04D,
+  0x3FE7F786,  0x44000000,  0x3E2EB807,  0x64D5C842,
+  0x3FE80385,  0x08000000,  0x3E0FC86F,  0x02B4E9E8,
+  0x3FE80F89,  0xCC000000,  0xBDD7B5B3,  0x7B4274BF,
+  0x3FE81B94,  0x94000000,  0xBE16888B,  0xB899B00F,
+  0x3FE827A5,  0x60000000,  0x3E288971,  0x5E94D155,
+  0x3FE833BC,  0x38000000,  0x3E2AEEB2,  0x099F3E5E,
+  0x3FE83FD9,  0x20000000,  0xBE23B922,  0x3FF60B7C,
+  0x3FE84BFC,  0x14000000,  0xBDF7D3B1,  0x2DBD8012,
+  0x3FE85825,  0x1C000000,  0xBDF24BA3,  0xA8872BEB,
+  0x3FE86454,  0x38000000,  0x3E2EFE04,  0x01AA18A7,
+  0x3FE87089,  0x70000000,  0x3E21986C,  0x944496A2,
+  0x3FE87CC4,  0xC4000000,  0x3E096A8B,  0xB71FFAFF,
+  0x3FE88906,  0x38000000,  0xBE21CE0A,  0xBC4C7AC5,
+  0x3FE8954D,  0xCC000000,  0xBE076F45,  0xBAC02491,
+  0x3FE8A19B,  0x84000000,  0x3E2B4FA2,  0xD922B925,
+  0x3FE8ADEF,  0x68000000,  0x3DF759DB,  0x641863AF,
+  0x3FE8BA49,  0x78000000,  0xBE2DB97C,  0xC6AB5E04,
+  0x3FE8C6A9,  0xB4000000,  0xBE25364C,  0xE2156713,
+  0x3FE8D310,  0x20000000,  0x3E1BEB7C,  0x862BEFF7,
+  0x3FE8DF7C,  0xC4000000,  0xBDF4DD0C,  0x1CEA33A5,
+  0x3FE8EBEF,  0xA0000000,  0xBE2537DF,  0x51797D47,
+  0x3FE8F868,  0xB4000000,  0x3E0FB1C4,  0xF0107B28,
+  0x3FE904E8,  0x08000000,  0x3E0AD6A1,  0xE01B68BD,
+  0x3FE9116D,  0x9C000000,  0x3E292117,  0x1F78D9D9,
+  0x3FE91DF9,  0x78000000,  0xBE1D75DA,  0x4F50E5CF,
+  0x3FE92A8B,  0x98000000,  0x3DE5102B,  0x74959E58,
+  0x3FE93724,  0x04000000,  0xBE01CA50,  0xD2216C35,
+  0x3FE943C2,  0xBC000000,  0x3E225BFD,  0xB0B05884,
+  0x3FE95067,  0xC8000000,  0xBE0F2183,  0x60B7C5C1,
+  0x3FE95D13,  0x24000000,  0x3E2FB47A,  0xB5860441,
+  0x3FE969C4,  0xDC000000,  0xBE01FFD2,  0xE2D4059E,
+  0x3FE9767C,  0xEC000000,  0xBDE9ED72,  0x12BB6A8D,
+  0x3FE9833B,  0x58000000,  0x3E2B3815,  0x43BFFB24,
+  0x3FE99000,  0x28000000,  0x3E03FA22,  0xEE9EAD1E,
+  0x3FE99CCB,  0x5C000000,  0xBE213841,  0x377138F7,
+  0x3FE9A99C,  0xF4000000,  0x3E178105,  0xDB636C94,
+  0x3FE9B674,  0xF8000000,  0x3E1E5E7A,  0xF5720122,
+  0x3FE9C353,  0x6C000000,  0xBE238BFF,  0xA2AC5AAE,
+  0x3FE9D038,  0x4C000000,  0x3E270893,  0xF93BDBD8,
+  0x3FE9DD23,  0xA4000000,  0x3DF40420,  0x354B86CF,
+  0x3FE9EA15,  0x74000000,  0xBE2D76D3,  0x88CB06B7,
+  0x3FE9F70D,  0xBC000000,  0xBE251639,  0x9ED0EC60,
+  0x3FEA040C,  0x80000000,  0x3E1F06E9,  0xE2DDE506,
+  0x3FEA1111,  0xC8000000,  0x3E014549,  0x8E6DB477,
+  0x3FEA1E1D,  0x94000000,  0xBDF4BC17,  0xF8716509,
+  0x3FEA2B2F,  0xE8000000,  0xBE2107DB,  0xDA723A49,
+  0x3FEA3848,  0xC4000000,  0x3E1A932A,  0x986AA369,
+  0x3FEA4568,  0x30000000,  0x3E198092,  0x41592CDB,
+  0x3FEA528E,  0x30000000,  0xBE2E260F,  0x676BCAB8,
+  0x3FEA5FBA,  0xC0000000,  0x3DE2E821,  0x2D5D5610,
+  0x3FEA6CED,  0xE8000000,  0x3E2F7046,  0x7DA20167,
+  0x3FEA7A27,  0xB0000000,  0xBE1D2832,  0xF9FAAD30,
+  0x3FEA8768,  0x14000000,  0xBE23F788,  0x43FA6C45,
+  0x3FEA94AF,  0x18000000,  0x3E011E27,  0xAA082732,
+  0x3FEAA1FC,  0xC4000000,  0xBE20BACB,  0xC682F0BF,
+  0x3FEAAF51,  0x18000000,  0xBE2DC7DD,  0x7BD08C78,
+  0x3FEABCAC,  0x14000000,  0x3E2271A2,  0xA3B10F9A,
+  0x3FEACA0D,  0xC4000000,  0xBE15449C,  0x7966F94C,
+  0x3FEAD776,  0x24000000,  0x3DD06137,  0x6FD8F3EE,
+  0x3FEAE4E5,  0x3C000000,  0xBE267CD1,  0x8C5A144A,
+  0x3FEAF25B,  0x0C000000,  0xBE29E584,  0xB59DA94B,
+  0x3FEAFFD7,  0x98000000,  0xBE23DFCF,  0x7B52192F,
+  0x3FEB0D5A,  0xE4000000,  0xBE1CF2FE,  0x78A76B45,
+  0x3FEB1AE4,  0xF4000000,  0xBE23A561,  0x7EC80FF6,
+  0x3FEB2875,  0xC8000000,  0x3E22C4C9,  0x932EED68,
+  0x3FEB360D,  0x68000000,  0x3E2B085C,  0xB5833C97,
+  0x3FEB43AB,  0xD8000000,  0xBE01F093,  0x93B9319A,
+  0x3FEB5151,  0x18000000,  0xBE254F01,  0xFABCE670,
+  0x3FEB5EFD,  0x28000000,  0x3E2F24C2,  0x627ABFB0,
+  0x3FEB6CB0,  0x14000000,  0x3E1F1EEC,  0xE6AC0B48,
+  0x3FEB7A69,  0xDC000000,  0xBE1A8671,  0x127F9ABC,
+  0x3FEB882A,  0x80000000,  0xBDCB0C28,  0xC87C73B3,
+  0x3FEB95F2,  0x08000000,  0xBE22E8DD,  0x7F2B5A97,
+  0x3FEBA3C0,  0x74000000,  0xBE1B3645,  0x2D22A9D5,
+  0x3FEBB195,  0xC8000000,  0x3E0ADACA,  0x428F8B88,
+  0x3FEBBF72,  0x0C000000,  0xBE2E9E07,  0xCDF9F681,
+  0x3FEBCD55,  0x3C000000,  0xBE08A127,  0x7FA54ACF,
+  0x3FEBDB3F,  0x60000000,  0x3E0E92CE,  0x8225B385,
+  0x3FEBE930,  0x7C000000,  0x3DF38C2A,  0x7BB09485,
+  0x3FEBF728,  0x94000000,  0xBE2DFD64,  0xF681FA5F,
+  0x3FEC0527,  0xA4000000,  0x3E2E384D,  0xDCE88BD2,
+  0x3FEC132D,  0xBC000000,  0xBE20F111,  0xFE46A893,
+  0x3FEC213A,  0xD4000000,  0x3E193DA1,  0xB189BFDA,
+  0x3FEC2F4E,  0xF8000000,  0xBE20E3A1,  0x0E39FB00,
+  0x3FEC3D6A,  0x24000000,  0x3E1DB044,  0x30F0FAC5,
+  0x3FEC4B8C,  0x64000000,  0xBE2BC12C,  0x97446B17,
+  0x3FEC59B5,  0xB4000000,  0xBE282696,  0x963F4150,
+  0x3FEC67E6,  0x18000000,  0x3E224D26,  0x3049824B,
+  0x3FEC761D,  0x98000000,  0x3E2C5BA5,  0x87F84C7D,
+  0x3FEC845C,  0x38000000,  0xBDE1D14D,  0xC4852339,
+  0x3FEC92A1,  0xF8000000,  0xBE1A451E,  0x5588D9E1,
+  0x3FECA0EE,  0xDC000000,  0xBE1D3B96,  0x68BFF457,
+  0x3FECAF42,  0xE8000000,  0xBE18B670,  0x4DADF774,
+  0x3FECBD9E,  0x20000000,  0xBE1A1548,  0x7FB1FC01,
+  0x3FECCC00,  0x88000000,  0xBE273F2E,  0x78FC5AF0,
+  0x3FECDA6A,  0x20000000,  0x3E1D218F,  0xA6F4A841,
+  0x3FECE8DA,  0xF0000000,  0x3E2E0BA9,  0x4D002CA0,
+  0x3FECF752,  0xFC000000,  0x3E20F4BB,  0x065EF979,
+  0x3FED05D2,  0x48000000,  0xBE2ED3D5,  0x11793B33,
+  0x3FED1458,  0xD0000000,  0x3E115E3C,  0x913341B3,
+  0x3FED22E6,  0xA0000000,  0x3DE97C02,  0xB3546109,
+  0x3FED317B,  0xB8000000,  0x3E087540,  0x1BF898EF,
+  0x3FED4018,  0x1C000000,  0x3E209430,  0x346F9641,
+  0x3FED4EBB,  0xD0000000,  0x3E2B6DF4,  0x88F4B20B,
+  0x3FED5D66,  0xDC000000,  0xBE2EC68F,  0x0CB26035,
+  0x3FED6C19,  0x38000000,  0x3E2CA2C8,  0x1F44D9C3,
+  0x3FED7AD2,  0xF4000000,  0x3E10E6F4,  0x41704EE0,
+  0x3FED8994,  0x0C000000,  0x3E2F9273,  0x25F8F0E2,
+  0x3FED985C,  0x88000000,  0x3E2D041A,  0x318798DE,
+  0x3FEDA72C,  0x6C000000,  0xBE005680,  0x9349CF58,
+  0x3FEDB603,  0xB8000000,  0xBE10F665,  0xCF0C934D,
+  0x3FEDC4E2,  0x70000000,  0x3E166124,  0x19461C64,
+  0x3FEDD3C8,  0x9C000000,  0xBE1B2ED6,  0x405624C8,
+  0x3FEDE2B6,  0x3C000000,  0xBE273A7F,  0x62171501,
+  0x3FEDF1AB,  0x54000000,  0xBE26022B,  0xE36E1450,
+  0x3FEE00A7,  0xE8000000,  0xBE1C341E,  0x2E07AE15,
+  0x3FEE0FAB,  0xFC000000,  0xBDFC7EAE,  0x18D0E701,
+  0x3FEE1EB7,  0x94000000,  0x3E06B34F,  0xECD1FF8B,
+  0x3FEE2DCA,  0xB4000000,  0x3E1394A3,  0x6813A649,
+  0x3FEE3CE5,  0x60000000,  0x3E045496,  0xC1754D14,
+  0x3FEE4C07,  0x9C000000,  0xBE180FFF,  0xF5C6087C,
+  0x3FEE5B31,  0x68000000,  0x3E22FBCD,  0xADD9A300,
+  0x3FEE6A62,  0xCC000000,  0x3E2EC7C7,  0xAF0289E5,
+  0x3FEE799B,  0xCC000000,  0x3E242182,  0x3FB3EDD4,
+  0x3FEE88DC,  0x6C000000,  0xBE201304,  0x04E39885,
+  0x3FEE9824,  0xAC000000,  0xBE20D352,  0xE6831D31,
+  0x3FEEA774,  0x90000000,  0x3E1E032D,  0x618DFCEB,
+  0x3FEEB6CC,  0x20000000,  0x3E1956A3,  0xF9BB457E,
+  0x3FEEC62B,  0x60000000,  0xBE2A77E0,  0x50845DB2,
+  0x3FEED592,  0x4C000000,  0x3E2714F7,  0x47C43858,
+  0x3FEEE500,  0xF0000000,  0x3E2EED96,  0x71813A66,
+  0x3FEEF477,  0x50000000,  0xBE04CDBE,  0x4FB4AA34,
+  0x3FEF03F5,  0x6C000000,  0xBE2774A2,  0x86EB4FF5,
+  0x3FEF137B,  0x48000000,  0xBE29DD95,  0xAD43B2D2,
+  0x3FEF2308,  0xE8000000,  0xBE1CADB0,  0xAC16E506,
+  0x3FEF329E,  0x50000000,  0x3E12AC33,  0x58745C7B,
+  0x3FEF423B,  0x88000000,  0xBE248118,  0x6EC2D854,
+  0x3FEF51E0,  0x8C000000,  0x3E26986B,  0x304ACE08,
+  0x3FEF618D,  0x68000000,  0x3E126D81,  0x3B09354E,
+  0x3FEF7142,  0x1C000000,  0x3DF06AAE,  0x773C23B3,
+  0x3FEF80FE,  0xAC000000,  0xBDA105B6,  0xD82EF423,
+  0x3FEF90C3,  0x1C000000,  0x3DECDEED,  0x465499B8,
+  0x3FEFA08F,  0x70000000,  0x3E0AEFD4,  0xE2EF03AE,
+  0x3FEFB063,  0xAC000000,  0x3E1BD4C0,  0x0567B2E7,
+  0x3FEFC03F,  0xD4000000,  0x3E26AA22,  0x4F97FCBF,
+  0x3FEFD023,  0xF0000000,  0xBE2F9420,  0x5E4E88D1,
+  0x3FEFE00F,  0xFC000000,  0xBE254004,  0x438E52E2,
+  0x3FEFF004,  0x00000000,  0xBE1552AA,  0xEEE93EFC,
+  0x3FF00000,  0x00000000,  0x00000000,  0x00000000,
+  0x3FF00802,  0x00000000,  0x3E155800,  0x4449F507,
+  0x3FF01008,  0x04000000,  0xBE354AA8,  0x882D75D6,
+  0x3FF01812,  0x08000000,  0x3E303610,  0x3740DE56,
+  0x3FF02020,  0x14000000,  0x3E360044,  0x5B0C3264,
+  0x3FF02832,  0x28000000,  0x3E3C4C26,  0x0197EDC3,
+  0x3FF03048,  0x48000000,  0x3E0B103B,  0x5046CA09,
+  0x3FF03862,  0x74000000,  0xBE34659C,  0xF9A62624,
+  0x3FF04080,  0xAC000000,  0xBE254438,  0xDD0A8F37,
+  0x3FF048A2,  0xF4000000,  0x3DF256C2,  0x97AFB6E2,
+  0x3FF050C9,  0x50000000,  0xBE3085DF,  0x923D25E1,
+  0x3FF058F3,  0xC0000000,  0xBE3F0A93,  0x5EA3B091,
+  0x3FF06122,  0x44000000,  0xBE237DE4,  0x5D63534C,
+  0x3FF06954,  0xE0000000,  0x3E301719,  0xFF0C58B7,
+  0x3FF0718B,  0x98000000,  0x3E2E8410,  0x9DF7B665,
+  0x3FF079C6,  0x6C000000,  0x3E349CB9,  0x3B127222,
+  0x3FF08205,  0x60000000,  0x3DF127EC,  0x98E0BD08,
+  0x3FF08A48,  0x74000000,  0xBE24C1B6,  0x706CC41F,
+  0x3FF0928F,  0xA8000000,  0x3E334EF9,  0x093044EF,
+  0x3FF09ADB,  0x04000000,  0xBE1304B1,  0x56BC6C83,
+  0x3FF0A32A,  0x84000000,  0x3E2D383E,  0xB028B984,
+  0x3FF0AB7E,  0x30000000,  0xBE315B1E,  0x64E7A202,
+  0x3FF0B3D6,  0x04000000,  0xBE0AC1E6,  0xC678291E,
+  0x3FF0BC32,  0x04000000,  0x3E3A0418,  0x2F12FFE2,
+  0x3FF0C492,  0x38000000,  0xBE37D617,  0x43D6D302,
+  0x3FF0CCF6,  0x98000000,  0x3E2133F2,  0x152CC8FA,
+  0x3FF0D55F,  0x2C000000,  0x3E3CE5D1,  0xE966E6B7,
+  0x3FF0DDCB,  0xF8000000,  0x3E1ABF24,  0x7BCACA64,
+  0x3FF0E63C,  0xFC000000,  0xBE3854F6,  0x2E8CDBED,
+  0x3FF0EEB2,  0x38000000,  0xBE3E6463,  0x0C32156B,
+  0x3FF0F72B,  0xAC000000,  0x3E365671,  0xB69772CC,
+  0x3FF0FFA9,  0x64000000,  0xBE383E9A,  0x02B1201A,
+  0x3FF1082B,  0x58000000,  0xBE205962,  0x50549CC0,
+  0x3FF110B1,  0x90000000,  0xBE376BFE,  0xFFDACA72,
+  0x3FF1193C,  0x08000000,  0x3E3C1C59,  0x5C43E2F3,
+  0x3FF121CA,  0xCC000000,  0xBE26D374,  0xF7067C8B,
+  0x3FF12A5D,  0xD4000000,  0x3E343CCC,  0x4DDAFE1D,
+  0x3FF132F5,  0x28000000,  0x3E3D5C16,  0x58EBCB7F,
+  0x3FF13B90,  0xCC000000,  0xBE2B5D12,  0xB66E8B53,
+  0x3FF14430,  0xBC000000,  0xBE24E919,  0xB326B482,
+  0x3FF14CD4,  0xFC000000,  0x3E23139A,  0xC8AABD43,
+  0x3FF1557D,  0x90000000,  0x3E30DD8B,  0x16743B55,
+  0x3FF15E2A,  0x7C000000,  0xBE31D701,  0x35904C50,
+  0x3FF166DB,  0xBC000000,  0x3E107F42,  0x30E0CA83,
+  0x3FF16F91,  0x58000000,  0xBE24F1F2,  0xDA1B7123,
+  0x3FF1784B,  0x50000000,  0xBE3ACAF2,  0x0DC79E23,
+  0x3FF18109,  0xA4000000,  0xBE23DC79,  0x609374EE,
+  0x3FF189CC,  0x58000000,  0x3E262CF7,  0x3A40C3B7,
+  0x3FF19293,  0x70000000,  0x3E1D3833,  0x5A24F463,
+  0x3FF19B5E,  0xEC000000,  0x3E2BA9AD,  0x8A2E4440,
+  0x3FF1A42E,  0xD0000000,  0x3DFD8CBC,  0x61C41828,
+  0x3FF1AD03,  0x1C000000,  0x3E1A65E6,  0x5A4DDF0D,
+  0x3FF1B5DB,  0xD4000000,  0xBDE2FDBB,  0x9F828DB5,
+  0x3FF1BEB8,  0xF8000000,  0x3E2F4EE8,  0xB79B700F,
+  0x3FF1C79A,  0x8C000000,  0x3E3ACC35,  0x0DE1D7E8,
+  0x3FF1D080,  0x94000000,  0x3E11729E,  0xFF9E20A0,
+  0x3FF1D96B,  0x10000000,  0xBE300F18,  0x6C2EA70B,
+  0x3FF1E25A,  0x00000000,  0x3DF32E02,  0xCE425A35,
+  0x3FF1EB4D,  0x68000000,  0x3E3BDE56,  0x9A322D12,
+  0x3FF1F445,  0x50000000,  0xBE3C3F0D,  0xBA737AEF,
+  0x3FF1FD41,  0xB0000000,  0xBE0A2DD0,  0xC896DB7A,
+  0x3FF20642,  0x90000000,  0x3E2577B0,  0xF8B782F6,
+  0x3FF20F47,  0xF4000000,  0xBE2C6DA3,  0x73607FC8,
+  0x3FF21851,  0xD8000000,  0x3E35F7D1,  0xC8917348,
+  0x3FF22160,  0x44000000,  0x3E3B6F5C,  0xCF9CED69,
+  0x3FF22A73,  0x3C000000,  0xBE39967E,  0x85775C2E,
+  0x3FF2338A,  0xB8000000,  0x3E3B3213,  0x497226D4,
+  0x3FF23CA6,  0xC4000000,  0x3E3E2710,  0x30733227,
+  0x3FF245C7,  0x60000000,  0x3E33B8A9,  0xAF215A72,
+  0x3FF24EEC,  0x90000000,  0xBE3F96B2,  0x1365623F,
+  0x3FF25816,  0x50000000,  0xBE37324F,  0x27DEE202,
+  0x3FF26144,  0xA4000000,  0x3E318CD5,  0x4E484D87,
+  0x3FF26A77,  0x94000000,  0xBDE3FD37,  0xA94519E8,
+  0x3FF273AF,  0x1C000000,  0x3E37132F,  0xEE788C29,
+  0x3FF27CEB,  0x44000000,  0xBE03DDB7,  0xE842E5C0,
+  0x3FF2862C,  0x08000000,  0x3E37A3FB,  0xE17C9693,
+  0x3FF28F71,  0x70000000,  0x3E24EABF,  0xAEB3D9A0,
+  0x3FF298BB,  0x7C000000,  0xBE13C7B6,  0x853B0733,
+  0x3FF2A20A,  0x2C000000,  0x3E2D2C80,  0xC7B588B5,
+  0x3FF2AB5D,  0x88000000,  0xBE35B750,  0x708F3912,
+  0x3FF2B4B5,  0x8C000000,  0xBE291A70,  0xD5FD9130,
+  0x3FF2BE12,  0x3C000000,  0x3E2EE937,  0x0CCF9F73,
+  0x3FF2C773,  0xA0000000,  0xBE3C3F0C,  0xD42CF76C,
+  0x3FF2D0D9,  0xB0000000,  0x3E35DD54,  0x60763D61,
+  0x3FF2DA44,  0x78000000,  0x3E26C418,  0xE7D6AA3B,
+  0x3FF2E3B3,  0xF8000000,  0xBE3605C6,  0x6FB9B7A8,
+  0x3FF2ED28,  0x2C000000,  0x3E3763D4,  0x24DCDDF5,
+  0x3FF2F6A1,  0x20000000,  0xBE1A411E,  0xA8EC1AA8,
+  0x3FF3001E,  0xD0000000,  0xBE23FCA1,  0x1FE8546F,
+  0x3FF309A1,  0x40000000,  0xBE29DF0D,  0x3AAEE75E,
+  0x3FF31328,  0x70000000,  0x3E36A5D6,  0x3C2C4206,
+  0x3FF31CB4,  0x68000000,  0x3E1B7A3E,  0xB4C979B0,
+  0x3FF32645,  0x28000000,  0xBE36157D,  0x706CD593,
+  0x3FF32FDA,  0xB0000000,  0xBE39F357,  0x8DA4C646,
+  0x3FF33975,  0x04000000,  0xBE3E64DE,  0xD575FE6F,
+  0x3FF34314,  0x24000000,  0x3E07F9E3,  0x44D008E0,
+  0x3FF34CB8,  0x18000000,  0xBE2E94F9,  0x5A563E77,
+  0x3FF35660,  0xDC000000,  0x3E314DC2,  0x2475EF19,
+  0x3FF3600E,  0x78000000,  0x3E26D623,  0xA33AC606,
+  0x3FF369C0,  0xEC000000,  0x3E170F86,  0xC05B3160,
+  0x3FF37378,  0x3C000000,  0xBE38DDFE,  0xDB0AE31A,
+  0x3FF37D34,  0x64000000,  0x3E3662A9,  0x5706B570,
+  0x3FF386F5,  0x70000000,  0xBE1625E4,  0x6770731E,
+  0x3FF390BB,  0x5C000000,  0xBE1678F1,  0x62971091,
+  0x3FF39A86,  0x2C000000,  0xBE061F7C,  0xD045CB0C,
+  0x3FF3A455,  0xE4000000,  0xBE35CF51,  0x568B1CA2,
+  0x3FF3AE2A,  0x84000000,  0xBE378185,  0x7FB61F58,
+  0x3FF3B804,  0x0C000000,  0x3E3F77F4,  0x4FA133AF,
+  0x3FF3C1E2,  0x88000000,  0xBE22F96A,  0xB00B73FE,
+  0x3FF3CBC5,  0xF0000000,  0x3E351A64,  0x1EB4CE2F,
+  0x3FF3D5AE,  0x50000000,  0xBE3D3516,  0xD3755639,
+  0x3FF3DF9B,  0xA0000000,  0x3E1CD938,  0x43E8C10E,
+  0x3FF3E98D,  0xEC000000,  0xBE35EE23,  0x455C8842,
+  0x3FF3F385,  0x30000000,  0xBE29B282,  0x96C9F4ED,
+  0x3FF3FD81,  0x70000000,  0x3E24A40E,  0x3168CC0B,
+  0x3FF40782,  0xB0000000,  0x3E3784BC,  0x86C72839,
+  0x3FF41188,  0xF4000000,  0x3E061F19,  0x0785D847,
+  0x3FF41B94,  0x3C000000,  0xBE27AEF2,  0xE654A9C9,
+  0x3FF425A4,  0x88000000,  0x3E33DFC3,  0xF9E4C1BA,
+  0x3FF42FB9,  0xE0000000,  0x3E2455A8,  0x593D0C75,
+  0x3FF439D4,  0x44000000,  0xBDE41D4E,  0x238B65D1,
+  0x3FF443F3,  0xB4000000,  0x3E3BE616,  0x454CBECB,
+  0x3FF44E18,  0x38000000,  0x3E207B3C,  0x931C5332,
+  0x3FF45841,  0xD0000000,  0xBE330846,  0x7615DCC9,
+  0x3FF46270,  0x7C000000,  0xBE2A8A7B,  0xE497F84E,
+  0x3FF46CA4,  0x40000000,  0x3E020B50,  0xF737AF78,
+  0x3FF476DD,  0x20000000,  0x3E116B19,  0xE34AFBD3,
+  0x3FF4811B,  0x20000000,  0xBE3E15A7,  0x841EDB52,
+  0x3FF48B5E,  0x3C000000,  0x3E0F40C3,  0x33B3DE1E,
+  0x3FF495A6,  0x7C000000,  0x3E33607F,  0x92EFEE02,
+  0x3FF49FF3,  0xE4000000,  0xBE1A2DB5,  0x14F7E168,
+  0x3FF4AA46,  0x70000000,  0x3E3F59EC,  0x3EBA1C94,
+  0x3FF4B49E,  0x2C000000,  0xBE31A539,  0x8B9AE885,
+  0x3FF4BEFB,  0x10000000,  0x3E2FAC0B,  0xF13C8C95,
+  0x3FF4C95D,  0x28000000,  0xBE32C0BB,  0xF8B74775,
+  0x3FF4D3C4,  0x70000000,  0xBE2FC24E,  0x4F9474BB,
+  0x3FF4DE30,  0xEC000000,  0x3E008F30,  0x09DA911F,
+  0x3FF4E8A2,  0xA0000000,  0x3E2994C1,  0xBAF8D98B,
+  0x3FF4F319,  0x90000000,  0xBE17C38C,  0x18648D0A,
+  0x3FF4FD95,  0xBC000000,  0xBE288852,  0xF22F8698,
+  0x3FF50817,  0x28000000,  0xBE3C3EC3,  0x30A2C153,
+  0x3FF5129D,  0xD4000000,  0xBE27B606,  0x968492AA,
+  0x3FF51D29,  0xC4000000,  0x3E2E0396,  0x61101629,
+  0x3FF527BA,  0xFC000000,  0x3E3E876F,  0xDAEEAB38,
+  0x3FF53251,  0x80000000,  0x3E29F59E,  0xED945B30,
+  0x3FF53CED,  0x50000000,  0x3E12D7DA,  0x0B4AE3F1,
+  0x3FF5478E,  0x70000000,  0xBE2FAFB8,  0x5FB946D0,
+  0x3FF55234,  0xE0000000,  0xBE18A8B3,  0x87D80C66,
+  0x3FF55CE0,  0xA4000000,  0x3E28B18F,  0x764CF85C,
+  0x3FF56791,  0xC0000000,  0x3E326017,  0x2BDBC6F4,
+  0x3FF57248,  0x38000000,  0xBE229F98,  0x53D523FE,
+  0x3FF57D04,  0x0C000000,  0xBE3BDD08,  0x4D9B8720,
+  0x3FF587C5,  0x3C000000,  0x3E169EBC,  0x09D8749E,
+  0x3FF5928B,  0xD0000000,  0x3E190C8C,  0x339C2080,
+  0x3FF59D57,  0xC8000000,  0x3E310FA4,  0xDE75E9CA,
+  0x3FF5A829,  0x28000000,  0x3E313D18,  0x1097F186,
+  0x3FF5B2FF,  0xF4000000,  0xBE2BDE04,  0xD51C23F6,
+  0x3FF5BDDC,  0x28000000,  0x3E3EE67E,  0x8938C386,
+  0x3FF5C8BD,  0xD0000000,  0x3E0973B8,  0x47DF6575,
+  0x3FF5D3A4,  0xE8000000,  0x3E24DF02,  0x1DB97781,
+  0x3FF5DE91,  0x78000000,  0xBE3FBA00,  0xAC4AECDC,
+  0x3FF5E983,  0x7C000000,  0xBE2F37AF,  0x939F646A,
+  0x3FF5F47A,  0xFC000000,  0xBE396DEF,  0x58A6EEE9,
+  0x3FF5FF77,  0xF8000000,  0xBE315248,  0xE3613C7B,
+  0x3FF60A7A,  0x74000000,  0xBE26A9E2,  0xF1553706,
+  0x3FF61582,  0x74000000,  0xBE3B6BF6,  0xAE4D7CB6,
+  0x3FF6208F,  0xF8000000,  0xBE35775B,  0x9EB5EBA5,
+  0x3FF62BA3,  0x04000000,  0xBE2A821B,  0xC1E43506,
+  0x3FF636BB,  0x9C000000,  0xBE367CDA,  0x7B2D8CF4,
+  0x3FF641D9,  0xC0000000,  0xBE13218B,  0x3E907A1D,
+  0x3FF64CFD,  0x74000000,  0x3E3454EE,  0x7BF5DFE4,
+  0x3FF65826,  0xC0000000,  0xBE3E960F,  0x6366C5FD,
+  0x3FF66355,  0x9C000000,  0x3E2E378F,  0x8B43C17E,
+  0x3FF66E8A,  0x14000000,  0x3E244BE0,  0xA4306535,
+  0x3FF679C4,  0x28000000,  0xBDE4B6C1,  0x8DF63D6E,
+  0x3FF68503,  0xD8000000,  0x3E3BA122,  0xE6A239CF,
+  0x3FF69049,  0x2C000000,  0x3E27F286,  0x59FB5F30,
+  0x3FF69B94,  0x24000000,  0xBE044041,  0x971D3970 } };
+
+static const union {
+  int4   i[2048];
+  double x[1024];
+}  fine = { .i = {
+  0x3FF00000,  0x00000000,  0x00000000,  0x00000000,
+  0x3FF00004,  0x00000000,  0x3DA00001,  0x55556AAB,
+  0x3FF00008,  0x00000000,  0x3DC00002,  0xAAAB0000,
+  0x3FF0000C,  0x00000000,  0x3DD20004,  0x8000D800,
+  0x3FF00010,  0x00000000,  0x3DE00005,  0x5556AAAB,
+  0x3FF00014,  0x00000000,  0x3DE9000A,  0x6AADEC01,
+  0x3FF00018,  0x00000000,  0x3DF20009,  0x00036001,
+  0x3FF0001C,  0x00000000,  0x3DF8800E,  0x4AB0EB58,
+  0x3FF00020,  0x00000000,  0x3E00000A,  0xAAB00002,
+  0x3FF00024,  0x00000000,  0x3E04400F,  0x30088B04,
+  0x3FF00028,  0x00000000,  0x3E090014,  0xD5625AB1,
+  0x3FF0002C,  0x00000000,  0x3E0E401B,  0xBABDBB0A,
+  0x3FF00030,  0x00000000,  0x3E120012,  0x000D8008,
+  0x3FF00034,  0x00000000,  0x3E152016,  0xE2BD42E1,
+  0x3FF00038,  0x00000000,  0x3E18801C,  0x956E5812,
+  0x3FF0003C,  0x00000000,  0x3E1C2023,  0x2820F599,
+  0x3FF00040,  0x00000000,  0x3E200015,  0x556AAABC,
+  0x3FF00044,  0x00000000,  0x3E221019,  0x96C5DAD7,
+  0x3FF00048,  0x00000000,  0x3E24401E,  0x60222C1F,
+  0x3FF0004C,  0x00000000,  0x3E269023,  0xB97FC193,
+  0x3FF00050,  0x00000000,  0x3E290029,  0xAADEC034,
+  0x3FF00054,  0x00000000,  0x3E2B9030,  0x3C3F4F02,
+  0x3FF00058,  0x00000000,  0x3E2E4037,  0x75A196FF,
+  0x3FF0005C,  0x00000000,  0x3E30881F,  0xAF82E194,
+  0x3FF00060,  0x00000000,  0x3E320024,  0x00360041,
+  0x3FF00064,  0x00000000,  0x3E338828,  0xB0EA3F05,
+  0x3FF00068,  0x00000000,  0x3E35202D,  0xC59FB661,
+  0x3FF0006C,  0x00000000,  0x3E36C833,  0x42567FD5,
+  0x3FF00070,  0x00000000,  0x3E388039,  0x2B0EB5E1,
+  0x3FF00074,  0x00000000,  0x3E3A483F,  0x83C87407,
+  0x3FF00078,  0x00000000,  0x3E3C2046,  0x5083D6C6,
+  0x3FF0007C,  0x00000000,  0x3E3E084D,  0x9540FB9E,
+  0x3FF00080,  0x04000000,  0xBE3FFFAA,  0xA9FFFEEF,
+  0x3FF00084,  0x04000000,  0xBE3DF7A2,  0x693EF962,
+  0x3FF00088,  0x04000000,  0xBE3BDF99,  0xA47BD339,
+  0x3FF0008C,  0x04000000,  0xBE39B790,  0x57B66AF5,
+  0x3FF00090,  0x04000000,  0xBE377F86,  0x7EEE9E14,
+  0x3FF00094,  0x04000000,  0xBE35377C,  0x16244916,
+  0x3FF00098,  0x04000000,  0xBE32DF71,  0x1957477B,
+  0x3FF0009C,  0x04000000,  0xBE307765,  0x848773C2,
+  0x3FF000A0,  0x04000000,  0xBE2BFEB2,  0xA7694ED3,
+  0x3FF000A4,  0x04000000,  0xBE26EE99,  0x05BD75E2,
+  0x3FF000A8,  0x04000000,  0xBE21BE7E,  0x1C0B0BB1,
+  0x3FF000AC,  0x04000000,  0xBE18DCC3,  0xC4A37A79,
+  0x3FF000B0,  0x04000000,  0xBE0BF911,  0x4244D60F,
+  0x3FF000B4,  0x04000000,  0xBDE6E255,  0xEC91D848,
+  0x3FF000B8,  0x04000000,  0x3E0107EB,  0xEC1B8F0C,
+  0x3FF000BC,  0x04000000,  0x3E142439,  0x89BE52AA,
+  0x3FF000C0,  0x04000000,  0x3E200240,  0x06C01033,
+  0x3FF000C4,  0x04000000,  0x3E261264,  0xC8A9F760,
+  0x3FF000C8,  0x04000000,  0x3E2C428B,  0x129D3FDE,
+  0x3FF000CC,  0x04000000,  0x3E314959,  0x764D2658,
+  0x3FF000D0,  0x04000000,  0x3E34816E,  0x2F50C16C,
+  0x3FF000D4,  0x04000000,  0x3E37C983,  0xB859A4AB,
+  0x3FF000D8,  0x04000000,  0x3E3B219A,  0x15680499,
+  0x3FF000DC,  0x04000000,  0x3E3E89B1,  0x4A7C16B5,
+  0x3FF000E0,  0x08000000,  0xBE3DFE36,  0xA469EE7E,
+  0x3FF000E4,  0x08000000,  0xBE3A761D,  0xB349D37F,
+  0x3FF000E8,  0x08000000,  0xBE36DE03,  0xDE235FCD,
+  0x3FF000EC,  0x08000000,  0xBE3335E9,  0x20F659E6,
+  0x3FF000F0,  0x08000000,  0xBE2EFB9A,  0xEF850E8F,
+  0x3FF000F4,  0x08000000,  0xBE276B61,  0xBD0F58E2,
+  0x3FF000F8,  0x08000000,  0xBE1F764D,  0x45163381,
+  0x3FF000FC,  0x08000000,  0xBE0FABA6,  0x5FDF589A,
+  0x3FF00100,  0x08000000,  0x3D8555AA,  0xABBBBE94,
+  0x3FF00104,  0x08000000,  0x3E102B2C,  0xDABB690B,
+  0x3FF00108,  0x08000000,  0x3E2045D9,  0x7820FBA0,
+  0x3FF0010C,  0x08000000,  0x3E28961E,  0x92F54742,
+  0x3FF00110,  0x08000000,  0x3E308332,  0xE2ED8E39,
+  0x3FF00114,  0x08000000,  0x3E34CB57,  0x8C698119,
+  0x3FF00118,  0x08000000,  0x3E39237D,  0x49EEC0C4,
+  0x3FF0011C,  0x08000000,  0x3E3D8BA4,  0x1F7D92BC,
+  0x3FF00120,  0x0C000000,  0xBE3DFC33,  0xEEE9C27D,
+  0x3FF00124,  0x0C000000,  0xBE39740A,  0xDD46F763,
+  0x3FF00128,  0x0C000000,  0xBE34DBE0,  0xA799C375,
+  0x3FF0012C,  0x0C000000,  0xBE3033B5,  0x49E1DD2F,
+  0x3FF00130,  0x0C000000,  0xBE26F711,  0x803DF41F,
+  0x3FF00134,  0x0C000000,  0xBE1ACD6C,  0x19433A4C,
+  0x3FF00138,  0x0C000000,  0xBDFDB2C1,  0x8770E36F,
+  0x3FF0013C,  0x0C000000,  0x3E086820,  0x6B74A43E,
+  0x3FF00140,  0x0C000000,  0x3E200A6A,  0xDEC0D058,
+  0x3FF00144,  0x0C000000,  0x3E2A1AD0,  0x22BD7872,
+  0x3FF00148,  0x0C000000,  0x3E32259B,  0xF769E132,
+  0x3FF0014C,  0x0C000000,  0x3E374DD1,  0x2582289A,
+  0x3FF00150,  0x0C000000,  0x3E3C8607,  0x9FA7E4F4,
+  0x3FF00154,  0x10000000,  0xBE3E31C0,  0x9624963C,
+  0x3FF00158,  0x10000000,  0xBE38D987,  0x77E2F472,
+  0x3FF0015C,  0x10000000,  0xBE33714D,  0x0192E02C,
+  0x3FF00160,  0x10000000,  0xBE2BF222,  0x5E6805CB,
+  0x3FF00164,  0x10000000,  0xBE20E1A7,  0xF98C0A34,
+  0x3FF00168,  0x10000000,  0xBE06C4AB,  0x32447238,
+  0x3FF0016C,  0x10000000,  0x3E067D54,  0xC225D8C1,
+  0x3FF00170,  0x10000000,  0x3E210FD8,  0x05C4630F,
+  0x3FF00174,  0x10000000,  0x3E2CA05D,  0xBB206115,
+  0x3FF00178,  0x10000000,  0x3E342873,  0x2C4F14A6,
+  0x3FF0017C,  0x10000000,  0x3E3A10B8,  0xF31F3B5E,
+  0x3FF00180,  0x14000000,  0xBE3FF6FF,  0xC9FEFCC9,
+  0x3FF00184,  0x14000000,  0xBE39EEB7,  0x070B344A,
+  0x3FF00188,  0x14000000,  0xBE33D66C,  0xC0050AA2,
+  0x3FF0018C,  0x14000000,  0xBE2B5C41,  0xE1D83C97,
+  0x3FF00190,  0x14000000,  0xBE1DD74E,  0x57003305,
+  0x3FF00194,  0x14000000,  0xBDF2D84A,  0xA80727F1,
+  0x3FF00198,  0x14000000,  0x3E14AB2F,  0x534C5401,
+  0x3FF0019C,  0x14000000,  0x3E27263B,  0xD875DE83,
+  0x3FF001A0,  0x14000000,  0x3E320B71,  0x9FB782CA,
+  0x3FF001A4,  0x14000000,  0x3E3893C6,  0xF349371F,
+  0x3FF001A8,  0x14000000,  0x3E3F2C1D,  0xEAF074C6,
+  0x3FF001AC,  0x18000000,  0xBE3A2B89,  0x75525ABC,
+  0x3FF001B0,  0x18000000,  0xBE33732F,  0x297ECCE2,
+  0x3FF001B4,  0x18000000,  0xBE2955A6,  0x5B28EC49,
+  0x3FF001B8,  0x18000000,  0xBE1749D5,  0xF64BA7FD,
+  0x3FF001BC,  0x18000000,  0x3DF15E9E,  0xA8645141,
+  0x3FF001C0,  0x18000000,  0x3E201C96,  0x1D6F0B37,
+  0x3FF001C4,  0x18000000,  0x3E2E2D5B,  0xE6028E39,
+  0x3FF001C8,  0x18000000,  0x3E362F12,  0x9B63FA1E,
+  0x3FF001CC,  0x18000000,  0x3E3D5779,  0x0BE01026,
+  0x3FF001D0,  0x1C000000,  0xBE3B701E,  0xB78A0445,
+  0x3FF001D4,  0x1C000000,  0xBE3427B4,  0xAAD9CF9D,
+  0x3FF001D8,  0x1C000000,  0xBE299E91,  0x941DBAB5,
+  0x3FF001DC,  0x1C000000,  0xBE159B6C,  0x44A2DFDD,
+  0x3FF001E0,  0x1C000000,  0x3E008CA4,  0x1EC8B89C,
+  0x3FF001E4,  0x1C000000,  0x3E23340B,  0xF1EE0E9A,
+  0x3FF001E8,  0x1C000000,  0x3E313279,  0x5231913C,
+  0x3FF001EC,  0x1C000000,  0x3E38DAEE,  0x93892E68,
+  0x3FF001F0,  0x20000000,  0xBE3F6C9A,  0x3F01A6A8,
+  0x3FF001F4,  0x20000000,  0xBE37A421,  0x216E726C,
+  0x3FF001F8,  0x20000000,  0xBE2F974C,  0x1F7970B9,
+  0x3FF001FC,  0x20000000,  0xBE1F8CA4,  0x17AFEBC8,
+  0x3FF00200,  0x20000000,  0x3DB55600,  0x04445B06,
+  0x3FF00204,  0x20000000,  0x3E203BAE,  0x0C290A26,
+  0x3FF00208,  0x20000000,  0x3E30365A,  0x104547BD,
+  0x3FF0020C,  0x20000000,  0x3E385EDF,  0x22970DE3,
+  0x3FF00210,  0x24000000,  0xBE3F6899,  0xBEF5A5F4,
+  0x3FF00214,  0x24000000,  0xBE372010,  0x90605040,
+  0x3FF00218,  0x24000000,  0xBE2D8F0A,  0x9B50D8EE,
+  0x3FF0021C,  0x24000000,  0xBE197BDF,  0xCB35D444,
+  0x3FF00220,  0x24000000,  0x3E00CCBC,  0x2188E3D5,
+  0x3FF00224,  0x24000000,  0x3E254452,  0x36A79F6A,
+  0x3FF00228,  0x24000000,  0x3E333ABC,  0xD69B2D28,
+  0x3FF0022C,  0x24000000,  0x3E3BE352,  0xBA07BE5B,
+  0x3FF00230,  0x28000000,  0xBE3B6415,  0x3665F227,
+  0x3FF00234,  0x28000000,  0xBE329B7A,  0xF6AD58D5,
+  0x3FF00238,  0x28000000,  0xBE2385BD,  0x059BD24A,
+  0x3FF0023C,  0x28000000,  0xBDEB47FA,  0xD8E2B1B4,
+  0x3FF00240,  0x28000000,  0x3E203CC2,  0x22CF60F6,
+  0x3FF00244,  0x28000000,  0x3E312704,  0x39BEF87F,
+  0x3FF00248,  0x28000000,  0x3E3A3FA9,  0xA63F5309,
+  0x3FF0024C,  0x2C000000,  0xBE3C97AE,  0xA516AE5E,
+  0x3FF00250,  0x2C000000,  0xBE335F04,  0xA442792A,
+  0x3FF00254,  0x2C000000,  0xBE242CB0,  0xA686F3A2,
+  0x3FF00258,  0x2C000000,  0xBDE7B535,  0xC3237903,
+  0x3FF0025C,  0x2C000000,  0x3E21560E,  0x9E7A6CF7,
+  0x3FF00260,  0x2C000000,  0x3E3223BA,  0xA8C01385,
+  0x3FF00264,  0x2C000000,  0x3E3BAC70,  0x627012DF,
+  0x3FF00268,  0x30000000,  0xBE3ABAD7,  0x7FB232EA,
+  0x3FF0026C,  0x30000000,  0xBE31121C,  0xF9A6244B,
+  0x3FF00270,  0x30000000,  0xBE1D6580,  0x1DAC9AE4,
+  0x3FF00274,  0x30000000,  0x3E037AFA,  0xD7FB0AC3,
+  0x3FF00278,  0x30000000,  0x3E289042,  0x633420EB,
+  0x3FF0027C,  0x30000000,  0x3E3630E5,  0x8065842A,
+  0x3FF00280,  0x34000000,  0xBE3FD653,  0xB49DA4FF,
+  0x3FF00284,  0x34000000,  0xBE35CD8A,  0x696ECB76,
+  0x3FF00288,  0x34000000,  0xBE27697D,  0x341A9D63,
+  0x3FF0028C,  0x34000000,  0xBDF8BF04,  0x2788D238,
+  0x3FF00290,  0x34000000,  0x3E2159C1,  0x42A03782,
+  0x3FF00294,  0x34000000,  0x3E32F5B4,  0x154D4F89,
+  0x3FF00298,  0x34000000,  0x3E3D4E8A,  0x1D7FB2C1,
+  0x3FF0029C,  0x38000000,  0xBE38489D,  0x42181508,
+  0x3FF002A0,  0x38000000,  0xBE2B9F84,  0x0AF2C28C,
+  0x3FF002A4,  0x38000000,  0xBE0A3721,  0x451C5357,
+  0x3FF002A8,  0x38000000,  0x3E1D47F1,  0x61A8605E,
+  0x3FF002AC,  0x38000000,  0x3E31FADF,  0x81B02FCF,
+  0x3FF002B0,  0x38000000,  0x3E3CB3C5,  0x572F674A,
+  0x3FF002B4,  0x3C000000,  0xBE388352,  0x231795EA,
+  0x3FF002B8,  0x3C000000,  0xBE2B54CD,  0xD248367A,
+  0x3FF002BC,  0x3C000000,  0xBE060BC7,  0xB7ABD90D,
+  0x3FF002C0,  0x3C000000,  0x3E206EEF,  0x6EE9F1EF,
+  0x3FF002C4,  0x3C000000,  0x3E33406B,  0x261BF09E,
+  0x3FF002C8,  0x3C000000,  0x3E3E5961,  0x59001C60,
+  0x3FF002CC,  0x40000000,  0xBE367DA5,  0xABDDD232,
+  0x3FF002D0,  0x40000000,  0xBE268953,  0xC8FA5113,
+  0x3FF002D4,  0x40000000,  0x3D9152CC,  0x8B33A701,
+  0x3FF002D8,  0x40000000,  0x3E26BAAC,  0x3E058570,
+  0x3FF002DC,  0x40000000,  0x3E36C65A,  0x63236E71,
+  0x3FF002E0,  0x44000000,  0xBE3DC09E,  0x7C7A795C,
+  0x3FF002E4,  0x44000000,  0xBE323794,  0x7BD63D1D,
+  0x3FF002E8,  0x44000000,  0xBE1A7A1E,  0x5BBC9105,
+  0x3FF002EC,  0x44000000,  0x3E142A20,  0xD8EE2B1B,
+  0x3FF002F0,  0x44000000,  0x3E30C39A,  0xEFAA8A8D,
+  0x3FF002F4,  0x44000000,  0x3E3C8CB0,  0x995E96A2,
+  0x3FF002F8,  0x48000000,  0xBE379A36,  0xC8A79469,
+  0x3FF002FC,  0x48000000,  0xBE276236,  0x64CE7203,
+  0x3FF00300,  0x48000000,  0x3DD200D8,  0x0819DA68,
+  0x3FF00304,  0x48000000,  0x3E28A249,  0xE5E018D4,
+  0x3FF00308,  0x48000000,  0x3E386A49,  0x8A087692,
+  0x3FF0030C,  0x4C000000,  0xBE3B6C8E,  0xD695988B,
+  0x3FF00310,  0x4C000000,  0xBE2E66C8,  0x55D2BCBA,
+  0x3FF00314,  0x4C000000,  0xBE0751B3,  0x7790BA7A,
+  0x3FF00318,  0x4C000000,  0x3E22DDF4,  0xC2A20261,
+  0x3FF0031C,  0x4C000000,  0x3E35D82E,  0x49E0B0B5,
+  0x3FF00320,  0x50000000,  0xBE3DAE9A,  0xB142422E,
+  0x3FF00324,  0x50000000,  0xBE312560,  0x8C170FE6,
+  0x3FF00328,  0x50000000,  0xBE12308D,  0x0A73BF77,
+  0x3FF0032C,  0x50000000,  0x3E203A3A,  0x5E59CEFA,
+  0x3FF00330,  0x50000000,  0x3E34D660,  0xCD4740BF,
+  0x3FF00334,  0x54000000,  0xBE3E6058,  0x644D1883,
+  0x3FF00338,  0x54000000,  0xBE31870E,  0x618F57B6,
+  0x3FF0033C,  0x54000000,  0xBE127704,  0x99FABD0F,
+  0x3FF00340,  0x54000000,  0x3E20B71E,  0xA1CB5ECF,
+  0x3FF00344,  0x54000000,  0x3E3564E3,  0x089E93E1,
+  0x3FF00348,  0x58000000,  0xBE3D81C5,  0xFB533142,
+  0x3FF0034C,  0x58000000,  0xBE30586B,  0xB6EECE6C,
+  0x3FF00350,  0x58000000,  0xBE08F871,  0x319B883E,
+  0x3FF00354,  0x58000000,  0x3E2454A5,  0x75BF7503,
+  0x3FF00358,  0x58000000,  0x3E3783B6,  0xF04B88C5,
+  0x3FF0035C,  0x5C000000,  0xBE3B12E1,  0x81EF30A7,
+  0x3FF00360,  0x5C000000,  0xBE2B32ED,  0x2F9F3657,
+  0x3FF00364,  0x5C000000,  0xBDB0084D,  0x54DF31BC,
+  0x3FF00368,  0x5C000000,  0x3E2B12D2,  0xC303B7B9,
+  0x3FF0036C,  0x5C000000,  0x3E3B32DE,  0x78B56F97,
+  0x3FF00370,  0x60000000,  0xBE3713A9,  0x03B9496C,
+  0x3FF00374,  0x60000000,  0xBE22945A,  0x1F92E726,
+  0x3FF00378,  0x60000000,  0x3E123D49,  0x621736DF,
+  0x3FF0037C,  0x60000000,  0x3E3278D5,  0x3935580D,
+  0x3FF00380,  0x64000000,  0xBE3F8DA4,  0x69B9F5FB,
+  0x3FF00384,  0x64000000,  0xBE31841A,  0x8C473CC8,
+  0x3FF00388,  0x64000000,  0xBE0B5469,  0x538CDE07,
+  0x3FF0038C,  0x64000000,  0x3E257E07,  0x7F8F9D65,
+  0x3FF00390,  0x64000000,  0x3E38F898,  0x3665E52B,
+  0x3FF00394,  0x68000000,  0xBE38BDCF,  0xC29674BD,
+  0x3FF00398,  0x68000000,  0xBE24C868,  0x4E58B4D9,
+  0x3FF0039C,  0x68000000,  0x3E1015AC,  0x329466D7,
+  0x3FF003A0,  0x68000000,  0x3E327F0D,  0xDCDECE44,
+  0x3FF003A4,  0x6C000000,  0xBE3EF74B,  0xB27E5528,
+  0x3FF003A8,  0x6C000000,  0xBE305DA1,  0x9D7167F2,
+  0x3FF003AC,  0x6C000000,  0xBDFB3F3D,  0xFF980820,
+  0x3FF003B0,  0x6C000000,  0x3E2A0B7B,  0x13D49789,
+  0x3FF003B4,  0x6C000000,  0x3E3BCF72,  0xA43AE87C,
+  0x3FF003B8,  0x70000000,  0xBE3556D4,  0x8D06BDC0,
+  0x3FF003BC,  0x70000000,  0xBE19B460,  0x1766E54D,
+  0x3FF003C0,  0x70000000,  0x3E211950,  0x7B85C8BA,
+  0x3FF003C4,  0x70000000,  0x3E37966C,  0x41D00AED,
+  0x3FF003C8,  0x74000000,  0xBE394FCB,  0xF5B15507,
+  0x3FF003CC,  0x74000000,  0xBE244C00,  0xC98093C4,
+  0x3FF003D0,  0x74000000,  0x3E144F3B,  0xE2907BDF,
+  0x3FF003D4,  0x74000000,  0x3E345DA2,  0x267CD924,
+  0x3FF003D8,  0x78000000,  0xBE3C4886,  0xD73526C0,
+  0x3FF003DC,  0x78000000,  0xBE29BD57,  0xF8E1D62E,
+  0x3FF003E0,  0x78000000,  0x3E04D995,  0xD65415E1,
+  0x3FF003E4,  0x78000000,  0x3E322515,  0x527E1A58,
+  0x3FF003E8,  0x7C000000,  0xBE3E4104,  0x31552BA5,
+  0x3FF003EC,  0x7C000000,  0xBE2D2E33,  0x995CAB3B,
+  0x3FF003F0,  0x7C000000,  0x3DF22D48,  0x473970DC,
+  0x3FF003F4,  0x7C000000,  0x3E30ECC6,  0xC61195FC,
+  0x3FF003F8,  0x80000000,  0xBE3F3943,  0x03D35C34,
+  0x3FF003FC,  0x80000000,  0xBE2E9E91,  0xAA7483C7,
+  0x3FF00400,  0x80000000,  0x3DE556AA,  0xBBBC71CE,
+  0x3FF00404,  0x80000000,  0x3E30B4B7,  0x817613C1,
+  0x3FF00408,  0x84000000,  0xBE3F3142,  0x4E70B0AC,
+  0x3FF0040C,  0x84000000,  0xBE2E0E70,  0x2BAAD02F,
+  0x3FF00410,  0x84000000,  0x3DF32D62,  0xF48F01F2,
+  0x3FF00414,  0x84000000,  0x3E317CE8,  0x84EB5B98,
+  0x3FF00418,  0x88000000,  0xBE3E2901,  0x10ED210B,
+  0x3FF0041C,  0x88000000,  0xBE2B7DCD,  0x1C7F0051,
+  0x3FF00420,  0x88000000,  0x3E05D9C0,  0x87AA2706,
+  0x3FF00424,  0x88000000,  0x3E33455A,  0xD0B235B3,
+  0x3FF00428,  0x8C000000,  0xBE3C207E,  0x4B07A510,
+  0x3FF0042C,  0x8C000000,  0xBE26ECA6,  0x7C6E838B,
+  0x3FF00430,  0x8C000000,  0x3E150F6F,  0xEC91A8D5,
+  0x3FF00434,  0x8C000000,  0x3E360E0F,  0x650C6A83,
+  0x3FF00438,  0x90000000,  0xBE3917B8,  0xFC7E3439,
+  0x3FF0043C,  0x90000000,  0xBE205AFA,  0x4AF4C8B6,
+  0x3FF00440,  0x90000000,  0x3E219985,  0xDC31D181,
+  0x3FF00444,  0x90000000,  0x3E39D707,  0x423CC2BE,
+  0x3FF00448,  0x94000000,  0xBE350EB0,  0x250DC5BF,
+  0x3FF0044C,  0x94000000,  0xBE0F231A,  0x1E2CF893,
+  0x3FF00450,  0x94000000,  0x3E2AABDB,  0xD42C92D4,
+  0x3FF00454,  0x94000000,  0x3E3EA043,  0x6887075B,
+  0x3FF00458,  0x98000000,  0xBE300562,  0xC472509B,
+  0x3FF0045C,  0x98000000,  0x3DF64FB6,  0x72B572E0,
+  0x3FF00460,  0x98000000,  0x3E32DF5D,  0xEF61155C,
+  0x3FF00464,  0x9C000000,  0xBE3B963B,  0x27CFFE6A,
+  0x3FF00468,  0x9C000000,  0xBE23F79F,  0xB4CD96FE,
+  0x3FF0046C,  0x9C000000,  0x3E1EBA7F,  0x6E771F13,
+  0x3FF00470,  0x9C000000,  0x3E396913,  0xFE3ED608,
+  0x3FF00474,  0xA0000000,  0xBE34CC73,  0x6E82850F,
+  0x3FF00478,  0xA0000000,  0xBE078FB3,  0x352966B7,
+  0x3FF0047C,  0xA0000000,  0x3E2DF116,  0x33AFF8AE,
+  0x3FF00480,  0xA4000000,  0xBE3F0CEE,  0xE909EADD,
+  0x3FF00484,  0xA4000000,  0xBE2A04C8,  0xD6938597,
+  0x3FF00488,  0xA4000000,  0x3E1460AA,  0x5C6654D8,
+  0x3FF0048C,  0xA4000000,  0x3E3742BE,  0x22213ECF,
+  0x3FF00490,  0xA8000000,  0xBE3682A9,  0xC631A356,
+  0x3FF00494,  0xA8000000,  0xBE10E034,  0x7777B644,
+  0x3FF00498,  0xA8000000,  0x3E2C4528,  0x3E3B0991,
+  0x3FF0049C,  0xAC000000,  0xBE3F72C6,  0x0B3E269F,
+  0x3FF004A0,  0xAC000000,  0xBE29F037,  0x31DF923B,
+  0x3FF004A4,  0xAC000000,  0x3E164A4D,  0xE82713DE,
+  0x3FF004A8,  0xAC000000,  0x3E382D47,  0x31AFAC4B,
+  0x3FF004AC,  0xB0000000,  0xBE352800,  0x6DFCE978,
+  0x3FF004B0,  0xB0000000,  0xBE036A1B,  0x07D68D27,
+  0x3FF004B4,  0xB0000000,  0x3E305D7E,  0x5CB71F6F,
+  0x3FF004B8,  0xB4000000,  0xBE3CC7BB,  0x30E5E990,
+  0x3FF004BC,  0xB4000000,  0xBE23B9E0,  0x0BA17DEA,
+  0x3FF004C0,  0xB4000000,  0x3E223BBF,  0xC3EF9BD8,
+  0x3FF004C4,  0xB4000000,  0x3E3C28B4,  0x8A74ECC0,
+  0x3FF004C8,  0xB8000000,  0xBE30BC72,  0x085831CA,
+  0x3FF004CC,  0xB8000000,  0x3E037361,  0x6C8D1FC8,
+  0x3FF004D0,  0xB8000000,  0x3E35A94F,  0x3033A0B8,
+  0x3FF004D4,  0xBC000000,  0xBE370BC8,  0xFC7107DE,
+  0x3FF004D8,  0xBC000000,  0xBE0D86E2,  0xA2D908DA,
+  0x3FF004DC,  0xBC000000,  0x3E2F742A,  0x58ED155E,
+  0x3FF004E0,  0xC0000000,  0xBE3CCAF4,  0x75FACDD0,
+  0x3FF004E4,  0xC0000000,  0xBE227FF2,  0x6F5BE5D3,
+  0x3FF004E8,  0xC0000000,  0x3E24B60D,  0xD6BCA827,
+  0x3FF004EC,  0xC0000000,  0x3E3E060B,  0xF72B40D6,
+  0x3FF004F0,  0xC4000000,  0xBE2C7DD4,  0x208BE3E3,
+  0x3FF004F4,  0xC4000000,  0x3E163093,  0x642FDDB8,
+  0x3FF004F8,  0xC4000000,  0x3E396738,  0xB72239A5,
+  0x3FF004FC,  0xC8000000,  0xBE32ADAE,  0x7201ED9B,
+  0x3FF00500,  0xC8000000,  0x3DF4D6F6,  0x1A0C05F3,
+  0x3FF00504,  0xC8000000,  0x3E355892,  0x360B8346,
+  0x3FF00508,  0xCC000000,  0xBE368C45,  0xF0C06435,
+  0x3FF0050C,  0xCC000000,  0xBE0308C8,  0x760DA2F6,
+  0x3FF00510,  0xCC000000,  0x3E31DA18,  0xE008D57B,
+  0x3FF00514,  0xD0000000,  0xBE39DAB0,  0x205F82F4,
+  0x3FF00518,  0xD0000000,  0xBE15FDD0,  0x2FE5E3E3,
+  0x3FF0051C,  0xD0000000,  0x3E2DD79A,  0x42787241,
+  0x3FF00520,  0xD4000000,  0xBE3C98EC,  0x94BD25F4,
+  0x3FF00524,  0xD4000000,  0xBE201B42,  0x53C89D03,
+  0x3FF00528,  0xD4000000,  0x3E291B5E,  0xCB901057,
+  0x3FF0052C,  0xD8000000,  0xBE3EC6FA,  0xE1B6D837,
+  0x3FF00530,  0xD8000000,  0xBE24173F,  0xF8BF49E7,
+  0x3FF00534,  0xD8000000,  0x3E257F80,  0x339DDB57,
+  0x3FF00538,  0xD8000000,  0x3E3F9B25,  0x64D62C5C,
+  0x3FF0053C,  0xDC000000,  0xBE26F2E0,  0x2E913659,
+  0x3FF00540,  0xDC000000,  0x3E2303FF,  0x52E7CB93,
+  0x3FF00544,  0xDC000000,  0x3E3E8D74,  0xAB0CFEF5,
+  0x3FF00548,  0xE0000000,  0xBE28AE22,  0x1CF7FDE6,
+  0x3FF0054C,  0xE0000000,  0x3E21A8DD,  0x01B47B93,
+  0x3FF00550,  0xE0000000,  0x3E3E0FF3,  0x5D1107E2,
+  0x3FF00554,  0xE4000000,  0xBE294904,  0xEBAC99E1,
+  0x3FF00558,  0xE4000000,  0x3E216E1A,  0x184B2814,
+  0x3FF0055C,  0xE4000000,  0x3E3E22A1,  0xE706008B,
+  0x3FF00560,  0xE8000000,  0xBE28C387,  0xC267616A,
+  0x3FF00564,  0xE8000000,  0x3E2253B7,  0x6EF3B008,
+  0x3FF00568,  0xE8000000,  0x3E3EC580,  0xB50FF371,
+  0x3FF0056C,  0xEC000000,  0xBE271DA9,  0xC8E0096B,
+  0x3FF00570,  0xEC000000,  0x3E2459B5,  0xDDF69498,
+  0x3FF00574,  0xEC000000,  0x3E3FF890,  0x33533C31,
+  0x3FF00578,  0xF0000000,  0xBE24576A,  0x26CDA497,
+  0x3FF0057C,  0xF0000000,  0x3E278016,  0x3D9CF923,
+  0x3FF00580,  0xF4000000,  0xBE3E442F,  0x320B787B,
+  0x3FF00584,  0xF4000000,  0xBE2070C8,  0x03E6A36B,
+  0x3FF00588,  0xF4000000,  0x3E2BC6D9,  0x6630A33F,
+  0x3FF0058C,  0xF8000000,  0xBE3BF0BD,  0x0EE72CBF,
+  0x3FF00590,  0xF8000000,  0xBE16D385,  0x0FC1A853,
+  0x3FF00594,  0xF8000000,  0x3E309700,  0x17FDFD5D,
+  0x3FF00598,  0xFC000000,  0xBE390D18,  0xF71A91AC,
+  0x3FF0059C,  0xFC000000,  0xBE050963,  0x69C58B86,
+  0x3FF005A0,  0xFC000000,  0x3E33DAC5,  0xB9A504CD,
+  0x3FF005A5,  0x00000000,  0xBE359942,  0x7E800734,
+  0x3FF005A9,  0x00000000,  0x3DF02BAE,  0xE59934CD,
+  0x3FF005AD,  0x00000000,  0x3E37AEBE,  0x04333E0E,
+  0x3FF005B1,  0x04000000,  0xBE319539,  0x38F19C2F,
+  0x3FF005B5,  0x04000000,  0x3E14DB54,  0xEBB1C157,
+  0x3FF005B9,  0x04000000,  0x3E3C12E9,  0x63CED05D,
+  0x3FF005BD,  0x08000000,  0xBE2A01F9,  0x74921CAF,
+  0x3FF005C1,  0x08000000,  0x3E23F645,  0xC94C85F2,
+  0x3FF005C5,  0x0C000000,  0xBE3EF8B7,  0xBB61CBEE,
+  0x3FF005C9,  0x0C000000,  0xBE1F7232,  0x597F2931,
+  0x3FF005CD,  0x0C000000,  0x3E2E9F48,  0xAF5B7345,
+  0x3FF005D1,  0x10000000,  0xBE397424,  0xED37CD5F,
+  0x3FF005D5,  0x10000000,  0xBE013F43,  0x08775C6B,
+  0x3FF005D9,  0x10000000,  0x3E35345A,  0x0029D3DB,
+  0x3FF005DD,  0x14000000,  0xBE335F5D,  0xC58C1962,
+  0x3FF005E1,  0x14000000,  0x3E1073C1,  0x47430E04,
+  0x3FF005E5,  0x14000000,  0x3E3BA944,  0x4A41E248,
+  0x3FF005E9,  0x18000000,  0xBE2974C3,  0xB06E888E,
+  0x3FF005ED,  0x18000000,  0x3E25E3FB,  0xDCCD9333,
+  0x3FF005F1,  0x1C000000,  0xBE3D519C,  0x5DE27951,
+  0x3FF005F5,  0x1C000000,  0xBE1614C2,  0xE4464502,
+  0x3FF005F9,  0x1C000000,  0x3E325740,  0xE0DAFE93,
+  0x3FF005FD,  0x20000000,  0xBE35BC47,  0x8C1B4C10,
+  0x3FF00601,  0x20000000,  0x3E0201B0,  0x20686CE9,
+  0x3FF00605,  0x20000000,  0x3E3A4CB9,  0x95558B63,
+  0x3FF00609,  0x24000000,  0xBE2B2D79,  0xA880A3EB,
+  0x3FF0060D,  0x24000000,  0x3E252BA5,  0x9699EEB7,
+  0x3FF00611,  0x28000000,  0xBE3D2D97,  0x880115E1,
+  0x3FF00615,  0x28000000,  0xBE1383EF,  0x28A3D788,
+  0x3FF00619,  0x28000000,  0x3E337BA6,  0x08D6DC23,
+  0x3FF0061D,  0x2C000000,  0xBE3417B2,  0x0B001A08,
+  0x3FF00621,  0x2C000000,  0x3E1193EF,  0xF94EB99A,
+  0x3FF00625,  0x2C000000,  0x3E3CF1B0,  0x28D3BD3B,
+  0x3FF00629,  0x30000000,  0xBE24E32B,  0x0EFCC982,
+  0x3FF0062D,  0x30000000,  0x3E2C7655,  0xE2BDA47F,
+  0x3FF00631,  0x34000000,  0xBE39080E,  0x689312F8,
+  0x3FF00635,  0x34000000,  0xBDCDA0C8,  0xA9444DB4,
+  0x3FF00639,  0x34000000,  0x3E38A191,  0x7B21FE23,
+  0x3FF0063D,  0x38000000,  0xBE2CE32A,  0x7E67E1E1,
+  0x3FF00641,  0x38000000,  0x3E251694,  0x875A71F0,
+  0x3FF00645,  0x3C000000,  0xBE3C67CF,  0xF838F455,
+  0x3FF00649,  0x3C000000,  0xBE0A571F,  0x77274052,
+  0x3FF0064D,  0x3C000000,  0x3E35E20E,  0x63AAEFA8,
+  0x3FF00651,  0x40000000,  0xBE30E0F8,  0xFC87DA70,
+  0x3FF00655,  0x40000000,  0x3E20D80B,  0xE9089AFD,
+  0x3FF00659,  0x44000000,  0xBE3E36F4,  0xC52F03BD,
+  0x3FF0065D,  0x44000000,  0xBE1327A4,  0x9680E14E,
+  0x3FF00661,  0x44000000,  0x3E34B328,  0xD732468D,
+  0x3FF00665,  0x48000000,  0xBE31BFBE,  0xCAB5EF4A,
+  0x3FF00669,  0x48000000,  0x3E1F757F,  0xE2A2FBE1,
+  0x3FF0066D,  0x4C000000,  0xBE3E757A,  0xDAB014DA,
+  0x3FF00671,  0x4C000000,  0xBE12E13D,  0x02FB3FBB,
+  0x3FF00675,  0x4C000000,  0x3E3514E2,  0xCA7E298D,
+  0x3FF00679,  0x50000000,  0xBE310DE4,  0xB4F78B94,
+  0x3FF0067D,  0x50000000,  0x3E21BEB4,  0x89C35D05,
+  0x3FF00681,  0x54000000,  0xBE3D2360,  0x43F4895C,
+  0x3FF00685,  0x54000000,  0xBE08B0A2,  0x5BC49ADF,
+  0x3FF00689,  0x54000000,  0x3E37073E,  0x32573159,
+  0x3FF0068D,  0x58000000,  0xBE2D96D1,  0x8D0732D2,
+  0x3FF00691,  0x58000000,  0x3E26E3ED,  0x9BF15E67,
+  0x3FF00695,  0x5C000000,  0xBE3A40A3,  0x0C3250FB,
+  0x3FF00699,  0x5C000000,  0x3DBCC9AE,  0xFD0AE214,
+  0x3FF0069D,  0x5C000000,  0x3E3A8A3D,  0x038868A1,
+  0x3FF006A1,  0x60000000,  0xBE25F092,  0x151D21CE,
+  0x3FF006A5,  0x60000000,  0x3E2F2A6F,  0x11738C43,
+  0x3FF006A9,  0x64000000,  0xBE35CD41,  0x3E9CE96D,
+  0x3FF006AD,  0x64000000,  0x3E138132,  0x8DBC2918,
+  0x3FF006B1,  0x64000000,  0x3E3F9DE1,  0x32DF4C13,
+  0x3FF006B5,  0x68000000,  0xBE16520E,  0x3129E0B2,
+  0x3FF006B9,  0x68000000,  0x3E35491E,  0x69F36A61,
+  0x3FF006BD,  0x6C000000,  0xBE2F9271,  0xCCCABCD4,
+  0x3FF006C1,  0x6C000000,  0x3E2668ED,  0x0D59B899,
+  0x3FF006C5,  0x70000000,  0xBE39BDD3,  0x4AD435A0,
+  0x3FF006C9,  0x70000000,  0x3DF5FE9A,  0x9191CABB,
+  0x3FF006CD,  0x70000000,  0x3E3C8DAD,  0x6676850B,
+  0x3FF006D1,  0x74000000,  0xBE206910,  0x1D74934A,
+  0x3FF006D5,  0x74000000,  0x3E331949,  0x4D886478,
+  0x3FF006D9,  0x78000000,  0xBE3188DE,  0x80BFBBC2,
+  0x3FF006DD,  0x78000000,  0x3E23CA01,  0x14DE1719,
+  0x3FF006E1,  0x7C000000,  0xBE3A9D19,  0x8CE98EC0,
+  0x3FF006E5,  0x7C000000,  0x3DEE1A67,  0xA705A6E7,
+  0x3FF006E9,  0x7C000000,  0x3E3C8EC6,  0xECD5F851,
+  0x3FF006ED,  0x80000000,  0xBE1F0CF9,  0xE839CE4D,
+  0x3FF006F1,  0x80000000,  0x3E33FAC3,  0x0C8CA46A,
+  0x3FF006F5,  0x84000000,  0xBE303734,  0x7B5703D8,
+  0x3FF006F9,  0x84000000,  0x3E274DB5,  0xE490A112,
+  0x3FF006FD,  0x88000000,  0xBE386B0E,  0xA693A093,
+  0x3FF00701,  0x88000000,  0x3E0C9875,  0xF0B73DAA,
+  0x3FF00705,  0x88000000,  0x3E3FA133,  0x2449A944,
+  0x3FF00709,  0x8C000000,  0xBE110285,  0xBFE66C14,
+  0x3FF0070D,  0x8C000000,  0x3E37ED91,  0x054EDCBD,
+  0x3FF00711,  0x90000000,  0xBE27A86A,  0xEFB65924,
+  0x3FF00715,  0x90000000,  0x3E307A0B,  0x1C8A0CF1,
+  0x3FF00719,  0x94000000,  0xBE3327AD,  0x397FB1D6,
+  0x3FF0071D,  0x94000000,  0x3E228D43,  0x1412B9FB,
+  0x3FF00721,  0x98000000,  0xBE3A3B08,  0x94D8FFB0,
+  0x3FF00725,  0x98000000,  0x3E029AA3,  0x6ED80040,
+  0x3FF00729,  0x98000000,  0x3E3EF1B8,  0x9627250A,
+  0x3FF0072D,  0x9C000000,  0xBE117F70,  0x5FCB1B09,
+  0x3FF00731,  0x9C000000,  0x3E385E96,  0x678F0789,
+  0x3FF00735,  0xA0000000,  0xBE25A5DF,  0xCEA3485B,
+  0x3FF00739,  0xA0000000,  0x3E320B90,  0xFF6D0303,
+  0x3FF0073D,  0xA4000000,  0xBE3105E6,  0xE03334FF,
+  0x3FF00741,  0xA4000000,  0x3E27F150,  0xFB9F056D,
+  0x3FF00745,  0xA8000000,  0xBE36F8C0,  0xE28905F4,
+  0x3FF00749,  0xA8000000,  0x3E189774,  0x0B1407AA,
+  0x3FF0074D,  0xAC000000,  0xBE3CAB7D,  0xCE4493C4,
+  0x3FF00751,  0xAC000000,  0x3DE265D5,  0xCB817D78,
+  0x3FF00755,  0xAC000000,  0x3E3DE1E2,  0x7CA8B4E3,
+  0x3FF00759,  0xB0000000,  0xBE12FD89,  0x7D730FC6,
+  0x3FF0075D,  0xB0000000,  0x3E38AF60,  0x1E4D7759,
+  0x3FF00761,  0xB4000000,  0xBE23A3AC,  0x0CAD84A2,
+  0x3FF00765,  0xB4000000,  0x3E33BCFB,  0x36B866FD,
+  0x3FF00769,  0xB8000000,  0xBE2D4858,  0x4D0667A1,
+  0x3FF0076D,  0xB8000000,  0x3E2E1567,  0xCBF08E6A,
+  0x3FF00771,  0xBC000000,  0xBE333664,  0x9FD34D05,
+  0x3FF00775,  0xBC000000,  0x3E253114,  0x9837D6E0,
+  0x3FF00779,  0xC0000000,  0xBE37887F,  0x5238327D,
+  0x3FF0077D,  0xC0000000,  0x3E1999FA,  0x24C8DC90,
+  0x3FF00781,  0xC4000000,  0xBE3B9A7C,  0x1DA2F8BE,
+  0x3FF00785,  0xC4000000,  0x3E03A485,  0xEA50EE6A,
+  0x3FF00789,  0xC8000000,  0xBE3F6C5A,  0xE204A449,
+  0x3FF0078D,  0xC8000000,  0xBDF3D3EF,  0x78D5D0F3,
+  0x3FF00791,  0xC8000000,  0x3E3D01E4,  0x80B1D66C,
+  0x3FF00795,  0xCC000000,  0xBE12BBC1,  0xD5149796,
+  0x3FF00799,  0xCC000000,  0x3E39B042,  0x2A8F92F0,
+  0x3FF0079D,  0xD0000000,  0xBE1F820E,  0x6F386487,
+  0x3FF007A1,  0xD0000000,  0x3E369EBE,  0x3BA3BCDA,
+  0x3FF007A5,  0xD4000000,  0xBE25A3F0,  0x96320652,
+  0x3FF007A9,  0xD4000000,  0x3E33CD58,  0xD3FD8FCA,
+  0x3FF007AD,  0xD8000000,  0xBE2B069C,  0xC62D40B1,
+  0x3FF007B1,  0xD8000000,  0x3E313C12,  0x13AC5766,
+  0x3FF007B5,  0xDC000000,  0xBE2FE90B,  0x876F3A0B,
+  0x3FF007B9,  0xDC000000,  0x3E2DD5D4,  0x357EDEB8,
+  0x3FF007BD,  0xE0000000,  0xBE32259E,  0x4CEC957E,
+  0x3FF007C1,  0xE0000000,  0x3E29B3C2,  0x128C86C6,
+  0x3FF007C5,  0xE4000000,  0xBE341697,  0xDEA61608,
+  0x3FF007C9,  0xE4000000,  0x3E2611ED,  0xFEA09E70,
+  0x3FF007CD,  0xE8000000,  0xBE35C772,  0x58D49AE3,
+  0x3FF007D1,  0xE8000000,  0x3E22F058,  0x39DA3D42,
+  0x3FF007D5,  0xEC000000,  0xBE37382D,  0x9B689043,
+  0x3FF007D9,  0xEC000000,  0x3E204F01,  0x04589AD6,
+  0x3FF007DD,  0xF0000000,  0xBE3868C9,  0x86525259,
+  0x3FF007E1,  0xF0000000,  0x3E1C5BD1,  0x3C761DAC,
+  0x3FF007E5,  0xF4000000,  0xBE395945,  0xF9822D4C,
+  0x3FF007E9,  0xF4000000,  0x3E191A1E,  0x8F4221F9,
+  0x3FF007ED,  0xF8000000,  0xBE3A09A2,  0xD4E85D3A,
+  0x3FF007F1,  0xF8000000,  0x3E16D8EA,  0x81547225,
+  0x3FF007F5,  0xFC000000,  0xBE3A79DF,  0xF8750E3B,
+  0x3FF007F9,  0xFC000000,  0x3E159835,  0x92EC7DE3,
+  0x3FF007FE,  0x00000000,  0xBE3AA9FD,  0x44185C5D } };
+
+#else
+#ifdef LITTLE_ENDI
+
+static const  union {
+  int i[1424];
+  double x[712];
+} coar = {  .i = {
+  0xC8000000,  0x3FE69A59,  0x6079C9F7,  0x3DF22D4D,
+  0xC8000000,  0x3FE6A5A9,  0x25AF6823,  0x3E19882D,
+  0x74000000,  0x3FE6B0FF,  0x31DABF59,  0xBE221476,
+  0xC8000000,  0x3FE6BC5A,  0x99A2DC0A,  0x3E2312AC,
+  0xD0000000,  0x3FE6C7BB,  0xCE9F9355,  0xBE265926,
+  0x84000000,  0x3FE6D322,  0x2D298DED,  0x3E2F2C26,
+  0xF4000000,  0x3FE6DE8E,  0x1E748D2F,  0xBE2EC28E,
+  0x14000000,  0x3FE6EA01,  0xC68CB7E5,  0x3E2D8C6D,
+  0xF4000000,  0x3FE6F578,  0x419FE2F0,  0x3DEE1A9E,
+  0x90000000,  0x3FE700F6,  0xDEAEAE34,  0xBDFF1AFD,
+  0xEC000000,  0x3FE70C79,  0x558B7122,  0xBE0730FE,
+  0x0C000000,  0x3FE71803,  0x2D280C3B,  0xBE25CB85,
+  0xF0000000,  0x3FE72391,  0x337B7B54,  0xBE06F2CE,
+  0x9C000000,  0x3FE72F26,  0x45C02B72,  0x3E289BCA,
+  0x18000000,  0x3FE73AC1,  0x5039F1CA,  0xBE18DEA6,
+  0x60000000,  0x3FE74661,  0x86CE0538,  0xBE09D090,
+  0x78000000,  0x3FE75207,  0xCFCE5DDB,  0x3E290E79,
+  0x68000000,  0x3FE75DB3,  0xB249A17C,  0x3DD61DF0,
+  0x2C000000,  0x3FE76965,  0xE13445F7,  0x3E2F22F7,
+  0xD0000000,  0x3FE7751C,  0x874E75CE,  0xBE2CD454,
+  0x4C000000,  0x3FE780DA,  0xDF43E3BC,  0xBE0159CE,
+  0xA8000000,  0x3FE78C9D,  0x699A1332,  0x3E279291,
+  0xEC000000,  0x3FE79866,  0x2DD98C6C,  0xBE2A0BCD,
+  0x10000000,  0x3FE7A436,  0x15AC979E,  0x3E25F375,
+  0x20000000,  0x3FE7B00B,  0x2FEAFCF6,  0x3E26CCF5,
+  0x1C000000,  0x3FE7BBE6,  0x53ADAD67,  0x3E27D4F4,
+  0x08000000,  0x3FE7C7C7,  0x7FBD9566,  0x3E10EEC7,
+  0xE4000000,  0x3FE7D3AD,  0x9A831D86,  0x3E2837F0,
+  0xB8000000,  0x3FE7DF9A,  0x5CB4C35B,  0xBE129BE0,
+  0x80000000,  0x3FE7EB8D,  0x0234F04D,  0x3E23990A,
+  0x44000000,  0x3FE7F786,  0x64D5C842,  0x3E2EB807,
+  0x08000000,  0x3FE80385,  0x02B4E9E8,  0x3E0FC86F,
+  0xCC000000,  0x3FE80F89,  0x7B4274BF,  0xBDD7B5B3,
+  0x94000000,  0x3FE81B94,  0xB899B00F,  0xBE16888B,
+  0x60000000,  0x3FE827A5,  0x5E94D155,  0x3E288971,
+  0x38000000,  0x3FE833BC,  0x099F3E5E,  0x3E2AEEB2,
+  0x20000000,  0x3FE83FD9,  0x3FF60B7C,  0xBE23B922,
+  0x14000000,  0x3FE84BFC,  0x2DBD8012,  0xBDF7D3B1,
+  0x1C000000,  0x3FE85825,  0xA8872BEB,  0xBDF24BA3,
+  0x38000000,  0x3FE86454,  0x01AA18A7,  0x3E2EFE04,
+  0x70000000,  0x3FE87089,  0x944496A2,  0x3E21986C,
+  0xC4000000,  0x3FE87CC4,  0xB71FFAFF,  0x3E096A8B,
+  0x38000000,  0x3FE88906,  0xBC4C7AC5,  0xBE21CE0A,
+  0xCC000000,  0x3FE8954D,  0xBAC02491,  0xBE076F45,
+  0x84000000,  0x3FE8A19B,  0xD922B925,  0x3E2B4FA2,
+  0x68000000,  0x3FE8ADEF,  0x641863AF,  0x3DF759DB,
+  0x78000000,  0x3FE8BA49,  0xC6AB5E04,  0xBE2DB97C,
+  0xB4000000,  0x3FE8C6A9,  0xE2156713,  0xBE25364C,
+  0x20000000,  0x3FE8D310,  0x862BEFF7,  0x3E1BEB7C,
+  0xC4000000,  0x3FE8DF7C,  0x1CEA33A5,  0xBDF4DD0C,
+  0xA0000000,  0x3FE8EBEF,  0x51797D47,  0xBE2537DF,
+  0xB4000000,  0x3FE8F868,  0xF0107B28,  0x3E0FB1C4,
+  0x08000000,  0x3FE904E8,  0xE01B68BD,  0x3E0AD6A1,
+  0x9C000000,  0x3FE9116D,  0x1F78D9D9,  0x3E292117,
+  0x78000000,  0x3FE91DF9,  0x4F50E5CF,  0xBE1D75DA,
+  0x98000000,  0x3FE92A8B,  0x74959E58,  0x3DE5102B,
+  0x04000000,  0x3FE93724,  0xD2216C35,  0xBE01CA50,
+  0xBC000000,  0x3FE943C2,  0xB0B05884,  0x3E225BFD,
+  0xC8000000,  0x3FE95067,  0x60B7C5C1,  0xBE0F2183,
+  0x24000000,  0x3FE95D13,  0xB5860441,  0x3E2FB47A,
+  0xDC000000,  0x3FE969C4,  0xE2D4059E,  0xBE01FFD2,
+  0xEC000000,  0x3FE9767C,  0x12BB6A8D,  0xBDE9ED72,
+  0x58000000,  0x3FE9833B,  0x43BFFB24,  0x3E2B3815,
+  0x28000000,  0x3FE99000,  0xEE9EAD1E,  0x3E03FA22,
+  0x5C000000,  0x3FE99CCB,  0x377138F7,  0xBE213841,
+  0xF4000000,  0x3FE9A99C,  0xDB636C94,  0x3E178105,
+  0xF8000000,  0x3FE9B674,  0xF5720122,  0x3E1E5E7A,
+  0x6C000000,  0x3FE9C353,  0xA2AC5AAE,  0xBE238BFF,
+  0x4C000000,  0x3FE9D038,  0xF93BDBD8,  0x3E270893,
+  0xA4000000,  0x3FE9DD23,  0x354B86CF,  0x3DF40420,
+  0x74000000,  0x3FE9EA15,  0x88CB06B7,  0xBE2D76D3,
+  0xBC000000,  0x3FE9F70D,  0x9ED0EC60,  0xBE251639,
+  0x80000000,  0x3FEA040C,  0xE2DDE506,  0x3E1F06E9,
+  0xC8000000,  0x3FEA1111,  0x8E6DB477,  0x3E014549,
+  0x94000000,  0x3FEA1E1D,  0xF8716509,  0xBDF4BC17,
+  0xE8000000,  0x3FEA2B2F,  0xDA723A49,  0xBE2107DB,
+  0xC4000000,  0x3FEA3848,  0x986AA369,  0x3E1A932A,
+  0x30000000,  0x3FEA4568,  0x41592CDB,  0x3E198092,
+  0x30000000,  0x3FEA528E,  0x676BCAB8,  0xBE2E260F,
+  0xC0000000,  0x3FEA5FBA,  0x2D5D5610,  0x3DE2E821,
+  0xE8000000,  0x3FEA6CED,  0x7DA20167,  0x3E2F7046,
+  0xB0000000,  0x3FEA7A27,  0xF9FAAD30,  0xBE1D2832,
+  0x14000000,  0x3FEA8768,  0x43FA6C45,  0xBE23F788,
+  0x18000000,  0x3FEA94AF,  0xAA082732,  0x3E011E27,
+  0xC4000000,  0x3FEAA1FC,  0xC682F0BF,  0xBE20BACB,
+  0x18000000,  0x3FEAAF51,  0x7BD08C78,  0xBE2DC7DD,
+  0x14000000,  0x3FEABCAC,  0xA3B10F9A,  0x3E2271A2,
+  0xC4000000,  0x3FEACA0D,  0x7966F94C,  0xBE15449C,
+  0x24000000,  0x3FEAD776,  0x6FD8F3EE,  0x3DD06137,
+  0x3C000000,  0x3FEAE4E5,  0x8C5A144A,  0xBE267CD1,
+  0x0C000000,  0x3FEAF25B,  0xB59DA94B,  0xBE29E584,
+  0x98000000,  0x3FEAFFD7,  0x7B52192F,  0xBE23DFCF,
+  0xE4000000,  0x3FEB0D5A,  0x78A76B45,  0xBE1CF2FE,
+  0xF4000000,  0x3FEB1AE4,  0x7EC80FF6,  0xBE23A561,
+  0xC8000000,  0x3FEB2875,  0x932EED68,  0x3E22C4C9,
+  0x68000000,  0x3FEB360D,  0xB5833C97,  0x3E2B085C,
+  0xD8000000,  0x3FEB43AB,  0x93B9319A,  0xBE01F093,
+  0x18000000,  0x3FEB5151,  0xFABCE670,  0xBE254F01,
+  0x28000000,  0x3FEB5EFD,  0x627ABFB0,  0x3E2F24C2,
+  0x14000000,  0x3FEB6CB0,  0xE6AC0B48,  0x3E1F1EEC,
+  0xDC000000,  0x3FEB7A69,  0x127F9ABC,  0xBE1A8671,
+  0x80000000,  0x3FEB882A,  0xC87C73B3,  0xBDCB0C28,
+  0x08000000,  0x3FEB95F2,  0x7F2B5A97,  0xBE22E8DD,
+  0x74000000,  0x3FEBA3C0,  0x2D22A9D5,  0xBE1B3645,
+  0xC8000000,  0x3FEBB195,  0x428F8B88,  0x3E0ADACA,
+  0x0C000000,  0x3FEBBF72,  0xCDF9F681,  0xBE2E9E07,
+  0x3C000000,  0x3FEBCD55,  0x7FA54ACF,  0xBE08A127,
+  0x60000000,  0x3FEBDB3F,  0x8225B385,  0x3E0E92CE,
+  0x7C000000,  0x3FEBE930,  0x7BB09485,  0x3DF38C2A,
+  0x94000000,  0x3FEBF728,  0xF681FA5F,  0xBE2DFD64,
+  0xA4000000,  0x3FEC0527,  0xDCE88BD2,  0x3E2E384D,
+  0xBC000000,  0x3FEC132D,  0xFE46A893,  0xBE20F111,
+  0xD4000000,  0x3FEC213A,  0xB189BFDA,  0x3E193DA1,
+  0xF8000000,  0x3FEC2F4E,  0x0E39FB00,  0xBE20E3A1,
+  0x24000000,  0x3FEC3D6A,  0x30F0FAC5,  0x3E1DB044,
+  0x64000000,  0x3FEC4B8C,  0x97446B17,  0xBE2BC12C,
+  0xB4000000,  0x3FEC59B5,  0x963F4150,  0xBE282696,
+  0x18000000,  0x3FEC67E6,  0x3049824B,  0x3E224D26,
+  0x98000000,  0x3FEC761D,  0x87F84C7D,  0x3E2C5BA5,
+  0x38000000,  0x3FEC845C,  0xC4852339,  0xBDE1D14D,
+  0xF8000000,  0x3FEC92A1,  0x5588D9E1,  0xBE1A451E,
+  0xDC000000,  0x3FECA0EE,  0x68BFF457,  0xBE1D3B96,
+  0xE8000000,  0x3FECAF42,  0x4DADF774,  0xBE18B670,
+  0x20000000,  0x3FECBD9E,  0x7FB1FC01,  0xBE1A1548,
+  0x88000000,  0x3FECCC00,  0x78FC5AF0,  0xBE273F2E,
+  0x20000000,  0x3FECDA6A,  0xA6F4A841,  0x3E1D218F,
+  0xF0000000,  0x3FECE8DA,  0x4D002CA0,  0x3E2E0BA9,
+  0xFC000000,  0x3FECF752,  0x065EF979,  0x3E20F4BB,
+  0x48000000,  0x3FED05D2,  0x11793B33,  0xBE2ED3D5,
+  0xD0000000,  0x3FED1458,  0x913341B3,  0x3E115E3C,
+  0xA0000000,  0x3FED22E6,  0xB3546109,  0x3DE97C02,
+  0xB8000000,  0x3FED317B,  0x1BF898EF,  0x3E087540,
+  0x1C000000,  0x3FED4018,  0x346F9641,  0x3E209430,
+  0xD0000000,  0x3FED4EBB,  0x88F4B20B,  0x3E2B6DF4,
+  0xDC000000,  0x3FED5D66,  0x0CB26035,  0xBE2EC68F,
+  0x38000000,  0x3FED6C19,  0x1F44D9C3,  0x3E2CA2C8,
+  0xF4000000,  0x3FED7AD2,  0x41704EE0,  0x3E10E6F4,
+  0x0C000000,  0x3FED8994,  0x25F8F0E2,  0x3E2F9273,
+  0x88000000,  0x3FED985C,  0x318798DE,  0x3E2D041A,
+  0x6C000000,  0x3FEDA72C,  0x9349CF58,  0xBE005680,
+  0xB8000000,  0x3FEDB603,  0xCF0C934D,  0xBE10F665,
+  0x70000000,  0x3FEDC4E2,  0x19461C64,  0x3E166124,
+  0x9C000000,  0x3FEDD3C8,  0x405624C8,  0xBE1B2ED6,
+  0x3C000000,  0x3FEDE2B6,  0x62171501,  0xBE273A7F,
+  0x54000000,  0x3FEDF1AB,  0xE36E1450,  0xBE26022B,
+  0xE8000000,  0x3FEE00A7,  0x2E07AE15,  0xBE1C341E,
+  0xFC000000,  0x3FEE0FAB,  0x18D0E701,  0xBDFC7EAE,
+  0x94000000,  0x3FEE1EB7,  0xECD1FF8B,  0x3E06B34F,
+  0xB4000000,  0x3FEE2DCA,  0x6813A649,  0x3E1394A3,
+  0x60000000,  0x3FEE3CE5,  0xC1754D14,  0x3E045496,
+  0x9C000000,  0x3FEE4C07,  0xF5C6087C,  0xBE180FFF,
+  0x68000000,  0x3FEE5B31,  0xADD9A300,  0x3E22FBCD,
+  0xCC000000,  0x3FEE6A62,  0xAF0289E5,  0x3E2EC7C7,
+  0xCC000000,  0x3FEE799B,  0x3FB3EDD4,  0x3E242182,
+  0x6C000000,  0x3FEE88DC,  0x04E39885,  0xBE201304,
+  0xAC000000,  0x3FEE9824,  0xE6831D31,  0xBE20D352,
+  0x90000000,  0x3FEEA774,  0x618DFCEB,  0x3E1E032D,
+  0x20000000,  0x3FEEB6CC,  0xF9BB457E,  0x3E1956A3,
+  0x60000000,  0x3FEEC62B,  0x50845DB2,  0xBE2A77E0,
+  0x4C000000,  0x3FEED592,  0x47C43858,  0x3E2714F7,
+  0xF0000000,  0x3FEEE500,  0x71813A66,  0x3E2EED96,
+  0x50000000,  0x3FEEF477,  0x4FB4AA34,  0xBE04CDBE,
+  0x6C000000,  0x3FEF03F5,  0x86EB4FF5,  0xBE2774A2,
+  0x48000000,  0x3FEF137B,  0xAD43B2D2,  0xBE29DD95,
+  0xE8000000,  0x3FEF2308,  0xAC16E506,  0xBE1CADB0,
+  0x50000000,  0x3FEF329E,  0x58745C7B,  0x3E12AC33,
+  0x88000000,  0x3FEF423B,  0x6EC2D854,  0xBE248118,
+  0x8C000000,  0x3FEF51E0,  0x304ACE08,  0x3E26986B,
+  0x68000000,  0x3FEF618D,  0x3B09354E,  0x3E126D81,
+  0x1C000000,  0x3FEF7142,  0x773C23B3,  0x3DF06AAE,
+  0xAC000000,  0x3FEF80FE,  0xD82EF423,  0xBDA105B6,
+  0x1C000000,  0x3FEF90C3,  0x465499B8,  0x3DECDEED,
+  0x70000000,  0x3FEFA08F,  0xE2EF03AE,  0x3E0AEFD4,
+  0xAC000000,  0x3FEFB063,  0x0567B2E7,  0x3E1BD4C0,
+  0xD4000000,  0x3FEFC03F,  0x4F97FCBF,  0x3E26AA22,
+  0xF0000000,  0x3FEFD023,  0x5E4E88D1,  0xBE2F9420,
+  0xFC000000,  0x3FEFE00F,  0x438E52E2,  0xBE254004,
+  0x00000000,  0x3FEFF004,  0xEEE93EFC,  0xBE1552AA,
+  0x00000000,  0x3FF00000,  0x00000000,  0x00000000,
+  0x00000000,  0x3FF00802,  0x4449F507,  0x3E155800,
+  0x04000000,  0x3FF01008,  0x882D75D6,  0xBE354AA8,
+  0x08000000,  0x3FF01812,  0x3740DE56,  0x3E303610,
+  0x14000000,  0x3FF02020,  0x5B0C3264,  0x3E360044,
+  0x28000000,  0x3FF02832,  0x0197EDC3,  0x3E3C4C26,
+  0x48000000,  0x3FF03048,  0x5046CA09,  0x3E0B103B,
+  0x74000000,  0x3FF03862,  0xF9A62624,  0xBE34659C,
+  0xAC000000,  0x3FF04080,  0xDD0A8F37,  0xBE254438,
+  0xF4000000,  0x3FF048A2,  0x97AFB6E2,  0x3DF256C2,
+  0x50000000,  0x3FF050C9,  0x923D25E1,  0xBE3085DF,
+  0xC0000000,  0x3FF058F3,  0x5EA3B091,  0xBE3F0A93,
+  0x44000000,  0x3FF06122,  0x5D63534C,  0xBE237DE4,
+  0xE0000000,  0x3FF06954,  0xFF0C58B7,  0x3E301719,
+  0x98000000,  0x3FF0718B,  0x9DF7B665,  0x3E2E8410,
+  0x6C000000,  0x3FF079C6,  0x3B127222,  0x3E349CB9,
+  0x60000000,  0x3FF08205,  0x98E0BD08,  0x3DF127EC,
+  0x74000000,  0x3FF08A48,  0x706CC41F,  0xBE24C1B6,
+  0xA8000000,  0x3FF0928F,  0x093044EF,  0x3E334EF9,
+  0x04000000,  0x3FF09ADB,  0x56BC6C83,  0xBE1304B1,
+  0x84000000,  0x3FF0A32A,  0xB028B984,  0x3E2D383E,
+  0x30000000,  0x3FF0AB7E,  0x64E7A202,  0xBE315B1E,
+  0x04000000,  0x3FF0B3D6,  0xC678291E,  0xBE0AC1E6,
+  0x04000000,  0x3FF0BC32,  0x2F12FFE2,  0x3E3A0418,
+  0x38000000,  0x3FF0C492,  0x43D6D302,  0xBE37D617,
+  0x98000000,  0x3FF0CCF6,  0x152CC8FA,  0x3E2133F2,
+  0x2C000000,  0x3FF0D55F,  0xE966E6B7,  0x3E3CE5D1,
+  0xF8000000,  0x3FF0DDCB,  0x7BCACA64,  0x3E1ABF24,
+  0xFC000000,  0x3FF0E63C,  0x2E8CDBED,  0xBE3854F6,
+  0x38000000,  0x3FF0EEB2,  0x0C32156B,  0xBE3E6463,
+  0xAC000000,  0x3FF0F72B,  0xB69772CC,  0x3E365671,
+  0x64000000,  0x3FF0FFA9,  0x02B1201A,  0xBE383E9A,
+  0x58000000,  0x3FF1082B,  0x50549CC0,  0xBE205962,
+  0x90000000,  0x3FF110B1,  0xFFDACA72,  0xBE376BFE,
+  0x08000000,  0x3FF1193C,  0x5C43E2F3,  0x3E3C1C59,
+  0xCC000000,  0x3FF121CA,  0xF7067C8B,  0xBE26D374,
+  0xD4000000,  0x3FF12A5D,  0x4DDAFE1D,  0x3E343CCC,
+  0x28000000,  0x3FF132F5,  0x58EBCB7F,  0x3E3D5C16,
+  0xCC000000,  0x3FF13B90,  0xB66E8B53,  0xBE2B5D12,
+  0xBC000000,  0x3FF14430,  0xB326B482,  0xBE24E919,
+  0xFC000000,  0x3FF14CD4,  0xC8AABD43,  0x3E23139A,
+  0x90000000,  0x3FF1557D,  0x16743B55,  0x3E30DD8B,
+  0x7C000000,  0x3FF15E2A,  0x35904C50,  0xBE31D701,
+  0xBC000000,  0x3FF166DB,  0x30E0CA83,  0x3E107F42,
+  0x58000000,  0x3FF16F91,  0xDA1B7123,  0xBE24F1F2,
+  0x50000000,  0x3FF1784B,  0x0DC79E23,  0xBE3ACAF2,
+  0xA4000000,  0x3FF18109,  0x609374EE,  0xBE23DC79,
+  0x58000000,  0x3FF189CC,  0x3A40C3B7,  0x3E262CF7,
+  0x70000000,  0x3FF19293,  0x5A24F463,  0x3E1D3833,
+  0xEC000000,  0x3FF19B5E,  0x8A2E4440,  0x3E2BA9AD,
+  0xD0000000,  0x3FF1A42E,  0x61C41828,  0x3DFD8CBC,
+  0x1C000000,  0x3FF1AD03,  0x5A4DDF0D,  0x3E1A65E6,
+  0xD4000000,  0x3FF1B5DB,  0x9F828DB5,  0xBDE2FDBB,
+  0xF8000000,  0x3FF1BEB8,  0xB79B700F,  0x3E2F4EE8,
+  0x8C000000,  0x3FF1C79A,  0x0DE1D7E8,  0x3E3ACC35,
+  0x94000000,  0x3FF1D080,  0xFF9E20A0,  0x3E11729E,
+  0x10000000,  0x3FF1D96B,  0x6C2EA70B,  0xBE300F18,
+  0x00000000,  0x3FF1E25A,  0xCE425A35,  0x3DF32E02,
+  0x68000000,  0x3FF1EB4D,  0x9A322D12,  0x3E3BDE56,
+  0x50000000,  0x3FF1F445,  0xBA737AEF,  0xBE3C3F0D,
+  0xB0000000,  0x3FF1FD41,  0xC896DB7A,  0xBE0A2DD0,
+  0x90000000,  0x3FF20642,  0xF8B782F6,  0x3E2577B0,
+  0xF4000000,  0x3FF20F47,  0x73607FC8,  0xBE2C6DA3,
+  0xD8000000,  0x3FF21851,  0xC8917348,  0x3E35F7D1,
+  0x44000000,  0x3FF22160,  0xCF9CED69,  0x3E3B6F5C,
+  0x3C000000,  0x3FF22A73,  0x85775C2E,  0xBE39967E,
+  0xB8000000,  0x3FF2338A,  0x497226D4,  0x3E3B3213,
+  0xC4000000,  0x3FF23CA6,  0x30733227,  0x3E3E2710,
+  0x60000000,  0x3FF245C7,  0xAF215A72,  0x3E33B8A9,
+  0x90000000,  0x3FF24EEC,  0x1365623F,  0xBE3F96B2,
+  0x50000000,  0x3FF25816,  0x27DEE202,  0xBE37324F,
+  0xA4000000,  0x3FF26144,  0x4E484D87,  0x3E318CD5,
+  0x94000000,  0x3FF26A77,  0xA94519E8,  0xBDE3FD37,
+  0x1C000000,  0x3FF273AF,  0xEE788C29,  0x3E37132F,
+  0x44000000,  0x3FF27CEB,  0xE842E5C0,  0xBE03DDB7,
+  0x08000000,  0x3FF2862C,  0xE17C9693,  0x3E37A3FB,
+  0x70000000,  0x3FF28F71,  0xAEB3D9A0,  0x3E24EABF,
+  0x7C000000,  0x3FF298BB,  0x853B0733,  0xBE13C7B6,
+  0x2C000000,  0x3FF2A20A,  0xC7B588B5,  0x3E2D2C80,
+  0x88000000,  0x3FF2AB5D,  0x708F3912,  0xBE35B750,
+  0x8C000000,  0x3FF2B4B5,  0xD5FD9130,  0xBE291A70,
+  0x3C000000,  0x3FF2BE12,  0x0CCF9F73,  0x3E2EE937,
+  0xA0000000,  0x3FF2C773,  0xD42CF76C,  0xBE3C3F0C,
+  0xB0000000,  0x3FF2D0D9,  0x60763D61,  0x3E35DD54,
+  0x78000000,  0x3FF2DA44,  0xE7D6AA3B,  0x3E26C418,
+  0xF8000000,  0x3FF2E3B3,  0x6FB9B7A8,  0xBE3605C6,
+  0x2C000000,  0x3FF2ED28,  0x24DCDDF5,  0x3E3763D4,
+  0x20000000,  0x3FF2F6A1,  0xA8EC1AA8,  0xBE1A411E,
+  0xD0000000,  0x3FF3001E,  0x1FE8546F,  0xBE23FCA1,
+  0x40000000,  0x3FF309A1,  0x3AAEE75E,  0xBE29DF0D,
+  0x70000000,  0x3FF31328,  0x3C2C4206,  0x3E36A5D6,
+  0x68000000,  0x3FF31CB4,  0xB4C979B0,  0x3E1B7A3E,
+  0x28000000,  0x3FF32645,  0x706CD593,  0xBE36157D,
+  0xB0000000,  0x3FF32FDA,  0x8DA4C646,  0xBE39F357,
+  0x04000000,  0x3FF33975,  0xD575FE6F,  0xBE3E64DE,
+  0x24000000,  0x3FF34314,  0x44D008E0,  0x3E07F9E3,
+  0x18000000,  0x3FF34CB8,  0x5A563E77,  0xBE2E94F9,
+  0xDC000000,  0x3FF35660,  0x2475EF19,  0x3E314DC2,
+  0x78000000,  0x3FF3600E,  0xA33AC606,  0x3E26D623,
+  0xEC000000,  0x3FF369C0,  0xC05B3160,  0x3E170F86,
+  0x3C000000,  0x3FF37378,  0xDB0AE31A,  0xBE38DDFE,
+  0x64000000,  0x3FF37D34,  0x5706B570,  0x3E3662A9,
+  0x70000000,  0x3FF386F5,  0x6770731E,  0xBE1625E4,
+  0x5C000000,  0x3FF390BB,  0x62971091,  0xBE1678F1,
+  0x2C000000,  0x3FF39A86,  0xD045CB0C,  0xBE061F7C,
+  0xE4000000,  0x3FF3A455,  0x568B1CA2,  0xBE35CF51,
+  0x84000000,  0x3FF3AE2A,  0x7FB61F58,  0xBE378185,
+  0x0C000000,  0x3FF3B804,  0x4FA133AF,  0x3E3F77F4,
+  0x88000000,  0x3FF3C1E2,  0xB00B73FE,  0xBE22F96A,
+  0xF0000000,  0x3FF3CBC5,  0x1EB4CE2F,  0x3E351A64,
+  0x50000000,  0x3FF3D5AE,  0xD3755639,  0xBE3D3516,
+  0xA0000000,  0x3FF3DF9B,  0x43E8C10E,  0x3E1CD938,
+  0xEC000000,  0x3FF3E98D,  0x455C8842,  0xBE35EE23,
+  0x30000000,  0x3FF3F385,  0x96C9F4ED,  0xBE29B282,
+  0x70000000,  0x3FF3FD81,  0x3168CC0B,  0x3E24A40E,
+  0xB0000000,  0x3FF40782,  0x86C72839,  0x3E3784BC,
+  0xF4000000,  0x3FF41188,  0x0785D847,  0x3E061F19,
+  0x3C000000,  0x3FF41B94,  0xE654A9C9,  0xBE27AEF2,
+  0x88000000,  0x3FF425A4,  0xF9E4C1BA,  0x3E33DFC3,
+  0xE0000000,  0x3FF42FB9,  0x593D0C75,  0x3E2455A8,
+  0x44000000,  0x3FF439D4,  0x238B65D1,  0xBDE41D4E,
+  0xB4000000,  0x3FF443F3,  0x454CBECB,  0x3E3BE616,
+  0x38000000,  0x3FF44E18,  0x931C5332,  0x3E207B3C,
+  0xD0000000,  0x3FF45841,  0x7615DCC9,  0xBE330846,
+  0x7C000000,  0x3FF46270,  0xE497F84E,  0xBE2A8A7B,
+  0x40000000,  0x3FF46CA4,  0xF737AF78,  0x3E020B50,
+  0x20000000,  0x3FF476DD,  0xE34AFBD3,  0x3E116B19,
+  0x20000000,  0x3FF4811B,  0x841EDB52,  0xBE3E15A7,
+  0x3C000000,  0x3FF48B5E,  0x33B3DE1E,  0x3E0F40C3,
+  0x7C000000,  0x3FF495A6,  0x92EFEE02,  0x3E33607F,
+  0xE4000000,  0x3FF49FF3,  0x14F7E168,  0xBE1A2DB5,
+  0x70000000,  0x3FF4AA46,  0x3EBA1C94,  0x3E3F59EC,
+  0x2C000000,  0x3FF4B49E,  0x8B9AE885,  0xBE31A539,
+  0x10000000,  0x3FF4BEFB,  0xF13C8C95,  0x3E2FAC0B,
+  0x28000000,  0x3FF4C95D,  0xF8B74775,  0xBE32C0BB,
+  0x70000000,  0x3FF4D3C4,  0x4F9474BB,  0xBE2FC24E,
+  0xEC000000,  0x3FF4DE30,  0x09DA911F,  0x3E008F30,
+  0xA0000000,  0x3FF4E8A2,  0xBAF8D98B,  0x3E2994C1,
+  0x90000000,  0x3FF4F319,  0x18648D0A,  0xBE17C38C,
+  0xBC000000,  0x3FF4FD95,  0xF22F8698,  0xBE288852,
+  0x28000000,  0x3FF50817,  0x30A2C153,  0xBE3C3EC3,
+  0xD4000000,  0x3FF5129D,  0x968492AA,  0xBE27B606,
+  0xC4000000,  0x3FF51D29,  0x61101629,  0x3E2E0396,
+  0xFC000000,  0x3FF527BA,  0xDAEEAB38,  0x3E3E876F,
+  0x80000000,  0x3FF53251,  0xED945B30,  0x3E29F59E,
+  0x50000000,  0x3FF53CED,  0x0B4AE3F1,  0x3E12D7DA,
+  0x70000000,  0x3FF5478E,  0x5FB946D0,  0xBE2FAFB8,
+  0xE0000000,  0x3FF55234,  0x87D80C66,  0xBE18A8B3,
+  0xA4000000,  0x3FF55CE0,  0x764CF85C,  0x3E28B18F,
+  0xC0000000,  0x3FF56791,  0x2BDBC6F4,  0x3E326017,
+  0x38000000,  0x3FF57248,  0x53D523FE,  0xBE229F98,
+  0x0C000000,  0x3FF57D04,  0x4D9B8720,  0xBE3BDD08,
+  0x3C000000,  0x3FF587C5,  0x09D8749E,  0x3E169EBC,
+  0xD0000000,  0x3FF5928B,  0x339C2080,  0x3E190C8C,
+  0xC8000000,  0x3FF59D57,  0xDE75E9CA,  0x3E310FA4,
+  0x28000000,  0x3FF5A829,  0x1097F186,  0x3E313D18,
+  0xF4000000,  0x3FF5B2FF,  0xD51C23F6,  0xBE2BDE04,
+  0x28000000,  0x3FF5BDDC,  0x8938C386,  0x3E3EE67E,
+  0xD0000000,  0x3FF5C8BD,  0x47DF6575,  0x3E0973B8,
+  0xE8000000,  0x3FF5D3A4,  0x1DB97781,  0x3E24DF02,
+  0x78000000,  0x3FF5DE91,  0xAC4AECDC,  0xBE3FBA00,
+  0x7C000000,  0x3FF5E983,  0x939F646A,  0xBE2F37AF,
+  0xFC000000,  0x3FF5F47A,  0x58A6EEE9,  0xBE396DEF,
+  0xF8000000,  0x3FF5FF77,  0xE3613C7B,  0xBE315248,
+  0x74000000,  0x3FF60A7A,  0xF1553706,  0xBE26A9E2,
+  0x74000000,  0x3FF61582,  0xAE4D7CB6,  0xBE3B6BF6,
+  0xF8000000,  0x3FF6208F,  0x9EB5EBA5,  0xBE35775B,
+  0x04000000,  0x3FF62BA3,  0xC1E43506,  0xBE2A821B,
+  0x9C000000,  0x3FF636BB,  0x7B2D8CF4,  0xBE367CDA,
+  0xC0000000,  0x3FF641D9,  0x3E907A1D,  0xBE13218B,
+  0x74000000,  0x3FF64CFD,  0x7BF5DFE4,  0x3E3454EE,
+  0xC0000000,  0x3FF65826,  0x6366C5FD,  0xBE3E960F,
+  0x9C000000,  0x3FF66355,  0x8B43C17E,  0x3E2E378F,
+  0x14000000,  0x3FF66E8A,  0xA4306535,  0x3E244BE0,
+  0x28000000,  0x3FF679C4,  0x8DF63D6E,  0xBDE4B6C1,
+  0xD8000000,  0x3FF68503,  0xE6A239CF,  0x3E3BA122,
+  0x2C000000,  0x3FF69049,  0x59FB5F30,  0x3E27F286,
+  0x24000000,  0x3FF69B94,  0x971D3970,  0xBE044041 } };
+
+static const union {
+  int4   i[2048];
+  double x[1024];
+}  fine = { .i = {
+  0x00000000,  0x3FF00000,  0x00000000,  0x00000000,
+  0x00000000,  0x3FF00004,  0x55556AAB,  0x3DA00001,
+  0x00000000,  0x3FF00008,  0xAAAB0000,  0x3DC00002,
+  0x00000000,  0x3FF0000C,  0x8000D800,  0x3DD20004,
+  0x00000000,  0x3FF00010,  0x5556AAAB,  0x3DE00005,
+  0x00000000,  0x3FF00014,  0x6AADEC01,  0x3DE9000A,
+  0x00000000,  0x3FF00018,  0x00036001,  0x3DF20009,
+  0x00000000,  0x3FF0001C,  0x4AB0EB58,  0x3DF8800E,
+  0x00000000,  0x3FF00020,  0xAAB00002,  0x3E00000A,
+  0x00000000,  0x3FF00024,  0x30088B04,  0x3E04400F,
+  0x00000000,  0x3FF00028,  0xD5625AB1,  0x3E090014,
+  0x00000000,  0x3FF0002C,  0xBABDBB0A,  0x3E0E401B,
+  0x00000000,  0x3FF00030,  0x000D8008,  0x3E120012,
+  0x00000000,  0x3FF00034,  0xE2BD42E1,  0x3E152016,
+  0x00000000,  0x3FF00038,  0x956E5812,  0x3E18801C,
+  0x00000000,  0x3FF0003C,  0x2820F599,  0x3E1C2023,
+  0x00000000,  0x3FF00040,  0x556AAABC,  0x3E200015,
+  0x00000000,  0x3FF00044,  0x96C5DAD7,  0x3E221019,
+  0x00000000,  0x3FF00048,  0x60222C1F,  0x3E24401E,
+  0x00000000,  0x3FF0004C,  0xB97FC193,  0x3E269023,
+  0x00000000,  0x3FF00050,  0xAADEC034,  0x3E290029,
+  0x00000000,  0x3FF00054,  0x3C3F4F02,  0x3E2B9030,
+  0x00000000,  0x3FF00058,  0x75A196FF,  0x3E2E4037,
+  0x00000000,  0x3FF0005C,  0xAF82E194,  0x3E30881F,
+  0x00000000,  0x3FF00060,  0x00360041,  0x3E320024,
+  0x00000000,  0x3FF00064,  0xB0EA3F05,  0x3E338828,
+  0x00000000,  0x3FF00068,  0xC59FB661,  0x3E35202D,
+  0x00000000,  0x3FF0006C,  0x42567FD5,  0x3E36C833,
+  0x00000000,  0x3FF00070,  0x2B0EB5E1,  0x3E388039,
+  0x00000000,  0x3FF00074,  0x83C87407,  0x3E3A483F,
+  0x00000000,  0x3FF00078,  0x5083D6C6,  0x3E3C2046,
+  0x00000000,  0x3FF0007C,  0x9540FB9E,  0x3E3E084D,
+  0x04000000,  0x3FF00080,  0xA9FFFEEF,  0xBE3FFFAA,
+  0x04000000,  0x3FF00084,  0x693EF962,  0xBE3DF7A2,
+  0x04000000,  0x3FF00088,  0xA47BD339,  0xBE3BDF99,
+  0x04000000,  0x3FF0008C,  0x57B66AF5,  0xBE39B790,
+  0x04000000,  0x3FF00090,  0x7EEE9E14,  0xBE377F86,
+  0x04000000,  0x3FF00094,  0x16244916,  0xBE35377C,
+  0x04000000,  0x3FF00098,  0x1957477B,  0xBE32DF71,
+  0x04000000,  0x3FF0009C,  0x848773C2,  0xBE307765,
+  0x04000000,  0x3FF000A0,  0xA7694ED3,  0xBE2BFEB2,
+  0x04000000,  0x3FF000A4,  0x05BD75E2,  0xBE26EE99,
+  0x04000000,  0x3FF000A8,  0x1C0B0BB1,  0xBE21BE7E,
+  0x04000000,  0x3FF000AC,  0xC4A37A79,  0xBE18DCC3,
+  0x04000000,  0x3FF000B0,  0x4244D60F,  0xBE0BF911,
+  0x04000000,  0x3FF000B4,  0xEC91D848,  0xBDE6E255,
+  0x04000000,  0x3FF000B8,  0xEC1B8F0C,  0x3E0107EB,
+  0x04000000,  0x3FF000BC,  0x89BE52AA,  0x3E142439,
+  0x04000000,  0x3FF000C0,  0x06C01033,  0x3E200240,
+  0x04000000,  0x3FF000C4,  0xC8A9F760,  0x3E261264,
+  0x04000000,  0x3FF000C8,  0x129D3FDE,  0x3E2C428B,
+  0x04000000,  0x3FF000CC,  0x764D2658,  0x3E314959,
+  0x04000000,  0x3FF000D0,  0x2F50C16C,  0x3E34816E,
+  0x04000000,  0x3FF000D4,  0xB859A4AB,  0x3E37C983,
+  0x04000000,  0x3FF000D8,  0x15680499,  0x3E3B219A,
+  0x04000000,  0x3FF000DC,  0x4A7C16B5,  0x3E3E89B1,
+  0x08000000,  0x3FF000E0,  0xA469EE7E,  0xBE3DFE36,
+  0x08000000,  0x3FF000E4,  0xB349D37F,  0xBE3A761D,
+  0x08000000,  0x3FF000E8,  0xDE235FCD,  0xBE36DE03,
+  0x08000000,  0x3FF000EC,  0x20F659E6,  0xBE3335E9,
+  0x08000000,  0x3FF000F0,  0xEF850E8F,  0xBE2EFB9A,
+  0x08000000,  0x3FF000F4,  0xBD0F58E2,  0xBE276B61,
+  0x08000000,  0x3FF000F8,  0x45163381,  0xBE1F764D,
+  0x08000000,  0x3FF000FC,  0x5FDF589A,  0xBE0FABA6,
+  0x08000000,  0x3FF00100,  0xABBBBE94,  0x3D8555AA,
+  0x08000000,  0x3FF00104,  0xDABB690B,  0x3E102B2C,
+  0x08000000,  0x3FF00108,  0x7820FBA0,  0x3E2045D9,
+  0x08000000,  0x3FF0010C,  0x92F54742,  0x3E28961E,
+  0x08000000,  0x3FF00110,  0xE2ED8E39,  0x3E308332,
+  0x08000000,  0x3FF00114,  0x8C698119,  0x3E34CB57,
+  0x08000000,  0x3FF00118,  0x49EEC0C4,  0x3E39237D,
+  0x08000000,  0x3FF0011C,  0x1F7D92BC,  0x3E3D8BA4,
+  0x0C000000,  0x3FF00120,  0xEEE9C27D,  0xBE3DFC33,
+  0x0C000000,  0x3FF00124,  0xDD46F763,  0xBE39740A,
+  0x0C000000,  0x3FF00128,  0xA799C375,  0xBE34DBE0,
+  0x0C000000,  0x3FF0012C,  0x49E1DD2F,  0xBE3033B5,
+  0x0C000000,  0x3FF00130,  0x803DF41F,  0xBE26F711,
+  0x0C000000,  0x3FF00134,  0x19433A4C,  0xBE1ACD6C,
+  0x0C000000,  0x3FF00138,  0x8770E36F,  0xBDFDB2C1,
+  0x0C000000,  0x3FF0013C,  0x6B74A43E,  0x3E086820,
+  0x0C000000,  0x3FF00140,  0xDEC0D058,  0x3E200A6A,
+  0x0C000000,  0x3FF00144,  0x22BD7872,  0x3E2A1AD0,
+  0x0C000000,  0x3FF00148,  0xF769E132,  0x3E32259B,
+  0x0C000000,  0x3FF0014C,  0x2582289A,  0x3E374DD1,
+  0x0C000000,  0x3FF00150,  0x9FA7E4F4,  0x3E3C8607,
+  0x10000000,  0x3FF00154,  0x9624963C,  0xBE3E31C0,
+  0x10000000,  0x3FF00158,  0x77E2F472,  0xBE38D987,
+  0x10000000,  0x3FF0015C,  0x0192E02C,  0xBE33714D,
+  0x10000000,  0x3FF00160,  0x5E6805CB,  0xBE2BF222,
+  0x10000000,  0x3FF00164,  0xF98C0A34,  0xBE20E1A7,
+  0x10000000,  0x3FF00168,  0x32447238,  0xBE06C4AB,
+  0x10000000,  0x3FF0016C,  0xC225D8C1,  0x3E067D54,
+  0x10000000,  0x3FF00170,  0x05C4630F,  0x3E210FD8,
+  0x10000000,  0x3FF00174,  0xBB206115,  0x3E2CA05D,
+  0x10000000,  0x3FF00178,  0x2C4F14A6,  0x3E342873,
+  0x10000000,  0x3FF0017C,  0xF31F3B5E,  0x3E3A10B8,
+  0x14000000,  0x3FF00180,  0xC9FEFCC9,  0xBE3FF6FF,
+  0x14000000,  0x3FF00184,  0x070B344A,  0xBE39EEB7,
+  0x14000000,  0x3FF00188,  0xC0050AA2,  0xBE33D66C,
+  0x14000000,  0x3FF0018C,  0xE1D83C97,  0xBE2B5C41,
+  0x14000000,  0x3FF00190,  0x57003305,  0xBE1DD74E,
+  0x14000000,  0x3FF00194,  0xA80727F1,  0xBDF2D84A,
+  0x14000000,  0x3FF00198,  0x534C5401,  0x3E14AB2F,
+  0x14000000,  0x3FF0019C,  0xD875DE83,  0x3E27263B,
+  0x14000000,  0x3FF001A0,  0x9FB782CA,  0x3E320B71,
+  0x14000000,  0x3FF001A4,  0xF349371F,  0x3E3893C6,
+  0x14000000,  0x3FF001A8,  0xEAF074C6,  0x3E3F2C1D,
+  0x18000000,  0x3FF001AC,  0x75525ABC,  0xBE3A2B89,
+  0x18000000,  0x3FF001B0,  0x297ECCE2,  0xBE33732F,
+  0x18000000,  0x3FF001B4,  0x5B28EC49,  0xBE2955A6,
+  0x18000000,  0x3FF001B8,  0xF64BA7FD,  0xBE1749D5,
+  0x18000000,  0x3FF001BC,  0xA8645141,  0x3DF15E9E,
+  0x18000000,  0x3FF001C0,  0x1D6F0B37,  0x3E201C96,
+  0x18000000,  0x3FF001C4,  0xE6028E39,  0x3E2E2D5B,
+  0x18000000,  0x3FF001C8,  0x9B63FA1E,  0x3E362F12,
+  0x18000000,  0x3FF001CC,  0x0BE01026,  0x3E3D5779,
+  0x1C000000,  0x3FF001D0,  0xB78A0445,  0xBE3B701E,
+  0x1C000000,  0x3FF001D4,  0xAAD9CF9D,  0xBE3427B4,
+  0x1C000000,  0x3FF001D8,  0x941DBAB5,  0xBE299E91,
+  0x1C000000,  0x3FF001DC,  0x44A2DFDD,  0xBE159B6C,
+  0x1C000000,  0x3FF001E0,  0x1EC8B89C,  0x3E008CA4,
+  0x1C000000,  0x3FF001E4,  0xF1EE0E9A,  0x3E23340B,
+  0x1C000000,  0x3FF001E8,  0x5231913C,  0x3E313279,
+  0x1C000000,  0x3FF001EC,  0x93892E68,  0x3E38DAEE,
+  0x20000000,  0x3FF001F0,  0x3F01A6A8,  0xBE3F6C9A,
+  0x20000000,  0x3FF001F4,  0x216E726C,  0xBE37A421,
+  0x20000000,  0x3FF001F8,  0x1F7970B9,  0xBE2F974C,
+  0x20000000,  0x3FF001FC,  0x17AFEBC8,  0xBE1F8CA4,
+  0x20000000,  0x3FF00200,  0x04445B06,  0x3DB55600,
+  0x20000000,  0x3FF00204,  0x0C290A26,  0x3E203BAE,
+  0x20000000,  0x3FF00208,  0x104547BD,  0x3E30365A,
+  0x20000000,  0x3FF0020C,  0x22970DE3,  0x3E385EDF,
+  0x24000000,  0x3FF00210,  0xBEF5A5F4,  0xBE3F6899,
+  0x24000000,  0x3FF00214,  0x90605040,  0xBE372010,
+  0x24000000,  0x3FF00218,  0x9B50D8EE,  0xBE2D8F0A,
+  0x24000000,  0x3FF0021C,  0xCB35D444,  0xBE197BDF,
+  0x24000000,  0x3FF00220,  0x2188E3D5,  0x3E00CCBC,
+  0x24000000,  0x3FF00224,  0x36A79F6A,  0x3E254452,
+  0x24000000,  0x3FF00228,  0xD69B2D28,  0x3E333ABC,
+  0x24000000,  0x3FF0022C,  0xBA07BE5B,  0x3E3BE352,
+  0x28000000,  0x3FF00230,  0x3665F227,  0xBE3B6415,
+  0x28000000,  0x3FF00234,  0xF6AD58D5,  0xBE329B7A,
+  0x28000000,  0x3FF00238,  0x059BD24A,  0xBE2385BD,
+  0x28000000,  0x3FF0023C,  0xD8E2B1B4,  0xBDEB47FA,
+  0x28000000,  0x3FF00240,  0x22CF60F6,  0x3E203CC2,
+  0x28000000,  0x3FF00244,  0x39BEF87F,  0x3E312704,
+  0x28000000,  0x3FF00248,  0xA63F5309,  0x3E3A3FA9,
+  0x2C000000,  0x3FF0024C,  0xA516AE5E,  0xBE3C97AE,
+  0x2C000000,  0x3FF00250,  0xA442792A,  0xBE335F04,
+  0x2C000000,  0x3FF00254,  0xA686F3A2,  0xBE242CB0,
+  0x2C000000,  0x3FF00258,  0xC3237903,  0xBDE7B535,
+  0x2C000000,  0x3FF0025C,  0x9E7A6CF7,  0x3E21560E,
+  0x2C000000,  0x3FF00260,  0xA8C01385,  0x3E3223BA,
+  0x2C000000,  0x3FF00264,  0x627012DF,  0x3E3BAC70,
+  0x30000000,  0x3FF00268,  0x7FB232EA,  0xBE3ABAD7,
+  0x30000000,  0x3FF0026C,  0xF9A6244B,  0xBE31121C,
+  0x30000000,  0x3FF00270,  0x1DAC9AE4,  0xBE1D6580,
+  0x30000000,  0x3FF00274,  0xD7FB0AC3,  0x3E037AFA,
+  0x30000000,  0x3FF00278,  0x633420EB,  0x3E289042,
+  0x30000000,  0x3FF0027C,  0x8065842A,  0x3E3630E5,
+  0x34000000,  0x3FF00280,  0xB49DA4FF,  0xBE3FD653,
+  0x34000000,  0x3FF00284,  0x696ECB76,  0xBE35CD8A,
+  0x34000000,  0x3FF00288,  0x341A9D63,  0xBE27697D,
+  0x34000000,  0x3FF0028C,  0x2788D238,  0xBDF8BF04,
+  0x34000000,  0x3FF00290,  0x42A03782,  0x3E2159C1,
+  0x34000000,  0x3FF00294,  0x154D4F89,  0x3E32F5B4,
+  0x34000000,  0x3FF00298,  0x1D7FB2C1,  0x3E3D4E8A,
+  0x38000000,  0x3FF0029C,  0x42181508,  0xBE38489D,
+  0x38000000,  0x3FF002A0,  0x0AF2C28C,  0xBE2B9F84,
+  0x38000000,  0x3FF002A4,  0x451C5357,  0xBE0A3721,
+  0x38000000,  0x3FF002A8,  0x61A8605E,  0x3E1D47F1,
+  0x38000000,  0x3FF002AC,  0x81B02FCF,  0x3E31FADF,
+  0x38000000,  0x3FF002B0,  0x572F674A,  0x3E3CB3C5,
+  0x3C000000,  0x3FF002B4,  0x231795EA,  0xBE388352,
+  0x3C000000,  0x3FF002B8,  0xD248367A,  0xBE2B54CD,
+  0x3C000000,  0x3FF002BC,  0xB7ABD90D,  0xBE060BC7,
+  0x3C000000,  0x3FF002C0,  0x6EE9F1EF,  0x3E206EEF,
+  0x3C000000,  0x3FF002C4,  0x261BF09E,  0x3E33406B,
+  0x3C000000,  0x3FF002C8,  0x59001C60,  0x3E3E5961,
+  0x40000000,  0x3FF002CC,  0xABDDD232,  0xBE367DA5,
+  0x40000000,  0x3FF002D0,  0xC8FA5113,  0xBE268953,
+  0x40000000,  0x3FF002D4,  0x8B33A701,  0x3D9152CC,
+  0x40000000,  0x3FF002D8,  0x3E058570,  0x3E26BAAC,
+  0x40000000,  0x3FF002DC,  0x63236E71,  0x3E36C65A,
+  0x44000000,  0x3FF002E0,  0x7C7A795C,  0xBE3DC09E,
+  0x44000000,  0x3FF002E4,  0x7BD63D1D,  0xBE323794,
+  0x44000000,  0x3FF002E8,  0x5BBC9105,  0xBE1A7A1E,
+  0x44000000,  0x3FF002EC,  0xD8EE2B1B,  0x3E142A20,
+  0x44000000,  0x3FF002F0,  0xEFAA8A8D,  0x3E30C39A,
+  0x44000000,  0x3FF002F4,  0x995E96A2,  0x3E3C8CB0,
+  0x48000000,  0x3FF002F8,  0xC8A79469,  0xBE379A36,
+  0x48000000,  0x3FF002FC,  0x64CE7203,  0xBE276236,
+  0x48000000,  0x3FF00300,  0x0819DA68,  0x3DD200D8,
+  0x48000000,  0x3FF00304,  0xE5E018D4,  0x3E28A249,
+  0x48000000,  0x3FF00308,  0x8A087692,  0x3E386A49,
+  0x4C000000,  0x3FF0030C,  0xD695988B,  0xBE3B6C8E,
+  0x4C000000,  0x3FF00310,  0x55D2BCBA,  0xBE2E66C8,
+  0x4C000000,  0x3FF00314,  0x7790BA7A,  0xBE0751B3,
+  0x4C000000,  0x3FF00318,  0xC2A20261,  0x3E22DDF4,
+  0x4C000000,  0x3FF0031C,  0x49E0B0B5,  0x3E35D82E,
+  0x50000000,  0x3FF00320,  0xB142422E,  0xBE3DAE9A,
+  0x50000000,  0x3FF00324,  0x8C170FE6,  0xBE312560,
+  0x50000000,  0x3FF00328,  0x0A73BF77,  0xBE12308D,
+  0x50000000,  0x3FF0032C,  0x5E59CEFA,  0x3E203A3A,
+  0x50000000,  0x3FF00330,  0xCD4740BF,  0x3E34D660,
+  0x54000000,  0x3FF00334,  0x644D1883,  0xBE3E6058,
+  0x54000000,  0x3FF00338,  0x618F57B6,  0xBE31870E,
+  0x54000000,  0x3FF0033C,  0x99FABD0F,  0xBE127704,
+  0x54000000,  0x3FF00340,  0xA1CB5ECF,  0x3E20B71E,
+  0x54000000,  0x3FF00344,  0x089E93E1,  0x3E3564E3,
+  0x58000000,  0x3FF00348,  0xFB533142,  0xBE3D81C5,
+  0x58000000,  0x3FF0034C,  0xB6EECE6C,  0xBE30586B,
+  0x58000000,  0x3FF00350,  0x319B883E,  0xBE08F871,
+  0x58000000,  0x3FF00354,  0x75BF7503,  0x3E2454A5,
+  0x58000000,  0x3FF00358,  0xF04B88C5,  0x3E3783B6,
+  0x5C000000,  0x3FF0035C,  0x81EF30A7,  0xBE3B12E1,
+  0x5C000000,  0x3FF00360,  0x2F9F3657,  0xBE2B32ED,
+  0x5C000000,  0x3FF00364,  0x54DF31BC,  0xBDB0084D,
+  0x5C000000,  0x3FF00368,  0xC303B7B9,  0x3E2B12D2,
+  0x5C000000,  0x3FF0036C,  0x78B56F97,  0x3E3B32DE,
+  0x60000000,  0x3FF00370,  0x03B9496C,  0xBE3713A9,
+  0x60000000,  0x3FF00374,  0x1F92E726,  0xBE22945A,
+  0x60000000,  0x3FF00378,  0x621736DF,  0x3E123D49,
+  0x60000000,  0x3FF0037C,  0x3935580D,  0x3E3278D5,
+  0x64000000,  0x3FF00380,  0x69B9F5FB,  0xBE3F8DA4,
+  0x64000000,  0x3FF00384,  0x8C473CC8,  0xBE31841A,
+  0x64000000,  0x3FF00388,  0x538CDE07,  0xBE0B5469,
+  0x64000000,  0x3FF0038C,  0x7F8F9D65,  0x3E257E07,
+  0x64000000,  0x3FF00390,  0x3665E52B,  0x3E38F898,
+  0x68000000,  0x3FF00394,  0xC29674BD,  0xBE38BDCF,
+  0x68000000,  0x3FF00398,  0x4E58B4D9,  0xBE24C868,
+  0x68000000,  0x3FF0039C,  0x329466D7,  0x3E1015AC,
+  0x68000000,  0x3FF003A0,  0xDCDECE44,  0x3E327F0D,
+  0x6C000000,  0x3FF003A4,  0xB27E5528,  0xBE3EF74B,
+  0x6C000000,  0x3FF003A8,  0x9D7167F2,  0xBE305DA1,
+  0x6C000000,  0x3FF003AC,  0xFF980820,  0xBDFB3F3D,
+  0x6C000000,  0x3FF003B0,  0x13D49789,  0x3E2A0B7B,
+  0x6C000000,  0x3FF003B4,  0xA43AE87C,  0x3E3BCF72,
+  0x70000000,  0x3FF003B8,  0x8D06BDC0,  0xBE3556D4,
+  0x70000000,  0x3FF003BC,  0x1766E54D,  0xBE19B460,
+  0x70000000,  0x3FF003C0,  0x7B85C8BA,  0x3E211950,
+  0x70000000,  0x3FF003C4,  0x41D00AED,  0x3E37966C,
+  0x74000000,  0x3FF003C8,  0xF5B15507,  0xBE394FCB,
+  0x74000000,  0x3FF003CC,  0xC98093C4,  0xBE244C00,
+  0x74000000,  0x3FF003D0,  0xE2907BDF,  0x3E144F3B,
+  0x74000000,  0x3FF003D4,  0x267CD924,  0x3E345DA2,
+  0x78000000,  0x3FF003D8,  0xD73526C0,  0xBE3C4886,
+  0x78000000,  0x3FF003DC,  0xF8E1D62E,  0xBE29BD57,
+  0x78000000,  0x3FF003E0,  0xD65415E1,  0x3E04D995,
+  0x78000000,  0x3FF003E4,  0x527E1A58,  0x3E322515,
+  0x7C000000,  0x3FF003E8,  0x31552BA5,  0xBE3E4104,
+  0x7C000000,  0x3FF003EC,  0x995CAB3B,  0xBE2D2E33,
+  0x7C000000,  0x3FF003F0,  0x473970DC,  0x3DF22D48,
+  0x7C000000,  0x3FF003F4,  0xC61195FC,  0x3E30ECC6,
+  0x80000000,  0x3FF003F8,  0x03D35C34,  0xBE3F3943,
+  0x80000000,  0x3FF003FC,  0xAA7483C7,  0xBE2E9E91,
+  0x80000000,  0x3FF00400,  0xBBBC71CE,  0x3DE556AA,
+  0x80000000,  0x3FF00404,  0x817613C1,  0x3E30B4B7,
+  0x84000000,  0x3FF00408,  0x4E70B0AC,  0xBE3F3142,
+  0x84000000,  0x3FF0040C,  0x2BAAD02F,  0xBE2E0E70,
+  0x84000000,  0x3FF00410,  0xF48F01F2,  0x3DF32D62,
+  0x84000000,  0x3FF00414,  0x84EB5B98,  0x3E317CE8,
+  0x88000000,  0x3FF00418,  0x10ED210B,  0xBE3E2901,
+  0x88000000,  0x3FF0041C,  0x1C7F0051,  0xBE2B7DCD,
+  0x88000000,  0x3FF00420,  0x87AA2706,  0x3E05D9C0,
+  0x88000000,  0x3FF00424,  0xD0B235B3,  0x3E33455A,
+  0x8C000000,  0x3FF00428,  0x4B07A510,  0xBE3C207E,
+  0x8C000000,  0x3FF0042C,  0x7C6E838B,  0xBE26ECA6,
+  0x8C000000,  0x3FF00430,  0xEC91A8D5,  0x3E150F6F,
+  0x8C000000,  0x3FF00434,  0x650C6A83,  0x3E360E0F,
+  0x90000000,  0x3FF00438,  0xFC7E3439,  0xBE3917B8,
+  0x90000000,  0x3FF0043C,  0x4AF4C8B6,  0xBE205AFA,
+  0x90000000,  0x3FF00440,  0xDC31D181,  0x3E219985,
+  0x90000000,  0x3FF00444,  0x423CC2BE,  0x3E39D707,
+  0x94000000,  0x3FF00448,  0x250DC5BF,  0xBE350EB0,
+  0x94000000,  0x3FF0044C,  0x1E2CF893,  0xBE0F231A,
+  0x94000000,  0x3FF00450,  0xD42C92D4,  0x3E2AABDB,
+  0x94000000,  0x3FF00454,  0x6887075B,  0x3E3EA043,
+  0x98000000,  0x3FF00458,  0xC472509B,  0xBE300562,
+  0x98000000,  0x3FF0045C,  0x72B572E0,  0x3DF64FB6,
+  0x98000000,  0x3FF00460,  0xEF61155C,  0x3E32DF5D,
+  0x9C000000,  0x3FF00464,  0x27CFFE6A,  0xBE3B963B,
+  0x9C000000,  0x3FF00468,  0xB4CD96FE,  0xBE23F79F,
+  0x9C000000,  0x3FF0046C,  0x6E771F13,  0x3E1EBA7F,
+  0x9C000000,  0x3FF00470,  0xFE3ED608,  0x3E396913,
+  0xA0000000,  0x3FF00474,  0x6E82850F,  0xBE34CC73,
+  0xA0000000,  0x3FF00478,  0x352966B7,  0xBE078FB3,
+  0xA0000000,  0x3FF0047C,  0x33AFF8AE,  0x3E2DF116,
+  0xA4000000,  0x3FF00480,  0xE909EADD,  0xBE3F0CEE,
+  0xA4000000,  0x3FF00484,  0xD6938597,  0xBE2A04C8,
+  0xA4000000,  0x3FF00488,  0x5C6654D8,  0x3E1460AA,
+  0xA4000000,  0x3FF0048C,  0x22213ECF,  0x3E3742BE,
+  0xA8000000,  0x3FF00490,  0xC631A356,  0xBE3682A9,
+  0xA8000000,  0x3FF00494,  0x7777B644,  0xBE10E034,
+  0xA8000000,  0x3FF00498,  0x3E3B0991,  0x3E2C4528,
+  0xAC000000,  0x3FF0049C,  0x0B3E269F,  0xBE3F72C6,
+  0xAC000000,  0x3FF004A0,  0x31DF923B,  0xBE29F037,
+  0xAC000000,  0x3FF004A4,  0xE82713DE,  0x3E164A4D,
+  0xAC000000,  0x3FF004A8,  0x31AFAC4B,  0x3E382D47,
+  0xB0000000,  0x3FF004AC,  0x6DFCE978,  0xBE352800,
+  0xB0000000,  0x3FF004B0,  0x07D68D27,  0xBE036A1B,
+  0xB0000000,  0x3FF004B4,  0x5CB71F6F,  0x3E305D7E,
+  0xB4000000,  0x3FF004B8,  0x30E5E990,  0xBE3CC7BB,
+  0xB4000000,  0x3FF004BC,  0x0BA17DEA,  0xBE23B9E0,
+  0xB4000000,  0x3FF004C0,  0xC3EF9BD8,  0x3E223BBF,
+  0xB4000000,  0x3FF004C4,  0x8A74ECC0,  0x3E3C28B4,
+  0xB8000000,  0x3FF004C8,  0x085831CA,  0xBE30BC72,
+  0xB8000000,  0x3FF004CC,  0x6C8D1FC8,  0x3E037361,
+  0xB8000000,  0x3FF004D0,  0x3033A0B8,  0x3E35A94F,
+  0xBC000000,  0x3FF004D4,  0xFC7107DE,  0xBE370BC8,
+  0xBC000000,  0x3FF004D8,  0xA2D908DA,  0xBE0D86E2,
+  0xBC000000,  0x3FF004DC,  0x58ED155E,  0x3E2F742A,
+  0xC0000000,  0x3FF004E0,  0x75FACDD0,  0xBE3CCAF4,
+  0xC0000000,  0x3FF004E4,  0x6F5BE5D3,  0xBE227FF2,
+  0xC0000000,  0x3FF004E8,  0xD6BCA827,  0x3E24B60D,
+  0xC0000000,  0x3FF004EC,  0xF72B40D6,  0x3E3E060B,
+  0xC4000000,  0x3FF004F0,  0x208BE3E3,  0xBE2C7DD4,
+  0xC4000000,  0x3FF004F4,  0x642FDDB8,  0x3E163093,
+  0xC4000000,  0x3FF004F8,  0xB72239A5,  0x3E396738,
+  0xC8000000,  0x3FF004FC,  0x7201ED9B,  0xBE32ADAE,
+  0xC8000000,  0x3FF00500,  0x1A0C05F3,  0x3DF4D6F6,
+  0xC8000000,  0x3FF00504,  0x360B8346,  0x3E355892,
+  0xCC000000,  0x3FF00508,  0xF0C06435,  0xBE368C45,
+  0xCC000000,  0x3FF0050C,  0x760DA2F6,  0xBE0308C8,
+  0xCC000000,  0x3FF00510,  0xE008D57B,  0x3E31DA18,
+  0xD0000000,  0x3FF00514,  0x205F82F4,  0xBE39DAB0,
+  0xD0000000,  0x3FF00518,  0x2FE5E3E3,  0xBE15FDD0,
+  0xD0000000,  0x3FF0051C,  0x42787241,  0x3E2DD79A,
+  0xD4000000,  0x3FF00520,  0x94BD25F4,  0xBE3C98EC,
+  0xD4000000,  0x3FF00524,  0x53C89D03,  0xBE201B42,
+  0xD4000000,  0x3FF00528,  0xCB901057,  0x3E291B5E,
+  0xD8000000,  0x3FF0052C,  0xE1B6D837,  0xBE3EC6FA,
+  0xD8000000,  0x3FF00530,  0xF8BF49E7,  0xBE24173F,
+  0xD8000000,  0x3FF00534,  0x339DDB57,  0x3E257F80,
+  0xD8000000,  0x3FF00538,  0x64D62C5C,  0x3E3F9B25,
+  0xDC000000,  0x3FF0053C,  0x2E913659,  0xBE26F2E0,
+  0xDC000000,  0x3FF00540,  0x52E7CB93,  0x3E2303FF,
+  0xDC000000,  0x3FF00544,  0xAB0CFEF5,  0x3E3E8D74,
+  0xE0000000,  0x3FF00548,  0x1CF7FDE6,  0xBE28AE22,
+  0xE0000000,  0x3FF0054C,  0x01B47B93,  0x3E21A8DD,
+  0xE0000000,  0x3FF00550,  0x5D1107E2,  0x3E3E0FF3,
+  0xE4000000,  0x3FF00554,  0xEBAC99E1,  0xBE294904,
+  0xE4000000,  0x3FF00558,  0x184B2814,  0x3E216E1A,
+  0xE4000000,  0x3FF0055C,  0xE706008B,  0x3E3E22A1,
+  0xE8000000,  0x3FF00560,  0xC267616A,  0xBE28C387,
+  0xE8000000,  0x3FF00564,  0x6EF3B008,  0x3E2253B7,
+  0xE8000000,  0x3FF00568,  0xB50FF371,  0x3E3EC580,
+  0xEC000000,  0x3FF0056C,  0xC8E0096B,  0xBE271DA9,
+  0xEC000000,  0x3FF00570,  0xDDF69498,  0x3E2459B5,
+  0xEC000000,  0x3FF00574,  0x33533C31,  0x3E3FF890,
+  0xF0000000,  0x3FF00578,  0x26CDA497,  0xBE24576A,
+  0xF0000000,  0x3FF0057C,  0x3D9CF923,  0x3E278016,
+  0xF4000000,  0x3FF00580,  0x320B787B,  0xBE3E442F,
+  0xF4000000,  0x3FF00584,  0x03E6A36B,  0xBE2070C8,
+  0xF4000000,  0x3FF00588,  0x6630A33F,  0x3E2BC6D9,
+  0xF8000000,  0x3FF0058C,  0x0EE72CBF,  0xBE3BF0BD,
+  0xF8000000,  0x3FF00590,  0x0FC1A853,  0xBE16D385,
+  0xF8000000,  0x3FF00594,  0x17FDFD5D,  0x3E309700,
+  0xFC000000,  0x3FF00598,  0xF71A91AC,  0xBE390D18,
+  0xFC000000,  0x3FF0059C,  0x69C58B86,  0xBE050963,
+  0xFC000000,  0x3FF005A0,  0xB9A504CD,  0x3E33DAC5,
+  0x00000000,  0x3FF005A5,  0x7E800734,  0xBE359942,
+  0x00000000,  0x3FF005A9,  0xE59934CD,  0x3DF02BAE,
+  0x00000000,  0x3FF005AD,  0x04333E0E,  0x3E37AEBE,
+  0x04000000,  0x3FF005B1,  0x38F19C2F,  0xBE319539,
+  0x04000000,  0x3FF005B5,  0xEBB1C157,  0x3E14DB54,
+  0x04000000,  0x3FF005B9,  0x63CED05D,  0x3E3C12E9,
+  0x08000000,  0x3FF005BD,  0x74921CAF,  0xBE2A01F9,
+  0x08000000,  0x3FF005C1,  0xC94C85F2,  0x3E23F645,
+  0x0C000000,  0x3FF005C5,  0xBB61CBEE,  0xBE3EF8B7,
+  0x0C000000,  0x3FF005C9,  0x597F2931,  0xBE1F7232,
+  0x0C000000,  0x3FF005CD,  0xAF5B7345,  0x3E2E9F48,
+  0x10000000,  0x3FF005D1,  0xED37CD5F,  0xBE397424,
+  0x10000000,  0x3FF005D5,  0x08775C6B,  0xBE013F43,
+  0x10000000,  0x3FF005D9,  0x0029D3DB,  0x3E35345A,
+  0x14000000,  0x3FF005DD,  0xC58C1962,  0xBE335F5D,
+  0x14000000,  0x3FF005E1,  0x47430E04,  0x3E1073C1,
+  0x14000000,  0x3FF005E5,  0x4A41E248,  0x3E3BA944,
+  0x18000000,  0x3FF005E9,  0xB06E888E,  0xBE2974C3,
+  0x18000000,  0x3FF005ED,  0xDCCD9333,  0x3E25E3FB,
+  0x1C000000,  0x3FF005F1,  0x5DE27951,  0xBE3D519C,
+  0x1C000000,  0x3FF005F5,  0xE4464502,  0xBE1614C2,
+  0x1C000000,  0x3FF005F9,  0xE0DAFE93,  0x3E325740,
+  0x20000000,  0x3FF005FD,  0x8C1B4C10,  0xBE35BC47,
+  0x20000000,  0x3FF00601,  0x20686CE9,  0x3E0201B0,
+  0x20000000,  0x3FF00605,  0x95558B63,  0x3E3A4CB9,
+  0x24000000,  0x3FF00609,  0xA880A3EB,  0xBE2B2D79,
+  0x24000000,  0x3FF0060D,  0x9699EEB7,  0x3E252BA5,
+  0x28000000,  0x3FF00611,  0x880115E1,  0xBE3D2D97,
+  0x28000000,  0x3FF00615,  0x28A3D788,  0xBE1383EF,
+  0x28000000,  0x3FF00619,  0x08D6DC23,  0x3E337BA6,
+  0x2C000000,  0x3FF0061D,  0x0B001A08,  0xBE3417B2,
+  0x2C000000,  0x3FF00621,  0xF94EB99A,  0x3E1193EF,
+  0x2C000000,  0x3FF00625,  0x28D3BD3B,  0x3E3CF1B0,
+  0x30000000,  0x3FF00629,  0x0EFCC982,  0xBE24E32B,
+  0x30000000,  0x3FF0062D,  0xE2BDA47F,  0x3E2C7655,
+  0x34000000,  0x3FF00631,  0x689312F8,  0xBE39080E,
+  0x34000000,  0x3FF00635,  0xA9444DB4,  0xBDCDA0C8,
+  0x34000000,  0x3FF00639,  0x7B21FE23,  0x3E38A191,
+  0x38000000,  0x3FF0063D,  0x7E67E1E1,  0xBE2CE32A,
+  0x38000000,  0x3FF00641,  0x875A71F0,  0x3E251694,
+  0x3C000000,  0x3FF00645,  0xF838F455,  0xBE3C67CF,
+  0x3C000000,  0x3FF00649,  0x77274052,  0xBE0A571F,
+  0x3C000000,  0x3FF0064D,  0x63AAEFA8,  0x3E35E20E,
+  0x40000000,  0x3FF00651,  0xFC87DA70,  0xBE30E0F8,
+  0x40000000,  0x3FF00655,  0xE9089AFD,  0x3E20D80B,
+  0x44000000,  0x3FF00659,  0xC52F03BD,  0xBE3E36F4,
+  0x44000000,  0x3FF0065D,  0x9680E14E,  0xBE1327A4,
+  0x44000000,  0x3FF00661,  0xD732468D,  0x3E34B328,
+  0x48000000,  0x3FF00665,  0xCAB5EF4A,  0xBE31BFBE,
+  0x48000000,  0x3FF00669,  0xE2A2FBE1,  0x3E1F757F,
+  0x4C000000,  0x3FF0066D,  0xDAB014DA,  0xBE3E757A,
+  0x4C000000,  0x3FF00671,  0x02FB3FBB,  0xBE12E13D,
+  0x4C000000,  0x3FF00675,  0xCA7E298D,  0x3E3514E2,
+  0x50000000,  0x3FF00679,  0xB4F78B94,  0xBE310DE4,
+  0x50000000,  0x3FF0067D,  0x89C35D05,  0x3E21BEB4,
+  0x54000000,  0x3FF00681,  0x43F4895C,  0xBE3D2360,
+  0x54000000,  0x3FF00685,  0x5BC49ADF,  0xBE08B0A2,
+  0x54000000,  0x3FF00689,  0x32573159,  0x3E37073E,
+  0x58000000,  0x3FF0068D,  0x8D0732D2,  0xBE2D96D1,
+  0x58000000,  0x3FF00691,  0x9BF15E67,  0x3E26E3ED,
+  0x5C000000,  0x3FF00695,  0x0C3250FB,  0xBE3A40A3,
+  0x5C000000,  0x3FF00699,  0xFD0AE214,  0x3DBCC9AE,
+  0x5C000000,  0x3FF0069D,  0x038868A1,  0x3E3A8A3D,
+  0x60000000,  0x3FF006A1,  0x151D21CE,  0xBE25F092,
+  0x60000000,  0x3FF006A5,  0x11738C43,  0x3E2F2A6F,
+  0x64000000,  0x3FF006A9,  0x3E9CE96D,  0xBE35CD41,
+  0x64000000,  0x3FF006AD,  0x8DBC2918,  0x3E138132,
+  0x64000000,  0x3FF006B1,  0x32DF4C13,  0x3E3F9DE1,
+  0x68000000,  0x3FF006B5,  0x3129E0B2,  0xBE16520E,
+  0x68000000,  0x3FF006B9,  0x69F36A61,  0x3E35491E,
+  0x6C000000,  0x3FF006BD,  0xCCCABCD4,  0xBE2F9271,
+  0x6C000000,  0x3FF006C1,  0x0D59B899,  0x3E2668ED,
+  0x70000000,  0x3FF006C5,  0x4AD435A0,  0xBE39BDD3,
+  0x70000000,  0x3FF006C9,  0x9191CABB,  0x3DF5FE9A,
+  0x70000000,  0x3FF006CD,  0x6676850B,  0x3E3C8DAD,
+  0x74000000,  0x3FF006D1,  0x1D74934A,  0xBE206910,
+  0x74000000,  0x3FF006D5,  0x4D886478,  0x3E331949,
+  0x78000000,  0x3FF006D9,  0x80BFBBC2,  0xBE3188DE,
+  0x78000000,  0x3FF006DD,  0x14DE1719,  0x3E23CA01,
+  0x7C000000,  0x3FF006E1,  0x8CE98EC0,  0xBE3A9D19,
+  0x7C000000,  0x3FF006E5,  0xA705A6E7,  0x3DEE1A67,
+  0x7C000000,  0x3FF006E9,  0xECD5F851,  0x3E3C8EC6,
+  0x80000000,  0x3FF006ED,  0xE839CE4D,  0xBE1F0CF9,
+  0x80000000,  0x3FF006F1,  0x0C8CA46A,  0x3E33FAC3,
+  0x84000000,  0x3FF006F5,  0x7B5703D8,  0xBE303734,
+  0x84000000,  0x3FF006F9,  0xE490A112,  0x3E274DB5,
+  0x88000000,  0x3FF006FD,  0xA693A093,  0xBE386B0E,
+  0x88000000,  0x3FF00701,  0xF0B73DAA,  0x3E0C9875,
+  0x88000000,  0x3FF00705,  0x2449A944,  0x3E3FA133,
+  0x8C000000,  0x3FF00709,  0xBFE66C14,  0xBE110285,
+  0x8C000000,  0x3FF0070D,  0x054EDCBD,  0x3E37ED91,
+  0x90000000,  0x3FF00711,  0xEFB65924,  0xBE27A86A,
+  0x90000000,  0x3FF00715,  0x1C8A0CF1,  0x3E307A0B,
+  0x94000000,  0x3FF00719,  0x397FB1D6,  0xBE3327AD,
+  0x94000000,  0x3FF0071D,  0x1412B9FB,  0x3E228D43,
+  0x98000000,  0x3FF00721,  0x94D8FFB0,  0xBE3A3B08,
+  0x98000000,  0x3FF00725,  0x6ED80040,  0x3E029AA3,
+  0x98000000,  0x3FF00729,  0x9627250A,  0x3E3EF1B8,
+  0x9C000000,  0x3FF0072D,  0x5FCB1B09,  0xBE117F70,
+  0x9C000000,  0x3FF00731,  0x678F0789,  0x3E385E96,
+  0xA0000000,  0x3FF00735,  0xCEA3485B,  0xBE25A5DF,
+  0xA0000000,  0x3FF00739,  0xFF6D0303,  0x3E320B90,
+  0xA4000000,  0x3FF0073D,  0xE03334FF,  0xBE3105E6,
+  0xA4000000,  0x3FF00741,  0xFB9F056D,  0x3E27F150,
+  0xA8000000,  0x3FF00745,  0xE28905F4,  0xBE36F8C0,
+  0xA8000000,  0x3FF00749,  0x0B1407AA,  0x3E189774,
+  0xAC000000,  0x3FF0074D,  0xCE4493C4,  0xBE3CAB7D,
+  0xAC000000,  0x3FF00751,  0xCB817D78,  0x3DE265D5,
+  0xAC000000,  0x3FF00755,  0x7CA8B4E3,  0x3E3DE1E2,
+  0xB0000000,  0x3FF00759,  0x7D730FC6,  0xBE12FD89,
+  0xB0000000,  0x3FF0075D,  0x1E4D7759,  0x3E38AF60,
+  0xB4000000,  0x3FF00761,  0x0CAD84A2,  0xBE23A3AC,
+  0xB4000000,  0x3FF00765,  0x36B866FD,  0x3E33BCFB,
+  0xB8000000,  0x3FF00769,  0x4D0667A1,  0xBE2D4858,
+  0xB8000000,  0x3FF0076D,  0xCBF08E6A,  0x3E2E1567,
+  0xBC000000,  0x3FF00771,  0x9FD34D05,  0xBE333664,
+  0xBC000000,  0x3FF00775,  0x9837D6E0,  0x3E253114,
+  0xC0000000,  0x3FF00779,  0x5238327D,  0xBE37887F,
+  0xC0000000,  0x3FF0077D,  0x24C8DC90,  0x3E1999FA,
+  0xC4000000,  0x3FF00781,  0x1DA2F8BE,  0xBE3B9A7C,
+  0xC4000000,  0x3FF00785,  0xEA50EE6A,  0x3E03A485,
+  0xC8000000,  0x3FF00789,  0xE204A449,  0xBE3F6C5A,
+  0xC8000000,  0x3FF0078D,  0x78D5D0F3,  0xBDF3D3EF,
+  0xC8000000,  0x3FF00791,  0x80B1D66C,  0x3E3D01E4,
+  0xCC000000,  0x3FF00795,  0xD5149796,  0xBE12BBC1,
+  0xCC000000,  0x3FF00799,  0x2A8F92F0,  0x3E39B042,
+  0xD0000000,  0x3FF0079D,  0x6F386487,  0xBE1F820E,
+  0xD0000000,  0x3FF007A1,  0x3BA3BCDA,  0x3E369EBE,
+  0xD4000000,  0x3FF007A5,  0x96320652,  0xBE25A3F0,
+  0xD4000000,  0x3FF007A9,  0xD3FD8FCA,  0x3E33CD58,
+  0xD8000000,  0x3FF007AD,  0xC62D40B1,  0xBE2B069C,
+  0xD8000000,  0x3FF007B1,  0x13AC5766,  0x3E313C12,
+  0xDC000000,  0x3FF007B5,  0x876F3A0B,  0xBE2FE90B,
+  0xDC000000,  0x3FF007B9,  0x357EDEB8,  0x3E2DD5D4,
+  0xE0000000,  0x3FF007BD,  0x4CEC957E,  0xBE32259E,
+  0xE0000000,  0x3FF007C1,  0x128C86C6,  0x3E29B3C2,
+  0xE4000000,  0x3FF007C5,  0xDEA61608,  0xBE341697,
+  0xE4000000,  0x3FF007C9,  0xFEA09E70,  0x3E2611ED,
+  0xE8000000,  0x3FF007CD,  0x58D49AE3,  0xBE35C772,
+  0xE8000000,  0x3FF007D1,  0x39DA3D42,  0x3E22F058,
+  0xEC000000,  0x3FF007D5,  0x9B689043,  0xBE37382D,
+  0xEC000000,  0x3FF007D9,  0x04589AD6,  0x3E204F01,
+  0xF0000000,  0x3FF007DD,  0x86525259,  0xBE3868C9,
+  0xF0000000,  0x3FF007E1,  0x3C761DAC,  0x3E1C5BD1,
+  0xF4000000,  0x3FF007E5,  0xF9822D4C,  0xBE395945,
+  0xF4000000,  0x3FF007E9,  0x8F4221F9,  0x3E191A1E,
+  0xF8000000,  0x3FF007ED,  0xD4E85D3A,  0xBE3A09A2,
+  0xF8000000,  0x3FF007F1,  0x81547225,  0x3E16D8EA,
+  0xFC000000,  0x3FF007F5,  0xF8750E3B,  0xBE3A79DF,
+  0xFC000000,  0x3FF007F9,  0x92EC7DE3,  0x3E159835,
+  0x00000000,  0x3FF007FE,  0x44185C5D,  0xBE3AA9FD } };
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/ulog.h b/REORG.TODO/sysdeps/ieee754/dbl-64/ulog.h
new file mode 100644
index 0000000000..e5fbad044e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/ulog.h
@@ -0,0 +1,187 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:ulog.h                                             */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef ULOG_H
+#define ULOG_H
+
+#ifdef BIG_ENDI
+  static const number
+  /* polynomial I */
+/**/ a2             = {{0xbfe00000, 0x0001aa8f} }, /* -0.500... */
+/**/ a3             = {{0x3fd55555, 0x55588d2e} }, /*  0.333... */
+  /* polynomial II */
+/**/ b0             = {{0x3fd55555, 0x55555555} }, /*  0.333... */
+/**/ b1             = {{0xbfcfffff, 0xffffffbb} }, /* -0.249... */
+/**/ b2             = {{0x3fc99999, 0x9999992f} }, /*  0.199... */
+/**/ b3             = {{0xbfc55555, 0x556503fd} }, /* -0.166... */
+/**/ b4             = {{0x3fc24924, 0x925b3d62} }, /*  0.142... */
+/**/ b5             = {{0xbfbffffe, 0x160472fc} }, /* -0.124... */
+/**/ b6             = {{0x3fbc71c5, 0x25db58ac} }, /*  0.111... */
+/**/ b7             = {{0xbfb9a4ac, 0x11a2a61c} }, /* -0.100... */
+/**/ b8             = {{0x3fb75077, 0x0df2b591} }, /*  0.091... */
+  /* polynomial III */
+#if 0
+/**/ c1             = {{0x3ff00000, 0x00000000} }, /*  1        */
+#endif
+/**/ c2             = {{0xbfe00000, 0x00000000} }, /* -1/2      */
+/**/ c3             = {{0x3fd55555, 0x55555555} }, /*  1/3      */
+/**/ c4             = {{0xbfd00000, 0x00000000} }, /* -1/4      */
+/**/ c5             = {{0x3fc99999, 0x9999999a} }, /*  1/5      */
+  /* polynomial IV */
+/**/ d2             = {{0xbfe00000, 0x00000000} }, /* -1/2      */
+/**/ dd2            = {{0x00000000, 0x00000000} }, /* -1/2-d2   */
+/**/ d3             = {{0x3fd55555, 0x55555555} }, /*  1/3      */
+/**/ dd3            = {{0x3c755555, 0x55555555} }, /*  1/3-d3   */
+/**/ d4             = {{0xbfd00000, 0x00000000} }, /* -1/4      */
+/**/ dd4            = {{0x00000000, 0x00000000} }, /* -1/4-d4   */
+/**/ d5             = {{0x3fc99999, 0x9999999a} }, /*  1/5      */
+/**/ dd5            = {{0xbc699999, 0x9999999a} }, /*  1/5-d5   */
+/**/ d6             = {{0xbfc55555, 0x55555555} }, /* -1/6      */
+/**/ dd6            = {{0xbc655555, 0x55555555} }, /* -1/6-d6   */
+/**/ d7             = {{0x3fc24924, 0x92492492} }, /*  1/7      */
+/**/ dd7            = {{0x3c624924, 0x92492492} }, /*  1/7-d7   */
+/**/ d8             = {{0xbfc00000, 0x00000000} }, /* -1/8      */
+/**/ dd8            = {{0x00000000, 0x00000000} }, /* -1/8-d8   */
+/**/ d9             = {{0x3fbc71c7, 0x1c71c71c} }, /*  1/9      */
+/**/ dd9            = {{0x3c5c71c7, 0x1c71c71c} }, /*  1/9-d9   */
+/**/ d10            = {{0xbfb99999, 0x9999999a} }, /* -1/10     */
+/**/ dd10           = {{0x3c599999, 0x9999999a} }, /* -1/10-d10 */
+/**/ d11            = {{0x3fb745d1, 0x745d1746} }, /*  1/11     */
+/**/ d12            = {{0xbfb55555, 0x55555555} }, /* -1/12     */
+/**/ d13            = {{0x3fb3b13b, 0x13b13b14} }, /*  1/13     */
+/**/ d14            = {{0xbfb24924, 0x92492492} }, /* -1/14     */
+/**/ d15            = {{0x3fb11111, 0x11111111} }, /*  1/15     */
+/**/ d16            = {{0xbfb00000, 0x00000000} }, /* -1/16     */
+/**/ d17            = {{0x3fae1e1e, 0x1e1e1e1e} }, /*  1/17     */
+/**/ d18            = {{0xbfac71c7, 0x1c71c71c} }, /* -1/18     */
+/**/ d19            = {{0x3faaf286, 0xbca1af28} }, /*  1/19     */
+/**/ d20            = {{0xbfa99999, 0x9999999a} }, /* -1/20     */
+  /* constants    */
+/**/ sqrt_2         = {{0x3ff6a09e, 0x667f3bcc} }, /* sqrt(2)   */
+/**/ h1             = {{0x3fd2e000, 0x00000000} }, /* 151/2**9  */
+/**/ h2             = {{0x3f669000, 0x00000000} }, /* 361/2**17 */
+/**/ delu           = {{0x3f700000, 0x00000000} }, /* 1/2**8    */
+/**/ delv           = {{0x3ef00000, 0x00000000} }, /* 1/2**16   */
+/**/ ln2a           = {{0x3fe62e42, 0xfefa3800} }, /* ln(2) 43 bits */
+/**/ ln2b           = {{0x3d2ef357, 0x93c76730} }, /* ln(2)-ln2a    */
+/**/ e1             = {{0x3bbcc868, 0x00000000} }, /* 6.095e-21     */
+/**/ e2             = {{0x3c1138ce, 0x00000000} }, /* 2.334e-19     */
+/**/ e3             = {{0x3aa1565d, 0x00000000} }, /* 2.801e-26     */
+/**/ e4             = {{0x39809d88, 0x00000000} }, /* 1.024e-31     */
+/**/ e[M]           ={{{0x37da223a, 0x00000000} }, /* 1.2e-39       */
+/**/                  {{0x35c851c4, 0x00000000} }, /* 1.3e-49       */
+/**/                  {{0x2ab85e51, 0x00000000} }, /* 6.8e-103      */
+/**/                  {{0x17383827, 0x00000000} }},/* 8.1e-197      */
+/**/ two54          = {{0x43500000, 0x00000000} }, /* 2**54         */
+/**/ u03            = {{0x3f9eb851, 0xeb851eb8} }; /* 0.03          */
+
+#else
+#ifdef LITTLE_ENDI
+  static const number
+  /* polynomial I */
+/**/ a2             = {{0x0001aa8f, 0xbfe00000} }, /* -0.500... */
+/**/ a3             = {{0x55588d2e, 0x3fd55555} }, /*  0.333... */
+  /* polynomial II */
+/**/ b0             = {{0x55555555, 0x3fd55555} }, /*  0.333... */
+/**/ b1             = {{0xffffffbb, 0xbfcfffff} }, /* -0.249... */
+/**/ b2             = {{0x9999992f, 0x3fc99999} }, /*  0.199... */
+/**/ b3             = {{0x556503fd, 0xbfc55555} }, /* -0.166... */
+/**/ b4             = {{0x925b3d62, 0x3fc24924} }, /*  0.142... */
+/**/ b5             = {{0x160472fc, 0xbfbffffe} }, /* -0.124... */
+/**/ b6             = {{0x25db58ac, 0x3fbc71c5} }, /*  0.111... */
+/**/ b7             = {{0x11a2a61c, 0xbfb9a4ac} }, /* -0.100... */
+/**/ b8             = {{0x0df2b591, 0x3fb75077} }, /*  0.091... */
+  /* polynomial III */
+#if 0
+/**/ c1             = {{0x00000000, 0x3ff00000} }, /*  1        */
+#endif
+/**/ c2             = {{0x00000000, 0xbfe00000} }, /* -1/2      */
+/**/ c3             = {{0x55555555, 0x3fd55555} }, /*  1/3      */
+/**/ c4             = {{0x00000000, 0xbfd00000} }, /* -1/4      */
+/**/ c5             = {{0x9999999a, 0x3fc99999} }, /*  1/5      */
+  /* polynomial IV */
+/**/ d2             = {{0x00000000, 0xbfe00000} }, /* -1/2      */
+/**/ dd2            = {{0x00000000, 0x00000000} }, /* -1/2-d2   */
+/**/ d3             = {{0x55555555, 0x3fd55555} }, /*  1/3      */
+/**/ dd3            = {{0x55555555, 0x3c755555} }, /*  1/3-d3   */
+/**/ d4             = {{0x00000000, 0xbfd00000} }, /* -1/4      */
+/**/ dd4            = {{0x00000000, 0x00000000} }, /* -1/4-d4   */
+/**/ d5             = {{0x9999999a, 0x3fc99999} }, /*  1/5      */
+/**/ dd5            = {{0x9999999a, 0xbc699999} }, /*  1/5-d5   */
+/**/ d6             = {{0x55555555, 0xbfc55555} }, /* -1/6      */
+/**/ dd6            = {{0x55555555, 0xbc655555} }, /* -1/6-d6   */
+/**/ d7             = {{0x92492492, 0x3fc24924} }, /*  1/7      */
+/**/ dd7            = {{0x92492492, 0x3c624924} }, /*  1/7-d7   */
+/**/ d8             = {{0x00000000, 0xbfc00000} }, /* -1/8      */
+/**/ dd8            = {{0x00000000, 0x00000000} }, /* -1/8-d8   */
+/**/ d9             = {{0x1c71c71c, 0x3fbc71c7} }, /*  1/9      */
+/**/ dd9            = {{0x1c71c71c, 0x3c5c71c7} }, /*  1/9-d9   */
+/**/ d10            = {{0x9999999a, 0xbfb99999} }, /* -1/10     */
+/**/ dd10           = {{0x9999999a, 0x3c599999} }, /* -1/10-d10 */
+/**/ d11            = {{0x745d1746, 0x3fb745d1} }, /*  1/11     */
+/**/ d12            = {{0x55555555, 0xbfb55555} }, /* -1/12     */
+/**/ d13            = {{0x13b13b14, 0x3fb3b13b} }, /*  1/13     */
+/**/ d14            = {{0x92492492, 0xbfb24924} }, /* -1/14     */
+/**/ d15            = {{0x11111111, 0x3fb11111} }, /*  1/15     */
+/**/ d16            = {{0x00000000, 0xbfb00000} }, /* -1/16     */
+/**/ d17            = {{0x1e1e1e1e, 0x3fae1e1e} }, /*  1/17     */
+/**/ d18            = {{0x1c71c71c, 0xbfac71c7} }, /* -1/18     */
+/**/ d19            = {{0xbca1af28, 0x3faaf286} }, /*  1/19     */
+/**/ d20            = {{0x9999999a, 0xbfa99999} }, /* -1/20     */
+  /* constants    */
+/**/ sqrt_2         = {{0x667f3bcc, 0x3ff6a09e} }, /* sqrt(2)   */
+/**/ h1             = {{0x00000000, 0x3fd2e000} }, /* 151/2**9  */
+/**/ h2             = {{0x00000000, 0x3f669000} }, /* 361/2**17 */
+/**/ delu           = {{0x00000000, 0x3f700000} }, /* 1/2**8    */
+/**/ delv           = {{0x00000000, 0x3ef00000} }, /* 1/2**16   */
+/**/ ln2a           = {{0xfefa3800, 0x3fe62e42} }, /* ln(2) 43 bits */
+/**/ ln2b           = {{0x93c76730, 0x3d2ef357} }, /* ln(2)-ln2a    */
+/**/ e1             = {{0x00000000, 0x3bbcc868} }, /* 6.095e-21     */
+/**/ e2             = {{0x00000000, 0x3c1138ce} }, /* 2.334e-19     */
+/**/ e3             = {{0x00000000, 0x3aa1565d} }, /* 2.801e-26     */
+/**/ e4             = {{0x00000000, 0x39809d88} }, /* 1.024e-31     */
+/**/ e[M]           ={{{0x00000000, 0x37da223a} }, /* 1.2e-39       */
+/**/                  {{0x00000000, 0x35c851c4} }, /* 1.3e-49       */
+/**/                  {{0x00000000, 0x2ab85e51} }, /* 6.8e-103      */
+/**/                  {{0x00000000, 0x17383827} }},/* 8.1e-197      */
+/**/ two54          = {{0x00000000, 0x43500000} }, /* 2**54         */
+/**/ u03            = {{0xeb851eb8, 0x3f9eb851} }; /* 0.03          */
+
+#endif
+#endif
+
+#define  SQRT_2    sqrt_2.d
+#define  DEL_U     delu.d
+#define  DEL_V     delv.d
+#define  LN2A      ln2a.d
+#define  LN2B      ln2b.d
+#define  E1        e1.d
+#define  E2        e2.d
+#define  E3        e3.d
+#define  E4        e4.d
+#define  U03       u03.d
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/ulog.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/ulog.tbl
new file mode 100644
index 0000000000..8714ea3a6a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/ulog.tbl
@@ -0,0 +1,3326 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/****************************************************************/
+/* TABLES FOR THE ulog() FUNCTION                               */
+/****************************************************************/
+
+#ifdef BIG_ENDI
+  static const number
+           Iu[182] = {                            /* 1/ui   */
+/**/                  {{0x3ff6a13c, 0xd1537290} },
+/**/                  {{0x3ff68168, 0x16816817} },
+/**/                  {{0x3ff661ec, 0x6a5122f9} },
+/**/                  {{0x3ff642c8, 0x590b2164} },
+/**/                  {{0x3ff623fa, 0x77016240} },
+/**/                  {{0x3ff60581, 0x60581606} },
+/**/                  {{0x3ff5e75b, 0xb8d015e7} },
+/**/                  {{0x3ff5c988, 0x2b931057} },
+/**/                  {{0x3ff5ac05, 0x6b015ac0} },
+/**/                  {{0x3ff58ed2, 0x308158ed} },
+/**/                  {{0x3ff571ed, 0x3c506b3a} },
+/**/                  {{0x3ff55555, 0x55555555} },
+/**/                  {{0x3ff53909, 0x48f40feb} },
+/**/                  {{0x3ff51d07, 0xeae2f815} },
+/**/                  {{0x3ff50150, 0x15015015} },
+/**/                  {{0x3ff4e5e0, 0xa72f0539} },
+/**/                  {{0x3ff4cab8, 0x8725af6e} },
+/**/                  {{0x3ff4afd6, 0xa052bf5b} },
+/**/                  {{0x3ff49539, 0xe3b2d067} },
+/**/                  {{0x3ff47ae1, 0x47ae147b} },
+/**/                  {{0x3ff460cb, 0xc7f5cf9a} },
+/**/                  {{0x3ff446f8, 0x6562d9fb} },
+/**/                  {{0x3ff42d66, 0x25d51f87} },
+/**/                  {{0x3ff41414, 0x14141414} },
+/**/                  {{0x3ff3fb01, 0x3fb013fb} },
+/**/                  {{0x3ff3e22c, 0xbce4a902} },
+/**/                  {{0x3ff3c995, 0xa47babe7} },
+/**/                  {{0x3ff3b13b, 0x13b13b14} },
+/**/                  {{0x3ff3991c, 0x2c187f63} },
+/**/                  {{0x3ff38138, 0x13813814} },
+/**/                  {{0x3ff3698d, 0xf3de0748} },
+/**/                  {{0x3ff3521c, 0xfb2b78c1} },
+/**/                  {{0x3ff33ae4, 0x5b57bcb2} },
+/**/                  {{0x3ff323e3, 0x4a2b10bf} },
+/**/                  {{0x3ff30d19, 0x0130d190} },
+/**/                  {{0x3ff2f684, 0xbda12f68} },
+/**/                  {{0x3ff2e025, 0xc04b8097} },
+/**/                  {{0x3ff2c9fb, 0x4d812ca0} },
+/**/                  {{0x3ff2b404, 0xad012b40} },
+/**/                  {{0x3ff29e41, 0x29e4129e} },
+/**/                  {{0x3ff288b0, 0x1288b013} },
+/**/                  {{0x3ff27350, 0xb8812735} },
+/**/                  {{0x3ff25e22, 0x708092f1} },
+/**/                  {{0x3ff24924, 0x92492492} },
+/**/                  {{0x3ff23456, 0x789abcdf} },
+/**/                  {{0x3ff21fb7, 0x8121fb78} },
+/**/                  {{0x3ff20b47, 0x0c67c0d9} },
+/**/                  {{0x3ff1f704, 0x7dc11f70} },
+/**/                  {{0x3ff1e2ef, 0x3b3fb874} },
+/**/                  {{0x3ff1cf06, 0xada2811d} },
+/**/                  {{0x3ff1bb4a, 0x4046ed29} },
+/**/                  {{0x3ff1a7b9, 0x611a7b96} },
+/**/                  {{0x3ff19453, 0x808ca29c} },
+/**/                  {{0x3ff18118, 0x11811812} },
+/**/                  {{0x3ff16e06, 0x89427379} },
+/**/                  {{0x3ff15b1e, 0x5f75270d} },
+/**/                  {{0x3ff1485f, 0x0e0acd3b} },
+/**/                  {{0x3ff135c8, 0x1135c811} },
+/**/                  {{0x3ff12358, 0xe75d3033} },
+/**/                  {{0x3ff11111, 0x11111111} },
+/**/                  {{0x3ff0fef0, 0x10fef011} },
+/**/                  {{0x3ff0ecf5, 0x6be69c90} },
+/**/                  {{0x3ff0db20, 0xa88f4696} },
+/**/                  {{0x3ff0c971, 0x4fbcda3b} },
+/**/                  {{0x3ff0b7e6, 0xec259dc8} },
+/**/                  {{0x3ff0a681, 0x0a6810a7} },
+/**/                  {{0x3ff0953f, 0x39010954} },
+/**/                  {{0x3ff08421, 0x08421084} },
+/**/                  {{0x3ff07326, 0x0a47f7c6} },
+/**/                  {{0x3ff0624d, 0xd2f1a9fc} },
+/**/                  {{0x3ff05197, 0xf7d73404} },
+/**/                  {{0x3ff04104, 0x10410410} },
+/**/                  {{0x3ff03091, 0xb51f5e1a} },
+/**/                  {{0x3ff02040, 0x81020408} },
+/**/                  {{0x3ff01010, 0x10101010} },
+/**/                  {{0x3ff00000, 0x00000000} },
+/**/                  {{0x3fefe01f, 0xe01fe020} },
+/**/                  {{0x3fefc07f, 0x01fc07f0} },
+/**/                  {{0x3fefa11c, 0xaa01fa12} },
+/**/                  {{0x3fef81f8, 0x1f81f820} },
+/**/                  {{0x3fef6310, 0xaca0dbb5} },
+/**/                  {{0x3fef4465, 0x9e4a4271} },
+/**/                  {{0x3fef25f6, 0x44230ab5} },
+/**/                  {{0x3fef07c1, 0xf07c1f08} },
+/**/                  {{0x3feee9c7, 0xf8458e02} },
+/**/                  {{0x3feecc07, 0xb301ecc0} },
+/**/                  {{0x3feeae80, 0x7aba01eb} },
+/**/                  {{0x3fee9131, 0xabf0b767} },
+/**/                  {{0x3fee741a, 0xa59750e4} },
+/**/                  {{0x3fee573a, 0xc901e574} },
+/**/                  {{0x3fee3a91, 0x79dc1a73} },
+/**/                  {{0x3fee1e1e, 0x1e1e1e1e} },
+/**/                  {{0x3fee01e0, 0x1e01e01e} },
+/**/                  {{0x3fede5d6, 0xe3f8868a} },
+/**/                  {{0x3fedca01, 0xdca01dca} },
+/**/                  {{0x3fedae60, 0x76b981db} },
+/**/                  {{0x3fed92f2, 0x231e7f8a} },
+/**/                  {{0x3fed77b6, 0x54b82c34} },
+/**/                  {{0x3fed5cac, 0x807572b2} },
+/**/                  {{0x3fed41d4, 0x1d41d41d} },
+/**/                  {{0x3fed272c, 0xa3fc5b1a} },
+/**/                  {{0x3fed0cb5, 0x8f6ec074} },
+/**/                  {{0x3fecf26e, 0x5c44bfc6} },
+/**/                  {{0x3fecd856, 0x89039b0b} },
+/**/                  {{0x3fecbe6d, 0x9601cbe7} },
+/**/                  {{0x3feca4b3, 0x055ee191} },
+/**/                  {{0x3fec8b26, 0x5afb8a42} },
+/**/                  {{0x3fec71c7, 0x1c71c71c} },
+/**/                  {{0x3fec5894, 0xd10d4986} },
+/**/                  {{0x3fec3f8f, 0x01c3f8f0} },
+/**/                  {{0x3fec26b5, 0x392ea01c} },
+/**/                  {{0x3fec0e07, 0x0381c0e0} },
+/**/                  {{0x3febf583, 0xee868d8b} },
+/**/                  {{0x3febdd2b, 0x899406f7} },
+/**/                  {{0x3febc4fd, 0x65883e7b} },
+/**/                  {{0x3febacf9, 0x14c1bad0} },
+/**/                  {{0x3feb951e, 0x2b18ff23} },
+/**/                  {{0x3feb7d6c, 0x3dda338b} },
+/**/                  {{0x3feb65e2, 0xe3beee05} },
+/**/                  {{0x3feb4e81, 0xb4e81b4f} },
+/**/                  {{0x3feb3748, 0x4ad806ce} },
+/**/                  {{0x3feb2036, 0x406c80d9} },
+/**/                  {{0x3feb094b, 0x31d922a4} },
+/**/                  {{0x3feaf286, 0xbca1af28} },
+/**/                  {{0x3feadbe8, 0x7f94905e} },
+/**/                  {{0x3feac570, 0x1ac5701b} },
+/**/                  {{0x3feaaf1d, 0x2f87ebfd} },
+/**/                  {{0x3fea98ef, 0x606a63be} },
+/**/                  {{0x3fea82e6, 0x5130e159} },
+/**/                  {{0x3fea6d01, 0xa6d01a6d} },
+/**/                  {{0x3fea5741, 0x07688a4a} },
+/**/                  {{0x3fea41a4, 0x1a41a41a} },
+/**/                  {{0x3fea2c2a, 0x87c51ca0} },
+/**/                  {{0x3fea16d3, 0xf97a4b02} },
+/**/                  {{0x3fea01a0, 0x1a01a01a} },
+/**/                  {{0x3fe9ec8e, 0x951033d9} },
+/**/                  {{0x3fe9d79f, 0x176b682d} },
+/**/                  {{0x3fe9c2d1, 0x4ee4a102} },
+/**/                  {{0x3fe9ae24, 0xea5510da} },
+/**/                  {{0x3fe99999, 0x9999999a} },
+/**/                  {{0x3fe9852f, 0x0d8ec0ff} },
+/**/                  {{0x3fe970e4, 0xf80cb872} },
+/**/                  {{0x3fe95cbb, 0x0be377ae} },
+/**/                  {{0x3fe948b0, 0xfcd6e9e0} },
+/**/                  {{0x3fe934c6, 0x7f9b2ce6} },
+/**/                  {{0x3fe920fb, 0x49d0e229} },
+/**/                  {{0x3fe90d4f, 0x120190d5} },
+/**/                  {{0x3fe8f9c1, 0x8f9c18fa} },
+/**/                  {{0x3fe8e652, 0x7af1373f} },
+/**/                  {{0x3fe8d301, 0x8d3018d3} },
+/**/                  {{0x3fe8bfce, 0x8062ff3a} },
+/**/                  {{0x3fe8acb9, 0x0f6bf3aa} },
+/**/                  {{0x3fe899c0, 0xf601899c} },
+/**/                  {{0x3fe886e5, 0xf0abb04a} },
+/**/                  {{0x3fe87427, 0xbcc092b9} },
+/**/                  {{0x3fe86186, 0x18618618} },
+/**/                  {{0x3fe84f00, 0xc2780614} },
+/**/                  {{0x3fe83c97, 0x7ab2bedd} },
+/**/                  {{0x3fe82a4a, 0x0182a4a0} },
+/**/                  {{0x3fe81818, 0x18181818} },
+/**/                  {{0x3fe80601, 0x80601806} },
+/**/                  {{0x3fe7f405, 0xfd017f40} },
+/**/                  {{0x3fe7e225, 0x515a4f1d} },
+/**/                  {{0x3fe7d05f, 0x417d05f4} },
+/**/                  {{0x3fe7beb3, 0x922e017c} },
+/**/                  {{0x3fe7ad22, 0x08e0ecc3} },
+/**/                  {{0x3fe79baa, 0x6bb6398b} },
+/**/                  {{0x3fe78a4c, 0x8178a4c8} },
+/**/                  {{0x3fe77908, 0x119ac60d} },
+/**/                  {{0x3fe767dc, 0xe434a9b1} },
+/**/                  {{0x3fe756ca, 0xc201756d} },
+/**/                  {{0x3fe745d1, 0x745d1746} },
+/**/                  {{0x3fe734f0, 0xc541fe8d} },
+/**/                  {{0x3fe72428, 0x7f46debc} },
+/**/                  {{0x3fe71378, 0x6d9c7c09} },
+/**/                  {{0x3fe702e0, 0x5c0b8170} },
+/**/                  {{0x3fe6f260, 0x16f26017} },
+/**/                  {{0x3fe6e1f7, 0x6b4337c7} },
+/**/                  {{0x3fe6d1a6, 0x2681c861} },
+/**/                  {{0x3fe6c16c, 0x16c16c17} },
+/**/                  {{0x3fe6b149, 0x0aa31a3d} },
+/**/                  {{0x3fe6a13c, 0xd1537290} },
+  };
+
+  static const number
+           Iv[362] = {                            /* 1/vj   */
+/**/                  {{0x3ff00b47, 0xee93bfe3} },
+/**/                  {{0x3ff00b37, 0xd80c106f} },
+/**/                  {{0x3ff00b27, 0xc1a4a47a} },
+/**/                  {{0x3ff00b17, 0xab5d7ba2} },
+/**/                  {{0x3ff00b07, 0x95369587} },
+/**/                  {{0x3ff00af7, 0x7f2ff1c6} },
+/**/                  {{0x3ff00ae7, 0x69499000} },
+/**/                  {{0x3ff00ad7, 0x53836fd3} },
+/**/                  {{0x3ff00ac7, 0x3ddd90dd} },
+/**/                  {{0x3ff00ab7, 0x2857f2bf} },
+/**/                  {{0x3ff00aa7, 0x12f29517} },
+/**/                  {{0x3ff00a96, 0xfdad7784} },
+/**/                  {{0x3ff00a86, 0xe88899a5} },
+/**/                  {{0x3ff00a76, 0xd383fb19} },
+/**/                  {{0x3ff00a66, 0xbe9f9b7f} },
+/**/                  {{0x3ff00a56, 0xa9db7a76} },
+/**/                  {{0x3ff00a46, 0x9537979d} },
+/**/                  {{0x3ff00a36, 0x80b3f293} },
+/**/                  {{0x3ff00a26, 0x6c508af8} },
+/**/                  {{0x3ff00a16, 0x580d606a} },
+/**/                  {{0x3ff00a06, 0x43ea7288} },
+/**/                  {{0x3ff009f6, 0x2fe7c0f1} },
+/**/                  {{0x3ff009e6, 0x1c054b44} },
+/**/                  {{0x3ff009d6, 0x08431122} },
+/**/                  {{0x3ff009c5, 0xf4a11227} },
+/**/                  {{0x3ff009b5, 0xe11f4df4} },
+/**/                  {{0x3ff009a5, 0xcdbdc428} },
+/**/                  {{0x3ff00995, 0xba7c7462} },
+/**/                  {{0x3ff00985, 0xa75b5e40} },
+/**/                  {{0x3ff00975, 0x945a8162} },
+/**/                  {{0x3ff00965, 0x8179dd68} },
+/**/                  {{0x3ff00955, 0x6eb971ef} },
+/**/                  {{0x3ff00945, 0x5c193e98} },
+/**/                  {{0x3ff00935, 0x49994301} },
+/**/                  {{0x3ff00925, 0x37397eca} },
+/**/                  {{0x3ff00915, 0x24f9f192} },
+/**/                  {{0x3ff00905, 0x12da9af7} },
+/**/                  {{0x3ff008f5, 0x00db7a99} },
+/**/                  {{0x3ff008e4, 0xeefc9018} },
+/**/                  {{0x3ff008d4, 0xdd3ddb12} },
+/**/                  {{0x3ff008c4, 0xcb9f5b26} },
+/**/                  {{0x3ff008b4, 0xba210ff4} },
+/**/                  {{0x3ff008a4, 0xa8c2f91a} },
+/**/                  {{0x3ff00894, 0x97851639} },
+/**/                  {{0x3ff00884, 0x866766ef} },
+/**/                  {{0x3ff00874, 0x7569eadb} },
+/**/                  {{0x3ff00864, 0x648ca19d} },
+/**/                  {{0x3ff00854, 0x53cf8ad3} },
+/**/                  {{0x3ff00844, 0x4332a61e} },
+/**/                  {{0x3ff00834, 0x32b5f31b} },
+/**/                  {{0x3ff00824, 0x2259716c} },
+/**/                  {{0x3ff00814, 0x121d20ad} },
+/**/                  {{0x3ff00804, 0x02010080} },
+/**/                  {{0x3ff007f3, 0xf2051083} },
+/**/                  {{0x3ff007e3, 0xe2295056} },
+/**/                  {{0x3ff007d3, 0xd26dbf97} },
+/**/                  {{0x3ff007c3, 0xc2d25de5} },
+/**/                  {{0x3ff007b3, 0xb3572ae2} },
+/**/                  {{0x3ff007a3, 0xa3fc262a} },
+/**/                  {{0x3ff00793, 0x94c14f5f} },
+/**/                  {{0x3ff00783, 0x85a6a61e} },
+/**/                  {{0x3ff00773, 0x76ac2a08} },
+/**/                  {{0x3ff00763, 0x67d1dabb} },
+/**/                  {{0x3ff00753, 0x5917b7d7} },
+/**/                  {{0x3ff00743, 0x4a7dc0fb} },
+/**/                  {{0x3ff00733, 0x3c03f5c7} },
+/**/                  {{0x3ff00723, 0x2daa55da} },
+/**/                  {{0x3ff00713, 0x1f70e0d3} },
+/**/                  {{0x3ff00703, 0x11579652} },
+/**/                  {{0x3ff006f3, 0x035e75f5} },
+/**/                  {{0x3ff006e2, 0xf5857f5d} },
+/**/                  {{0x3ff006d2, 0xe7ccb228} },
+/**/                  {{0x3ff006c2, 0xda340df6} },
+/**/                  {{0x3ff006b2, 0xccbb9266} },
+/**/                  {{0x3ff006a2, 0xbf633f18} },
+/**/                  {{0x3ff00692, 0xb22b13ab} },
+/**/                  {{0x3ff00682, 0xa5130fbe} },
+/**/                  {{0x3ff00672, 0x981b32f1} },
+/**/                  {{0x3ff00662, 0x8b437ce4} },
+/**/                  {{0x3ff00652, 0x7e8bed35} },
+/**/                  {{0x3ff00642, 0x71f48383} },
+/**/                  {{0x3ff00632, 0x657d3f70} },
+/**/                  {{0x3ff00622, 0x59262098} },
+/**/                  {{0x3ff00612, 0x4cef269e} },
+/**/                  {{0x3ff00602, 0x40d8511e} },
+/**/                  {{0x3ff005f2, 0x34e19fba} },
+/**/                  {{0x3ff005e2, 0x290b1211} },
+/**/                  {{0x3ff005d2, 0x1d54a7c1} },
+/**/                  {{0x3ff005c2, 0x11be606b} },
+/**/                  {{0x3ff005b2, 0x06483bad} },
+/**/                  {{0x3ff005a1, 0xfaf23928} },
+/**/                  {{0x3ff00591, 0xefbc587b} },
+/**/                  {{0x3ff00581, 0xe4a69945} },
+/**/                  {{0x3ff00571, 0xd9b0fb25} },
+/**/                  {{0x3ff00561, 0xcedb7dbc} },
+/**/                  {{0x3ff00551, 0xc42620a9} },
+/**/                  {{0x3ff00541, 0xb990e38b} },
+/**/                  {{0x3ff00531, 0xaf1bc601} },
+/**/                  {{0x3ff00521, 0xa4c6c7ac} },
+/**/                  {{0x3ff00511, 0x9a91e82a} },
+/**/                  {{0x3ff00501, 0x907d271c} },
+/**/                  {{0x3ff004f1, 0x86888421} },
+/**/                  {{0x3ff004e1, 0x7cb3fed8} },
+/**/                  {{0x3ff004d1, 0x72ff96e0} },
+/**/                  {{0x3ff004c1, 0x696b4bdb} },
+/**/                  {{0x3ff004b1, 0x5ff71d66} },
+/**/                  {{0x3ff004a1, 0x56a30b21} },
+/**/                  {{0x3ff00491, 0x4d6f14ad} },
+/**/                  {{0x3ff00481, 0x445b39a8} },
+/**/                  {{0x3ff00471, 0x3b6779b3} },
+/**/                  {{0x3ff00461, 0x3293d46c} },
+/**/                  {{0x3ff00451, 0x29e04974} },
+/**/                  {{0x3ff00441, 0x214cd869} },
+/**/                  {{0x3ff00431, 0x18d980ed} },
+/**/                  {{0x3ff00421, 0x1086429d} },
+/**/                  {{0x3ff00411, 0x08531d1a} },
+/**/                  {{0x3ff00401, 0x00401004} },
+/**/                  {{0x3ff003f0, 0xf84d1afa} },
+/**/                  {{0x3ff003e0, 0xf07a3d9b} },
+/**/                  {{0x3ff003d0, 0xe8c77787} },
+/**/                  {{0x3ff003c0, 0xe134c85f} },
+/**/                  {{0x3ff003b0, 0xd9c22fc1} },
+/**/                  {{0x3ff003a0, 0xd26fad4d} },
+/**/                  {{0x3ff00390, 0xcb3d40a3} },
+/**/                  {{0x3ff00380, 0xc42ae963} },
+/**/                  {{0x3ff00370, 0xbd38a72c} },
+/**/                  {{0x3ff00360, 0xb666799e} },
+/**/                  {{0x3ff00350, 0xafb46058} },
+/**/                  {{0x3ff00340, 0xa9225afa} },
+/**/                  {{0x3ff00330, 0xa2b06925} },
+/**/                  {{0x3ff00320, 0x9c5e8a77} },
+/**/                  {{0x3ff00310, 0x962cbe90} },
+/**/                  {{0x3ff00300, 0x901b0511} },
+/**/                  {{0x3ff002f0, 0x8a295d98} },
+/**/                  {{0x3ff002e0, 0x8457c7c6} },
+/**/                  {{0x3ff002d0, 0x7ea6433a} },
+/**/                  {{0x3ff002c0, 0x7914cf94} },
+/**/                  {{0x3ff002b0, 0x73a36c73} },
+/**/                  {{0x3ff002a0, 0x6e521978} },
+/**/                  {{0x3ff00290, 0x6920d642} },
+/**/                  {{0x3ff00280, 0x640fa271} },
+/**/                  {{0x3ff00270, 0x5f1e7da5} },
+/**/                  {{0x3ff00260, 0x5a4d677d} },
+/**/                  {{0x3ff00250, 0x559c5f9a} },
+/**/                  {{0x3ff00240, 0x510b659a} },
+/**/                  {{0x3ff00230, 0x4c9a791f} },
+/**/                  {{0x3ff00220, 0x484999c6} },
+/**/                  {{0x3ff00210, 0x4418c732} },
+/**/                  {{0x3ff00200, 0x40080100} },
+/**/                  {{0x3ff001f0, 0x3c1746d2} },
+/**/                  {{0x3ff001e0, 0x38469846} },
+/**/                  {{0x3ff001d0, 0x3495f4fd} },
+/**/                  {{0x3ff001c0, 0x31055c96} },
+/**/                  {{0x3ff001b0, 0x2d94ceb2} },
+/**/                  {{0x3ff001a0, 0x2a444af0} },
+/**/                  {{0x3ff00190, 0x2713d0ef} },
+/**/                  {{0x3ff00180, 0x24036051} },
+/**/                  {{0x3ff00170, 0x2112f8b4} },
+/**/                  {{0x3ff00160, 0x1e4299b9} },
+/**/                  {{0x3ff00150, 0x1b9242ff} },
+/**/                  {{0x3ff00140, 0x1901f427} },
+/**/                  {{0x3ff00130, 0x1691acd0} },
+/**/                  {{0x3ff00120, 0x14416c9a} },
+/**/                  {{0x3ff00110, 0x12113324} },
+/**/                  {{0x3ff00100, 0x10010010} },
+/**/                  {{0x3ff000f0, 0x0e10d2fc} },
+/**/                  {{0x3ff000e0, 0x0c40ab89} },
+/**/                  {{0x3ff000d0, 0x0a908957} },
+/**/                  {{0x3ff000c0, 0x09006c05} },
+/**/                  {{0x3ff000b0, 0x07905334} },
+/**/                  {{0x3ff000a0, 0x06403e82} },
+/**/                  {{0x3ff00090, 0x05102d92} },
+/**/                  {{0x3ff00080, 0x04002001} },
+/**/                  {{0x3ff00070, 0x03101571} },
+/**/                  {{0x3ff00060, 0x02400d80} },
+/**/                  {{0x3ff00050, 0x019007d0} },
+/**/                  {{0x3ff00040, 0x01000400} },
+/**/                  {{0x3ff00030, 0x009001b0} },
+/**/                  {{0x3ff00020, 0x00400080} },
+/**/                  {{0x3ff00010, 0x00100010} },
+/**/                  {{0x3ff00000, 0x00000000} },
+/**/                  {{0x3fefffe0, 0x001fffe0} },
+/**/                  {{0x3fefffc0, 0x007fff00} },
+/**/                  {{0x3fefffa0, 0x011ffca0} },
+/**/                  {{0x3fefff80, 0x01fff800} },
+/**/                  {{0x3fefff60, 0x031ff060} },
+/**/                  {{0x3fefff40, 0x047fe501} },
+/**/                  {{0x3fefff20, 0x061fd521} },
+/**/                  {{0x3fefff00, 0x07ffc002} },
+/**/                  {{0x3feffee0, 0x0a1fa4e3} },
+/**/                  {{0x3feffec0, 0x0c7f8305} },
+/**/                  {{0x3feffea0, 0x0f1f59a7} },
+/**/                  {{0x3feffe80, 0x11ff280a} },
+/**/                  {{0x3feffe60, 0x151eed6e} },
+/**/                  {{0x3feffe40, 0x187ea913} },
+/**/                  {{0x3feffe20, 0x1c1e5a39} },
+/**/                  {{0x3feffe00, 0x1ffe0020} },
+/**/                  {{0x3feffde0, 0x241d9a09} },
+/**/                  {{0x3feffdc0, 0x287d2733} },
+/**/                  {{0x3feffda0, 0x2d1ca6e0} },
+/**/                  {{0x3feffd80, 0x31fc184e} },
+/**/                  {{0x3feffd60, 0x371b7abf} },
+/**/                  {{0x3feffd40, 0x3c7acd72} },
+/**/                  {{0x3feffd20, 0x421a0fa9} },
+/**/                  {{0x3feffd00, 0x47f940a2} },
+/**/                  {{0x3feffce0, 0x4e185f9f} },
+/**/                  {{0x3feffcc0, 0x54776bdf} },
+/**/                  {{0x3feffca0, 0x5b1664a3} },
+/**/                  {{0x3feffc80, 0x61f5492c} },
+/**/                  {{0x3feffc60, 0x691418b9} },
+/**/                  {{0x3feffc40, 0x7072d28b} },
+/**/                  {{0x3feffc20, 0x781175e3} },
+/**/                  {{0x3feffc00, 0x7ff00200} },
+/**/                  {{0x3feffbe0, 0x880e7623} },
+/**/                  {{0x3feffbc0, 0x906cd18c} },
+/**/                  {{0x3feffba0, 0x990b137c} },
+/**/                  {{0x3feffb80, 0xa1e93b34} },
+/**/                  {{0x3feffb60, 0xab0747f3} },
+/**/                  {{0x3feffb40, 0xb46538fa} },
+/**/                  {{0x3feffb20, 0xbe030d89} },
+/**/                  {{0x3feffb00, 0xc7e0c4e1} },
+/**/                  {{0x3feffae0, 0xd1fe5e43} },
+/**/                  {{0x3feffac0, 0xdc5bd8ee} },
+/**/                  {{0x3feffaa0, 0xe6f93424} },
+/**/                  {{0x3feffa80, 0xf1d66f25} },
+/**/                  {{0x3feffa60, 0xfcf38931} },
+/**/                  {{0x3feffa41, 0x08508189} },
+/**/                  {{0x3feffa21, 0x13ed576d} },
+/**/                  {{0x3feffa01, 0x1fca0a1e} },
+/**/                  {{0x3feff9e1, 0x2be698dd} },
+/**/                  {{0x3feff9c1, 0x384302e9} },
+/**/                  {{0x3feff9a1, 0x44df4785} },
+/**/                  {{0x3feff981, 0x51bb65ef} },
+/**/                  {{0x3feff961, 0x5ed75d6a} },
+/**/                  {{0x3feff941, 0x6c332d34} },
+/**/                  {{0x3feff921, 0x79ced490} },
+/**/                  {{0x3feff901, 0x87aa52be} },
+/**/                  {{0x3feff8e1, 0x95c5a6fe} },
+/**/                  {{0x3feff8c1, 0xa420d091} },
+/**/                  {{0x3feff8a1, 0xb2bbceb7} },
+/**/                  {{0x3feff881, 0xc196a0b2} },
+/**/                  {{0x3feff861, 0xd0b145c2} },
+/**/                  {{0x3feff841, 0xe00bbd28} },
+/**/                  {{0x3feff821, 0xefa60624} },
+/**/                  {{0x3feff801, 0xff801ff8} },
+/**/                  {{0x3feff7e2, 0x0f9a09e3} },
+/**/                  {{0x3feff7c2, 0x1ff3c328} },
+/**/                  {{0x3feff7a2, 0x308d4b05} },
+/**/                  {{0x3feff782, 0x4166a0bd} },
+/**/                  {{0x3feff762, 0x527fc390} },
+/**/                  {{0x3feff742, 0x63d8b2bf} },
+/**/                  {{0x3feff722, 0x75716d8b} },
+/**/                  {{0x3feff702, 0x8749f334} },
+/**/                  {{0x3feff6e2, 0x996242fb} },
+/**/                  {{0x3feff6c2, 0xabba5c21} },
+/**/                  {{0x3feff6a2, 0xbe523de8} },
+/**/                  {{0x3feff682, 0xd129e78f} },
+/**/                  {{0x3feff662, 0xe4415858} },
+/**/                  {{0x3feff642, 0xf7988f84} },
+/**/                  {{0x3feff623, 0x0b2f8c54} },
+/**/                  {{0x3feff603, 0x1f064e08} },
+/**/                  {{0x3feff5e3, 0x331cd3e1} },
+/**/                  {{0x3feff5c3, 0x47731d21} },
+/**/                  {{0x3feff5a3, 0x5c092908} },
+/**/                  {{0x3feff583, 0x70def6d7} },
+/**/                  {{0x3feff563, 0x85f485d0} },
+/**/                  {{0x3feff543, 0x9b49d532} },
+/**/                  {{0x3feff523, 0xb0dee440} },
+/**/                  {{0x3feff503, 0xc6b3b23b} },
+/**/                  {{0x3feff4e3, 0xdcc83e62} },
+/**/                  {{0x3feff4c3, 0xf31c87f8} },
+/**/                  {{0x3feff4a4, 0x09b08e3d} },
+/**/                  {{0x3feff484, 0x20845073} },
+/**/                  {{0x3feff464, 0x3797cdda} },
+/**/                  {{0x3feff444, 0x4eeb05b4} },
+/**/                  {{0x3feff424, 0x667df741} },
+/**/                  {{0x3feff404, 0x7e50a1c3} },
+/**/                  {{0x3feff3e4, 0x9663047b} },
+/**/                  {{0x3feff3c4, 0xaeb51eaa} },
+/**/                  {{0x3feff3a4, 0xc746ef91} },
+/**/                  {{0x3feff384, 0xe0187672} },
+/**/                  {{0x3feff364, 0xf929b28d} },
+/**/                  {{0x3feff345, 0x127aa323} },
+/**/                  {{0x3feff325, 0x2c0b4776} },
+/**/                  {{0x3feff305, 0x45db9ec7} },
+/**/                  {{0x3feff2e5, 0x5feba858} },
+/**/                  {{0x3feff2c5, 0x7a3b6369} },
+/**/                  {{0x3feff2a5, 0x94cacf3b} },
+/**/                  {{0x3feff285, 0xaf99eb11} },
+/**/                  {{0x3feff265, 0xcaa8b62a} },
+/**/                  {{0x3feff245, 0xe5f72fc9} },
+/**/                  {{0x3feff226, 0x0185572f} },
+/**/                  {{0x3feff206, 0x1d532b9d} },
+/**/                  {{0x3feff1e6, 0x3960ac54} },
+/**/                  {{0x3feff1c6, 0x55add896} },
+/**/                  {{0x3feff1a6, 0x723aafa3} },
+/**/                  {{0x3feff186, 0x8f0730be} },
+/**/                  {{0x3feff166, 0xac135b27} },
+/**/                  {{0x3feff146, 0xc95f2e21} },
+/**/                  {{0x3feff126, 0xe6eaa8eb} },
+/**/                  {{0x3feff107, 0x04b5cac9} },
+/**/                  {{0x3feff0e7, 0x22c092fb} },
+/**/                  {{0x3feff0c7, 0x410b00c2} },
+/**/                  {{0x3feff0a7, 0x5f951360} },
+/**/                  {{0x3feff087, 0x7e5eca16} },
+/**/                  {{0x3feff067, 0x9d682426} },
+/**/                  {{0x3feff047, 0xbcb120d2} },
+/**/                  {{0x3feff027, 0xdc39bf5a} },
+/**/                  {{0x3feff007, 0xfc01ff00} },
+/**/                  {{0x3fefefe8, 0x1c09df07} },
+/**/                  {{0x3fefefc8, 0x3c515eae} },
+/**/                  {{0x3fefefa8, 0x5cd87d38} },
+/**/                  {{0x3fefef88, 0x7d9f39e6} },
+/**/                  {{0x3fefef68, 0x9ea593fa} },
+/**/                  {{0x3fefef48, 0xbfeb8ab5} },
+/**/                  {{0x3fefef28, 0xe1711d5a} },
+/**/                  {{0x3fefef09, 0x03364b28} },
+/**/                  {{0x3fefeee9, 0x253b1363} },
+/**/                  {{0x3fefeec9, 0x477f754b} },
+/**/                  {{0x3fefeea9, 0x6a037022} },
+/**/                  {{0x3fefee89, 0x8cc7032a} },
+/**/                  {{0x3fefee69, 0xafca2da5} },
+/**/                  {{0x3fefee49, 0xd30ceed4} },
+/**/                  {{0x3fefee29, 0xf68f45f8} },
+/**/                  {{0x3fefee0a, 0x1a513254} },
+/**/                  {{0x3fefedea, 0x3e52b329} },
+/**/                  {{0x3fefedca, 0x6293c7b8} },
+/**/                  {{0x3fefedaa, 0x87146f44} },
+/**/                  {{0x3fefed8a, 0xabd4a90e} },
+/**/                  {{0x3fefed6a, 0xd0d47458} },
+/**/                  {{0x3fefed4a, 0xf613d064} },
+/**/                  {{0x3fefed2b, 0x1b92bc73} },
+/**/                  {{0x3fefed0b, 0x415137c7} },
+/**/                  {{0x3fefeceb, 0x674f41a2} },
+/**/                  {{0x3fefeccb, 0x8d8cd945} },
+/**/                  {{0x3fefecab, 0xb409fdf3} },
+/**/                  {{0x3fefec8b, 0xdac6aeed} },
+/**/                  {{0x3fefec6c, 0x01c2eb76} },
+/**/                  {{0x3fefec4c, 0x28feb2ce} },
+/**/                  {{0x3fefec2c, 0x507a0437} },
+/**/                  {{0x3fefec0c, 0x7834def5} },
+/**/                  {{0x3fefebec, 0xa02f4247} },
+/**/                  {{0x3fefebcc, 0xc8692d71} },
+/**/                  {{0x3fefebac, 0xf0e29fb4} },
+/**/                  {{0x3fefeb8d, 0x199b9852} },
+/**/                  {{0x3fefeb6d, 0x4294168d} },
+/**/                  {{0x3fefeb4d, 0x6bcc19a7} },
+/**/                  {{0x3fefeb2d, 0x9543a0e2} },
+/**/                  {{0x3fefeb0d, 0xbefaab7f} },
+/**/                  {{0x3fefeaed, 0xe8f138c2} },
+/**/                  {{0x3fefeace, 0x132747ea} },
+/**/                  {{0x3fefeaae, 0x3d9cd83c} },
+/**/                  {{0x3fefea8e, 0x6851e8f7} },
+/**/                  {{0x3fefea6e, 0x93467960} },
+/**/                  {{0x3fefea4e, 0xbe7a88b7} },
+/**/                  {{0x3fefea2e, 0xe9ee163f} },
+/**/                  {{0x3fefea0f, 0x15a12139} },
+/**/                  {{0x3fefe9ef, 0x4193a8e8} },
+/**/                  {{0x3fefe9cf, 0x6dc5ac8e} },
+/**/                  {{0x3fefe9af, 0x9a372b6d} },
+/**/                  {{0x3fefe98f, 0xc6e824c6} },
+/**/                  {{0x3fefe96f, 0xf3d897dd} },
+  };
+
+  static const number
+       Lu[182][2] = {                               /* log(ui) */
+/**/                 {{{0xbfd63003, 0x0b3aac49} },
+/**/                  {{0xbc6dc18c, 0xe51fff99} },},
+/**/                 {{{0xbfd5d5bd, 0xdf595f30} },
+/**/                  {{0x3c765411, 0x48cbb8a2} },},
+/**/                 {{{0xbfd57bf7, 0x53c8d1fb} },
+/**/                  {{0x3c60908d, 0x15f88b63} },},
+/**/                 {{{0xbfd522ae, 0x0738a3d8} },
+/**/                  {{0x3c68f7e9, 0xb38a6979} },},
+/**/                 {{{0xbfd4c9e0, 0x9e172c3c} },
+/**/                  {{0x3c512361, 0x5b147a5d} },},
+/**/                 {{{0xbfd4718d, 0xc271c41b} },
+/**/                  {{0xbc38fb4c, 0x14c56eef} },},
+/**/                 {{{0xbfd419b4, 0x23d5e8c7} },
+/**/                  {{0xbc60dbb2, 0x43827392} },},
+/**/                 {{{0xbfd3c252, 0x77333184} },
+/**/                  {{0x3c72ad27, 0xe50a8ec6} },},
+/**/                 {{{0xbfd36b67, 0x76be1117} },
+/**/                  {{0x3c5324f0, 0xe883858e} },},
+/**/                 {{{0xbfd314f1, 0xe1d35ce4} },
+/**/                  {{0x3c73d699, 0x09e5c3dc} },},
+/**/                 {{{0xbfd2bef0, 0x7cdc9354} },
+/**/                  {{0x3c782dad, 0x7fd86088} },},
+/**/                 {{{0xbfd26962, 0x1134db92} },
+/**/                  {{0xbc7e0efa, 0xdd9db02b} },},
+/**/                 {{{0xbfd21445, 0x6d0eb8d4} },
+/**/                  {{0xbc6f7ae9, 0x1aeba60a} },},
+/**/                 {{{0xbfd1bf99, 0x635a6b95} },
+/**/                  {{0x3c612aeb, 0x84249223} },},
+/**/                 {{{0xbfd16b5c, 0xcbacfb73} },
+/**/                  {{0xbc766fbd, 0x28b40935} },},
+/**/                 {{{0xbfd1178e, 0x8227e47c} },
+/**/                  {{0x3c60e63a, 0x5f01c691} },},
+/**/                 {{{0xbfd0c42d, 0x676162e3} },
+/**/                  {{0xbc5162c7, 0x9d5d11ee} },},
+/**/                 {{{0xbfd07138, 0x604d5862} },
+/**/                  {{0xbc7cdb16, 0xed4e9138} },},
+/**/                 {{{0xbfd01eae, 0x5626c691} },
+/**/                  {{0x3c418290, 0xbd2932e2} },},
+/**/                 {{{0xbfcf991c, 0x6cb3b379} },
+/**/                  {{0xbc6f6650, 0x66f980a2} },},
+/**/                 {{{0xbfcef5ad, 0xe4dcffe6} },
+/**/                  {{0x3c508ab2, 0xddc708a0} },},
+/**/                 {{{0xbfce530e, 0xffe71012} },
+/**/                  {{0xbc422760, 0x41f43042} },},
+/**/                 {{{0xbfcdb13d, 0xb0d48940} },
+/**/                  {{0xbc5aa11d, 0x49f96cb9} },},
+/**/                 {{{0xbfcd1037, 0xf2655e7b} },
+/**/                  {{0xbc660629, 0x242471a2} },},
+/**/                 {{{0xbfcc6ffb, 0xc6f00f71} },
+/**/                  {{0x3c68e58b, 0x2c57a4a5} },},
+/**/                 {{{0xbfcbd087, 0x383bd8ad} },
+/**/                  {{0xbc3dd355, 0xf6a516d7} },},
+/**/                 {{{0xbfcb31d8, 0x575bce3d} },
+/**/                  {{0x3c66353a, 0xb386a94d} },},
+/**/                 {{{0xbfca93ed, 0x3c8ad9e3} },
+/**/                  {{0xbc6bcafa, 0x9de97203} },},
+/**/                 {{{0xbfc9f6c4, 0x07089664} },
+/**/                  {{0xbc435a19, 0x605e67ef} },},
+/**/                 {{{0xbfc95a5a, 0xdcf7017f} },
+/**/                  {{0xbc5142c5, 0x07fb7a3d} },},
+/**/                 {{{0xbfc8beaf, 0xeb38fe8c} },
+/**/                  {{0xbc555aa8, 0xb6997a40} },},
+/**/                 {{{0xbfc823c1, 0x6551a3c2} },
+/**/                  {{0x3c61232c, 0xe70be781} },},
+/**/                 {{{0xbfc7898d, 0x85444c73} },
+/**/                  {{0xbc5ef8f6, 0xebcfb201} },},
+/**/                 {{{0xbfc6f012, 0x8b756abc} },
+/**/                  {{0x3c68de59, 0xc21e166c} },},
+/**/                 {{{0xbfc6574e, 0xbe8c133a} },
+/**/                  {{0x3c3d34f0, 0xf4621bed} },},
+/**/                 {{{0xbfc5bf40, 0x6b543db2} },
+/**/                  {{0x3c21f5b4, 0x4c0df7e7} },},
+/**/                 {{{0xbfc527e5, 0xe4a1b58d} },
+/**/                  {{0x3c271a96, 0x82395bfd} },},
+/**/                 {{{0xbfc4913d, 0x8333b561} },
+/**/                  {{0x3c50d560, 0x4930f135} },},
+/**/                 {{{0xbfc3fb45, 0xa59928cc} },
+/**/                  {{0x3c6d87e6, 0xa354d056} },},
+/**/                 {{{0xbfc365fc, 0xb0159016} },
+/**/                  {{0xbc57d411, 0xa5b944ad} },},
+/**/                 {{{0xbfc2d161, 0x0c86813a} },
+/**/                  {{0x3c5499a3, 0xf25af95f} },},
+/**/                 {{{0xbfc23d71, 0x2a49c202} },
+/**/                  {{0x3c66e381, 0x61051d69} },},
+/**/                 {{{0xbfc1aa2b, 0x7e23f72a} },
+/**/                  {{0x3c4c6ef1, 0xd9b2ef7e} },},
+/**/                 {{{0xbfc1178e, 0x8227e47c} },
+/**/                  {{0x3c50e63a, 0x5f01c691} },},
+/**/                 {{{0xbfc08598, 0xb59e3a07} },
+/**/                  {{0x3c6dd700, 0x9902bf32} },},
+/**/                 {{{0xbfbfe891, 0x39dbd566} },
+/**/                  {{0x3c5ac9f4, 0x215f9393} },},
+/**/                 {{{0xbfbec739, 0x830a1120} },
+/**/                  {{0x3c4a2bf9, 0x91780d3f} },},
+/**/                 {{{0xbfbda727, 0x638446a2} },
+/**/                  {{0xbc5401fa, 0x71733019} },},
+/**/                 {{{0xbfbc8858, 0x01bc4b23} },
+/**/                  {{0xbc5a38cb, 0x559a6706} },},
+/**/                 {{{0xbfbb6ac8, 0x8dad5b1c} },
+/**/                  {{0x3c40057e, 0xed1ca59f} },},
+/**/                 {{{0xbfba4e76, 0x40b1bc38} },
+/**/                  {{0x3c55b5ca, 0x203e4259} },},
+/**/                 {{{0xbfb9335e, 0x5d594989} },
+/**/                  {{0x3c5478a8, 0x5704ccb7} },},
+/**/                 {{{0xbfb8197e, 0x2f40e3f0} },
+/**/                  {{0xbc3b9f2d, 0xffbeed43} },},
+/**/                 {{{0xbfb700d3, 0x0aeac0e1} },
+/**/                  {{0x3c272566, 0x212cdd05} },},
+/**/                 {{{0xbfb5e95a, 0x4d9791cb} },
+/**/                  {{0xbc5f3874, 0x5c5c450a} },},
+/**/                 {{{0xbfb4d311, 0x5d207eac} },
+/**/                  {{0xbc5769f4, 0x2c7842cc} },},
+/**/                 {{{0xbfb3bdf5, 0xa7d1ee64} },
+/**/                  {{0xbc47a976, 0xd3b5b45f} },},
+/**/                 {{{0xbfb2aa04, 0xa44717a5} },
+/**/                  {{0x3c5d15d3, 0x8d2fa3f7} },},
+/**/                 {{{0xbfb1973b, 0xd1465567} },
+/**/                  {{0x3c475583, 0x67a6acf6} },},
+/**/                 {{{0xbfb08598, 0xb59e3a07} },
+/**/                  {{0x3c5dd700, 0x9902bf32} },},
+/**/                 {{{0xbfaeea31, 0xc006b87c} },
+/**/                  {{0x3c43e4fc, 0x93b7b66c} },},
+/**/                 {{{0xbfaccb73, 0xcdddb2cc} },
+/**/                  {{0x3c4e48fb, 0x0500efd4} },},
+/**/                 {{{0xbfaaaef2, 0xd0fb10fc} },
+/**/                  {{0xbc2a353b, 0xb42e0add} },},
+/**/                 {{{0xbfa894aa, 0x149fb343} },
+/**/                  {{0xbc3a8be9, 0x7660a23d} },},
+/**/                 {{{0xbfa67c94, 0xf2d4bb58} },
+/**/                  {{0xbc40413e, 0x6505e603} },},
+/**/                 {{{0xbfa466ae, 0xd42de3ea} },
+/**/                  {{0x3c4cdd6f, 0x7f4a137e} },},
+/**/                 {{{0xbfa252f3, 0x2f8d183f} },
+/**/                  {{0x3c4947f7, 0x92615916} },},
+/**/                 {{{0xbfa0415d, 0x89e74444} },
+/**/                  {{0xbc4c05cf, 0x1d753622} },},
+/**/                 {{{0xbf9c63d2, 0xec14aaf2} },
+/**/                  {{0x3c3ce030, 0xa686bd86} },},
+/**/                 {{{0xbf984925, 0x28c8cabf} },
+/**/                  {{0x3c3d192d, 0x0619fa67} },},
+/**/                 {{{0xbf9432a9, 0x25980cc1} },
+/**/                  {{0x3c38cdaf, 0x39004192} },},
+/**/                 {{{0xbf902056, 0x58935847} },
+/**/                  {{0xbc327c8e, 0x8416e71f} },},
+/**/                 {{{0xbf882448, 0xa388a2aa} },
+/**/                  {{0xbc104b16, 0x137f09a0} },},
+/**/                 {{{0xbf801015, 0x7588de71} },
+/**/                  {{0xbc146662, 0xd417ced0} },},
+/**/                 {{{0xbf700805, 0x59588b35} },
+/**/                  {{0xbc1f9663, 0x8cf63677} },},
+/**/                 {{{0x00000000, 0x00000000} },
+/**/                  {{0x00000000, 0x00000000} },},
+/**/                 {{{0x3f6ff00a, 0xa2b10bc0} },
+/**/                  {{0x3c02821a, 0xd5a6d353} },},
+/**/                 {{{0x3f7fe02a, 0x6b106789} },
+/**/                  {{0xbbce44b7, 0xe3711ebf} },},
+/**/                 {{{0x3f87dc47, 0x5f810a77} },
+/**/                  {{0xbc116d76, 0x87d3df21} },},
+/**/                 {{{0x3f8fc0a8, 0xb0fc03e4} },
+/**/                  {{0xbc183092, 0xc59642a1} },},
+/**/                 {{{0x3f93cea4, 0x4346a575} },
+/**/                  {{0xbc10cb5a, 0x902b3a1c} },},
+/**/                 {{{0x3f97b91b, 0x07d5b11b} },
+/**/                  {{0xbc35b602, 0xace3a510} },},
+/**/                 {{{0x3f9b9fc0, 0x27af9198} },
+/**/                  {{0xbbf0ae69, 0x229dc868} },},
+/**/                 {{{0x3f9f829b, 0x0e783300} },
+/**/                  {{0x3c333e3f, 0x04f1ef23} },},
+/**/                 {{{0x3fa1b0d9, 0x8923d980} },
+/**/                  {{0xbc3e9ae8, 0x89bac481} },},
+/**/                 {{{0x3fa39e87, 0xb9febd60} },
+/**/                  {{0xbc45bfa9, 0x37f551bb} },},
+/**/                 {{{0x3fa58a5b, 0xafc8e4d5} },
+/**/                  {{0xbc4ce55c, 0x2b4e2b72} },},
+/**/                 {{{0x3fa77458, 0xf632dcfc} },
+/**/                  {{0x3c418d3c, 0xa87b9296} },},
+/**/                 {{{0x3fa95c83, 0x0ec8e3eb} },
+/**/                  {{0x3c4f5a0e, 0x80520bf2} },},
+/**/                 {{{0x3fab42dd, 0x711971bf} },
+/**/                  {{0xbc3eb975, 0x9c130499} },},
+/**/                 {{{0x3fad276b, 0x8adb0b52} },
+/**/                  {{0x3c21e3c5, 0x3257fd47} },},
+/**/                 {{{0x3faf0a30, 0xc01162a6} },
+/**/                  {{0x3c485f32, 0x5c5bbacd} },},
+/**/                 {{{0x3fb07598, 0x3598e471} },
+/**/                  {{0x3c480da5, 0x333c45b8} },},
+/**/                 {{{0x3fb16536, 0xeea37ae1} },
+/**/                  {{0xbc379da3, 0xe8c22cda} },},
+/**/                 {{{0x3fb253f6, 0x2f0a1417} },
+/**/                  {{0xbc1c1259, 0x63fc4cfd} },},
+/**/                 {{{0x3fb341d7, 0x961bd1d1} },
+/**/                  {{0xbc5b599f, 0x227becbb} },},
+/**/                 {{{0x3fb42edc, 0xbea646f0} },
+/**/                  {{0x3c4ddd4f, 0x935996c9} },},
+/**/                 {{{0x3fb51b07, 0x3f06183f} },
+/**/                  {{0x3c5a49e3, 0x9a1a8be4} },},
+/**/                 {{{0x3fb60658, 0xa93750c4} },
+/**/                  {{0xbc538845, 0x8ec21b6a} },},
+/**/                 {{{0x3fb6f0d2, 0x8ae56b4c} },
+/**/                  {{0xbc5906d9, 0x9184b992} },},
+/**/                 {{{0x3fb7da76, 0x6d7b12cd} },
+/**/                  {{0xbc5eeedf, 0xcdd94131} },},
+/**/                 {{{0x3fb8c345, 0xd6319b21} },
+/**/                  {{0xbc24a697, 0xab3424a9} },},
+/**/                 {{{0x3fb9ab42, 0x462033ad} },
+/**/                  {{0xbc42099e, 0x1c184e8e} },},
+/**/                 {{{0x3fba926d, 0x3a4ad563} },
+/**/                  {{0x3c5942f4, 0x8aa70ea9} },},
+/**/                 {{{0x3fbb78c8, 0x2bb0eda1} },
+/**/                  {{0x3c20878c, 0xf0327e21} },},
+/**/                 {{{0x3fbc5e54, 0x8f5bc743} },
+/**/                  {{0x3c35d617, 0xef8161b1} },},
+/**/                 {{{0x3fbd4313, 0xd66cb35d} },
+/**/                  {{0x3c5790dd, 0x951d90fa} },},
+/**/                 {{{0x3fbe2707, 0x6e2af2e6} },
+/**/                  {{0xbc361578, 0x001e0162} },},
+/**/                 {{{0x3fbf0a30, 0xc01162a6} },
+/**/                  {{0x3c585f32, 0x5c5bbacd} },},
+/**/                 {{{0x3fbfec91, 0x31dbeabb} },
+/**/                  {{0xbc55746b, 0x9981b36c} },},
+/**/                 {{{0x3fc06715, 0x12ca596e} },
+/**/                  {{0x3c550c64, 0x7eb86499} },},
+/**/                 {{{0x3fc0d77e, 0x7cd08e59} },
+/**/                  {{0x3c69a5dc, 0x5e9030ac} },},
+/**/                 {{{0x3fc14785, 0x846742ac} },
+/**/                  {{0x3c6a2881, 0x3e3a7f07} },},
+/**/                 {{{0x3fc1b72a, 0xd52f67a0} },
+/**/                  {{0x3c548302, 0x3472cd74} },},
+/**/                 {{{0x3fc2266f, 0x190a5acb} },
+/**/                  {{0x3c6f547b, 0xf1809e88} },},
+/**/                 {{{0x3fc29552, 0xf81ff523} },
+/**/                  {{0x3c630177, 0x1c407dbf} },},
+/**/                 {{{0x3fc303d7, 0x18e47fd3} },
+/**/                  {{0xbc06b9c7, 0xd96091fa} },},
+/**/                 {{{0x3fc371fc, 0x201e8f74} },
+/**/                  {{0x3c5de6cb, 0x62af18a0} },},
+/**/                 {{{0x3fc3dfc2, 0xb0ecc62a} },
+/**/                  {{0xbc5ab3a8, 0xe7d81017} },},
+/**/                 {{{0x3fc44d2b, 0x6ccb7d1e} },
+/**/                  {{0x3c69f4f6, 0x543e1f88} },},
+/**/                 {{{0x3fc4ba36, 0xf39a55e5} },
+/**/                  {{0x3c668981, 0xbcc36756} },},
+/**/                 {{{0x3fc526e5, 0xe3a1b438} },
+/**/                  {{0xbc6746ff, 0x8a470d3a} },},
+/**/                 {{{0x3fc59338, 0xd9982086} },
+/**/                  {{0xbc565d22, 0xaa8ad7cf} },},
+/**/                 {{{0x3fc5ff30, 0x70a793d4} },
+/**/                  {{0xbc5bc60e, 0xfafc6f6e} },},
+/**/                 {{{0x3fc66acd, 0x4272ad51} },
+/**/                  {{0xbc50900e, 0x4e1ea8b2} },},
+/**/                 {{{0x3fc6d60f, 0xe719d21d} },
+/**/                  {{0xbc6caae2, 0x68ecd179} },},
+/**/                 {{{0x3fc740f8, 0xf54037a5} },
+/**/                  {{0xbc5b2640, 0x62a84cdb} },},
+/**/                 {{{0x3fc7ab89, 0x0210d909} },
+/**/                  {{0x3c4be36b, 0x2d6a0608} },},
+/**/                 {{{0x3fc815c0, 0xa14357eb} },
+/**/                  {{0xbc54be48, 0x073a0564} },},
+/**/                 {{{0x3fc87fa0, 0x6520c911} },
+/**/                  {{0xbc6bf7fd, 0xbfa08d9a} },},
+/**/                 {{{0x3fc8e928, 0xde886d41} },
+/**/                  {{0xbc6569d8, 0x51a56770} },},
+/**/                 {{{0x3fc9525a, 0x9cf456b4} },
+/**/                  {{0x3c6d904c, 0x1d4e2e26} },},
+/**/                 {{{0x3fc9bb36, 0x2e7dfb83} },
+/**/                  {{0x3c6575e3, 0x1f003e0c} },},
+/**/                 {{{0x3fca23bc, 0x1fe2b563} },
+/**/                  {{0x3c493711, 0xb07a998c} },},
+/**/                 {{{0x3fca8bec, 0xfc882f19} },
+/**/                  {{0xbc5e8c37, 0x918c39eb} },},
+/**/                 {{{0x3fcaf3c9, 0x4e80bff3} },
+/**/                  {{0xbc5398cf, 0xf3641985} },},
+/**/                 {{{0x3fcb5b51, 0x9e8fb5a4} },
+/**/                  {{0x3c6ba27f, 0xdc19e1a0} },},
+/**/                 {{{0x3fcbc286, 0x742d8cd6} },
+/**/                  {{0x3c54fce7, 0x44870f55} },},
+/**/                 {{{0x3fcc2968, 0x558c18c1} },
+/**/                  {{0xbc673dee, 0x38a3fb6b} },},
+/**/                 {{{0x3fcc8ff7, 0xc79a9a22} },
+/**/                  {{0xbc64f689, 0xf8434012} },},
+/**/                 {{{0x3fccf635, 0x4e09c5dc} },
+/**/                  {{0x3c6239a0, 0x7d55b695} },},
+/**/                 {{{0x3fcd5c21, 0x6b4fbb91} },
+/**/                  {{0x3c66e443, 0x597e4d40} },},
+/**/                 {{{0x3fcdc1bc, 0xa0abec7d} },
+/**/                  {{0x3c6834c5, 0x1998b6fc} },},
+/**/                 {{{0x3fce2707, 0x6e2af2e6} },
+/**/                  {{0xbc461578, 0x001e0162} },},
+/**/                 {{{0x3fce8c02, 0x52aa5a60} },
+/**/                  {{0xbc46e03a, 0x39bfc89b} },},
+/**/                 {{{0x3fcef0ad, 0xcbdc5936} },
+/**/                  {{0x3c648637, 0x950dc20d} },},
+/**/                 {{{0x3fcf550a, 0x564b7b37} },
+/**/                  {{0x3c2c5f6d, 0xfd018c37} },},
+/**/                 {{{0x3fcfb918, 0x6d5e3e2b} },
+/**/                  {{0xbc6caaae, 0x64f21acb} },},
+/**/                 {{{0x3fd00e6c, 0x45ad501d} },
+/**/                  {{0xbc6cb956, 0x8ff6fead} },},
+/**/                 {{{0x3fd04025, 0x94b4d041} },
+/**/                  {{0xbc628ec2, 0x17a5022d} },},
+/**/                 {{{0x3fd071b8, 0x5fcd590d} },
+/**/                  {{0x3c5d1707, 0xf97bde80} },},
+/**/                 {{{0x3fd0a324, 0xe27390e3} },
+/**/                  {{0x3c77dcfd, 0xe8061c03} },},
+/**/                 {{{0x3fd0d46b, 0x579ab74b} },
+/**/                  {{0x3c603ec8, 0x1c3cbd92} },},
+/**/                 {{{0x3fd1058b, 0xf9ae4ad5} },
+/**/                  {{0x3c589fa0, 0xab4cb31d} },},
+/**/                 {{{0x3fd13687, 0x0293a8b0} },
+/**/                  {{0x3c77b662, 0x98edd24a} },},
+/**/                 {{{0x3fd1675c, 0xababa60e} },
+/**/                  {{0x3c2ce63e, 0xab883717} },},
+/**/                 {{{0x3fd1980d, 0x2dd4236f} },
+/**/                  {{0x3c79d3d1, 0xb0e4d147} },},
+/**/                 {{{0x3fd1c898, 0xc16999fb} },
+/**/                  {{0xbc30e5c6, 0x2aff1c44} },},
+/**/                 {{{0x3fd1f8ff, 0x9e48a2f3} },
+/**/                  {{0xbc7c9fdf, 0x9a0c4b07} },},
+/**/                 {{{0x3fd22941, 0xfbcf7966} },
+/**/                  {{0xbc776f5e, 0xb09628af} },},
+/**/                 {{{0x3fd25960, 0x10df763a} },
+/**/                  {{0xbc50f76c, 0x57075e9e} },},
+/**/                 {{{0x3fd2895a, 0x13de86a3} },
+/**/                  {{0x3c77ad24, 0xc13f040e} },},
+/**/                 {{{0x3fd2b930, 0x3ab89d25} },
+/**/                  {{0xbc7896b5, 0xfd852ad4} },},
+/**/                 {{{0x3fd2e8e2, 0xbae11d31} },
+/**/                  {{0xbc78f4cd, 0xb95ebdf9} },},
+/**/                 {{{0x3fd31871, 0xc9544185} },
+/**/                  {{0xbc351acc, 0x4c09b379} },},
+/**/                 {{{0x3fd347dd, 0x9a987d55} },
+/**/                  {{0xbc64dd4c, 0x580919f8} },},
+/**/                 {{{0x3fd37726, 0x62bfd85b} },
+/**/                  {{0xbc4b5629, 0xd8117de7} },},
+/**/                 {{{0x3fd3a64c, 0x556945ea} },
+/**/                  {{0xbc6c6865, 0x1945f97c} },},
+/**/                 {{{0x3fd3d54f, 0xa5c1f710} },
+/**/                  {{0xbc7e3265, 0xc6a1c98d} },},
+/**/                 {{{0x3fd40430, 0x8686a7e4} },
+/**/                  {{0xbc70bcfb, 0x6082ce6d} },},
+/**/                 {{{0x3fd432ef, 0x2a04e814} },
+/**/                  {{0xbc729931, 0x715ac903} },},
+/**/                 {{{0x3fd4618b, 0xc21c5ec2} },
+/**/                  {{0x3c7f42de, 0xcdeccf1d} },},
+/**/                 {{{0x3fd49006, 0x804009d1} },
+/**/                  {{0xbc69ffc3, 0x41f177dc} },},
+/**/                 {{{0x3fd4be5f, 0x957778a1} },
+/**/                  {{0xbc6259b3, 0x5b04813d} },},
+/**/                 {{{0x3fd4ec97, 0x3260026a} },
+/**/                  {{0xbc742a87, 0xd977dc5e} },},
+/**/                 {{{0x3fd51aad, 0x872df82d} },
+/**/                  {{0x3c43927a, 0xc19f55e3} },},
+/**/                 {{{0x3fd548a2, 0xc3add263} },
+/**/                  {{0xbc6819cf, 0x7e308ddb} },},
+/**/                 {{{0x3fd57677, 0x17455a6c} },
+/**/                  {{0x3c7526ad, 0xb283660c} },},
+/**/                 {{{0x3fd5a42a, 0xb0f4cfe2} },
+/**/                  {{0xbc78ebcb, 0x7dee9a3d} },},
+/**/                 {{{0x3fd5d1bd, 0xbf5809ca} },
+/**/                  {{0x3c742363, 0x83dc7fe1} },},
+/**/                 {{{0x3fd5ff30, 0x70a793d4} },
+/**/                  {{0xbc6bc60e, 0xfafc6f6e} },},
+/**/                 {{{0x3fd62c82, 0xf2b9c795} },
+/**/                  {{0x3c67b7af, 0x915300e5} },},
+  };
+
+  static const number
+       Lv[362][2] = {                               /* log(vj) */
+
+/**/                 {{{0xbf6687ec, 0xb72daabf} },
+/**/                  {{0x3c052c69, 0x0f13318f} },},
+/**/                 {{{0xbf6667d6, 0x3767104f} },
+/**/                  {{0x3bd3efa3, 0xd27a7bac} },},
+/**/                 {{{0xbf6647bf, 0xd7cd64fb} },
+/**/                  {{0x3c09b725, 0x55a89c36} },},
+/**/                 {{{0xbf6627a9, 0x9860683b} },
+/**/                  {{0x3bcbae22, 0xfebc844a} },},
+/**/                 {{{0xbf660793, 0x791fd98a} },
+/**/                  {{0xbbfe34af, 0x78fa1cb5} },},
+/**/                 {{{0xbf65e77d, 0x7a0b7863} },
+/**/                  {{0xbc02f1b1, 0xea78fdd0} },},
+/**/                 {{{0xbf65c767, 0x9b230442} },
+/**/                  {{0x3bf70d8c, 0x2202b2ca} },},
+/**/                 {{{0xbf65a751, 0xdc663ca2} },
+/**/                  {{0xbbfdc63d, 0xc3444e64} },},
+/**/                 {{{0xbf65873c, 0x3dd4e102} },
+/**/                  {{0x3c021b11, 0x370d69c3} },},
+/**/                 {{{0xbf656726, 0xbf6eb0de} },
+/**/                  {{0xbbfb6da8, 0x154dd8d8} },},
+/**/                 {{{0xbf654711, 0x61336bb6} },
+/**/                  {{0xbc0b12d2, 0xdf9a4709} },},
+/**/                 {{{0xbf6526fc, 0x2322d10a} },
+/**/                  {{0x3bf997f2, 0x68d1274f} },},
+/**/                 {{{0xbf6506e7, 0x053ca059} },
+/**/                  {{0x3c0c2a1f, 0xe70c852a} },},
+/**/                 {{{0xbf64e6d2, 0x07809924} },
+/**/                  {{0x3c04cc9e, 0xa808538f} },},
+/**/                 {{{0xbf64c6bd, 0x29ee7aed} },
+/**/                  {{0x3befe68c, 0x7797a4bd} },},
+/**/                 {{{0xbf64a6a8, 0x6c860537} },
+/**/                  {{0x3c06794d, 0x9efaae3d} },},
+/**/                 {{{0xbf648693, 0xcf46f784} },
+/**/                  {{0xbbfed318, 0xb2ddd9d1} },},
+/**/                 {{{0xbf64667f, 0x5231115a} },
+/**/                  {{0x3c061f62, 0x4643624b} },},
+/**/                 {{{0xbf64466a, 0xf544123c} },
+/**/                  {{0x3c0666a0, 0x9387f11e} },},
+/**/                 {{{0xbf642656, 0xb87fb9b0} },
+/**/                  {{0x3c0043b2, 0x116ec598} },},
+/**/                 {{{0xbf640642, 0x9be3c73c} },
+/**/                  {{0xbbfbd84d, 0xd2de6e3e} },},
+/**/                 {{{0xbf63e62e, 0x9f6ffa68} },
+/**/                  {{0xbbe9149b, 0x433d8c65} },},
+/**/                 {{{0xbf63c61a, 0xc32412bb} },
+/**/                  {{0xbbf6b88d, 0x08e5a7bb} },},
+/**/                 {{{0xbf63a607, 0x06ffcfbe} },
+/**/                  {{0xbb9f3c7a, 0xccfac9e2} },},
+/**/                 {{{0xbf6385f3, 0x6b02f0fa} },
+/**/                  {{0x3bee405c, 0xbec6f6e4} },},
+/**/                 {{{0xbf6365df, 0xef2d35f9} },
+/**/                  {{0x3bf02993, 0xaf0c0b4c} },},
+/**/                 {{{0xbf6345cc, 0x937e5e46} },
+/**/                  {{0x3bf9be97, 0xaa64716f} },},
+/**/                 {{{0xbf6325b9, 0x57f6296c} },
+/**/                  {{0xbbfdeb4d, 0xa2e863ae} },},
+/**/                 {{{0xbf6305a6, 0x3c9456f9} },
+/**/                  {{0x3c0f3c7f, 0x636d2b2c} },},
+/**/                 {{{0xbf62e593, 0x4158a678} },
+/**/                  {{0x3c01a8df, 0xb166ca7f} },},
+/**/                 {{{0xbf62c580, 0x6642d778} },
+/**/                  {{0x3c020ff1, 0x53a2d534} },},
+/**/                 {{{0xbf62a56d, 0xab52a987} },
+/**/                  {{0xbbe8fef1, 0x0412f1e7} },},
+/**/                 {{{0xbf62855b, 0x1087dc35} },
+/**/                  {{0xbbfcd17e, 0x4b7ac6c6} },},
+/**/                 {{{0xbf626548, 0x95e22f12} },
+/**/                  {{0xbbfbfc21, 0x9a8127bf} },},
+/**/                 {{{0xbf624536, 0x3b6161af} },
+/**/                  {{0x3bd7eda1, 0x66d42390} },},
+/**/                 {{{0xbf622524, 0x0105339d} },
+/**/                  {{0xbbdf374e, 0x77fedcad} },},
+/**/                 {{{0xbf620511, 0xe6cd646f} },
+/**/                  {{0x3be1d1fb, 0x52d05dea} },},
+/**/                 {{{0xbf61e4ff, 0xecb9b3b8} },
+/**/                  {{0x3c02c2fc, 0xffd8e706} },},
+/**/                 {{{0xbf61c4ee, 0x12c9e10b} },
+/**/                  {{0xbc02b4f8, 0xf1d5cc2c} },},
+/**/                 {{{0xbf61a4dc, 0x58fdabfe} },
+/**/                  {{0xbc0618c3, 0x1315b191} },},
+/**/                 {{{0xbf6184ca, 0xbf54d426} },
+/**/                  {{0xbc01f8d5, 0xcb3cdab0} },},
+/**/                 {{{0xbf6164b9, 0x45cf1919} },
+/**/                  {{0xbc014ff7, 0xc025605a} },},
+/**/                 {{{0xbf6144a7, 0xec6c3a6e} },
+/**/                  {{0xbbff04ff, 0x87cb08cd} },},
+/**/                 {{{0xbf612496, 0xb32bf7bd} },
+/**/                  {{0x3bee89b4, 0xe6af1b84} },},
+/**/                 {{{0xbf610485, 0x9a0e109e} },
+/**/                  {{0x3c07e99e, 0x35a60879} },},
+/**/                 {{{0xbf60e474, 0xa11244aa} },
+/**/                  {{0x3c04b698, 0x20f2325a} },},
+/**/                 {{{0xbf60c463, 0xc838537b} },
+/**/                  {{0x3bc0657e, 0x3617200d} },},
+/**/                 {{{0xbf60a453, 0x0f7ffcac} },
+/**/                  {{0xbc008feb, 0xa5080961} },},
+/**/                 {{{0xbf608442, 0x76e8ffd9} },
+/**/                  {{0x3bd13002, 0xbb5e1df7} },},
+/**/                 {{{0xbf606431, 0xfe731c9d} },
+/**/                  {{0xbc0509f3, 0x6e2858c0} },},
+/**/                 {{{0xbf604421, 0xa61e1296} },
+/**/                  {{0xbc04b556, 0x5f5d9695} },},
+/**/                 {{{0xbf602411, 0x6de9a162} },
+/**/                  {{0x3c042b89, 0xe79a4e00} },},
+/**/                 {{{0xbf600401, 0x55d5889e} },
+/**/                  {{0x3be8f98e, 0x1113f403} },},
+/**/                 {{{0xbf5fc7e2, 0xbbc30fd4} },
+/**/                  {{0xbbfc709b, 0x93382bc9} },},
+/**/                 {{{0xbf5f87c3, 0x0c1abdcd} },
+/**/                  {{0xbbf2a90d, 0x76a55d1c} },},
+/**/                 {{{0xbf5f47a3, 0x9cb19a68} },
+/**/                  {{0x3be1b815, 0x76e7826b} },},
+/**/                 {{{0xbf5f0784, 0x6d8724e7} },
+/**/                  {{0xbbe72d46, 0x2b63756d} },},
+/**/                 {{{0xbf5ec765, 0x7e9adc90} },
+/**/                  {{0x3beb1a66, 0x73bb17c5} },},
+/**/                 {{{0xbf5e8746, 0xcfec40a8} },
+/**/                  {{0x3bf11af5, 0xb5e5a553} },},
+/**/                 {{{0xbf5e4728, 0x617ad077} },
+/**/                  {{0x3bfb2cad, 0xf57dd14f} },},
+/**/                 {{{0xbf5e070a, 0x33460b45} },
+/**/                  {{0xbbf8db75, 0x4902c8d5} },},
+/**/                 {{{0xbf5dc6ec, 0x454d705f} },
+/**/                  {{0x3bef5cc6, 0xe8a41057} },},
+/**/                 {{{0xbf5d86ce, 0x97907f0f} },
+/**/                  {{0x3bed8277, 0xdf8672ef} },},
+/**/                 {{{0xbf5d46b1, 0x2a0eb6a3} },
+/**/                  {{0xbbc2f9c2, 0x3717e5ee} },},
+/**/                 {{{0xbf5d0693, 0xfcc7966b} },
+/**/                  {{0x3bf4deed, 0xab4852c6} },},
+/**/                 {{{0xbf5cc677, 0x0fba9db6} },
+/**/                  {{0xbbf3a2b4, 0x9db2a368} },},
+/**/                 {{{0xbf5c865a, 0x62e74bd8} },
+/**/                  {{0xbbd2c51d, 0x58fa0c24} },},
+/**/                 {{{0xbf5c463d, 0xf64d2024} },
+/**/                  {{0x3bf838ca, 0xe3a09391} },},
+/**/                 {{{0xbf5c0621, 0xc9eb99ee} },
+/**/                  {{0xbbdc2a9e, 0x61b7de71} },},
+/**/                 {{{0xbf5bc605, 0xddc2388e} },
+/**/                  {{0xbbea9808, 0x4accb195} },},
+/**/                 {{{0xbf5b85ea, 0x31d07b5c} },
+/**/                  {{0xbbd811a2, 0x032e030b} },},
+/**/                 {{{0xbf5b45ce, 0xc615e1b1} },
+/**/                  {{0xbbfd5427, 0x821e0b81} },},
+/**/                 {{{0xbf5b05b3, 0x9a91eaea} },
+/**/                  {{0x3bfffeba, 0x2619306b} },},
+/**/                 {{{0xbf5ac598, 0xaf441661} },
+/**/                  {{0x3bd22824, 0x9eac7d15} },},
+/**/                 {{{0xbf5a857e, 0x042be376} },
+/**/                  {{0x3bc20736, 0x24893f0e} },},
+/**/                 {{{0xbf5a4563, 0x9948d188} },
+/**/                  {{0xbbf58ab4, 0x04d734cd} },},
+/**/                 {{{0xbf5a0549, 0x6e9a5ff9} },
+/**/                  {{0xbbf22673, 0x5723a6c3} },},
+/**/                 {{{0xbf59c52f, 0x84200e2c} },
+/**/                  {{0x3bfc81da, 0xa538e8e1} },},
+/**/                 {{{0xbf598515, 0xd9d95b83} },
+/**/                  {{0xbbfa1a37, 0x2a8e3feb} },},
+/**/                 {{{0xbf5944fc, 0x6fc5c767} },
+/**/                  {{0x3bf8e1ce, 0x385159f9} },},
+/**/                 {{{0xbf5904e3, 0x45e4d13c} },
+/**/                  {{0xbbfc4737, 0x1567c7a7} },},
+/**/                 {{{0xbf58c4ca, 0x5c35f86e} },
+/**/                  {{0x3bf41581, 0x23c9ae0c} },},
+/**/                 {{{0xbf5884b1, 0xb2b8bc65} },
+/**/                  {{0x3bf70c2c, 0x2b66cfb6} },},
+/**/                 {{{0xbf584499, 0x496c9c8d} },
+/**/                  {{0xbbdb9042, 0xe5a11e3e} },},
+/**/                 {{{0xbf580481, 0x20511854} },
+/**/                  {{0xbbf9cf9d, 0x61bcb040} },},
+/**/                 {{{0xbf57c469, 0x3765af29} },
+/**/                  {{0xbbf65ceb, 0xe26a419b} },},
+/**/                 {{{0xbf578451, 0x8ea9e07c} },
+/**/                  {{0xbbf1c2f5, 0xb70a4088} },},
+/**/                 {{{0xbf57443a, 0x261d2bbf} },
+/**/                  {{0xbbbc7b8f, 0x29704ba7} },},
+/**/                 {{{0xbf570422, 0xfdbf1065} },
+/**/                  {{0x3bca0a54, 0x433ccb3b} },},
+/**/                 {{{0xbf56c40c, 0x158f0de3} },
+/**/                  {{0x3bd9e257, 0x207cde2d} },},
+/**/                 {{{0xbf5683f5, 0x6d8ca3af} },
+/**/                  {{0xbbef17a4, 0xf7b51b49} },},
+/**/                 {{{0xbf5643df, 0x05b75142} },
+/**/                  {{0x3be28239, 0x9d345bf8} },},
+/**/                 {{{0xbf5603c8, 0xde0e9614} },
+/**/                  {{0xbbde6c21, 0x0918d1bf} },},
+/**/                 {{{0xbf55c3b2, 0xf691f1a1} },
+/**/                  {{0x3bd37d78, 0x377de4c8} },},
+/**/                 {{{0xbf55839d, 0x4f40e365} },
+/**/                  {{0x3bf52b7d, 0xbbf7c9d1} },},
+/**/                 {{{0xbf554387, 0xe81aeadd} },
+/**/                  {{0xbbf0be6a, 0x679c3d9a} },},
+/**/                 {{{0xbf550372, 0xc11f878a} },
+/**/                  {{0xbbdd9e20, 0xb6cdd88e} },},
+/**/                 {{{0xbf54c35d, 0xda4e38ec} },
+/**/                  {{0xbbe3b1e7, 0x09302da0} },},
+/**/                 {{{0xbf548349, 0x33a67e86} },
+/**/                  {{0x3be8cba8, 0x085b922d} },},
+/**/                 {{{0xbf544334, 0xcd27d7db} },
+/**/                  {{0xbba5f2c9, 0xf024ab43} },},
+/**/                 {{{0xbf540320, 0xa6d1c471} },
+/**/                  {{0xbbeb31f3, 0xf686cf3d} },},
+/**/                 {{{0xbf53c30c, 0xc0a3c3cf} },
+/**/                  {{0xbbf74ffe, 0xd4ad32f6} },},
+/**/                 {{{0xbf5382f9, 0x1a9d557e} },
+/**/                  {{0x3bd2e555, 0x4acb368f} },},
+/**/                 {{{0xbf5342e5, 0xb4bdf907} },
+/**/                  {{0x3be13442, 0x07812806} },},
+/**/                 {{{0xbf5302d2, 0x8f052df6} },
+/**/                  {{0x3bf5f429, 0x70b1e756} },},
+/**/                 {{{0xbf52c2bf, 0xa97273d7} },
+/**/                  {{0xbbf20aa3, 0x43a03fff} },},
+/**/                 {{{0xbf5282ad, 0x04054a3a} },
+/**/                  {{0xbbed4d57, 0x8bebd7ad} },},
+/**/                 {{{0xbf52429a, 0x9ebd30ae} },
+/**/                  {{0xbbff9529, 0x5a71c5a4} },},
+/**/                 {{{0xbf520288, 0x7999a6c6} },
+/**/                  {{0x3bfb055a, 0x54100f9e} },},
+/**/                 {{{0xbf51c276, 0x949a2c12} },
+/**/                  {{0xbbff6978, 0xa2e9f1b4} },},
+/**/                 {{{0xbf518264, 0xefbe402a} },
+/**/                  {{0x3bf01fb9, 0xbc188323} },},
+/**/                 {{{0xbf514253, 0x8b0562a1} },
+/**/                  {{0xbbf7c87c, 0x957bf23a} },},
+/**/                 {{{0xbf510242, 0x666f1311} },
+/**/                  {{0x3bdc2cb9, 0xc8be6880} },},
+/**/                 {{{0xbf50c231, 0x81fad111} },
+/**/                  {{0xbbf59fc1, 0x07ba000d} },},
+/**/                 {{{0xbf508220, 0xdda81c3d} },
+/**/                  {{0xbbf06a0a, 0xbf5c8a0b} },},
+/**/                 {{{0xbf504210, 0x79767431} },
+/**/                  {{0x3bf3a6cf, 0xa9a705bc} },},
+/**/                 {{{0xbf500200, 0x55655889} },
+/**/                  {{0xbbe9abe6, 0xbf0fa436} },},
+/**/                 {{{0xbf4f83e0, 0xe2e891cc} },
+/**/                  {{0x3be4aa59, 0x1b81bf62} },},
+/**/                 {{{0xbf4f03c1, 0x9b4589ce} },
+/**/                  {{0xbbe60518, 0x8a47f50a} },},
+/**/                 {{{0xbf4e83a2, 0xd3e0985f} },
+/**/                  {{0x3bed32d8, 0x5ef17e96} },},
+/**/                 {{{0xbf4e0384, 0x8cb8bcc3} },
+/**/                  {{0xbbeb7b30, 0xf09afa4d} },},
+/**/                 {{{0xbf4d8366, 0xc5ccf647} },
+/**/                  {{0xbbd527fc, 0xf586cec2} },},
+/**/                 {{{0xbf4d0349, 0x7f1c4437} },
+/**/                  {{0x3bc2bcf0, 0x4a686886} },},
+/**/                 {{{0xbf4c832c, 0xb8a5a5e3} },
+/**/                  {{0x3bc98f93, 0x721c2ebe} },},
+/**/                 {{{0xbf4c0310, 0x72681a9e} },
+/**/                  {{0xbbe20f00, 0xb5308d22} },},
+/**/                 {{{0xbf4b82f4, 0xac62a1bf} },
+/**/                  {{0xbbe1edd0, 0x9737b561} },},
+/**/                 {{{0xbf4b02d9, 0x66943a9f} },
+/**/                  {{0xbbcc950b, 0x23f894a1} },},
+/**/                 {{{0xbf4a82be, 0xa0fbe49a} },
+/**/                  {{0xbb81da04, 0x866bc982} },},
+/**/                 {{{0xbf4a02a4, 0x5b989f0f} },
+/**/                  {{0xbbd9114d, 0x9d76196e} },},
+/**/                 {{{0xbf49828a, 0x96696961} },
+/**/                  {{0x3bc10d20, 0xd3292fd6} },},
+/**/                 {{{0xbf490271, 0x516d42f4} },
+/**/                  {{0xbbee53a3, 0x2e9a5dd5} },},
+/**/                 {{{0xbf488258, 0x8ca32b32} },
+/**/                  {{0xbbc55af5, 0xd18f8004} },},
+/**/                 {{{0xbf480240, 0x480a2185} },
+/**/                  {{0xbbb32d23, 0xa9b0178a} },},
+/**/                 {{{0xbf478228, 0x83a1255c} },
+/**/                  {{0x3be84cc3, 0x8152093a} },},
+/**/                 {{{0xbf470211, 0x3f673627} },
+/**/                  {{0xbbd0055a, 0xf4881c71} },},
+/**/                 {{{0xbf4681fa, 0x7b5b535c} },
+/**/                  {{0x3bd2b73f, 0xb98336ea} },},
+/**/                 {{{0xbf4601e4, 0x377c7c71} },
+/**/                  {{0xbbcdcbed, 0x2ed05089} },},
+/**/                 {{{0xbf4581ce, 0x73c9b0e1} },
+/**/                  {{0xbbdda0c2, 0x61414697} },},
+/**/                 {{{0xbf4501b9, 0x3041f02a} },
+/**/                  {{0x3bee5d53, 0x22f8b33c} },},
+/**/                 {{{0xbf4481a4, 0x6ce439ca} },
+/**/                  {{0xbbe5512f, 0x9c25c999} },},
+/**/                 {{{0xbf440190, 0x29af8d47} },
+/**/                  {{0x3b7f48c2, 0xa4df0dfd} },},
+/**/                 {{{0xbf43817c, 0x66a2ea26} },
+/**/                  {{0x3bd157c0, 0x517febd8} },},
+/**/                 {{{0xbf430169, 0x23bd4ff0} },
+/**/                  {{0xbbe2e229, 0x0176d244} },},
+/**/                 {{{0xbf428156, 0x60fdbe33} },
+/**/                  {{0x3be64664, 0x175812b3} },},
+/**/                 {{{0xbf420144, 0x1e63347c} },
+/**/                  {{0xbbe39ab4, 0xd9355524} },},
+/**/                 {{{0xbf418132, 0x5becb260} },
+/**/                  {{0x3be74b27, 0xb6e1edc9} },},
+/**/                 {{{0xbf410121, 0x19993772} },
+/**/                  {{0xbbaa390b, 0x393ab56a} },},
+/**/                 {{{0xbf408110, 0x5767c34c} },
+/**/                  {{0x3bd128e6, 0xf8c7783b} },},
+/**/                 {{{0xbf400100, 0x15575589} },
+/**/                  {{0x3bec8863, 0xf23ef222} },},
+/**/                 {{{0xbf3f01e0, 0xa6cddb8d} },
+/**/                  {{0x3b8a9419, 0xcdd29c3f} },},
+/**/                 {{{0xbf3e01c2, 0x232b174e} },
+/**/                  {{0xbbc7cf55, 0xd5f5b191} },},
+/**/                 {{{0xbf3d01a4, 0x9fc45d9e} },
+/**/                  {{0x3bddc58f, 0xb5038e7e} },},
+/**/                 {{{0xbf3c0188, 0x1c97adca} },
+/**/                  {{0x3bc0238d, 0xbb933e41} },},
+/**/                 {{{0xbf3b016c, 0x99a30728} },
+/**/                  {{0xbbabde04, 0xc3c43664} },},
+/**/                 {{{0xbf3a0152, 0x16e46913} },
+/**/                  {{0x3bafe081, 0x5adc3673} },},
+/**/                 {{{0xbf390138, 0x9459d2eb} },
+/**/                  {{0xbbd949da, 0xc2a33d26} },},
+/**/                 {{{0xbf380120, 0x12014418} },
+/**/                  {{0xbbd3acbc, 0xf76e0326} },},
+/**/                 {{{0xbf370108, 0x8fd8bc07} },
+/**/                  {{0x3bdbde09, 0x4cd6ce34} },},
+/**/                 {{{0xbf3600f2, 0x0dde3a29} },
+/**/                  {{0xbbb0bc28, 0x05442a35} },},
+/**/                 {{{0xbf3500dc, 0x8c0fbdf9} },
+/**/                  {{0x3bd21c68, 0x0908cbf7} },},
+/**/                 {{{0xbf3400c8, 0x0a6b46f4} },
+/**/                  {{0xbbdbd35e, 0x0f107564} },},
+/**/                 {{{0xbf3300b4, 0x88eed4a1} },
+/**/                  {{0xbbc22067, 0x49a3dcb8} },},
+/**/                 {{{0xbf3200a2, 0x0798668a} },
+/**/                  {{0x3bcdb7f0, 0xe7c5d0e5} },},
+/**/                 {{{0xbf310090, 0x8665fc3f} },
+/**/                  {{0xbbd00add, 0xc7f9d69c} },},
+/**/                 {{{0xbf300080, 0x05559559} },
+/**/                  {{0x3bddd332, 0xa0e20e2f} },},
+/**/                 {{{0xbf2e00e1, 0x08ca62e5} },
+/**/                  {{0xbbb15ff9, 0x3a04bb77} },},
+/**/                 {{{0xbf2c00c4, 0x0725a061} },
+/**/                  {{0x3bc88ab0, 0xcc052f3e} },},
+/**/                 {{{0xbf2a00a9, 0x05b8e275} },
+/**/                  {{0xbbcbba1a, 0xf5f3cbcf} },},
+/**/                 {{{0xbf280090, 0x04802882} },
+/**/                  {{0x3bcec900, 0xa5bd7bd0} },},
+/**/                 {{{0xbf260079, 0x037771ef} },
+/**/                  {{0x3bb77ea0, 0x9b7b54fa} },},
+/**/                 {{{0xbf240064, 0x029abe33} },
+/**/                  {{0xbbc1bbf0, 0x3ae68d18} },},
+/**/                 {{{0xbf220051, 0x01e60cd1} },
+/**/                  {{0x3bb1dcd9, 0x2b45cfcd} },},
+/**/                 {{{0xbf200040, 0x01555d56} },
+/**/                  {{0x3bcddd88, 0x863f53f6} },},
+/**/                 {{{0xbf1c0062, 0x01c95eb7} },
+/**/                  {{0x3bbd88f7, 0xaa4dfd9a} },},
+/**/                 {{{0xbf180048, 0x01200510} },
+/**/                  {{0xbb984d46, 0x4f3db50b} },},
+/**/                 {{{0xbf140032, 0x00a6ad1c} },
+/**/                  {{0x3bb2e44b, 0x28ff1135} },},
+/**/                 {{{0xbf100020, 0x00555655} },
+/**/                  {{0xbbb62224, 0xccd5f17f} },},
+/**/                 {{{0xbf080024, 0x004800a2} },
+/**/                  {{0xbb484d09, 0x8d690542} },},
+/**/                 {{{0xbf000010, 0x00155575} },
+/**/                  {{0xbba56222, 0x37779c0a} },},
+/**/                 {{{0xbef00008, 0x00055559} },
+/**/                  {{0xbb955622, 0x22cccd5f} },},
+/**/                 {{{0x00000000, 0x00000000} },
+/**/                  {{0x00000000, 0x00000000} },},
+/**/                 {{{0x3eeffff0, 0x000aaaa3} },
+/**/                  {{0xbb8553bb, 0xbd110fec} },},
+/**/                 {{{0x3effffe0, 0x002aaa6b} },
+/**/                  {{0xbb953bbb, 0xe6661d42} },},
+/**/                 {{{0x3f07ffdc, 0x0047ff5e} },
+/**/                  {{0x3b484c90, 0x0d69020e} },},
+/**/                 {{{0x3f0fffc0, 0x00aaa8ab} },
+/**/                  {{0xbba3bbc1, 0x10fec82c} },},
+/**/                 {{{0x3f13ffce, 0x00a6a83a} },
+/**/                  {{0xbbb2e45f, 0x81546808} },},
+/**/                 {{{0x3f17ffb8, 0x011ffaf0} },
+/**/                  {{0x3b984c53, 0x4f3d9b6a} },},
+/**/                 {{{0x3f1bff9e, 0x01c94bf5} },
+/**/                  {{0xbbbd8990, 0xdaa368ee} },},
+/**/                 {{{0x3f1fff80, 0x02aa9aab} },
+/**/                  {{0x3b910e66, 0x78af0afc} },},
+/**/                 {{{0x3f21ffaf, 0x01e5f330} },
+/**/                  {{0xbbb1df8d, 0x26467402} },},
+/**/                 {{{0x3f23ff9c, 0x029a9723} },
+/**/                  {{0x3bc1b965, 0x303b23b1} },},
+/**/                 {{{0x3f25ff87, 0x037738be} },
+/**/                  {{0xbbb787a3, 0x53d3dc06} },},
+/**/                 {{{0x3f27ff70, 0x047fd782} },
+/**/                  {{0xbbced098, 0xa5c0aff0} },},
+/**/                 {{{0x3f29ff57, 0x05b872e4} },
+/**/                  {{0x3bcbadd4, 0x81c30d42} },},
+/**/                 {{{0x3f2bff3c, 0x07250a51} },
+/**/                  {{0xbbc89dd6, 0xd6bad8c1} },},
+/**/                 {{{0x3f2dff1f, 0x08c99d24} },
+/**/                  {{0x3bb12609, 0xaede8ad0} },},
+/**/                 {{{0x3f2fff00, 0x0aaa2ab1} },
+/**/                  {{0x3ba0bbc0, 0x4dc4e3dc} },},
+/**/                 {{{0x3f30ff6f, 0x8665591f} },
+/**/                  {{0xbbd013d3, 0x80357b54} },},
+/**/                 {{{0x3f31ff5e, 0x07979982} },
+/**/                  {{0xbbce0e70, 0x4817ebcd} },},
+/**/                 {{{0x3f32ff4b, 0x88edd619} },
+/**/                  {{0xbbd72b9e, 0xc582abc3} },},
+/**/                 {{{0x3f33ff38, 0x0a6a0e74} },
+/**/                  {{0x3bdb81fc, 0xb95bc1fe} },},
+/**/                 {{{0x3f34ff23, 0x8c0e4220} },
+/**/                  {{0x3bcaed12, 0x9b549aae} },},
+/**/                 {{{0x3f35ff0e, 0x0ddc70a1} },
+/**/                  {{0x3bacf6f3, 0xd97a3c05} },},
+/**/                 {{{0x3f36fef7, 0x8fd69976} },
+/**/                  {{0x3bab2dcf, 0x6f810a3c} },},
+/**/                 {{{0x3f37fee0, 0x11febc18} },
+/**/                  {{0x3bd2b9bc, 0xf5d3f323} },},
+/**/                 {{{0x3f38fec7, 0x9456d7fb} },
+/**/                  {{0xbbbfb258, 0x6eaa1d6a} },},
+/**/                 {{{0x3f39feae, 0x16e0ec8b} },
+/**/                  {{0xbbb6137a, 0xceeb34b1} },},
+/**/                 {{{0x3f3afe93, 0x999ef930} },
+/**/                  {{0xbbde70e0, 0xdc639b08} },},
+/**/                 {{{0x3f3bfe78, 0x1c92fd4a} },
+/**/                  {{0xbbc4ed10, 0x713cc126} },},
+/**/                 {{{0x3f3cfe5b, 0x9fbef835} },
+/**/                  {{0xbb873d63, 0xcc0e81bd} },},
+/**/                 {{{0x3f3dfe3e, 0x2324e946} },
+/**/                  {{0x3bc09164, 0x62dd5deb} },},
+/**/                 {{{0x3f3efe1f, 0xa6c6cfcc} },
+/**/                  {{0x3bdac2da, 0x3512d15c} },},
+/**/                 {{{0x3f3ffe00, 0x2aa6ab11} },
+/**/                  {{0x3b999e2b, 0x62cc632d} },},
+/**/                 {{{0x3f407eef, 0xd7633d2c} },
+/**/                  {{0xbbebc98b, 0x63ff6024} },},
+/**/                 {{{0x3f40fedf, 0x19941e6e} },
+/**/                  {{0xbbb194c2, 0xe0aa6338} },},
+/**/                 {{{0x3f417ecd, 0xdbe6f8eb} },
+/**/                  {{0x3be4241b, 0x57b0f571} },},
+/**/                 {{{0x3f41febc, 0x1e5ccc3c} },
+/**/                  {{0x3bdc657d, 0x895d3592} },},
+/**/                 {{{0x3f427ea9, 0xe0f697f6} },
+/**/                  {{0x3be35a5d, 0x1c0ec17c} },},
+/**/                 {{{0x3f42fe97, 0x23b55bac} },
+/**/                  {{0x3bd6cfb7, 0x3e538464} },},
+/**/                 {{{0x3f437e83, 0xe69a16ed} },
+/**/                  {{0x3bee96f7, 0x7cef2478} },},
+/**/                 {{{0x3f43fe70, 0x29a5c947} },
+/**/                  {{0xbbd4d578, 0xbf46e36a} },},
+/**/                 {{{0x3f447e5b, 0xecd97242} },
+/**/                  {{0xbbc9eb66, 0x3ff7dd44} },},
+/**/                 {{{0x3f44fe47, 0x30361165} },
+/**/                  {{0x3be400d7, 0x7e93f2fd} },},
+/**/                 {{{0x3f457e31, 0xf3bca635} },
+/**/                  {{0xbbe0e2a2, 0xd375017f} },},
+/**/                 {{{0x3f45fe1c, 0x376e3031} },
+/**/                  {{0xbbd524eb, 0x8a5ae7f6} },},
+/**/                 {{{0x3f467e05, 0xfb4baed7} },
+/**/                  {{0x3be204fb, 0x4e85c4e9} },},
+/**/                 {{{0x3f46fdef, 0x3f5621a3} },
+/**/                  {{0xbbdf09d7, 0x34886d52} },},
+/**/                 {{{0x3f477dd8, 0x038e880b} },
+/**/                  {{0xbbb8900e, 0x14e596a3} },},
+/**/                 {{{0x3f47fdc0, 0x47f5e185} },
+/**/                  {{0xbbebfa5c, 0x57d202d3} },},
+/**/                 {{{0x3f487da8, 0x0c8d2d81} },
+/**/                  {{0x3be2f6ae, 0xd68c0614} },},
+/**/                 {{{0x3f48fd8f, 0x51556b70} },
+/**/                  {{0xbbd0f4f2, 0xe08fd201} },},
+/**/                 {{{0x3f497d76, 0x164f9abc} },
+/**/                  {{0x3b5296b7, 0xa871af60} },},
+/**/                 {{{0x3f49fd5c, 0x5b7cbace} },
+/**/                  {{0x3beb6ed4, 0x9f17d42d} },},
+/**/                 {{{0x3f4a7d42, 0x20ddcb0d} },
+/**/                  {{0xbbcb1149, 0x67c30397} },},
+/**/                 {{{0x3f4afd27, 0x6673cada} },
+/**/                  {{0x3bd32225, 0x45da594f} },},
+/**/                 {{{0x3f4b7d0c, 0x2c3fb996} },
+/**/                  {{0xbbb68893, 0x208d4630} },},
+/**/                 {{{0x3f4bfcf0, 0x7242969d} },
+/**/                  {{0x3bc5db4d, 0x2b3efe1c} },},
+/**/                 {{{0x3f4c7cd4, 0x387d6149} },
+/**/                  {{0x3be46eff, 0xed57d98a} },},
+/**/                 {{{0x3f4cfcb7, 0x7ef118f1} },
+/**/                  {{0x3becc554, 0x06f300fb} },},
+/**/                 {{{0x3f4d7c9a, 0x459ebce9} },
+/**/                  {{0x3be1d251, 0x13638eb6} },},
+/**/                 {{{0x3f4dfc7c, 0x8c874c82} },
+/**/                  {{0xbbe863e9, 0xd57a176f} },},
+/**/                 {{{0x3f4e7c5e, 0x53abc708} },
+/**/                  {{0x3be2d95c, 0x9528e50d} },},
+/**/                 {{{0x3f4efc3f, 0x9b0d2bc8} },
+/**/                  {{0x3bd1e8e8, 0xa5f5b8b7} },},
+/**/                 {{{0x3f4f7c20, 0x62ac7a09} },
+/**/                  {{0x3b5c8123, 0x17802a46} },},
+/**/                 {{{0x3f4ffc00, 0xaa8ab110} },
+/**/                  {{0xbbe0fecb, 0xeb9b6cdb} },},
+/**/                 {{{0x3f503df0, 0x3954680f} },
+/**/                  {{0x3bdac89b, 0x1c693678} },},
+/**/                 {{{0x3f507ddf, 0xdd83eb3a} },
+/**/                  {{0xbbf638f6, 0x0a75ad5f} },},
+/**/                 {{{0x3f50bdcf, 0x41d461a5} },
+/**/                  {{0x3bfd4bc9, 0x45f05b10} },},
+/**/                 {{{0x3f50fdbe, 0x66464aef} },
+/**/                  {{0xbbbd0554, 0x6abbf59c} },},
+/**/                 {{{0x3f513dad, 0x4ada26b1} },
+/**/                  {{0x3be38c65, 0x6036fe6f} },},
+/**/                 {{{0x3f517d9b, 0xef907485} },
+/**/                  {{0x3bfdc8a1, 0xf158bbc3} },},
+/**/                 {{{0x3f51bd8a, 0x5469b404} },
+/**/                  {{0xbbdea231, 0x55632e3f} },},
+/**/                 {{{0x3f51fd78, 0x796664c3} },
+/**/                  {{0xbbe00849, 0x2edb73c2} },},
+/**/                 {{{0x3f523d66, 0x5e870657} },
+/**/                  {{0x3bfba943, 0x0789343e} },},
+/**/                 {{{0x3f527d54, 0x03cc1855} },
+/**/                  {{0x3bc5f644, 0xeafafc52} },},
+/**/                 {{{0x3f52bd41, 0x69361a4e} },
+/**/                  {{0xbbf2f743, 0xa4a6e79f} },},
+/**/                 {{{0x3f52fd2e, 0x8ec58bd2} },
+/**/                  {{0xbbd4f786, 0x5ceb1abf} },},
+/**/                 {{{0x3f533d1b, 0x747aec71} },
+/**/                  {{0xbbf369e3, 0x49dc497d} },},
+/**/                 {{{0x3f537d08, 0x1a56bbb8} },
+/**/                  {{0xbbfc5e6f, 0x3726b14a} },},
+/**/                 {{{0x3f53bcf4, 0x80597933} },
+/**/                  {{0xbbfe8b82, 0x808f75a7} },},
+/**/                 {{{0x3f53fce0, 0xa683a46c} },
+/**/                  {{0x3be02719, 0x9cd06ae6} },},
+/**/                 {{{0x3f543ccc, 0x8cd5bced} },
+/**/                  {{0x3bf9f98d, 0x758f80f8} },},
+/**/                 {{{0x3f547cb8, 0x3350423e} },
+/**/                  {{0xbbd79c3d, 0x48401f45} },},
+/**/                 {{{0x3f54bca3, 0x99f3b3e4} },
+/**/                  {{0xbbf422b8, 0x2fba8948} },},
+/**/                 {{{0x3f54fc8e, 0xc0c09163} },
+/**/                  {{0x3bf32cc1, 0xf4044be8} },},
+/**/                 {{{0x3f553c79, 0xa7b75a40} },
+/**/                  {{0xbbe72cac, 0xf2249008} },},
+/**/                 {{{0x3f557c64, 0x4ed88dfb} },
+/**/                  {{0xbbe7183c, 0x459a204f} },},
+/**/                 {{{0x3f55bc4e, 0xb624ac14} },
+/**/                  {{0x3bf8aa64, 0xba26d3d7} },},
+/**/                 {{{0x3f55fc38, 0xdd9c340b} },
+/**/                  {{0x3bdbb2ff, 0x45fa193c} },},
+/**/                 {{{0x3f563c22, 0xc53fa55c} },
+/**/                  {{0x3bd67249, 0x0484397b} },},
+/**/                 {{{0x3f567c0c, 0x6d0f7f83} },
+/**/                  {{0xbbd183d7, 0xf1e73188} },},
+/**/                 {{{0x3f56bbf5, 0xd50c41fa} },
+/**/                  {{0xbbef433d, 0x4ab68187} },},
+/**/                 {{{0x3f56fbde, 0xfd366c39} },
+/**/                  {{0x3be796b8, 0x66e09e58} },},
+/**/                 {{{0x3f573bc7, 0xe58e7db8} },
+/**/                  {{0x3bf65ec5, 0x81e6e7e6} },},
+/**/                 {{{0x3f577bb0, 0x8e14f5ed} },
+/**/                  {{0xbbdb944d, 0xa9463a9c} },},
+/**/                 {{{0x3f57bb98, 0xf6ca544b} },
+/**/                  {{0xbbc396ec, 0xc5eda344} },},
+/**/                 {{{0x3f57fb81, 0x1faf1845} },
+/**/                  {{0x3beb9e6d, 0xbb624f97} },},
+/**/                 {{{0x3f583b69, 0x08c3c14d} },
+/**/                  {{0xbbe6ee13, 0xe6295bf2} },},
+/**/                 {{{0x3f587b50, 0xb208ced1} },
+/**/                  {{0x3bfcf1a5, 0x6ca19875} },},
+/**/                 {{{0x3f58bb38, 0x1b7ec041} },
+/**/                  {{0x3bf2d181, 0x07b4fc7e} },},
+/**/                 {{{0x3f58fb1f, 0x45261509} },
+/**/                  {{0x3bc419c5, 0x21bad336} },},
+/**/                 {{{0x3f593b06, 0x2eff4c94} },
+/**/                  {{0xbbdc2a4c, 0x700b305b} },},
+/**/                 {{{0x3f597aec, 0xd90ae64c} },
+/**/                  {{0xbbfc53d3, 0xa23f359c} },},
+/**/                 {{{0x3f59bad3, 0x43496198} },
+/**/                  {{0x3bf0c270, 0xaed6b50f} },},
+/**/                 {{{0x3f59fab9, 0x6dbb3de1} },
+/**/                  {{0xbbf11464, 0x7a8be031} },},
+/**/                 {{{0x3f5a3a9f, 0x5860fa8a} },
+/**/                  {{0x3beae9e7, 0x470dbe32} },},
+/**/                 {{{0x3f5a7a85, 0x033b16f8} },
+/**/                  {{0x3bfc4721, 0xda1f8579} },},
+/**/                 {{{0x3f5aba6a, 0x6e4a128e} },
+/**/                  {{0xbbf41852, 0x029258ce} },},
+/**/                 {{{0x3f5afa4f, 0x998e6cab} },
+/**/                  {{0xbbf28584, 0x2eb18782} },},
+/**/                 {{{0x3f5b3a34, 0x8508a4af} },
+/**/                  {{0xbbea7970, 0x23241a2c} },},
+/**/                 {{{0x3f5b7a19, 0x30b939f8} },
+/**/                  {{0xbbf1d8db, 0x600551b6} },},
+/**/                 {{{0x3f5bb9fd, 0x9ca0abe2} },
+/**/                  {{0xbbeaa412, 0x8c26cc71} },},
+/**/                 {{{0x3f5bf9e1, 0xc8bf79c8} },
+/**/                  {{0xbbe7f81b, 0x30427cfc} },},
+/**/                 {{{0x3f5c39c5, 0xb5162303} },
+/**/                  {{0x3bd9ec5f, 0xd1f134e1} },},
+/**/                 {{{0x3f5c79a9, 0x61a526eb} },
+/**/                  {{0x3bff0cb0, 0x8980e47d} },},
+/**/                 {{{0x3f5cb98c, 0xce6d04d7} },
+/**/                  {{0x3bf35aca, 0xe84ca4e2} },},
+/**/                 {{{0x3f5cf96f, 0xfb6e3c1b} },
+/**/                  {{0x3bf9b1b8, 0x1b0bd69f} },},
+/**/                 {{{0x3f5d3952, 0xe8a94c0b} },
+/**/                  {{0x3be21310, 0x3ce51832} },},
+/**/                 {{{0x3f5d7935, 0x961eb3f8} },
+/**/                  {{0x3bf90786, 0x840c58ce} },},
+/**/                 {{{0x3f5db918, 0x03cef334} },
+/**/                  {{0xbbfe0048, 0xf2dfb3f4} },},
+/**/                 {{{0x3f5df8fa, 0x31ba890b} },
+/**/                  {{0x3bfcf652, 0x3e295bec} },},
+/**/                 {{{0x3f5e38dc, 0x1fe1f4ce} },
+/**/                  {{0xbbfc5ebe, 0x151c9300} },},
+/**/                 {{{0x3f5e78bd, 0xce45b5c6} },
+/**/                  {{0xbbef2cc4, 0x8a25b9c7} },},
+/**/                 {{{0x3f5eb89f, 0x3ce64b3e} },
+/**/                  {{0x3bfe6d27, 0xa6fea7bd} },},
+/**/                 {{{0x3f5ef880, 0x6bc43481} },
+/**/                  {{0xbbf68037, 0x914a6dab} },},
+/**/                 {{{0x3f5f3861, 0x5adff0d4} },
+/**/                  {{0xbbf1d2f3, 0xf909e0e6} },},
+/**/                 {{{0x3f5f7842, 0x0a39ff7e} },
+/**/                  {{0xbbf64661, 0xff1e1f71} },},
+/**/                 {{{0x3f5fb822, 0x79d2dfc3} },
+/**/                  {{0xbbd76ce8, 0x5a6f9e9a} },},
+/**/                 {{{0x3f5ff802, 0xa9ab10e6} },
+/**/                  {{0x3bfe29e3, 0xa153e3b2} },},
+/**/                 {{{0x3f601bf1, 0x4ce18915} },
+/**/                  {{0xbbe57c28, 0xa3a73044} },},
+/**/                 {{{0x3f603be1, 0x250db166} },
+/**/                  {{0x3c0fd271, 0xc1ad9590} },},
+/**/                 {{{0x3f605bd0, 0xdd5a4107} },
+/**/                  {{0x3bfe4b5d, 0xc424c676} },},
+/**/                 {{{0x3f607bc0, 0x75c77796} },
+/**/                  {{0xbc068804, 0xc0eff1ba} },},
+/**/                 {{{0x3f609baf, 0xee5594b0} },
+/**/                  {{0xbc0ff798, 0x51dbded5} },},
+/**/                 {{{0x3f60bb9f, 0x4704d7f2} },
+/**/                  {{0xbbf70ef4, 0x2d5aba70} },},
+/**/                 {{{0x3f60db8e, 0x7fd580f9} },
+/**/                  {{0xbbeccb65, 0x7ae804b5} },},
+/**/                 {{{0x3f60fb7d, 0x98c7cf60} },
+/**/                  {{0x3bfede2f, 0x1775134d} },},
+/**/                 {{{0x3f611b6c, 0x91dc02c3} },
+/**/                  {{0xbc04d41e, 0x91ca4a67} },},
+/**/                 {{{0x3f613b5b, 0x6b125aba} },
+/**/                  {{0x3bfe6d0c, 0x4a12201d} },},
+/**/                 {{{0x3f615b4a, 0x246b16e0} },
+/**/                  {{0x3bfe507d, 0x4d4238d3} },},
+/**/                 {{{0x3f617b38, 0xbde676cd} },
+/**/                  {{0x3bfe0272, 0x0640462a} },},
+/**/                 {{{0x3f619b27, 0x3784ba19} },
+/**/                  {{0x3bd94ab3, 0x02285659} },},
+/**/                 {{{0x3f61bb15, 0x9146205b} },
+/**/                  {{0xbbff1e2e, 0x1cc35b7b} },},
+/**/                 {{{0x3f61db03, 0xcb2ae929} },
+/**/                  {{0xbc03ee8e, 0x12f6bf8d} },},
+/**/                 {{{0x3f61faf1, 0xe5335418} },
+/**/                  {{0x3c0bae5f, 0x7b7d619b} },},
+/**/                 {{{0x3f621adf, 0xdf5fa0bf} },
+/**/                  {{0xbbf5546a, 0xb3b731b0} },},
+/**/                 {{{0x3f623acd, 0xb9b00eb0} },
+/**/                  {{0xbbafb2b0, 0x105fd253} },},
+/**/                 {{{0x3f625abb, 0x7424dd7f} },
+/**/                  {{0x3c011647, 0xca53444b} },},
+/**/                 {{{0x3f627aa9, 0x0ebe4cbf} },
+/**/                  {{0x3c01678f, 0x592f3be8} },},
+/**/                 {{{0x3f629a96, 0x897c9c02} },
+/**/                  {{0xbbef2b12, 0x4347451d} },},
+/**/                 {{{0x3f62ba83, 0xe4600ad8} },
+/**/                  {{0x3bfb5bb7, 0xb2a477bc} },},
+/**/                 {{{0x3f62da71, 0x1f68d8d3} },
+/**/                  {{0xbc0590e1, 0x7a5822e4} },},
+/**/                 {{{0x3f62fa5e, 0x3a974581} },
+/**/                  {{0xbbf0f2e5, 0x53123101} },},
+/**/                 {{{0x3f631a4b, 0x35eb9072} },
+/**/                  {{0xbc018db4, 0x0e3f5fde} },},
+/**/                 {{{0x3f633a38, 0x1165f933} },
+/**/                  {{0x3c0921d5, 0x8d0afb38} },},
+/**/                 {{{0x3f635a24, 0xcd06bf53} },
+/**/                  {{0x3c01f6ba, 0xb5791b80} },},
+/**/                 {{{0x3f637a11, 0x68ce225e} },
+/**/                  {{0x3bde2af8, 0xa1894236} },},
+/**/                 {{{0x3f6399fd, 0xe4bc61e0} },
+/**/                  {{0xbc062a48, 0xd0f06ff3} },},
+/**/                 {{{0x3f63b9ea, 0x40d1bd63} },
+/**/                  {{0x3bffc80c, 0x4b4f9c11} },},
+/**/                 {{{0x3f63d9d6, 0x7d0e7473} },
+/**/                  {{0x3c02219b, 0x6a92c891} },},
+/**/                 {{{0x3f63f9c2, 0x9972c699} },
+/**/                  {{0x3c0d3590, 0x790ade9e} },},
+/**/                 {{{0x3f6419ae, 0x95fef35f} },
+/**/                  {{0xbc01c279, 0x792a458c} },},
+/**/                 {{{0x3f64399a, 0x72b33a4b} },
+/**/                  {{0x3c02ce64, 0x327bffae} },},
+/**/                 {{{0x3f645986, 0x2f8fdae7} },
+/**/                  {{0xbc070aec, 0xd231155c} },},
+/**/                 {{{0x3f647971, 0xcc9514b7} },
+/**/                  {{0x3c0f373d, 0xe4bbf776} },},
+/**/                 {{{0x3f64995d, 0x49c32744} },
+/**/                  {{0xbbf6d7e5, 0xbf22b2a7} },},
+/**/                 {{{0x3f64b948, 0xa71a5211} },
+/**/                  {{0xbbedec69, 0x64fe2936} },},
+/**/                 {{{0x3f64d933, 0xe49ad4a3} },
+/**/                  {{0x3bf5fc4b, 0xabee4257} },},
+/**/                 {{{0x3f64f91f, 0x0244ee7e} },
+/**/                  {{0x3c0c6fe3, 0x3cd1474f} },},
+/**/                 {{{0x3f65190a, 0x0018df26} },
+/**/                  {{0xbc023957, 0xd11e7fa5} },},
+/**/                 {{{0x3f6538f4, 0xde16e61b} },
+/**/                  {{0x3c006c31, 0x55380346} },},
+/**/                 {{{0x3f6558df, 0x9c3f42e1} },
+/**/                  {{0xbc09b7d4, 0xc4a5134c} },},
+/**/                 {{{0x3f6578ca, 0x3a9234f7} },
+/**/                  {{0xbc0e3f10, 0x2772c19c} },},
+/**/                 {{{0x3f6598b4, 0xb90ffbdd} },
+/**/                  {{0x3be6f110, 0x5592b468} },},
+/**/                 {{{0x3f65b89f, 0x17b8d714} },
+/**/                  {{0xbc0a5fea, 0xb251ace2} },},
+/**/                 {{{0x3f65d889, 0x568d0619} },
+/**/                  {{0xbc0aacc9, 0x315da285} },},
+/**/                 {{{0x3f65f873, 0x758cc86a} },
+/**/                  {{0xbbeb0782, 0xba64d81a} },},
+/**/                 {{{0x3f66185d, 0x74b85d85} },
+/**/                  {{0xbc09b459, 0x8e1eb3fa} },},
+/**/                 {{{0x3f663847, 0x541004e5} },
+/**/                  {{0x3bce9c22, 0x1d86e863} },},
+/**/                 {{{0x3f665831, 0x1393fe07} },
+/**/                  {{0xbbfbeb77, 0xcf37ee90} },},
+/**/                 {{{0x3f66781a, 0xb3448865} },
+/**/                  {{0xbc02dc68, 0xc252e3c9} },},
+/**/                 {{{0x3f669804, 0x3321e379} },
+/**/                  {{0xbbe73a0b, 0xb40b3741} },},
+  };
+
+#else
+#ifdef LITTLE_ENDI
+  static const number
+           Iu[182] = {                            /* 1/ui   */
+/**/                  {{0xd1537290, 0x3ff6a13c} },
+/**/                  {{0x16816817, 0x3ff68168} },
+/**/                  {{0x6a5122f9, 0x3ff661ec} },
+/**/                  {{0x590b2164, 0x3ff642c8} },
+/**/                  {{0x77016240, 0x3ff623fa} },
+/**/                  {{0x60581606, 0x3ff60581} },
+/**/                  {{0xb8d015e7, 0x3ff5e75b} },
+/**/                  {{0x2b931057, 0x3ff5c988} },
+/**/                  {{0x6b015ac0, 0x3ff5ac05} },
+/**/                  {{0x308158ed, 0x3ff58ed2} },
+/**/                  {{0x3c506b3a, 0x3ff571ed} },
+/**/                  {{0x55555555, 0x3ff55555} },
+/**/                  {{0x48f40feb, 0x3ff53909} },
+/**/                  {{0xeae2f815, 0x3ff51d07} },
+/**/                  {{0x15015015, 0x3ff50150} },
+/**/                  {{0xa72f0539, 0x3ff4e5e0} },
+/**/                  {{0x8725af6e, 0x3ff4cab8} },
+/**/                  {{0xa052bf5b, 0x3ff4afd6} },
+/**/                  {{0xe3b2d067, 0x3ff49539} },
+/**/                  {{0x47ae147b, 0x3ff47ae1} },
+/**/                  {{0xc7f5cf9a, 0x3ff460cb} },
+/**/                  {{0x6562d9fb, 0x3ff446f8} },
+/**/                  {{0x25d51f87, 0x3ff42d66} },
+/**/                  {{0x14141414, 0x3ff41414} },
+/**/                  {{0x3fb013fb, 0x3ff3fb01} },
+/**/                  {{0xbce4a902, 0x3ff3e22c} },
+/**/                  {{0xa47babe7, 0x3ff3c995} },
+/**/                  {{0x13b13b14, 0x3ff3b13b} },
+/**/                  {{0x2c187f63, 0x3ff3991c} },
+/**/                  {{0x13813814, 0x3ff38138} },
+/**/                  {{0xf3de0748, 0x3ff3698d} },
+/**/                  {{0xfb2b78c1, 0x3ff3521c} },
+/**/                  {{0x5b57bcb2, 0x3ff33ae4} },
+/**/                  {{0x4a2b10bf, 0x3ff323e3} },
+/**/                  {{0x0130d190, 0x3ff30d19} },
+/**/                  {{0xbda12f68, 0x3ff2f684} },
+/**/                  {{0xc04b8097, 0x3ff2e025} },
+/**/                  {{0x4d812ca0, 0x3ff2c9fb} },
+/**/                  {{0xad012b40, 0x3ff2b404} },
+/**/                  {{0x29e4129e, 0x3ff29e41} },
+/**/                  {{0x1288b013, 0x3ff288b0} },
+/**/                  {{0xb8812735, 0x3ff27350} },
+/**/                  {{0x708092f1, 0x3ff25e22} },
+/**/                  {{0x92492492, 0x3ff24924} },
+/**/                  {{0x789abcdf, 0x3ff23456} },
+/**/                  {{0x8121fb78, 0x3ff21fb7} },
+/**/                  {{0x0c67c0d9, 0x3ff20b47} },
+/**/                  {{0x7dc11f70, 0x3ff1f704} },
+/**/                  {{0x3b3fb874, 0x3ff1e2ef} },
+/**/                  {{0xada2811d, 0x3ff1cf06} },
+/**/                  {{0x4046ed29, 0x3ff1bb4a} },
+/**/                  {{0x611a7b96, 0x3ff1a7b9} },
+/**/                  {{0x808ca29c, 0x3ff19453} },
+/**/                  {{0x11811812, 0x3ff18118} },
+/**/                  {{0x89427379, 0x3ff16e06} },
+/**/                  {{0x5f75270d, 0x3ff15b1e} },
+/**/                  {{0x0e0acd3b, 0x3ff1485f} },
+/**/                  {{0x1135c811, 0x3ff135c8} },
+/**/                  {{0xe75d3033, 0x3ff12358} },
+/**/                  {{0x11111111, 0x3ff11111} },
+/**/                  {{0x10fef011, 0x3ff0fef0} },
+/**/                  {{0x6be69c90, 0x3ff0ecf5} },
+/**/                  {{0xa88f4696, 0x3ff0db20} },
+/**/                  {{0x4fbcda3b, 0x3ff0c971} },
+/**/                  {{0xec259dc8, 0x3ff0b7e6} },
+/**/                  {{0x0a6810a7, 0x3ff0a681} },
+/**/                  {{0x39010954, 0x3ff0953f} },
+/**/                  {{0x08421084, 0x3ff08421} },
+/**/                  {{0x0a47f7c6, 0x3ff07326} },
+/**/                  {{0xd2f1a9fc, 0x3ff0624d} },
+/**/                  {{0xf7d73404, 0x3ff05197} },
+/**/                  {{0x10410410, 0x3ff04104} },
+/**/                  {{0xb51f5e1a, 0x3ff03091} },
+/**/                  {{0x81020408, 0x3ff02040} },
+/**/                  {{0x10101010, 0x3ff01010} },
+/**/                  {{0x00000000, 0x3ff00000} },
+/**/                  {{0xe01fe020, 0x3fefe01f} },
+/**/                  {{0x01fc07f0, 0x3fefc07f} },
+/**/                  {{0xaa01fa12, 0x3fefa11c} },
+/**/                  {{0x1f81f820, 0x3fef81f8} },
+/**/                  {{0xaca0dbb5, 0x3fef6310} },
+/**/                  {{0x9e4a4271, 0x3fef4465} },
+/**/                  {{0x44230ab5, 0x3fef25f6} },
+/**/                  {{0xf07c1f08, 0x3fef07c1} },
+/**/                  {{0xf8458e02, 0x3feee9c7} },
+/**/                  {{0xb301ecc0, 0x3feecc07} },
+/**/                  {{0x7aba01eb, 0x3feeae80} },
+/**/                  {{0xabf0b767, 0x3fee9131} },
+/**/                  {{0xa59750e4, 0x3fee741a} },
+/**/                  {{0xc901e574, 0x3fee573a} },
+/**/                  {{0x79dc1a73, 0x3fee3a91} },
+/**/                  {{0x1e1e1e1e, 0x3fee1e1e} },
+/**/                  {{0x1e01e01e, 0x3fee01e0} },
+/**/                  {{0xe3f8868a, 0x3fede5d6} },
+/**/                  {{0xdca01dca, 0x3fedca01} },
+/**/                  {{0x76b981db, 0x3fedae60} },
+/**/                  {{0x231e7f8a, 0x3fed92f2} },
+/**/                  {{0x54b82c34, 0x3fed77b6} },
+/**/                  {{0x807572b2, 0x3fed5cac} },
+/**/                  {{0x1d41d41d, 0x3fed41d4} },
+/**/                  {{0xa3fc5b1a, 0x3fed272c} },
+/**/                  {{0x8f6ec074, 0x3fed0cb5} },
+/**/                  {{0x5c44bfc6, 0x3fecf26e} },
+/**/                  {{0x89039b0b, 0x3fecd856} },
+/**/                  {{0x9601cbe7, 0x3fecbe6d} },
+/**/                  {{0x055ee191, 0x3feca4b3} },
+/**/                  {{0x5afb8a42, 0x3fec8b26} },
+/**/                  {{0x1c71c71c, 0x3fec71c7} },
+/**/                  {{0xd10d4986, 0x3fec5894} },
+/**/                  {{0x01c3f8f0, 0x3fec3f8f} },
+/**/                  {{0x392ea01c, 0x3fec26b5} },
+/**/                  {{0x0381c0e0, 0x3fec0e07} },
+/**/                  {{0xee868d8b, 0x3febf583} },
+/**/                  {{0x899406f7, 0x3febdd2b} },
+/**/                  {{0x65883e7b, 0x3febc4fd} },
+/**/                  {{0x14c1bad0, 0x3febacf9} },
+/**/                  {{0x2b18ff23, 0x3feb951e} },
+/**/                  {{0x3dda338b, 0x3feb7d6c} },
+/**/                  {{0xe3beee05, 0x3feb65e2} },
+/**/                  {{0xb4e81b4f, 0x3feb4e81} },
+/**/                  {{0x4ad806ce, 0x3feb3748} },
+/**/                  {{0x406c80d9, 0x3feb2036} },
+/**/                  {{0x31d922a4, 0x3feb094b} },
+/**/                  {{0xbca1af28, 0x3feaf286} },
+/**/                  {{0x7f94905e, 0x3feadbe8} },
+/**/                  {{0x1ac5701b, 0x3feac570} },
+/**/                  {{0x2f87ebfd, 0x3feaaf1d} },
+/**/                  {{0x606a63be, 0x3fea98ef} },
+/**/                  {{0x5130e159, 0x3fea82e6} },
+/**/                  {{0xa6d01a6d, 0x3fea6d01} },
+/**/                  {{0x07688a4a, 0x3fea5741} },
+/**/                  {{0x1a41a41a, 0x3fea41a4} },
+/**/                  {{0x87c51ca0, 0x3fea2c2a} },
+/**/                  {{0xf97a4b02, 0x3fea16d3} },
+/**/                  {{0x1a01a01a, 0x3fea01a0} },
+/**/                  {{0x951033d9, 0x3fe9ec8e} },
+/**/                  {{0x176b682d, 0x3fe9d79f} },
+/**/                  {{0x4ee4a102, 0x3fe9c2d1} },
+/**/                  {{0xea5510da, 0x3fe9ae24} },
+/**/                  {{0x9999999a, 0x3fe99999} },
+/**/                  {{0x0d8ec0ff, 0x3fe9852f} },
+/**/                  {{0xf80cb872, 0x3fe970e4} },
+/**/                  {{0x0be377ae, 0x3fe95cbb} },
+/**/                  {{0xfcd6e9e0, 0x3fe948b0} },
+/**/                  {{0x7f9b2ce6, 0x3fe934c6} },
+/**/                  {{0x49d0e229, 0x3fe920fb} },
+/**/                  {{0x120190d5, 0x3fe90d4f} },
+/**/                  {{0x8f9c18fa, 0x3fe8f9c1} },
+/**/                  {{0x7af1373f, 0x3fe8e652} },
+/**/                  {{0x8d3018d3, 0x3fe8d301} },
+/**/                  {{0x8062ff3a, 0x3fe8bfce} },
+/**/                  {{0x0f6bf3aa, 0x3fe8acb9} },
+/**/                  {{0xf601899c, 0x3fe899c0} },
+/**/                  {{0xf0abb04a, 0x3fe886e5} },
+/**/                  {{0xbcc092b9, 0x3fe87427} },
+/**/                  {{0x18618618, 0x3fe86186} },
+/**/                  {{0xc2780614, 0x3fe84f00} },
+/**/                  {{0x7ab2bedd, 0x3fe83c97} },
+/**/                  {{0x0182a4a0, 0x3fe82a4a} },
+/**/                  {{0x18181818, 0x3fe81818} },
+/**/                  {{0x80601806, 0x3fe80601} },
+/**/                  {{0xfd017f40, 0x3fe7f405} },
+/**/                  {{0x515a4f1d, 0x3fe7e225} },
+/**/                  {{0x417d05f4, 0x3fe7d05f} },
+/**/                  {{0x922e017c, 0x3fe7beb3} },
+/**/                  {{0x08e0ecc3, 0x3fe7ad22} },
+/**/                  {{0x6bb6398b, 0x3fe79baa} },
+/**/                  {{0x8178a4c8, 0x3fe78a4c} },
+/**/                  {{0x119ac60d, 0x3fe77908} },
+/**/                  {{0xe434a9b1, 0x3fe767dc} },
+/**/                  {{0xc201756d, 0x3fe756ca} },
+/**/                  {{0x745d1746, 0x3fe745d1} },
+/**/                  {{0xc541fe8d, 0x3fe734f0} },
+/**/                  {{0x7f46debc, 0x3fe72428} },
+/**/                  {{0x6d9c7c09, 0x3fe71378} },
+/**/                  {{0x5c0b8170, 0x3fe702e0} },
+/**/                  {{0x16f26017, 0x3fe6f260} },
+/**/                  {{0x6b4337c7, 0x3fe6e1f7} },
+/**/                  {{0x2681c861, 0x3fe6d1a6} },
+/**/                  {{0x16c16c17, 0x3fe6c16c} },
+/**/                  {{0x0aa31a3d, 0x3fe6b149} },
+/**/                  {{0xd1537290, 0x3fe6a13c} },
+  };
+
+  static const number
+           Iv[362] = {                            /* 1/vj   */
+/**/                  {{0xee93bfe3, 0x3ff00b47} },
+/**/                  {{0xd80c106f, 0x3ff00b37} },
+/**/                  {{0xc1a4a47a, 0x3ff00b27} },
+/**/                  {{0xab5d7ba2, 0x3ff00b17} },
+/**/                  {{0x95369587, 0x3ff00b07} },
+/**/                  {{0x7f2ff1c6, 0x3ff00af7} },
+/**/                  {{0x69499000, 0x3ff00ae7} },
+/**/                  {{0x53836fd3, 0x3ff00ad7} },
+/**/                  {{0x3ddd90dd, 0x3ff00ac7} },
+/**/                  {{0x2857f2bf, 0x3ff00ab7} },
+/**/                  {{0x12f29517, 0x3ff00aa7} },
+/**/                  {{0xfdad7784, 0x3ff00a96} },
+/**/                  {{0xe88899a5, 0x3ff00a86} },
+/**/                  {{0xd383fb19, 0x3ff00a76} },
+/**/                  {{0xbe9f9b7f, 0x3ff00a66} },
+/**/                  {{0xa9db7a76, 0x3ff00a56} },
+/**/                  {{0x9537979d, 0x3ff00a46} },
+/**/                  {{0x80b3f293, 0x3ff00a36} },
+/**/                  {{0x6c508af8, 0x3ff00a26} },
+/**/                  {{0x580d606a, 0x3ff00a16} },
+/**/                  {{0x43ea7288, 0x3ff00a06} },
+/**/                  {{0x2fe7c0f1, 0x3ff009f6} },
+/**/                  {{0x1c054b44, 0x3ff009e6} },
+/**/                  {{0x08431122, 0x3ff009d6} },
+/**/                  {{0xf4a11227, 0x3ff009c5} },
+/**/                  {{0xe11f4df4, 0x3ff009b5} },
+/**/                  {{0xcdbdc428, 0x3ff009a5} },
+/**/                  {{0xba7c7462, 0x3ff00995} },
+/**/                  {{0xa75b5e40, 0x3ff00985} },
+/**/                  {{0x945a8162, 0x3ff00975} },
+/**/                  {{0x8179dd68, 0x3ff00965} },
+/**/                  {{0x6eb971ef, 0x3ff00955} },
+/**/                  {{0x5c193e98, 0x3ff00945} },
+/**/                  {{0x49994301, 0x3ff00935} },
+/**/                  {{0x37397eca, 0x3ff00925} },
+/**/                  {{0x24f9f192, 0x3ff00915} },
+/**/                  {{0x12da9af7, 0x3ff00905} },
+/**/                  {{0x00db7a99, 0x3ff008f5} },
+/**/                  {{0xeefc9018, 0x3ff008e4} },
+/**/                  {{0xdd3ddb12, 0x3ff008d4} },
+/**/                  {{0xcb9f5b26, 0x3ff008c4} },
+/**/                  {{0xba210ff4, 0x3ff008b4} },
+/**/                  {{0xa8c2f91a, 0x3ff008a4} },
+/**/                  {{0x97851639, 0x3ff00894} },
+/**/                  {{0x866766ef, 0x3ff00884} },
+/**/                  {{0x7569eadb, 0x3ff00874} },
+/**/                  {{0x648ca19d, 0x3ff00864} },
+/**/                  {{0x53cf8ad3, 0x3ff00854} },
+/**/                  {{0x4332a61e, 0x3ff00844} },
+/**/                  {{0x32b5f31b, 0x3ff00834} },
+/**/                  {{0x2259716c, 0x3ff00824} },
+/**/                  {{0x121d20ad, 0x3ff00814} },
+/**/                  {{0x02010080, 0x3ff00804} },
+/**/                  {{0xf2051083, 0x3ff007f3} },
+/**/                  {{0xe2295056, 0x3ff007e3} },
+/**/                  {{0xd26dbf97, 0x3ff007d3} },
+/**/                  {{0xc2d25de5, 0x3ff007c3} },
+/**/                  {{0xb3572ae2, 0x3ff007b3} },
+/**/                  {{0xa3fc262a, 0x3ff007a3} },
+/**/                  {{0x94c14f5f, 0x3ff00793} },
+/**/                  {{0x85a6a61e, 0x3ff00783} },
+/**/                  {{0x76ac2a08, 0x3ff00773} },
+/**/                  {{0x67d1dabb, 0x3ff00763} },
+/**/                  {{0x5917b7d7, 0x3ff00753} },
+/**/                  {{0x4a7dc0fb, 0x3ff00743} },
+/**/                  {{0x3c03f5c7, 0x3ff00733} },
+/**/                  {{0x2daa55da, 0x3ff00723} },
+/**/                  {{0x1f70e0d3, 0x3ff00713} },
+/**/                  {{0x11579652, 0x3ff00703} },
+/**/                  {{0x035e75f5, 0x3ff006f3} },
+/**/                  {{0xf5857f5d, 0x3ff006e2} },
+/**/                  {{0xe7ccb228, 0x3ff006d2} },
+/**/                  {{0xda340df6, 0x3ff006c2} },
+/**/                  {{0xccbb9266, 0x3ff006b2} },
+/**/                  {{0xbf633f18, 0x3ff006a2} },
+/**/                  {{0xb22b13ab, 0x3ff00692} },
+/**/                  {{0xa5130fbe, 0x3ff00682} },
+/**/                  {{0x981b32f1, 0x3ff00672} },
+/**/                  {{0x8b437ce4, 0x3ff00662} },
+/**/                  {{0x7e8bed35, 0x3ff00652} },
+/**/                  {{0x71f48383, 0x3ff00642} },
+/**/                  {{0x657d3f70, 0x3ff00632} },
+/**/                  {{0x59262098, 0x3ff00622} },
+/**/                  {{0x4cef269e, 0x3ff00612} },
+/**/                  {{0x40d8511e, 0x3ff00602} },
+/**/                  {{0x34e19fba, 0x3ff005f2} },
+/**/                  {{0x290b1211, 0x3ff005e2} },
+/**/                  {{0x1d54a7c1, 0x3ff005d2} },
+/**/                  {{0x11be606b, 0x3ff005c2} },
+/**/                  {{0x06483bad, 0x3ff005b2} },
+/**/                  {{0xfaf23928, 0x3ff005a1} },
+/**/                  {{0xefbc587b, 0x3ff00591} },
+/**/                  {{0xe4a69945, 0x3ff00581} },
+/**/                  {{0xd9b0fb25, 0x3ff00571} },
+/**/                  {{0xcedb7dbc, 0x3ff00561} },
+/**/                  {{0xc42620a9, 0x3ff00551} },
+/**/                  {{0xb990e38b, 0x3ff00541} },
+/**/                  {{0xaf1bc601, 0x3ff00531} },
+/**/                  {{0xa4c6c7ac, 0x3ff00521} },
+/**/                  {{0x9a91e82a, 0x3ff00511} },
+/**/                  {{0x907d271c, 0x3ff00501} },
+/**/                  {{0x86888421, 0x3ff004f1} },
+/**/                  {{0x7cb3fed8, 0x3ff004e1} },
+/**/                  {{0x72ff96e0, 0x3ff004d1} },
+/**/                  {{0x696b4bdb, 0x3ff004c1} },
+/**/                  {{0x5ff71d66, 0x3ff004b1} },
+/**/                  {{0x56a30b21, 0x3ff004a1} },
+/**/                  {{0x4d6f14ad, 0x3ff00491} },
+/**/                  {{0x445b39a8, 0x3ff00481} },
+/**/                  {{0x3b6779b3, 0x3ff00471} },
+/**/                  {{0x3293d46c, 0x3ff00461} },
+/**/                  {{0x29e04974, 0x3ff00451} },
+/**/                  {{0x214cd869, 0x3ff00441} },
+/**/                  {{0x18d980ed, 0x3ff00431} },
+/**/                  {{0x1086429d, 0x3ff00421} },
+/**/                  {{0x08531d1a, 0x3ff00411} },
+/**/                  {{0x00401004, 0x3ff00401} },
+/**/                  {{0xf84d1afa, 0x3ff003f0} },
+/**/                  {{0xf07a3d9b, 0x3ff003e0} },
+/**/                  {{0xe8c77787, 0x3ff003d0} },
+/**/                  {{0xe134c85f, 0x3ff003c0} },
+/**/                  {{0xd9c22fc1, 0x3ff003b0} },
+/**/                  {{0xd26fad4d, 0x3ff003a0} },
+/**/                  {{0xcb3d40a3, 0x3ff00390} },
+/**/                  {{0xc42ae963, 0x3ff00380} },
+/**/                  {{0xbd38a72c, 0x3ff00370} },
+/**/                  {{0xb666799e, 0x3ff00360} },
+/**/                  {{0xafb46058, 0x3ff00350} },
+/**/                  {{0xa9225afa, 0x3ff00340} },
+/**/                  {{0xa2b06925, 0x3ff00330} },
+/**/                  {{0x9c5e8a77, 0x3ff00320} },
+/**/                  {{0x962cbe90, 0x3ff00310} },
+/**/                  {{0x901b0511, 0x3ff00300} },
+/**/                  {{0x8a295d98, 0x3ff002f0} },
+/**/                  {{0x8457c7c6, 0x3ff002e0} },
+/**/                  {{0x7ea6433a, 0x3ff002d0} },
+/**/                  {{0x7914cf94, 0x3ff002c0} },
+/**/                  {{0x73a36c73, 0x3ff002b0} },
+/**/                  {{0x6e521978, 0x3ff002a0} },
+/**/                  {{0x6920d642, 0x3ff00290} },
+/**/                  {{0x640fa271, 0x3ff00280} },
+/**/                  {{0x5f1e7da5, 0x3ff00270} },
+/**/                  {{0x5a4d677d, 0x3ff00260} },
+/**/                  {{0x559c5f9a, 0x3ff00250} },
+/**/                  {{0x510b659a, 0x3ff00240} },
+/**/                  {{0x4c9a791f, 0x3ff00230} },
+/**/                  {{0x484999c6, 0x3ff00220} },
+/**/                  {{0x4418c732, 0x3ff00210} },
+/**/                  {{0x40080100, 0x3ff00200} },
+/**/                  {{0x3c1746d2, 0x3ff001f0} },
+/**/                  {{0x38469846, 0x3ff001e0} },
+/**/                  {{0x3495f4fd, 0x3ff001d0} },
+/**/                  {{0x31055c96, 0x3ff001c0} },
+/**/                  {{0x2d94ceb2, 0x3ff001b0} },
+/**/                  {{0x2a444af0, 0x3ff001a0} },
+/**/                  {{0x2713d0ef, 0x3ff00190} },
+/**/                  {{0x24036051, 0x3ff00180} },
+/**/                  {{0x2112f8b4, 0x3ff00170} },
+/**/                  {{0x1e4299b9, 0x3ff00160} },
+/**/                  {{0x1b9242ff, 0x3ff00150} },
+/**/                  {{0x1901f427, 0x3ff00140} },
+/**/                  {{0x1691acd0, 0x3ff00130} },
+/**/                  {{0x14416c9a, 0x3ff00120} },
+/**/                  {{0x12113324, 0x3ff00110} },
+/**/                  {{0x10010010, 0x3ff00100} },
+/**/                  {{0x0e10d2fc, 0x3ff000f0} },
+/**/                  {{0x0c40ab89, 0x3ff000e0} },
+/**/                  {{0x0a908957, 0x3ff000d0} },
+/**/                  {{0x09006c05, 0x3ff000c0} },
+/**/                  {{0x07905334, 0x3ff000b0} },
+/**/                  {{0x06403e82, 0x3ff000a0} },
+/**/                  {{0x05102d92, 0x3ff00090} },
+/**/                  {{0x04002001, 0x3ff00080} },
+/**/                  {{0x03101571, 0x3ff00070} },
+/**/                  {{0x02400d80, 0x3ff00060} },
+/**/                  {{0x019007d0, 0x3ff00050} },
+/**/                  {{0x01000400, 0x3ff00040} },
+/**/                  {{0x009001b0, 0x3ff00030} },
+/**/                  {{0x00400080, 0x3ff00020} },
+/**/                  {{0x00100010, 0x3ff00010} },
+/**/                  {{0x00000000, 0x3ff00000} },
+/**/                  {{0x001fffe0, 0x3fefffe0} },
+/**/                  {{0x007fff00, 0x3fefffc0} },
+/**/                  {{0x011ffca0, 0x3fefffa0} },
+/**/                  {{0x01fff800, 0x3fefff80} },
+/**/                  {{0x031ff060, 0x3fefff60} },
+/**/                  {{0x047fe501, 0x3fefff40} },
+/**/                  {{0x061fd521, 0x3fefff20} },
+/**/                  {{0x07ffc002, 0x3fefff00} },
+/**/                  {{0x0a1fa4e3, 0x3feffee0} },
+/**/                  {{0x0c7f8305, 0x3feffec0} },
+/**/                  {{0x0f1f59a7, 0x3feffea0} },
+/**/                  {{0x11ff280a, 0x3feffe80} },
+/**/                  {{0x151eed6e, 0x3feffe60} },
+/**/                  {{0x187ea913, 0x3feffe40} },
+/**/                  {{0x1c1e5a39, 0x3feffe20} },
+/**/                  {{0x1ffe0020, 0x3feffe00} },
+/**/                  {{0x241d9a09, 0x3feffde0} },
+/**/                  {{0x287d2733, 0x3feffdc0} },
+/**/                  {{0x2d1ca6e0, 0x3feffda0} },
+/**/                  {{0x31fc184e, 0x3feffd80} },
+/**/                  {{0x371b7abf, 0x3feffd60} },
+/**/                  {{0x3c7acd72, 0x3feffd40} },
+/**/                  {{0x421a0fa9, 0x3feffd20} },
+/**/                  {{0x47f940a2, 0x3feffd00} },
+/**/                  {{0x4e185f9f, 0x3feffce0} },
+/**/                  {{0x54776bdf, 0x3feffcc0} },
+/**/                  {{0x5b1664a3, 0x3feffca0} },
+/**/                  {{0x61f5492c, 0x3feffc80} },
+/**/                  {{0x691418b9, 0x3feffc60} },
+/**/                  {{0x7072d28b, 0x3feffc40} },
+/**/                  {{0x781175e3, 0x3feffc20} },
+/**/                  {{0x7ff00200, 0x3feffc00} },
+/**/                  {{0x880e7623, 0x3feffbe0} },
+/**/                  {{0x906cd18c, 0x3feffbc0} },
+/**/                  {{0x990b137c, 0x3feffba0} },
+/**/                  {{0xa1e93b34, 0x3feffb80} },
+/**/                  {{0xab0747f3, 0x3feffb60} },
+/**/                  {{0xb46538fa, 0x3feffb40} },
+/**/                  {{0xbe030d89, 0x3feffb20} },
+/**/                  {{0xc7e0c4e1, 0x3feffb00} },
+/**/                  {{0xd1fe5e43, 0x3feffae0} },
+/**/                  {{0xdc5bd8ee, 0x3feffac0} },
+/**/                  {{0xe6f93424, 0x3feffaa0} },
+/**/                  {{0xf1d66f25, 0x3feffa80} },
+/**/                  {{0xfcf38931, 0x3feffa60} },
+/**/                  {{0x08508189, 0x3feffa41} },
+/**/                  {{0x13ed576d, 0x3feffa21} },
+/**/                  {{0x1fca0a1e, 0x3feffa01} },
+/**/                  {{0x2be698dd, 0x3feff9e1} },
+/**/                  {{0x384302e9, 0x3feff9c1} },
+/**/                  {{0x44df4785, 0x3feff9a1} },
+/**/                  {{0x51bb65ef, 0x3feff981} },
+/**/                  {{0x5ed75d6a, 0x3feff961} },
+/**/                  {{0x6c332d34, 0x3feff941} },
+/**/                  {{0x79ced490, 0x3feff921} },
+/**/                  {{0x87aa52be, 0x3feff901} },
+/**/                  {{0x95c5a6fe, 0x3feff8e1} },
+/**/                  {{0xa420d091, 0x3feff8c1} },
+/**/                  {{0xb2bbceb7, 0x3feff8a1} },
+/**/                  {{0xc196a0b2, 0x3feff881} },
+/**/                  {{0xd0b145c2, 0x3feff861} },
+/**/                  {{0xe00bbd28, 0x3feff841} },
+/**/                  {{0xefa60624, 0x3feff821} },
+/**/                  {{0xff801ff8, 0x3feff801} },
+/**/                  {{0x0f9a09e3, 0x3feff7e2} },
+/**/                  {{0x1ff3c328, 0x3feff7c2} },
+/**/                  {{0x308d4b05, 0x3feff7a2} },
+/**/                  {{0x4166a0bd, 0x3feff782} },
+/**/                  {{0x527fc390, 0x3feff762} },
+/**/                  {{0x63d8b2bf, 0x3feff742} },
+/**/                  {{0x75716d8b, 0x3feff722} },
+/**/                  {{0x8749f334, 0x3feff702} },
+/**/                  {{0x996242fb, 0x3feff6e2} },
+/**/                  {{0xabba5c21, 0x3feff6c2} },
+/**/                  {{0xbe523de8, 0x3feff6a2} },
+/**/                  {{0xd129e78f, 0x3feff682} },
+/**/                  {{0xe4415858, 0x3feff662} },
+/**/                  {{0xf7988f84, 0x3feff642} },
+/**/                  {{0x0b2f8c54, 0x3feff623} },
+/**/                  {{0x1f064e08, 0x3feff603} },
+/**/                  {{0x331cd3e1, 0x3feff5e3} },
+/**/                  {{0x47731d21, 0x3feff5c3} },
+/**/                  {{0x5c092908, 0x3feff5a3} },
+/**/                  {{0x70def6d7, 0x3feff583} },
+/**/                  {{0x85f485d0, 0x3feff563} },
+/**/                  {{0x9b49d532, 0x3feff543} },
+/**/                  {{0xb0dee440, 0x3feff523} },
+/**/                  {{0xc6b3b23b, 0x3feff503} },
+/**/                  {{0xdcc83e62, 0x3feff4e3} },
+/**/                  {{0xf31c87f8, 0x3feff4c3} },
+/**/                  {{0x09b08e3d, 0x3feff4a4} },
+/**/                  {{0x20845073, 0x3feff484} },
+/**/                  {{0x3797cdda, 0x3feff464} },
+/**/                  {{0x4eeb05b4, 0x3feff444} },
+/**/                  {{0x667df741, 0x3feff424} },
+/**/                  {{0x7e50a1c3, 0x3feff404} },
+/**/                  {{0x9663047b, 0x3feff3e4} },
+/**/                  {{0xaeb51eaa, 0x3feff3c4} },
+/**/                  {{0xc746ef91, 0x3feff3a4} },
+/**/                  {{0xe0187672, 0x3feff384} },
+/**/                  {{0xf929b28d, 0x3feff364} },
+/**/                  {{0x127aa323, 0x3feff345} },
+/**/                  {{0x2c0b4776, 0x3feff325} },
+/**/                  {{0x45db9ec7, 0x3feff305} },
+/**/                  {{0x5feba858, 0x3feff2e5} },
+/**/                  {{0x7a3b6369, 0x3feff2c5} },
+/**/                  {{0x94cacf3b, 0x3feff2a5} },
+/**/                  {{0xaf99eb11, 0x3feff285} },
+/**/                  {{0xcaa8b62a, 0x3feff265} },
+/**/                  {{0xe5f72fc9, 0x3feff245} },
+/**/                  {{0x0185572f, 0x3feff226} },
+/**/                  {{0x1d532b9d, 0x3feff206} },
+/**/                  {{0x3960ac54, 0x3feff1e6} },
+/**/                  {{0x55add896, 0x3feff1c6} },
+/**/                  {{0x723aafa3, 0x3feff1a6} },
+/**/                  {{0x8f0730be, 0x3feff186} },
+/**/                  {{0xac135b27, 0x3feff166} },
+/**/                  {{0xc95f2e21, 0x3feff146} },
+/**/                  {{0xe6eaa8eb, 0x3feff126} },
+/**/                  {{0x04b5cac9, 0x3feff107} },
+/**/                  {{0x22c092fb, 0x3feff0e7} },
+/**/                  {{0x410b00c2, 0x3feff0c7} },
+/**/                  {{0x5f951360, 0x3feff0a7} },
+/**/                  {{0x7e5eca16, 0x3feff087} },
+/**/                  {{0x9d682426, 0x3feff067} },
+/**/                  {{0xbcb120d2, 0x3feff047} },
+/**/                  {{0xdc39bf5a, 0x3feff027} },
+/**/                  {{0xfc01ff00, 0x3feff007} },
+/**/                  {{0x1c09df07, 0x3fefefe8} },
+/**/                  {{0x3c515eae, 0x3fefefc8} },
+/**/                  {{0x5cd87d38, 0x3fefefa8} },
+/**/                  {{0x7d9f39e6, 0x3fefef88} },
+/**/                  {{0x9ea593fa, 0x3fefef68} },
+/**/                  {{0xbfeb8ab5, 0x3fefef48} },
+/**/                  {{0xe1711d5a, 0x3fefef28} },
+/**/                  {{0x03364b28, 0x3fefef09} },
+/**/                  {{0x253b1363, 0x3fefeee9} },
+/**/                  {{0x477f754b, 0x3fefeec9} },
+/**/                  {{0x6a037022, 0x3fefeea9} },
+/**/                  {{0x8cc7032a, 0x3fefee89} },
+/**/                  {{0xafca2da5, 0x3fefee69} },
+/**/                  {{0xd30ceed4, 0x3fefee49} },
+/**/                  {{0xf68f45f8, 0x3fefee29} },
+/**/                  {{0x1a513254, 0x3fefee0a} },
+/**/                  {{0x3e52b329, 0x3fefedea} },
+/**/                  {{0x6293c7b8, 0x3fefedca} },
+/**/                  {{0x87146f44, 0x3fefedaa} },
+/**/                  {{0xabd4a90e, 0x3fefed8a} },
+/**/                  {{0xd0d47458, 0x3fefed6a} },
+/**/                  {{0xf613d064, 0x3fefed4a} },
+/**/                  {{0x1b92bc73, 0x3fefed2b} },
+/**/                  {{0x415137c7, 0x3fefed0b} },
+/**/                  {{0x674f41a2, 0x3fefeceb} },
+/**/                  {{0x8d8cd945, 0x3fefeccb} },
+/**/                  {{0xb409fdf3, 0x3fefecab} },
+/**/                  {{0xdac6aeed, 0x3fefec8b} },
+/**/                  {{0x01c2eb76, 0x3fefec6c} },
+/**/                  {{0x28feb2ce, 0x3fefec4c} },
+/**/                  {{0x507a0437, 0x3fefec2c} },
+/**/                  {{0x7834def5, 0x3fefec0c} },
+/**/                  {{0xa02f4247, 0x3fefebec} },
+/**/                  {{0xc8692d71, 0x3fefebcc} },
+/**/                  {{0xf0e29fb4, 0x3fefebac} },
+/**/                  {{0x199b9852, 0x3fefeb8d} },
+/**/                  {{0x4294168d, 0x3fefeb6d} },
+/**/                  {{0x6bcc19a7, 0x3fefeb4d} },
+/**/                  {{0x9543a0e2, 0x3fefeb2d} },
+/**/                  {{0xbefaab7f, 0x3fefeb0d} },
+/**/                  {{0xe8f138c2, 0x3fefeaed} },
+/**/                  {{0x132747ea, 0x3fefeace} },
+/**/                  {{0x3d9cd83c, 0x3fefeaae} },
+/**/                  {{0x6851e8f7, 0x3fefea8e} },
+/**/                  {{0x93467960, 0x3fefea6e} },
+/**/                  {{0xbe7a88b7, 0x3fefea4e} },
+/**/                  {{0xe9ee163f, 0x3fefea2e} },
+/**/                  {{0x15a12139, 0x3fefea0f} },
+/**/                  {{0x4193a8e8, 0x3fefe9ef} },
+/**/                  {{0x6dc5ac8e, 0x3fefe9cf} },
+/**/                  {{0x9a372b6d, 0x3fefe9af} },
+/**/                  {{0xc6e824c6, 0x3fefe98f} },
+/**/                  {{0xf3d897dd, 0x3fefe96f} },
+  };
+
+  static const number
+       Lu[182][2] = {                               /* log(ui) */
+/**/                 {{{0x0b3aac49, 0xbfd63003} },
+/**/                  {{0xe51fff99, 0xbc6dc18c} },},
+/**/                 {{{0xdf595f30, 0xbfd5d5bd} },
+/**/                  {{0x48cbb8a2, 0x3c765411} },},
+/**/                 {{{0x53c8d1fb, 0xbfd57bf7} },
+/**/                  {{0x15f88b63, 0x3c60908d} },},
+/**/                 {{{0x0738a3d8, 0xbfd522ae} },
+/**/                  {{0xb38a6979, 0x3c68f7e9} },},
+/**/                 {{{0x9e172c3c, 0xbfd4c9e0} },
+/**/                  {{0x5b147a5d, 0x3c512361} },},
+/**/                 {{{0xc271c41b, 0xbfd4718d} },
+/**/                  {{0x14c56eef, 0xbc38fb4c} },},
+/**/                 {{{0x23d5e8c7, 0xbfd419b4} },
+/**/                  {{0x43827392, 0xbc60dbb2} },},
+/**/                 {{{0x77333184, 0xbfd3c252} },
+/**/                  {{0xe50a8ec6, 0x3c72ad27} },},
+/**/                 {{{0x76be1117, 0xbfd36b67} },
+/**/                  {{0xe883858e, 0x3c5324f0} },},
+/**/                 {{{0xe1d35ce4, 0xbfd314f1} },
+/**/                  {{0x09e5c3dc, 0x3c73d699} },},
+/**/                 {{{0x7cdc9354, 0xbfd2bef0} },
+/**/                  {{0x7fd86088, 0x3c782dad} },},
+/**/                 {{{0x1134db92, 0xbfd26962} },
+/**/                  {{0xdd9db02b, 0xbc7e0efa} },},
+/**/                 {{{0x6d0eb8d4, 0xbfd21445} },
+/**/                  {{0x1aeba60a, 0xbc6f7ae9} },},
+/**/                 {{{0x635a6b95, 0xbfd1bf99} },
+/**/                  {{0x84249223, 0x3c612aeb} },},
+/**/                 {{{0xcbacfb73, 0xbfd16b5c} },
+/**/                  {{0x28b40935, 0xbc766fbd} },},
+/**/                 {{{0x8227e47c, 0xbfd1178e} },
+/**/                  {{0x5f01c691, 0x3c60e63a} },},
+/**/                 {{{0x676162e3, 0xbfd0c42d} },
+/**/                  {{0x9d5d11ee, 0xbc5162c7} },},
+/**/                 {{{0x604d5862, 0xbfd07138} },
+/**/                  {{0xed4e9138, 0xbc7cdb16} },},
+/**/                 {{{0x5626c691, 0xbfd01eae} },
+/**/                  {{0xbd2932e2, 0x3c418290} },},
+/**/                 {{{0x6cb3b379, 0xbfcf991c} },
+/**/                  {{0x66f980a2, 0xbc6f6650} },},
+/**/                 {{{0xe4dcffe6, 0xbfcef5ad} },
+/**/                  {{0xddc708a0, 0x3c508ab2} },},
+/**/                 {{{0xffe71012, 0xbfce530e} },
+/**/                  {{0x41f43042, 0xbc422760} },},
+/**/                 {{{0xb0d48940, 0xbfcdb13d} },
+/**/                  {{0x49f96cb9, 0xbc5aa11d} },},
+/**/                 {{{0xf2655e7b, 0xbfcd1037} },
+/**/                  {{0x242471a2, 0xbc660629} },},
+/**/                 {{{0xc6f00f71, 0xbfcc6ffb} },
+/**/                  {{0x2c57a4a5, 0x3c68e58b} },},
+/**/                 {{{0x383bd8ad, 0xbfcbd087} },
+/**/                  {{0xf6a516d7, 0xbc3dd355} },},
+/**/                 {{{0x575bce3d, 0xbfcb31d8} },
+/**/                  {{0xb386a94d, 0x3c66353a} },},
+/**/                 {{{0x3c8ad9e3, 0xbfca93ed} },
+/**/                  {{0x9de97203, 0xbc6bcafa} },},
+/**/                 {{{0x07089664, 0xbfc9f6c4} },
+/**/                  {{0x605e67ef, 0xbc435a19} },},
+/**/                 {{{0xdcf7017f, 0xbfc95a5a} },
+/**/                  {{0x07fb7a3d, 0xbc5142c5} },},
+/**/                 {{{0xeb38fe8c, 0xbfc8beaf} },
+/**/                  {{0xb6997a40, 0xbc555aa8} },},
+/**/                 {{{0x6551a3c2, 0xbfc823c1} },
+/**/                  {{0xe70be781, 0x3c61232c} },},
+/**/                 {{{0x85444c73, 0xbfc7898d} },
+/**/                  {{0xebcfb201, 0xbc5ef8f6} },},
+/**/                 {{{0x8b756abc, 0xbfc6f012} },
+/**/                  {{0xc21e166c, 0x3c68de59} },},
+/**/                 {{{0xbe8c133a, 0xbfc6574e} },
+/**/                  {{0xf4621bed, 0x3c3d34f0} },},
+/**/                 {{{0x6b543db2, 0xbfc5bf40} },
+/**/                  {{0x4c0df7e7, 0x3c21f5b4} },},
+/**/                 {{{0xe4a1b58d, 0xbfc527e5} },
+/**/                  {{0x82395bfd, 0x3c271a96} },},
+/**/                 {{{0x8333b561, 0xbfc4913d} },
+/**/                  {{0x4930f135, 0x3c50d560} },},
+/**/                 {{{0xa59928cc, 0xbfc3fb45} },
+/**/                  {{0xa354d056, 0x3c6d87e6} },},
+/**/                 {{{0xb0159016, 0xbfc365fc} },
+/**/                  {{0xa5b944ad, 0xbc57d411} },},
+/**/                 {{{0x0c86813a, 0xbfc2d161} },
+/**/                  {{0xf25af95f, 0x3c5499a3} },},
+/**/                 {{{0x2a49c202, 0xbfc23d71} },
+/**/                  {{0x61051d69, 0x3c66e381} },},
+/**/                 {{{0x7e23f72a, 0xbfc1aa2b} },
+/**/                  {{0xd9b2ef7e, 0x3c4c6ef1} },},
+/**/                 {{{0x8227e47c, 0xbfc1178e} },
+/**/                  {{0x5f01c691, 0x3c50e63a} },},
+/**/                 {{{0xb59e3a07, 0xbfc08598} },
+/**/                  {{0x9902bf32, 0x3c6dd700} },},
+/**/                 {{{0x39dbd566, 0xbfbfe891} },
+/**/                  {{0x215f9393, 0x3c5ac9f4} },},
+/**/                 {{{0x830a1120, 0xbfbec739} },
+/**/                  {{0x91780d3f, 0x3c4a2bf9} },},
+/**/                 {{{0x638446a2, 0xbfbda727} },
+/**/                  {{0x71733019, 0xbc5401fa} },},
+/**/                 {{{0x01bc4b23, 0xbfbc8858} },
+/**/                  {{0x559a6706, 0xbc5a38cb} },},
+/**/                 {{{0x8dad5b1c, 0xbfbb6ac8} },
+/**/                  {{0xed1ca59f, 0x3c40057e} },},
+/**/                 {{{0x40b1bc38, 0xbfba4e76} },
+/**/                  {{0x203e4259, 0x3c55b5ca} },},
+/**/                 {{{0x5d594989, 0xbfb9335e} },
+/**/                  {{0x5704ccb7, 0x3c5478a8} },},
+/**/                 {{{0x2f40e3f0, 0xbfb8197e} },
+/**/                  {{0xffbeed43, 0xbc3b9f2d} },},
+/**/                 {{{0x0aeac0e1, 0xbfb700d3} },
+/**/                  {{0x212cdd05, 0x3c272566} },},
+/**/                 {{{0x4d9791cb, 0xbfb5e95a} },
+/**/                  {{0x5c5c450a, 0xbc5f3874} },},
+/**/                 {{{0x5d207eac, 0xbfb4d311} },
+/**/                  {{0x2c7842cc, 0xbc5769f4} },},
+/**/                 {{{0xa7d1ee64, 0xbfb3bdf5} },
+/**/                  {{0xd3b5b45f, 0xbc47a976} },},
+/**/                 {{{0xa44717a5, 0xbfb2aa04} },
+/**/                  {{0x8d2fa3f7, 0x3c5d15d3} },},
+/**/                 {{{0xd1465567, 0xbfb1973b} },
+/**/                  {{0x67a6acf6, 0x3c475583} },},
+/**/                 {{{0xb59e3a07, 0xbfb08598} },
+/**/                  {{0x9902bf32, 0x3c5dd700} },},
+/**/                 {{{0xc006b87c, 0xbfaeea31} },
+/**/                  {{0x93b7b66c, 0x3c43e4fc} },},
+/**/                 {{{0xcdddb2cc, 0xbfaccb73} },
+/**/                  {{0x0500efd4, 0x3c4e48fb} },},
+/**/                 {{{0xd0fb10fc, 0xbfaaaef2} },
+/**/                  {{0xb42e0add, 0xbc2a353b} },},
+/**/                 {{{0x149fb343, 0xbfa894aa} },
+/**/                  {{0x7660a23d, 0xbc3a8be9} },},
+/**/                 {{{0xf2d4bb58, 0xbfa67c94} },
+/**/                  {{0x6505e603, 0xbc40413e} },},
+/**/                 {{{0xd42de3ea, 0xbfa466ae} },
+/**/                  {{0x7f4a137e, 0x3c4cdd6f} },},
+/**/                 {{{0x2f8d183f, 0xbfa252f3} },
+/**/                  {{0x92615916, 0x3c4947f7} },},
+/**/                 {{{0x89e74444, 0xbfa0415d} },
+/**/                  {{0x1d753622, 0xbc4c05cf} },},
+/**/                 {{{0xec14aaf2, 0xbf9c63d2} },
+/**/                  {{0xa686bd86, 0x3c3ce030} },},
+/**/                 {{{0x28c8cabf, 0xbf984925} },
+/**/                  {{0x0619fa67, 0x3c3d192d} },},
+/**/                 {{{0x25980cc1, 0xbf9432a9} },
+/**/                  {{0x39004192, 0x3c38cdaf} },},
+/**/                 {{{0x58935847, 0xbf902056} },
+/**/                  {{0x8416e71f, 0xbc327c8e} },},
+/**/                 {{{0xa388a2aa, 0xbf882448} },
+/**/                  {{0x137f09a0, 0xbc104b16} },},
+/**/                 {{{0x7588de71, 0xbf801015} },
+/**/                  {{0xd417ced0, 0xbc146662} },},
+/**/                 {{{0x59588b35, 0xbf700805} },
+/**/                  {{0x8cf63677, 0xbc1f9663} },},
+/**/                 {{{0x00000000, 0x00000000} },
+/**/                  {{0x00000000, 0x00000000} },},
+/**/                 {{{0xa2b10bc0, 0x3f6ff00a} },
+/**/                  {{0xd5a6d353, 0x3c02821a} },},
+/**/                 {{{0x6b106789, 0x3f7fe02a} },
+/**/                  {{0xe3711ebf, 0xbbce44b7} },},
+/**/                 {{{0x5f810a77, 0x3f87dc47} },
+/**/                  {{0x87d3df21, 0xbc116d76} },},
+/**/                 {{{0xb0fc03e4, 0x3f8fc0a8} },
+/**/                  {{0xc59642a1, 0xbc183092} },},
+/**/                 {{{0x4346a575, 0x3f93cea4} },
+/**/                  {{0x902b3a1c, 0xbc10cb5a} },},
+/**/                 {{{0x07d5b11b, 0x3f97b91b} },
+/**/                  {{0xace3a510, 0xbc35b602} },},
+/**/                 {{{0x27af9198, 0x3f9b9fc0} },
+/**/                  {{0x229dc868, 0xbbf0ae69} },},
+/**/                 {{{0x0e783300, 0x3f9f829b} },
+/**/                  {{0x04f1ef23, 0x3c333e3f} },},
+/**/                 {{{0x8923d980, 0x3fa1b0d9} },
+/**/                  {{0x89bac481, 0xbc3e9ae8} },},
+/**/                 {{{0xb9febd60, 0x3fa39e87} },
+/**/                  {{0x37f551bb, 0xbc45bfa9} },},
+/**/                 {{{0xafc8e4d5, 0x3fa58a5b} },
+/**/                  {{0x2b4e2b72, 0xbc4ce55c} },},
+/**/                 {{{0xf632dcfc, 0x3fa77458} },
+/**/                  {{0xa87b9296, 0x3c418d3c} },},
+/**/                 {{{0x0ec8e3eb, 0x3fa95c83} },
+/**/                  {{0x80520bf2, 0x3c4f5a0e} },},
+/**/                 {{{0x711971bf, 0x3fab42dd} },
+/**/                  {{0x9c130499, 0xbc3eb975} },},
+/**/                 {{{0x8adb0b52, 0x3fad276b} },
+/**/                  {{0x3257fd47, 0x3c21e3c5} },},
+/**/                 {{{0xc01162a6, 0x3faf0a30} },
+/**/                  {{0x5c5bbacd, 0x3c485f32} },},
+/**/                 {{{0x3598e471, 0x3fb07598} },
+/**/                  {{0x333c45b8, 0x3c480da5} },},
+/**/                 {{{0xeea37ae1, 0x3fb16536} },
+/**/                  {{0xe8c22cda, 0xbc379da3} },},
+/**/                 {{{0x2f0a1417, 0x3fb253f6} },
+/**/                  {{0x63fc4cfd, 0xbc1c1259} },},
+/**/                 {{{0x961bd1d1, 0x3fb341d7} },
+/**/                  {{0x227becbb, 0xbc5b599f} },},
+/**/                 {{{0xbea646f0, 0x3fb42edc} },
+/**/                  {{0x935996c9, 0x3c4ddd4f} },},
+/**/                 {{{0x3f06183f, 0x3fb51b07} },
+/**/                  {{0x9a1a8be4, 0x3c5a49e3} },},
+/**/                 {{{0xa93750c4, 0x3fb60658} },
+/**/                  {{0x8ec21b6a, 0xbc538845} },},
+/**/                 {{{0x8ae56b4c, 0x3fb6f0d2} },
+/**/                  {{0x9184b992, 0xbc5906d9} },},
+/**/                 {{{0x6d7b12cd, 0x3fb7da76} },
+/**/                  {{0xcdd94131, 0xbc5eeedf} },},
+/**/                 {{{0xd6319b21, 0x3fb8c345} },
+/**/                  {{0xab3424a9, 0xbc24a697} },},
+/**/                 {{{0x462033ad, 0x3fb9ab42} },
+/**/                  {{0x1c184e8e, 0xbc42099e} },},
+/**/                 {{{0x3a4ad563, 0x3fba926d} },
+/**/                  {{0x8aa70ea9, 0x3c5942f4} },},
+/**/                 {{{0x2bb0eda1, 0x3fbb78c8} },
+/**/                  {{0xf0327e21, 0x3c20878c} },},
+/**/                 {{{0x8f5bc743, 0x3fbc5e54} },
+/**/                  {{0xef8161b1, 0x3c35d617} },},
+/**/                 {{{0xd66cb35d, 0x3fbd4313} },
+/**/                  {{0x951d90fa, 0x3c5790dd} },},
+/**/                 {{{0x6e2af2e6, 0x3fbe2707} },
+/**/                  {{0x001e0162, 0xbc361578} },},
+/**/                 {{{0xc01162a6, 0x3fbf0a30} },
+/**/                  {{0x5c5bbacd, 0x3c585f32} },},
+/**/                 {{{0x31dbeabb, 0x3fbfec91} },
+/**/                  {{0x9981b36c, 0xbc55746b} },},
+/**/                 {{{0x12ca596e, 0x3fc06715} },
+/**/                  {{0x7eb86499, 0x3c550c64} },},
+/**/                 {{{0x7cd08e59, 0x3fc0d77e} },
+/**/                  {{0x5e9030ac, 0x3c69a5dc} },},
+/**/                 {{{0x846742ac, 0x3fc14785} },
+/**/                  {{0x3e3a7f07, 0x3c6a2881} },},
+/**/                 {{{0xd52f67a0, 0x3fc1b72a} },
+/**/                  {{0x3472cd74, 0x3c548302} },},
+/**/                 {{{0x190a5acb, 0x3fc2266f} },
+/**/                  {{0xf1809e88, 0x3c6f547b} },},
+/**/                 {{{0xf81ff523, 0x3fc29552} },
+/**/                  {{0x1c407dbf, 0x3c630177} },},
+/**/                 {{{0x18e47fd3, 0x3fc303d7} },
+/**/                  {{0xd96091fa, 0xbc06b9c7} },},
+/**/                 {{{0x201e8f74, 0x3fc371fc} },
+/**/                  {{0x62af18a0, 0x3c5de6cb} },},
+/**/                 {{{0xb0ecc62a, 0x3fc3dfc2} },
+/**/                  {{0xe7d81017, 0xbc5ab3a8} },},
+/**/                 {{{0x6ccb7d1e, 0x3fc44d2b} },
+/**/                  {{0x543e1f88, 0x3c69f4f6} },},
+/**/                 {{{0xf39a55e5, 0x3fc4ba36} },
+/**/                  {{0xbcc36756, 0x3c668981} },},
+/**/                 {{{0xe3a1b438, 0x3fc526e5} },
+/**/                  {{0x8a470d3a, 0xbc6746ff} },},
+/**/                 {{{0xd9982086, 0x3fc59338} },
+/**/                  {{0xaa8ad7cf, 0xbc565d22} },},
+/**/                 {{{0x70a793d4, 0x3fc5ff30} },
+/**/                  {{0xfafc6f6e, 0xbc5bc60e} },},
+/**/                 {{{0x4272ad51, 0x3fc66acd} },
+/**/                  {{0x4e1ea8b2, 0xbc50900e} },},
+/**/                 {{{0xe719d21d, 0x3fc6d60f} },
+/**/                  {{0x68ecd179, 0xbc6caae2} },},
+/**/                 {{{0xf54037a5, 0x3fc740f8} },
+/**/                  {{0x62a84cdb, 0xbc5b2640} },},
+/**/                 {{{0x0210d909, 0x3fc7ab89} },
+/**/                  {{0x2d6a0608, 0x3c4be36b} },},
+/**/                 {{{0xa14357eb, 0x3fc815c0} },
+/**/                  {{0x073a0564, 0xbc54be48} },},
+/**/                 {{{0x6520c911, 0x3fc87fa0} },
+/**/                  {{0xbfa08d9a, 0xbc6bf7fd} },},
+/**/                 {{{0xde886d41, 0x3fc8e928} },
+/**/                  {{0x51a56770, 0xbc6569d8} },},
+/**/                 {{{0x9cf456b4, 0x3fc9525a} },
+/**/                  {{0x1d4e2e26, 0x3c6d904c} },},
+/**/                 {{{0x2e7dfb83, 0x3fc9bb36} },
+/**/                  {{0x1f003e0c, 0x3c6575e3} },},
+/**/                 {{{0x1fe2b563, 0x3fca23bc} },
+/**/                  {{0xb07a998c, 0x3c493711} },},
+/**/                 {{{0xfc882f19, 0x3fca8bec} },
+/**/                  {{0x918c39eb, 0xbc5e8c37} },},
+/**/                 {{{0x4e80bff3, 0x3fcaf3c9} },
+/**/                  {{0xf3641985, 0xbc5398cf} },},
+/**/                 {{{0x9e8fb5a4, 0x3fcb5b51} },
+/**/                  {{0xdc19e1a0, 0x3c6ba27f} },},
+/**/                 {{{0x742d8cd6, 0x3fcbc286} },
+/**/                  {{0x44870f55, 0x3c54fce7} },},
+/**/                 {{{0x558c18c1, 0x3fcc2968} },
+/**/                  {{0x38a3fb6b, 0xbc673dee} },},
+/**/                 {{{0xc79a9a22, 0x3fcc8ff7} },
+/**/                  {{0xf8434012, 0xbc64f689} },},
+/**/                 {{{0x4e09c5dc, 0x3fccf635} },
+/**/                  {{0x7d55b695, 0x3c6239a0} },},
+/**/                 {{{0x6b4fbb91, 0x3fcd5c21} },
+/**/                  {{0x597e4d40, 0x3c66e443} },},
+/**/                 {{{0xa0abec7d, 0x3fcdc1bc} },
+/**/                  {{0x1998b6fc, 0x3c6834c5} },},
+/**/                 {{{0x6e2af2e6, 0x3fce2707} },
+/**/                  {{0x001e0162, 0xbc461578} },},
+/**/                 {{{0x52aa5a60, 0x3fce8c02} },
+/**/                  {{0x39bfc89b, 0xbc46e03a} },},
+/**/                 {{{0xcbdc5936, 0x3fcef0ad} },
+/**/                  {{0x950dc20d, 0x3c648637} },},
+/**/                 {{{0x564b7b37, 0x3fcf550a} },
+/**/                  {{0xfd018c37, 0x3c2c5f6d} },},
+/**/                 {{{0x6d5e3e2b, 0x3fcfb918} },
+/**/                  {{0x64f21acb, 0xbc6caaae} },},
+/**/                 {{{0x45ad501d, 0x3fd00e6c} },
+/**/                  {{0x8ff6fead, 0xbc6cb956} },},
+/**/                 {{{0x94b4d041, 0x3fd04025} },
+/**/                  {{0x17a5022d, 0xbc628ec2} },},
+/**/                 {{{0x5fcd590d, 0x3fd071b8} },
+/**/                  {{0xf97bde80, 0x3c5d1707} },},
+/**/                 {{{0xe27390e3, 0x3fd0a324} },
+/**/                  {{0xe8061c03, 0x3c77dcfd} },},
+/**/                 {{{0x579ab74b, 0x3fd0d46b} },
+/**/                  {{0x1c3cbd92, 0x3c603ec8} },},
+/**/                 {{{0xf9ae4ad5, 0x3fd1058b} },
+/**/                  {{0xab4cb31d, 0x3c589fa0} },},
+/**/                 {{{0x0293a8b0, 0x3fd13687} },
+/**/                  {{0x98edd24a, 0x3c77b662} },},
+/**/                 {{{0xababa60e, 0x3fd1675c} },
+/**/                  {{0xab883717, 0x3c2ce63e} },},
+/**/                 {{{0x2dd4236f, 0x3fd1980d} },
+/**/                  {{0xb0e4d147, 0x3c79d3d1} },},
+/**/                 {{{0xc16999fb, 0x3fd1c898} },
+/**/                  {{0x2aff1c44, 0xbc30e5c6} },},
+/**/                 {{{0x9e48a2f3, 0x3fd1f8ff} },
+/**/                  {{0x9a0c4b07, 0xbc7c9fdf} },},
+/**/                 {{{0xfbcf7966, 0x3fd22941} },
+/**/                  {{0xb09628af, 0xbc776f5e} },},
+/**/                 {{{0x10df763a, 0x3fd25960} },
+/**/                  {{0x57075e9e, 0xbc50f76c} },},
+/**/                 {{{0x13de86a3, 0x3fd2895a} },
+/**/                  {{0xc13f040e, 0x3c77ad24} },},
+/**/                 {{{0x3ab89d25, 0x3fd2b930} },
+/**/                  {{0xfd852ad4, 0xbc7896b5} },},
+/**/                 {{{0xbae11d31, 0x3fd2e8e2} },
+/**/                  {{0xb95ebdf9, 0xbc78f4cd} },},
+/**/                 {{{0xc9544185, 0x3fd31871} },
+/**/                  {{0x4c09b379, 0xbc351acc} },},
+/**/                 {{{0x9a987d55, 0x3fd347dd} },
+/**/                  {{0x580919f8, 0xbc64dd4c} },},
+/**/                 {{{0x62bfd85b, 0x3fd37726} },
+/**/                  {{0xd8117de7, 0xbc4b5629} },},
+/**/                 {{{0x556945ea, 0x3fd3a64c} },
+/**/                  {{0x1945f97c, 0xbc6c6865} },},
+/**/                 {{{0xa5c1f710, 0x3fd3d54f} },
+/**/                  {{0xc6a1c98d, 0xbc7e3265} },},
+/**/                 {{{0x8686a7e4, 0x3fd40430} },
+/**/                  {{0x6082ce6d, 0xbc70bcfb} },},
+/**/                 {{{0x2a04e814, 0x3fd432ef} },
+/**/                  {{0x715ac903, 0xbc729931} },},
+/**/                 {{{0xc21c5ec2, 0x3fd4618b} },
+/**/                  {{0xcdeccf1d, 0x3c7f42de} },},
+/**/                 {{{0x804009d1, 0x3fd49006} },
+/**/                  {{0x41f177dc, 0xbc69ffc3} },},
+/**/                 {{{0x957778a1, 0x3fd4be5f} },
+/**/                  {{0x5b04813d, 0xbc6259b3} },},
+/**/                 {{{0x3260026a, 0x3fd4ec97} },
+/**/                  {{0xd977dc5e, 0xbc742a87} },},
+/**/                 {{{0x872df82d, 0x3fd51aad} },
+/**/                  {{0xc19f55e3, 0x3c43927a} },},
+/**/                 {{{0xc3add263, 0x3fd548a2} },
+/**/                  {{0x7e308ddb, 0xbc6819cf} },},
+/**/                 {{{0x17455a6c, 0x3fd57677} },
+/**/                  {{0xb283660c, 0x3c7526ad} },},
+/**/                 {{{0xb0f4cfe2, 0x3fd5a42a} },
+/**/                  {{0x7dee9a3d, 0xbc78ebcb} },},
+/**/                 {{{0xbf5809ca, 0x3fd5d1bd} },
+/**/                  {{0x83dc7fe1, 0x3c742363} },},
+/**/                 {{{0x70a793d4, 0x3fd5ff30} },
+/**/                  {{0xfafc6f6e, 0xbc6bc60e} },},
+/**/                 {{{0xf2b9c795, 0x3fd62c82} },
+/**/                  {{0x915300e5, 0x3c67b7af} },},
+  };
+
+  static const number
+       Lv[362][2] = {                               /* log(vj) */
+
+/**/                 {{{0xb72daabf, 0xbf6687ec} },
+/**/                  {{0x0f13318f, 0x3c052c69} },},
+/**/                 {{{0x3767104f, 0xbf6667d6} },
+/**/                  {{0xd27a7bac, 0x3bd3efa3} },},
+/**/                 {{{0xd7cd64fb, 0xbf6647bf} },
+/**/                  {{0x55a89c36, 0x3c09b725} },},
+/**/                 {{{0x9860683b, 0xbf6627a9} },
+/**/                  {{0xfebc844a, 0x3bcbae22} },},
+/**/                 {{{0x791fd98a, 0xbf660793} },
+/**/                  {{0x78fa1cb5, 0xbbfe34af} },},
+/**/                 {{{0x7a0b7863, 0xbf65e77d} },
+/**/                  {{0xea78fdd0, 0xbc02f1b1} },},
+/**/                 {{{0x9b230442, 0xbf65c767} },
+/**/                  {{0x2202b2ca, 0x3bf70d8c} },},
+/**/                 {{{0xdc663ca2, 0xbf65a751} },
+/**/                  {{0xc3444e64, 0xbbfdc63d} },},
+/**/                 {{{0x3dd4e102, 0xbf65873c} },
+/**/                  {{0x370d69c3, 0x3c021b11} },},
+/**/                 {{{0xbf6eb0de, 0xbf656726} },
+/**/                  {{0x154dd8d8, 0xbbfb6da8} },},
+/**/                 {{{0x61336bb6, 0xbf654711} },
+/**/                  {{0xdf9a4709, 0xbc0b12d2} },},
+/**/                 {{{0x2322d10a, 0xbf6526fc} },
+/**/                  {{0x68d1274f, 0x3bf997f2} },},
+/**/                 {{{0x053ca059, 0xbf6506e7} },
+/**/                  {{0xe70c852a, 0x3c0c2a1f} },},
+/**/                 {{{0x07809924, 0xbf64e6d2} },
+/**/                  {{0xa808538f, 0x3c04cc9e} },},
+/**/                 {{{0x29ee7aed, 0xbf64c6bd} },
+/**/                  {{0x7797a4bd, 0x3befe68c} },},
+/**/                 {{{0x6c860537, 0xbf64a6a8} },
+/**/                  {{0x9efaae3d, 0x3c06794d} },},
+/**/                 {{{0xcf46f784, 0xbf648693} },
+/**/                  {{0xb2ddd9d1, 0xbbfed318} },},
+/**/                 {{{0x5231115a, 0xbf64667f} },
+/**/                  {{0x4643624b, 0x3c061f62} },},
+/**/                 {{{0xf544123c, 0xbf64466a} },
+/**/                  {{0x9387f11e, 0x3c0666a0} },},
+/**/                 {{{0xb87fb9b0, 0xbf642656} },
+/**/                  {{0x116ec598, 0x3c0043b2} },},
+/**/                 {{{0x9be3c73c, 0xbf640642} },
+/**/                  {{0xd2de6e3e, 0xbbfbd84d} },},
+/**/                 {{{0x9f6ffa68, 0xbf63e62e} },
+/**/                  {{0x433d8c65, 0xbbe9149b} },},
+/**/                 {{{0xc32412bb, 0xbf63c61a} },
+/**/                  {{0x08e5a7bb, 0xbbf6b88d} },},
+/**/                 {{{0x06ffcfbe, 0xbf63a607} },
+/**/                  {{0xccfac9e2, 0xbb9f3c7a} },},
+/**/                 {{{0x6b02f0fa, 0xbf6385f3} },
+/**/                  {{0xbec6f6e4, 0x3bee405c} },},
+/**/                 {{{0xef2d35f9, 0xbf6365df} },
+/**/                  {{0xaf0c0b4c, 0x3bf02993} },},
+/**/                 {{{0x937e5e46, 0xbf6345cc} },
+/**/                  {{0xaa64716f, 0x3bf9be97} },},
+/**/                 {{{0x57f6296c, 0xbf6325b9} },
+/**/                  {{0xa2e863ae, 0xbbfdeb4d} },},
+/**/                 {{{0x3c9456f9, 0xbf6305a6} },
+/**/                  {{0x636d2b2c, 0x3c0f3c7f} },},
+/**/                 {{{0x4158a678, 0xbf62e593} },
+/**/                  {{0xb166ca7f, 0x3c01a8df} },},
+/**/                 {{{0x6642d778, 0xbf62c580} },
+/**/                  {{0x53a2d534, 0x3c020ff1} },},
+/**/                 {{{0xab52a987, 0xbf62a56d} },
+/**/                  {{0x0412f1e7, 0xbbe8fef1} },},
+/**/                 {{{0x1087dc35, 0xbf62855b} },
+/**/                  {{0x4b7ac6c6, 0xbbfcd17e} },},
+/**/                 {{{0x95e22f12, 0xbf626548} },
+/**/                  {{0x9a8127bf, 0xbbfbfc21} },},
+/**/                 {{{0x3b6161af, 0xbf624536} },
+/**/                  {{0x66d42390, 0x3bd7eda1} },},
+/**/                 {{{0x0105339d, 0xbf622524} },
+/**/                  {{0x77fedcad, 0xbbdf374e} },},
+/**/                 {{{0xe6cd646f, 0xbf620511} },
+/**/                  {{0x52d05dea, 0x3be1d1fb} },},
+/**/                 {{{0xecb9b3b8, 0xbf61e4ff} },
+/**/                  {{0xffd8e706, 0x3c02c2fc} },},
+/**/                 {{{0x12c9e10b, 0xbf61c4ee} },
+/**/                  {{0xf1d5cc2c, 0xbc02b4f8} },},
+/**/                 {{{0x58fdabfe, 0xbf61a4dc} },
+/**/                  {{0x1315b191, 0xbc0618c3} },},
+/**/                 {{{0xbf54d426, 0xbf6184ca} },
+/**/                  {{0xcb3cdab0, 0xbc01f8d5} },},
+/**/                 {{{0x45cf1919, 0xbf6164b9} },
+/**/                  {{0xc025605a, 0xbc014ff7} },},
+/**/                 {{{0xec6c3a6e, 0xbf6144a7} },
+/**/                  {{0x87cb08cd, 0xbbff04ff} },},
+/**/                 {{{0xb32bf7bd, 0xbf612496} },
+/**/                  {{0xe6af1b84, 0x3bee89b4} },},
+/**/                 {{{0x9a0e109e, 0xbf610485} },
+/**/                  {{0x35a60879, 0x3c07e99e} },},
+/**/                 {{{0xa11244aa, 0xbf60e474} },
+/**/                  {{0x20f2325a, 0x3c04b698} },},
+/**/                 {{{0xc838537b, 0xbf60c463} },
+/**/                  {{0x3617200d, 0x3bc0657e} },},
+/**/                 {{{0x0f7ffcac, 0xbf60a453} },
+/**/                  {{0xa5080961, 0xbc008feb} },},
+/**/                 {{{0x76e8ffd9, 0xbf608442} },
+/**/                  {{0xbb5e1df7, 0x3bd13002} },},
+/**/                 {{{0xfe731c9d, 0xbf606431} },
+/**/                  {{0x6e2858c0, 0xbc0509f3} },},
+/**/                 {{{0xa61e1296, 0xbf604421} },
+/**/                  {{0x5f5d9695, 0xbc04b556} },},
+/**/                 {{{0x6de9a162, 0xbf602411} },
+/**/                  {{0xe79a4e00, 0x3c042b89} },},
+/**/                 {{{0x55d5889e, 0xbf600401} },
+/**/                  {{0x1113f403, 0x3be8f98e} },},
+/**/                 {{{0xbbc30fd4, 0xbf5fc7e2} },
+/**/                  {{0x93382bc9, 0xbbfc709b} },},
+/**/                 {{{0x0c1abdcd, 0xbf5f87c3} },
+/**/                  {{0x76a55d1c, 0xbbf2a90d} },},
+/**/                 {{{0x9cb19a68, 0xbf5f47a3} },
+/**/                  {{0x76e7826b, 0x3be1b815} },},
+/**/                 {{{0x6d8724e7, 0xbf5f0784} },
+/**/                  {{0x2b63756d, 0xbbe72d46} },},
+/**/                 {{{0x7e9adc90, 0xbf5ec765} },
+/**/                  {{0x73bb17c5, 0x3beb1a66} },},
+/**/                 {{{0xcfec40a8, 0xbf5e8746} },
+/**/                  {{0xb5e5a553, 0x3bf11af5} },},
+/**/                 {{{0x617ad077, 0xbf5e4728} },
+/**/                  {{0xf57dd14f, 0x3bfb2cad} },},
+/**/                 {{{0x33460b45, 0xbf5e070a} },
+/**/                  {{0x4902c8d5, 0xbbf8db75} },},
+/**/                 {{{0x454d705f, 0xbf5dc6ec} },
+/**/                  {{0xe8a41057, 0x3bef5cc6} },},
+/**/                 {{{0x97907f0f, 0xbf5d86ce} },
+/**/                  {{0xdf8672ef, 0x3bed8277} },},
+/**/                 {{{0x2a0eb6a3, 0xbf5d46b1} },
+/**/                  {{0x3717e5ee, 0xbbc2f9c2} },},
+/**/                 {{{0xfcc7966b, 0xbf5d0693} },
+/**/                  {{0xab4852c6, 0x3bf4deed} },},
+/**/                 {{{0x0fba9db6, 0xbf5cc677} },
+/**/                  {{0x9db2a368, 0xbbf3a2b4} },},
+/**/                 {{{0x62e74bd8, 0xbf5c865a} },
+/**/                  {{0x58fa0c24, 0xbbd2c51d} },},
+/**/                 {{{0xf64d2024, 0xbf5c463d} },
+/**/                  {{0xe3a09391, 0x3bf838ca} },},
+/**/                 {{{0xc9eb99ee, 0xbf5c0621} },
+/**/                  {{0x61b7de71, 0xbbdc2a9e} },},
+/**/                 {{{0xddc2388e, 0xbf5bc605} },
+/**/                  {{0x4accb195, 0xbbea9808} },},
+/**/                 {{{0x31d07b5c, 0xbf5b85ea} },
+/**/                  {{0x032e030b, 0xbbd811a2} },},
+/**/                 {{{0xc615e1b1, 0xbf5b45ce} },
+/**/                  {{0x821e0b81, 0xbbfd5427} },},
+/**/                 {{{0x9a91eaea, 0xbf5b05b3} },
+/**/                  {{0x2619306b, 0x3bfffeba} },},
+/**/                 {{{0xaf441661, 0xbf5ac598} },
+/**/                  {{0x9eac7d15, 0x3bd22824} },},
+/**/                 {{{0x042be376, 0xbf5a857e} },
+/**/                  {{0x24893f0e, 0x3bc20736} },},
+/**/                 {{{0x9948d188, 0xbf5a4563} },
+/**/                  {{0x04d734cd, 0xbbf58ab4} },},
+/**/                 {{{0x6e9a5ff9, 0xbf5a0549} },
+/**/                  {{0x5723a6c3, 0xbbf22673} },},
+/**/                 {{{0x84200e2c, 0xbf59c52f} },
+/**/                  {{0xa538e8e1, 0x3bfc81da} },},
+/**/                 {{{0xd9d95b83, 0xbf598515} },
+/**/                  {{0x2a8e3feb, 0xbbfa1a37} },},
+/**/                 {{{0x6fc5c767, 0xbf5944fc} },
+/**/                  {{0x385159f9, 0x3bf8e1ce} },},
+/**/                 {{{0x45e4d13c, 0xbf5904e3} },
+/**/                  {{0x1567c7a7, 0xbbfc4737} },},
+/**/                 {{{0x5c35f86e, 0xbf58c4ca} },
+/**/                  {{0x23c9ae0c, 0x3bf41581} },},
+/**/                 {{{0xb2b8bc65, 0xbf5884b1} },
+/**/                  {{0x2b66cfb6, 0x3bf70c2c} },},
+/**/                 {{{0x496c9c8d, 0xbf584499} },
+/**/                  {{0xe5a11e3e, 0xbbdb9042} },},
+/**/                 {{{0x20511854, 0xbf580481} },
+/**/                  {{0x61bcb040, 0xbbf9cf9d} },},
+/**/                 {{{0x3765af29, 0xbf57c469} },
+/**/                  {{0xe26a419b, 0xbbf65ceb} },},
+/**/                 {{{0x8ea9e07c, 0xbf578451} },
+/**/                  {{0xb70a4088, 0xbbf1c2f5} },},
+/**/                 {{{0x261d2bbf, 0xbf57443a} },
+/**/                  {{0x29704ba7, 0xbbbc7b8f} },},
+/**/                 {{{0xfdbf1065, 0xbf570422} },
+/**/                  {{0x433ccb3b, 0x3bca0a54} },},
+/**/                 {{{0x158f0de3, 0xbf56c40c} },
+/**/                  {{0x207cde2d, 0x3bd9e257} },},
+/**/                 {{{0x6d8ca3af, 0xbf5683f5} },
+/**/                  {{0xf7b51b49, 0xbbef17a4} },},
+/**/                 {{{0x05b75142, 0xbf5643df} },
+/**/                  {{0x9d345bf8, 0x3be28239} },},
+/**/                 {{{0xde0e9614, 0xbf5603c8} },
+/**/                  {{0x0918d1bf, 0xbbde6c21} },},
+/**/                 {{{0xf691f1a1, 0xbf55c3b2} },
+/**/                  {{0x377de4c8, 0x3bd37d78} },},
+/**/                 {{{0x4f40e365, 0xbf55839d} },
+/**/                  {{0xbbf7c9d1, 0x3bf52b7d} },},
+/**/                 {{{0xe81aeadd, 0xbf554387} },
+/**/                  {{0x679c3d9a, 0xbbf0be6a} },},
+/**/                 {{{0xc11f878a, 0xbf550372} },
+/**/                  {{0xb6cdd88e, 0xbbdd9e20} },},
+/**/                 {{{0xda4e38ec, 0xbf54c35d} },
+/**/                  {{0x09302da0, 0xbbe3b1e7} },},
+/**/                 {{{0x33a67e86, 0xbf548349} },
+/**/                  {{0x085b922d, 0x3be8cba8} },},
+/**/                 {{{0xcd27d7db, 0xbf544334} },
+/**/                  {{0xf024ab43, 0xbba5f2c9} },},
+/**/                 {{{0xa6d1c471, 0xbf540320} },
+/**/                  {{0xf686cf3d, 0xbbeb31f3} },},
+/**/                 {{{0xc0a3c3cf, 0xbf53c30c} },
+/**/                  {{0xd4ad32f6, 0xbbf74ffe} },},
+/**/                 {{{0x1a9d557e, 0xbf5382f9} },
+/**/                  {{0x4acb368f, 0x3bd2e555} },},
+/**/                 {{{0xb4bdf907, 0xbf5342e5} },
+/**/                  {{0x07812806, 0x3be13442} },},
+/**/                 {{{0x8f052df6, 0xbf5302d2} },
+/**/                  {{0x70b1e756, 0x3bf5f429} },},
+/**/                 {{{0xa97273d7, 0xbf52c2bf} },
+/**/                  {{0x43a03fff, 0xbbf20aa3} },},
+/**/                 {{{0x04054a3a, 0xbf5282ad} },
+/**/                  {{0x8bebd7ad, 0xbbed4d57} },},
+/**/                 {{{0x9ebd30ae, 0xbf52429a} },
+/**/                  {{0x5a71c5a4, 0xbbff9529} },},
+/**/                 {{{0x7999a6c6, 0xbf520288} },
+/**/                  {{0x54100f9e, 0x3bfb055a} },},
+/**/                 {{{0x949a2c12, 0xbf51c276} },
+/**/                  {{0xa2e9f1b4, 0xbbff6978} },},
+/**/                 {{{0xefbe402a, 0xbf518264} },
+/**/                  {{0xbc188323, 0x3bf01fb9} },},
+/**/                 {{{0x8b0562a1, 0xbf514253} },
+/**/                  {{0x957bf23a, 0xbbf7c87c} },},
+/**/                 {{{0x666f1311, 0xbf510242} },
+/**/                  {{0xc8be6880, 0x3bdc2cb9} },},
+/**/                 {{{0x81fad111, 0xbf50c231} },
+/**/                  {{0x07ba000d, 0xbbf59fc1} },},
+/**/                 {{{0xdda81c3d, 0xbf508220} },
+/**/                  {{0xbf5c8a0b, 0xbbf06a0a} },},
+/**/                 {{{0x79767431, 0xbf504210} },
+/**/                  {{0xa9a705bc, 0x3bf3a6cf} },},
+/**/                 {{{0x55655889, 0xbf500200} },
+/**/                  {{0xbf0fa436, 0xbbe9abe6} },},
+/**/                 {{{0xe2e891cc, 0xbf4f83e0} },
+/**/                  {{0x1b81bf62, 0x3be4aa59} },},
+/**/                 {{{0x9b4589ce, 0xbf4f03c1} },
+/**/                  {{0x8a47f50a, 0xbbe60518} },},
+/**/                 {{{0xd3e0985f, 0xbf4e83a2} },
+/**/                  {{0x5ef17e96, 0x3bed32d8} },},
+/**/                 {{{0x8cb8bcc3, 0xbf4e0384} },
+/**/                  {{0xf09afa4d, 0xbbeb7b30} },},
+/**/                 {{{0xc5ccf647, 0xbf4d8366} },
+/**/                  {{0xf586cec2, 0xbbd527fc} },},
+/**/                 {{{0x7f1c4437, 0xbf4d0349} },
+/**/                  {{0x4a686886, 0x3bc2bcf0} },},
+/**/                 {{{0xb8a5a5e3, 0xbf4c832c} },
+/**/                  {{0x721c2ebe, 0x3bc98f93} },},
+/**/                 {{{0x72681a9e, 0xbf4c0310} },
+/**/                  {{0xb5308d22, 0xbbe20f00} },},
+/**/                 {{{0xac62a1bf, 0xbf4b82f4} },
+/**/                  {{0x9737b561, 0xbbe1edd0} },},
+/**/                 {{{0x66943a9f, 0xbf4b02d9} },
+/**/                  {{0x23f894a1, 0xbbcc950b} },},
+/**/                 {{{0xa0fbe49a, 0xbf4a82be} },
+/**/                  {{0x866bc982, 0xbb81da04} },},
+/**/                 {{{0x5b989f0f, 0xbf4a02a4} },
+/**/                  {{0x9d76196e, 0xbbd9114d} },},
+/**/                 {{{0x96696961, 0xbf49828a} },
+/**/                  {{0xd3292fd6, 0x3bc10d20} },},
+/**/                 {{{0x516d42f4, 0xbf490271} },
+/**/                  {{0x2e9a5dd5, 0xbbee53a3} },},
+/**/                 {{{0x8ca32b32, 0xbf488258} },
+/**/                  {{0xd18f8004, 0xbbc55af5} },},
+/**/                 {{{0x480a2185, 0xbf480240} },
+/**/                  {{0xa9b0178a, 0xbbb32d23} },},
+/**/                 {{{0x83a1255c, 0xbf478228} },
+/**/                  {{0x8152093a, 0x3be84cc3} },},
+/**/                 {{{0x3f673627, 0xbf470211} },
+/**/                  {{0xf4881c71, 0xbbd0055a} },},
+/**/                 {{{0x7b5b535c, 0xbf4681fa} },
+/**/                  {{0xb98336ea, 0x3bd2b73f} },},
+/**/                 {{{0x377c7c71, 0xbf4601e4} },
+/**/                  {{0x2ed05089, 0xbbcdcbed} },},
+/**/                 {{{0x73c9b0e1, 0xbf4581ce} },
+/**/                  {{0x61414697, 0xbbdda0c2} },},
+/**/                 {{{0x3041f02a, 0xbf4501b9} },
+/**/                  {{0x22f8b33c, 0x3bee5d53} },},
+/**/                 {{{0x6ce439ca, 0xbf4481a4} },
+/**/                  {{0x9c25c999, 0xbbe5512f} },},
+/**/                 {{{0x29af8d47, 0xbf440190} },
+/**/                  {{0xa4df0dfd, 0x3b7f48c2} },},
+/**/                 {{{0x66a2ea26, 0xbf43817c} },
+/**/                  {{0x517febd8, 0x3bd157c0} },},
+/**/                 {{{0x23bd4ff0, 0xbf430169} },
+/**/                  {{0x0176d244, 0xbbe2e229} },},
+/**/                 {{{0x60fdbe33, 0xbf428156} },
+/**/                  {{0x175812b3, 0x3be64664} },},
+/**/                 {{{0x1e63347c, 0xbf420144} },
+/**/                  {{0xd9355524, 0xbbe39ab4} },},
+/**/                 {{{0x5becb260, 0xbf418132} },
+/**/                  {{0xb6e1edc9, 0x3be74b27} },},
+/**/                 {{{0x19993772, 0xbf410121} },
+/**/                  {{0x393ab56a, 0xbbaa390b} },},
+/**/                 {{{0x5767c34c, 0xbf408110} },
+/**/                  {{0xf8c7783b, 0x3bd128e6} },},
+/**/                 {{{0x15575589, 0xbf400100} },
+/**/                  {{0xf23ef222, 0x3bec8863} },},
+/**/                 {{{0xa6cddb8d, 0xbf3f01e0} },
+/**/                  {{0xcdd29c3f, 0x3b8a9419} },},
+/**/                 {{{0x232b174e, 0xbf3e01c2} },
+/**/                  {{0xd5f5b191, 0xbbc7cf55} },},
+/**/                 {{{0x9fc45d9e, 0xbf3d01a4} },
+/**/                  {{0xb5038e7e, 0x3bddc58f} },},
+/**/                 {{{0x1c97adca, 0xbf3c0188} },
+/**/                  {{0xbb933e41, 0x3bc0238d} },},
+/**/                 {{{0x99a30728, 0xbf3b016c} },
+/**/                  {{0xc3c43664, 0xbbabde04} },},
+/**/                 {{{0x16e46913, 0xbf3a0152} },
+/**/                  {{0x5adc3673, 0x3bafe081} },},
+/**/                 {{{0x9459d2eb, 0xbf390138} },
+/**/                  {{0xc2a33d26, 0xbbd949da} },},
+/**/                 {{{0x12014418, 0xbf380120} },
+/**/                  {{0xf76e0326, 0xbbd3acbc} },},
+/**/                 {{{0x8fd8bc07, 0xbf370108} },
+/**/                  {{0x4cd6ce34, 0x3bdbde09} },},
+/**/                 {{{0x0dde3a29, 0xbf3600f2} },
+/**/                  {{0x05442a35, 0xbbb0bc28} },},
+/**/                 {{{0x8c0fbdf9, 0xbf3500dc} },
+/**/                  {{0x0908cbf7, 0x3bd21c68} },},
+/**/                 {{{0x0a6b46f4, 0xbf3400c8} },
+/**/                  {{0x0f107564, 0xbbdbd35e} },},
+/**/                 {{{0x88eed4a1, 0xbf3300b4} },
+/**/                  {{0x49a3dcb8, 0xbbc22067} },},
+/**/                 {{{0x0798668a, 0xbf3200a2} },
+/**/                  {{0xe7c5d0e5, 0x3bcdb7f0} },},
+/**/                 {{{0x8665fc3f, 0xbf310090} },
+/**/                  {{0xc7f9d69c, 0xbbd00add} },},
+/**/                 {{{0x05559559, 0xbf300080} },
+/**/                  {{0xa0e20e2f, 0x3bddd332} },},
+/**/                 {{{0x08ca62e5, 0xbf2e00e1} },
+/**/                  {{0x3a04bb77, 0xbbb15ff9} },},
+/**/                 {{{0x0725a061, 0xbf2c00c4} },
+/**/                  {{0xcc052f3e, 0x3bc88ab0} },},
+/**/                 {{{0x05b8e275, 0xbf2a00a9} },
+/**/                  {{0xf5f3cbcf, 0xbbcbba1a} },},
+/**/                 {{{0x04802882, 0xbf280090} },
+/**/                  {{0xa5bd7bd0, 0x3bcec900} },},
+/**/                 {{{0x037771ef, 0xbf260079} },
+/**/                  {{0x9b7b54fa, 0x3bb77ea0} },},
+/**/                 {{{0x029abe33, 0xbf240064} },
+/**/                  {{0x3ae68d18, 0xbbc1bbf0} },},
+/**/                 {{{0x01e60cd1, 0xbf220051} },
+/**/                  {{0x2b45cfcd, 0x3bb1dcd9} },},
+/**/                 {{{0x01555d56, 0xbf200040} },
+/**/                  {{0x863f53f6, 0x3bcddd88} },},
+/**/                 {{{0x01c95eb7, 0xbf1c0062} },
+/**/                  {{0xaa4dfd9a, 0x3bbd88f7} },},
+/**/                 {{{0x01200510, 0xbf180048} },
+/**/                  {{0x4f3db50b, 0xbb984d46} },},
+/**/                 {{{0x00a6ad1c, 0xbf140032} },
+/**/                  {{0x28ff1135, 0x3bb2e44b} },},
+/**/                 {{{0x00555655, 0xbf100020} },
+/**/                  {{0xccd5f17f, 0xbbb62224} },},
+/**/                 {{{0x004800a2, 0xbf080024} },
+/**/                  {{0x8d690542, 0xbb484d09} },},
+/**/                 {{{0x00155575, 0xbf000010} },
+/**/                  {{0x37779c0a, 0xbba56222} },},
+/**/                 {{{0x00055559, 0xbef00008} },
+/**/                  {{0x22cccd5f, 0xbb955622} },},
+/**/                 {{{0x00000000, 0x00000000} },
+/**/                  {{0x00000000, 0x00000000} },},
+/**/                 {{{0x000aaaa3, 0x3eeffff0} },
+/**/                  {{0xbd110fec, 0xbb8553bb} },},
+/**/                 {{{0x002aaa6b, 0x3effffe0} },
+/**/                  {{0xe6661d42, 0xbb953bbb} },},
+/**/                 {{{0x0047ff5e, 0x3f07ffdc} },
+/**/                  {{0x0d69020e, 0x3b484c90} },},
+/**/                 {{{0x00aaa8ab, 0x3f0fffc0} },
+/**/                  {{0x10fec82c, 0xbba3bbc1} },},
+/**/                 {{{0x00a6a83a, 0x3f13ffce} },
+/**/                  {{0x81546808, 0xbbb2e45f} },},
+/**/                 {{{0x011ffaf0, 0x3f17ffb8} },
+/**/                  {{0x4f3d9b6a, 0x3b984c53} },},
+/**/                 {{{0x01c94bf5, 0x3f1bff9e} },
+/**/                  {{0xdaa368ee, 0xbbbd8990} },},
+/**/                 {{{0x02aa9aab, 0x3f1fff80} },
+/**/                  {{0x78af0afc, 0x3b910e66} },},
+/**/                 {{{0x01e5f330, 0x3f21ffaf} },
+/**/                  {{0x26467402, 0xbbb1df8d} },},
+/**/                 {{{0x029a9723, 0x3f23ff9c} },
+/**/                  {{0x303b23b1, 0x3bc1b965} },},
+/**/                 {{{0x037738be, 0x3f25ff87} },
+/**/                  {{0x53d3dc06, 0xbbb787a3} },},
+/**/                 {{{0x047fd782, 0x3f27ff70} },
+/**/                  {{0xa5c0aff0, 0xbbced098} },},
+/**/                 {{{0x05b872e4, 0x3f29ff57} },
+/**/                  {{0x81c30d42, 0x3bcbadd4} },},
+/**/                 {{{0x07250a51, 0x3f2bff3c} },
+/**/                  {{0xd6bad8c1, 0xbbc89dd6} },},
+/**/                 {{{0x08c99d24, 0x3f2dff1f} },
+/**/                  {{0xaede8ad0, 0x3bb12609} },},
+/**/                 {{{0x0aaa2ab1, 0x3f2fff00} },
+/**/                  {{0x4dc4e3dc, 0x3ba0bbc0} },},
+/**/                 {{{0x8665591f, 0x3f30ff6f} },
+/**/                  {{0x80357b54, 0xbbd013d3} },},
+/**/                 {{{0x07979982, 0x3f31ff5e} },
+/**/                  {{0x4817ebcd, 0xbbce0e70} },},
+/**/                 {{{0x88edd619, 0x3f32ff4b} },
+/**/                  {{0xc582abc3, 0xbbd72b9e} },},
+/**/                 {{{0x0a6a0e74, 0x3f33ff38} },
+/**/                  {{0xb95bc1fe, 0x3bdb81fc} },},
+/**/                 {{{0x8c0e4220, 0x3f34ff23} },
+/**/                  {{0x9b549aae, 0x3bcaed12} },},
+/**/                 {{{0x0ddc70a1, 0x3f35ff0e} },
+/**/                  {{0xd97a3c05, 0x3bacf6f3} },},
+/**/                 {{{0x8fd69976, 0x3f36fef7} },
+/**/                  {{0x6f810a3c, 0x3bab2dcf} },},
+/**/                 {{{0x11febc18, 0x3f37fee0} },
+/**/                  {{0xf5d3f323, 0x3bd2b9bc} },},
+/**/                 {{{0x9456d7fb, 0x3f38fec7} },
+/**/                  {{0x6eaa1d6a, 0xbbbfb258} },},
+/**/                 {{{0x16e0ec8b, 0x3f39feae} },
+/**/                  {{0xceeb34b1, 0xbbb6137a} },},
+/**/                 {{{0x999ef930, 0x3f3afe93} },
+/**/                  {{0xdc639b08, 0xbbde70e0} },},
+/**/                 {{{0x1c92fd4a, 0x3f3bfe78} },
+/**/                  {{0x713cc126, 0xbbc4ed10} },},
+/**/                 {{{0x9fbef835, 0x3f3cfe5b} },
+/**/                  {{0xcc0e81bd, 0xbb873d63} },},
+/**/                 {{{0x2324e946, 0x3f3dfe3e} },
+/**/                  {{0x62dd5deb, 0x3bc09164} },},
+/**/                 {{{0xa6c6cfcc, 0x3f3efe1f} },
+/**/                  {{0x3512d15c, 0x3bdac2da} },},
+/**/                 {{{0x2aa6ab11, 0x3f3ffe00} },
+/**/                  {{0x62cc632d, 0x3b999e2b} },},
+/**/                 {{{0xd7633d2c, 0x3f407eef} },
+/**/                  {{0x63ff6024, 0xbbebc98b} },},
+/**/                 {{{0x19941e6e, 0x3f40fedf} },
+/**/                  {{0xe0aa6338, 0xbbb194c2} },},
+/**/                 {{{0xdbe6f8eb, 0x3f417ecd} },
+/**/                  {{0x57b0f571, 0x3be4241b} },},
+/**/                 {{{0x1e5ccc3c, 0x3f41febc} },
+/**/                  {{0x895d3592, 0x3bdc657d} },},
+/**/                 {{{0xe0f697f6, 0x3f427ea9} },
+/**/                  {{0x1c0ec17c, 0x3be35a5d} },},
+/**/                 {{{0x23b55bac, 0x3f42fe97} },
+/**/                  {{0x3e538464, 0x3bd6cfb7} },},
+/**/                 {{{0xe69a16ed, 0x3f437e83} },
+/**/                  {{0x7cef2478, 0x3bee96f7} },},
+/**/                 {{{0x29a5c947, 0x3f43fe70} },
+/**/                  {{0xbf46e36a, 0xbbd4d578} },},
+/**/                 {{{0xecd97242, 0x3f447e5b} },
+/**/                  {{0x3ff7dd44, 0xbbc9eb66} },},
+/**/                 {{{0x30361165, 0x3f44fe47} },
+/**/                  {{0x7e93f2fd, 0x3be400d7} },},
+/**/                 {{{0xf3bca635, 0x3f457e31} },
+/**/                  {{0xd375017f, 0xbbe0e2a2} },},
+/**/                 {{{0x376e3031, 0x3f45fe1c} },
+/**/                  {{0x8a5ae7f6, 0xbbd524eb} },},
+/**/                 {{{0xfb4baed7, 0x3f467e05} },
+/**/                  {{0x4e85c4e9, 0x3be204fb} },},
+/**/                 {{{0x3f5621a3, 0x3f46fdef} },
+/**/                  {{0x34886d52, 0xbbdf09d7} },},
+/**/                 {{{0x038e880b, 0x3f477dd8} },
+/**/                  {{0x14e596a3, 0xbbb8900e} },},
+/**/                 {{{0x47f5e185, 0x3f47fdc0} },
+/**/                  {{0x57d202d3, 0xbbebfa5c} },},
+/**/                 {{{0x0c8d2d81, 0x3f487da8} },
+/**/                  {{0xd68c0614, 0x3be2f6ae} },},
+/**/                 {{{0x51556b70, 0x3f48fd8f} },
+/**/                  {{0xe08fd201, 0xbbd0f4f2} },},
+/**/                 {{{0x164f9abc, 0x3f497d76} },
+/**/                  {{0xa871af60, 0x3b5296b7} },},
+/**/                 {{{0x5b7cbace, 0x3f49fd5c} },
+/**/                  {{0x9f17d42d, 0x3beb6ed4} },},
+/**/                 {{{0x20ddcb0d, 0x3f4a7d42} },
+/**/                  {{0x67c30397, 0xbbcb1149} },},
+/**/                 {{{0x6673cada, 0x3f4afd27} },
+/**/                  {{0x45da594f, 0x3bd32225} },},
+/**/                 {{{0x2c3fb996, 0x3f4b7d0c} },
+/**/                  {{0x208d4630, 0xbbb68893} },},
+/**/                 {{{0x7242969d, 0x3f4bfcf0} },
+/**/                  {{0x2b3efe1c, 0x3bc5db4d} },},
+/**/                 {{{0x387d6149, 0x3f4c7cd4} },
+/**/                  {{0xed57d98a, 0x3be46eff} },},
+/**/                 {{{0x7ef118f1, 0x3f4cfcb7} },
+/**/                  {{0x06f300fb, 0x3becc554} },},
+/**/                 {{{0x459ebce9, 0x3f4d7c9a} },
+/**/                  {{0x13638eb6, 0x3be1d251} },},
+/**/                 {{{0x8c874c82, 0x3f4dfc7c} },
+/**/                  {{0xd57a176f, 0xbbe863e9} },},
+/**/                 {{{0x53abc708, 0x3f4e7c5e} },
+/**/                  {{0x9528e50d, 0x3be2d95c} },},
+/**/                 {{{0x9b0d2bc8, 0x3f4efc3f} },
+/**/                  {{0xa5f5b8b7, 0x3bd1e8e8} },},
+/**/                 {{{0x62ac7a09, 0x3f4f7c20} },
+/**/                  {{0x17802a46, 0x3b5c8123} },},
+/**/                 {{{0xaa8ab110, 0x3f4ffc00} },
+/**/                  {{0xeb9b6cdb, 0xbbe0fecb} },},
+/**/                 {{{0x3954680f, 0x3f503df0} },
+/**/                  {{0x1c693678, 0x3bdac89b} },},
+/**/                 {{{0xdd83eb3a, 0x3f507ddf} },
+/**/                  {{0x0a75ad5f, 0xbbf638f6} },},
+/**/                 {{{0x41d461a5, 0x3f50bdcf} },
+/**/                  {{0x45f05b10, 0x3bfd4bc9} },},
+/**/                 {{{0x66464aef, 0x3f50fdbe} },
+/**/                  {{0x6abbf59c, 0xbbbd0554} },},
+/**/                 {{{0x4ada26b1, 0x3f513dad} },
+/**/                  {{0x6036fe6f, 0x3be38c65} },},
+/**/                 {{{0xef907485, 0x3f517d9b} },
+/**/                  {{0xf158bbc3, 0x3bfdc8a1} },},
+/**/                 {{{0x5469b404, 0x3f51bd8a} },
+/**/                  {{0x55632e3f, 0xbbdea231} },},
+/**/                 {{{0x796664c3, 0x3f51fd78} },
+/**/                  {{0x2edb73c2, 0xbbe00849} },},
+/**/                 {{{0x5e870657, 0x3f523d66} },
+/**/                  {{0x0789343e, 0x3bfba943} },},
+/**/                 {{{0x03cc1855, 0x3f527d54} },
+/**/                  {{0xeafafc52, 0x3bc5f644} },},
+/**/                 {{{0x69361a4e, 0x3f52bd41} },
+/**/                  {{0xa4a6e79f, 0xbbf2f743} },},
+/**/                 {{{0x8ec58bd2, 0x3f52fd2e} },
+/**/                  {{0x5ceb1abf, 0xbbd4f786} },},
+/**/                 {{{0x747aec71, 0x3f533d1b} },
+/**/                  {{0x49dc497d, 0xbbf369e3} },},
+/**/                 {{{0x1a56bbb8, 0x3f537d08} },
+/**/                  {{0x3726b14a, 0xbbfc5e6f} },},
+/**/                 {{{0x80597933, 0x3f53bcf4} },
+/**/                  {{0x808f75a7, 0xbbfe8b82} },},
+/**/                 {{{0xa683a46c, 0x3f53fce0} },
+/**/                  {{0x9cd06ae6, 0x3be02719} },},
+/**/                 {{{0x8cd5bced, 0x3f543ccc} },
+/**/                  {{0x758f80f8, 0x3bf9f98d} },},
+/**/                 {{{0x3350423e, 0x3f547cb8} },
+/**/                  {{0x48401f45, 0xbbd79c3d} },},
+/**/                 {{{0x99f3b3e4, 0x3f54bca3} },
+/**/                  {{0x2fba8948, 0xbbf422b8} },},
+/**/                 {{{0xc0c09163, 0x3f54fc8e} },
+/**/                  {{0xf4044be8, 0x3bf32cc1} },},
+/**/                 {{{0xa7b75a40, 0x3f553c79} },
+/**/                  {{0xf2249008, 0xbbe72cac} },},
+/**/                 {{{0x4ed88dfb, 0x3f557c64} },
+/**/                  {{0x459a204f, 0xbbe7183c} },},
+/**/                 {{{0xb624ac14, 0x3f55bc4e} },
+/**/                  {{0xba26d3d7, 0x3bf8aa64} },},
+/**/                 {{{0xdd9c340b, 0x3f55fc38} },
+/**/                  {{0x45fa193c, 0x3bdbb2ff} },},
+/**/                 {{{0xc53fa55c, 0x3f563c22} },
+/**/                  {{0x0484397b, 0x3bd67249} },},
+/**/                 {{{0x6d0f7f83, 0x3f567c0c} },
+/**/                  {{0xf1e73188, 0xbbd183d7} },},
+/**/                 {{{0xd50c41fa, 0x3f56bbf5} },
+/**/                  {{0x4ab68187, 0xbbef433d} },},
+/**/                 {{{0xfd366c39, 0x3f56fbde} },
+/**/                  {{0x66e09e58, 0x3be796b8} },},
+/**/                 {{{0xe58e7db8, 0x3f573bc7} },
+/**/                  {{0x81e6e7e6, 0x3bf65ec5} },},
+/**/                 {{{0x8e14f5ed, 0x3f577bb0} },
+/**/                  {{0xa9463a9c, 0xbbdb944d} },},
+/**/                 {{{0xf6ca544b, 0x3f57bb98} },
+/**/                  {{0xc5eda344, 0xbbc396ec} },},
+/**/                 {{{0x1faf1845, 0x3f57fb81} },
+/**/                  {{0xbb624f97, 0x3beb9e6d} },},
+/**/                 {{{0x08c3c14d, 0x3f583b69} },
+/**/                  {{0xe6295bf2, 0xbbe6ee13} },},
+/**/                 {{{0xb208ced1, 0x3f587b50} },
+/**/                  {{0x6ca19875, 0x3bfcf1a5} },},
+/**/                 {{{0x1b7ec041, 0x3f58bb38} },
+/**/                  {{0x07b4fc7e, 0x3bf2d181} },},
+/**/                 {{{0x45261509, 0x3f58fb1f} },
+/**/                  {{0x21bad336, 0x3bc419c5} },},
+/**/                 {{{0x2eff4c94, 0x3f593b06} },
+/**/                  {{0x700b305b, 0xbbdc2a4c} },},
+/**/                 {{{0xd90ae64c, 0x3f597aec} },
+/**/                  {{0xa23f359c, 0xbbfc53d3} },},
+/**/                 {{{0x43496198, 0x3f59bad3} },
+/**/                  {{0xaed6b50f, 0x3bf0c270} },},
+/**/                 {{{0x6dbb3de1, 0x3f59fab9} },
+/**/                  {{0x7a8be031, 0xbbf11464} },},
+/**/                 {{{0x5860fa8a, 0x3f5a3a9f} },
+/**/                  {{0x470dbe32, 0x3beae9e7} },},
+/**/                 {{{0x033b16f8, 0x3f5a7a85} },
+/**/                  {{0xda1f8579, 0x3bfc4721} },},
+/**/                 {{{0x6e4a128e, 0x3f5aba6a} },
+/**/                  {{0x029258ce, 0xbbf41852} },},
+/**/                 {{{0x998e6cab, 0x3f5afa4f} },
+/**/                  {{0x2eb18782, 0xbbf28584} },},
+/**/                 {{{0x8508a4af, 0x3f5b3a34} },
+/**/                  {{0x23241a2c, 0xbbea7970} },},
+/**/                 {{{0x30b939f8, 0x3f5b7a19} },
+/**/                  {{0x600551b6, 0xbbf1d8db} },},
+/**/                 {{{0x9ca0abe2, 0x3f5bb9fd} },
+/**/                  {{0x8c26cc71, 0xbbeaa412} },},
+/**/                 {{{0xc8bf79c8, 0x3f5bf9e1} },
+/**/                  {{0x30427cfc, 0xbbe7f81b} },},
+/**/                 {{{0xb5162303, 0x3f5c39c5} },
+/**/                  {{0xd1f134e1, 0x3bd9ec5f} },},
+/**/                 {{{0x61a526eb, 0x3f5c79a9} },
+/**/                  {{0x8980e47d, 0x3bff0cb0} },},
+/**/                 {{{0xce6d04d7, 0x3f5cb98c} },
+/**/                  {{0xe84ca4e2, 0x3bf35aca} },},
+/**/                 {{{0xfb6e3c1b, 0x3f5cf96f} },
+/**/                  {{0x1b0bd69f, 0x3bf9b1b8} },},
+/**/                 {{{0xe8a94c0b, 0x3f5d3952} },
+/**/                  {{0x3ce51832, 0x3be21310} },},
+/**/                 {{{0x961eb3f8, 0x3f5d7935} },
+/**/                  {{0x840c58ce, 0x3bf90786} },},
+/**/                 {{{0x03cef334, 0x3f5db918} },
+/**/                  {{0xf2dfb3f4, 0xbbfe0048} },},
+/**/                 {{{0x31ba890b, 0x3f5df8fa} },
+/**/                  {{0x3e295bec, 0x3bfcf652} },},
+/**/                 {{{0x1fe1f4ce, 0x3f5e38dc} },
+/**/                  {{0x151c9300, 0xbbfc5ebe} },},
+/**/                 {{{0xce45b5c6, 0x3f5e78bd} },
+/**/                  {{0x8a25b9c7, 0xbbef2cc4} },},
+/**/                 {{{0x3ce64b3e, 0x3f5eb89f} },
+/**/                  {{0xa6fea7bd, 0x3bfe6d27} },},
+/**/                 {{{0x6bc43481, 0x3f5ef880} },
+/**/                  {{0x914a6dab, 0xbbf68037} },},
+/**/                 {{{0x5adff0d4, 0x3f5f3861} },
+/**/                  {{0xf909e0e6, 0xbbf1d2f3} },},
+/**/                 {{{0x0a39ff7e, 0x3f5f7842} },
+/**/                  {{0xff1e1f71, 0xbbf64661} },},
+/**/                 {{{0x79d2dfc3, 0x3f5fb822} },
+/**/                  {{0x5a6f9e9a, 0xbbd76ce8} },},
+/**/                 {{{0xa9ab10e6, 0x3f5ff802} },
+/**/                  {{0xa153e3b2, 0x3bfe29e3} },},
+/**/                 {{{0x4ce18915, 0x3f601bf1} },
+/**/                  {{0xa3a73044, 0xbbe57c28} },},
+/**/                 {{{0x250db166, 0x3f603be1} },
+/**/                  {{0xc1ad9590, 0x3c0fd271} },},
+/**/                 {{{0xdd5a4107, 0x3f605bd0} },
+/**/                  {{0xc424c676, 0x3bfe4b5d} },},
+/**/                 {{{0x75c77796, 0x3f607bc0} },
+/**/                  {{0xc0eff1ba, 0xbc068804} },},
+/**/                 {{{0xee5594b0, 0x3f609baf} },
+/**/                  {{0x51dbded5, 0xbc0ff798} },},
+/**/                 {{{0x4704d7f2, 0x3f60bb9f} },
+/**/                  {{0x2d5aba70, 0xbbf70ef4} },},
+/**/                 {{{0x7fd580f9, 0x3f60db8e} },
+/**/                  {{0x7ae804b5, 0xbbeccb65} },},
+/**/                 {{{0x98c7cf60, 0x3f60fb7d} },
+/**/                  {{0x1775134d, 0x3bfede2f} },},
+/**/                 {{{0x91dc02c3, 0x3f611b6c} },
+/**/                  {{0x91ca4a67, 0xbc04d41e} },},
+/**/                 {{{0x6b125aba, 0x3f613b5b} },
+/**/                  {{0x4a12201d, 0x3bfe6d0c} },},
+/**/                 {{{0x246b16e0, 0x3f615b4a} },
+/**/                  {{0x4d4238d3, 0x3bfe507d} },},
+/**/                 {{{0xbde676cd, 0x3f617b38} },
+/**/                  {{0x0640462a, 0x3bfe0272} },},
+/**/                 {{{0x3784ba19, 0x3f619b27} },
+/**/                  {{0x02285659, 0x3bd94ab3} },},
+/**/                 {{{0x9146205b, 0x3f61bb15} },
+/**/                  {{0x1cc35b7b, 0xbbff1e2e} },},
+/**/                 {{{0xcb2ae929, 0x3f61db03} },
+/**/                  {{0x12f6bf8d, 0xbc03ee8e} },},
+/**/                 {{{0xe5335418, 0x3f61faf1} },
+/**/                  {{0x7b7d619b, 0x3c0bae5f} },},
+/**/                 {{{0xdf5fa0bf, 0x3f621adf} },
+/**/                  {{0xb3b731b0, 0xbbf5546a} },},
+/**/                 {{{0xb9b00eb0, 0x3f623acd} },
+/**/                  {{0x105fd253, 0xbbafb2b0} },},
+/**/                 {{{0x7424dd7f, 0x3f625abb} },
+/**/                  {{0xca53444b, 0x3c011647} },},
+/**/                 {{{0x0ebe4cbf, 0x3f627aa9} },
+/**/                  {{0x592f3be8, 0x3c01678f} },},
+/**/                 {{{0x897c9c02, 0x3f629a96} },
+/**/                  {{0x4347451d, 0xbbef2b12} },},
+/**/                 {{{0xe4600ad8, 0x3f62ba83} },
+/**/                  {{0xb2a477bc, 0x3bfb5bb7} },},
+/**/                 {{{0x1f68d8d3, 0x3f62da71} },
+/**/                  {{0x7a5822e4, 0xbc0590e1} },},
+/**/                 {{{0x3a974581, 0x3f62fa5e} },
+/**/                  {{0x53123101, 0xbbf0f2e5} },},
+/**/                 {{{0x35eb9072, 0x3f631a4b} },
+/**/                  {{0x0e3f5fde, 0xbc018db4} },},
+/**/                 {{{0x1165f933, 0x3f633a38} },
+/**/                  {{0x8d0afb38, 0x3c0921d5} },},
+/**/                 {{{0xcd06bf53, 0x3f635a24} },
+/**/                  {{0xb5791b80, 0x3c01f6ba} },},
+/**/                 {{{0x68ce225e, 0x3f637a11} },
+/**/                  {{0xa1894236, 0x3bde2af8} },},
+/**/                 {{{0xe4bc61e0, 0x3f6399fd} },
+/**/                  {{0xd0f06ff3, 0xbc062a48} },},
+/**/                 {{{0x40d1bd63, 0x3f63b9ea} },
+/**/                  {{0x4b4f9c11, 0x3bffc80c} },},
+/**/                 {{{0x7d0e7473, 0x3f63d9d6} },
+/**/                  {{0x6a92c891, 0x3c02219b} },},
+/**/                 {{{0x9972c699, 0x3f63f9c2} },
+/**/                  {{0x790ade9e, 0x3c0d3590} },},
+/**/                 {{{0x95fef35f, 0x3f6419ae} },
+/**/                  {{0x792a458c, 0xbc01c279} },},
+/**/                 {{{0x72b33a4b, 0x3f64399a} },
+/**/                  {{0x327bffae, 0x3c02ce64} },},
+/**/                 {{{0x2f8fdae7, 0x3f645986} },
+/**/                  {{0xd231155c, 0xbc070aec} },},
+/**/                 {{{0xcc9514b7, 0x3f647971} },
+/**/                  {{0xe4bbf776, 0x3c0f373d} },},
+/**/                 {{{0x49c32744, 0x3f64995d} },
+/**/                  {{0xbf22b2a7, 0xbbf6d7e5} },},
+/**/                 {{{0xa71a5211, 0x3f64b948} },
+/**/                  {{0x64fe2936, 0xbbedec69} },},
+/**/                 {{{0xe49ad4a3, 0x3f64d933} },
+/**/                  {{0xabee4257, 0x3bf5fc4b} },},
+/**/                 {{{0x0244ee7e, 0x3f64f91f} },
+/**/                  {{0x3cd1474f, 0x3c0c6fe3} },},
+/**/                 {{{0x0018df26, 0x3f65190a} },
+/**/                  {{0xd11e7fa5, 0xbc023957} },},
+/**/                 {{{0xde16e61b, 0x3f6538f4} },
+/**/                  {{0x55380346, 0x3c006c31} },},
+/**/                 {{{0x9c3f42e1, 0x3f6558df} },
+/**/                  {{0xc4a5134c, 0xbc09b7d4} },},
+/**/                 {{{0x3a9234f7, 0x3f6578ca} },
+/**/                  {{0x2772c19c, 0xbc0e3f10} },},
+/**/                 {{{0xb90ffbdd, 0x3f6598b4} },
+/**/                  {{0x5592b468, 0x3be6f110} },},
+/**/                 {{{0x17b8d714, 0x3f65b89f} },
+/**/                  {{0xb251ace2, 0xbc0a5fea} },},
+/**/                 {{{0x568d0619, 0x3f65d889} },
+/**/                  {{0x315da285, 0xbc0aacc9} },},
+/**/                 {{{0x758cc86a, 0x3f65f873} },
+/**/                  {{0xba64d81a, 0xbbeb0782} },},
+/**/                 {{{0x74b85d85, 0x3f66185d} },
+/**/                  {{0x8e1eb3fa, 0xbc09b459} },},
+/**/                 {{{0x541004e5, 0x3f663847} },
+/**/                  {{0x1d86e863, 0x3bce9c22} },},
+/**/                 {{{0x1393fe07, 0x3f665831} },
+/**/                  {{0xcf37ee90, 0xbbfbeb77} },},
+/**/                 {{{0xb3448865, 0x3f66781a} },
+/**/                  {{0xc252e3c9, 0xbc02dc68} },},
+/**/                 {{{0x3321e379, 0x3f669804} },
+/**/                  {{0xb40b3741, 0xbbe73a0b} },},
+  };
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/upow.h b/REORG.TODO/sysdeps/ieee754/dbl-64/upow.h
new file mode 100644
index 0000000000..9dcbd3eb2b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/upow.h
@@ -0,0 +1,76 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:upow.h                                             */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef UPOW_H
+#define UPOW_H
+
+#include "mydefs.h"
+
+#ifdef BIG_ENDI
+  const static mynumber
+/**/ nZERO	    = {{0x80000000, 0}},	  /* -0.0          */
+/**/ INF            = {{0x7ff00000, 0x00000000}}, /* INF           */
+/**/ nINF           = {{0xfff00000, 0x00000000}}, /* -INF          */
+/**/ ln2a           = {{0x3fe62e42, 0xfefa3800}}, /* ln(2) 43 bits */
+/**/ ln2b           = {{0x3d2ef357, 0x93c76730}}, /* ln(2)-ln2a    */
+/**/ bigu           = {{0x4297ffff, 0xfffffd2c}}, /* 1.5*2**42 -724*2**-10  */
+/**/ bigv           = {{0x4207ffff, 0xfff8016a}}, /* 1.5*2**33-1+362*2**-19  */
+/**/ t52            = {{0x43300000, 0x00000000}}, /* 2**52         */
+/**/ two52e         = {{0x43300000, 0x000003ff}}; /* 2**52'        */
+
+#else
+#ifdef LITTLE_ENDI
+  const static mynumber
+/**/ nZERO	    = {{0, 0x80000000}},	  /* -0.0          */
+/**/ INF            = {{0x00000000, 0x7ff00000}}, /* INF           */
+/**/ nINF           = {{0x00000000, 0xfff00000}}, /* -INF           */
+/**/ ln2a           = {{0xfefa3800, 0x3fe62e42}}, /* ln(2) 43 bits */
+/**/ ln2b           = {{0x93c76730, 0x3d2ef357}}, /* ln(2)-ln2a    */
+/**/ bigu           = {{0xfffffd2c, 0x4297ffff}}, /* 1.5*2**42 -724*2**-10  */
+/**/ bigv           = {{0xfff8016a, 0x4207ffff}}, /* 1.5*2**33-1+362*2**-19  */
+/**/ t52            = {{0x00000000, 0x43300000}}, /* 2**52         */
+/**/ two52e         = {{0x000003ff, 0x43300000}}; /* 2**52'        */
+
+#endif
+#endif
+
+const static double p2=-0.5, p3 =  3.3333333333333333333e-1, p4 = -0.25,
+  q2 = -0.5, q3 = 3.3333333333331404e-01, q4 =  -2.4999999999996436e-01,
+  q5 =  2.0000010500004459e-01, q6 =  -1.6666678916688004e-01,
+  r3 =  3.33333333333333333372884096563030E-01,
+  r4 = -2.50000000000000000213574153875908E-01,
+  r5 =  1.99999999999683593814072199830603E-01,
+  r6 = -1.66666666666065494878165510225378E-01,
+  r7 =  1.42857517857114380606360005067609E-01,
+  r8 = -1.25000449999974370683775964001702E-01,
+  s3 =  0.333251953125000000e0,
+ ss3 =  8.138020833333333333e-05,
+  s4 = -2.500000000000000000e-01,
+  s5 =  1.999999999999960937e-01,
+  s6 = -1.666666666666592447e-01,
+  s7 =  1.428571845238194705e-01,
+  s8 = -1.250000500000149097e-01;
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/upow.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/upow.tbl
new file mode 100644
index 0000000000..f92c69c521
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/upow.tbl
@@ -0,0 +1,10188 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/****************************************************************/
+/* TABLES FOR THE upow() FUNCTION                               */
+/****************************************************************/
+
+
+
+#ifdef BIG_ENDI
+static const union {int4 i[5800]; double x[2900];} ui = { .i = {
+/**/                   0x3FF6A000, 0x00000000,
+/**/                   0x3F33CD15, 0x3729043E,
+/**/                   0xBFD63003, 0x0B3AB000,
+/**/                   0x3D2DB623, 0xE731AE00,
+/**/                   0x3FF69800, 0x00000000,
+/**/                   0x3F33F349, 0xCC7267D0,
+/**/                   0xBFD61965, 0xCDB03000,
+/**/                   0x3D2F08AD, 0x603C488E,
+/**/                   0x3FF69000, 0x00000000,
+/**/                   0x3F3473A8, 0x8D0BFD2E,
+/**/                   0xBFD602D0, 0x8AF09000,
+/**/                   0xBD1EBE91, 0x76DF3F65,
+/**/                   0x3FF68800, 0x00000000,
+/**/                   0x3F354DD2, 0x390B9ED0,
+/**/                   0xBFD5EC43, 0x3D5C3000,
+/**/                   0xBD36B71A, 0x1229D17F,
+/**/                   0x3FF68000, 0x00000000,
+/**/                   0x3F368168, 0x16816817,
+/**/                   0xBFD5D5BD, 0xDF596000,
+/**/                   0x3D0A0B2A, 0x08A465DC,
+/**/                   0x3FF67800, 0x00000000,
+/**/                   0x3F380E0B, 0xF08C7765,
+/**/                   0xBFD5BF40, 0x6B544000,
+/**/                   0x3D227023, 0xEB68981C,
+/**/                   0x3FF67000, 0x00000000,
+/**/                   0x3F39F360, 0x16719F36,
+/**/                   0xBFD5A8CA, 0xDBBEE000,
+/**/                   0x3CF7C79B, 0x0AF7ECF8,
+/**/                   0x3FF66800, 0x00000000,
+/**/                   0x3F3C3107, 0x5AB40167,
+/**/                   0xBFD5925D, 0x2B113000,
+/**/                   0x3D369BF5, 0xA7A56F34,
+/**/                   0x3FF66000, 0x00000000,
+/**/                   0x3F3EC6A5, 0x122F9016,
+/**/                   0xBFD57BF7, 0x53C8D000,
+/**/                   0xBD1FADED, 0xEE5D40EF,
+/**/                   0x3FF65C00, 0x00000000,
+/**/                   0xBF3E4C22, 0xECCA9097,
+/**/                   0xBFD56599, 0x50695000,
+/**/                   0xBD14C5FD, 0x2BADC774,
+/**/                   0x3FF65400, 0x00000000,
+/**/                   0xBF3B07AC, 0x4B55CC62,
+/**/                   0xBFD54F43, 0x1B7BE000,
+/**/                   0xBD1A8954, 0xC0910952,
+/**/                   0x3FF64C00, 0x00000000,
+/**/                   0xBF376C52, 0x32DA090E,
+/**/                   0xBFD538F4, 0xAF8F7000,
+/**/                   0xBD27EC02, 0xE45547CE,
+/**/                   0x3FF64400, 0x00000000,
+/**/                   0xBF337A6F, 0x4DE9BD38,
+/**/                   0xBFD522AE, 0x0738A000,
+/**/                   0xBD2EBE70, 0x8164C759,
+/**/                   0x3FF63C00, 0x00000000,
+/**/                   0xBF2E64BB, 0x923C708B,
+/**/                   0xBFD50C6F, 0x1D11C000,
+/**/                   0x3D3A0E6B, 0x7E827C2C,
+/**/                   0x3FF63400, 0x00000000,
+/**/                   0xBF2528EE, 0xA7E43FD4,
+/**/                   0xBFD4F637, 0xEBBAA000,
+/**/                   0x3D3FC158, 0xCB3124B9,
+/**/                   0x3FF62C00, 0x00000000,
+/**/                   0xBF168454, 0x86689DF7,
+/**/                   0xBFD4E008, 0x6DD8C000,
+/**/                   0x3D34D692, 0xA1E44788,
+/**/                   0x3FF62400, 0x00000000,
+/**/                   0xBED623FA, 0x77016240,
+/**/                   0xBFD4C9E0, 0x9E173000,
+/**/                   0x3D2E2089, 0x1B0AD8A4,
+/**/                   0x3FF61C00, 0x00000000,
+/**/                   0x3F151300, 0x58715130,
+/**/                   0xBFD4B3C0, 0x77268000,
+/**/                   0x3D165B46, 0x81052B9F,
+/**/                   0x3FF61400, 0x00000000,
+/**/                   0x3F266D06, 0x35D2754E,
+/**/                   0xBFD49DA7, 0xF3BCC000,
+/**/                   0xBD307B33, 0x4DAF4B9A,
+/**/                   0x3FF60C00, 0x00000000,
+/**/                   0x3F317C61, 0xDA197F23,
+/**/                   0xBFD48797, 0x0E958000,
+/**/                   0xBD3DC1B8, 0x465CF25F,
+/**/                   0x3FF60400, 0x00000000,
+/**/                   0x3F381605, 0x81605816,
+/**/                   0xBFD4718D, 0xC271C000,
+/**/                   0xBD306C18, 0xFB4C14C5,
+/**/                   0x3FF5FC00, 0x00000000,
+/**/                   0x3F3F0317, 0xB5C6F559,
+/**/                   0xBFD45B8C, 0x0A17E000,
+/**/                   0x3D0D9120, 0xE7D0A853,
+/**/                   0x3FF5F800, 0x00000000,
+/**/                   0xBF39BCBD, 0x6D2041E3,
+/**/                   0xBFD44591, 0xE053A000,
+/**/                   0x3D06E958, 0x92923D88,
+/**/                   0x3FF5F000, 0x00000000,
+/**/                   0xBF3229CF, 0x5604CC40,
+/**/                   0xBFD42F9F, 0x3FF62000,
+/**/                   0xBD390644, 0x0F7D3354,
+/**/                   0x3FF5E800, 0x00000000,
+/**/                   0xBF2488E5, 0xFD431489,
+/**/                   0xBFD419B4, 0x23D5F000,
+/**/                   0x3D3CE379, 0x226DE3EC,
+/**/                   0x3FF5E000, 0x00000000,
+/**/                   0xBF0067E7, 0x6424E9C9,
+/**/                   0xBFD403D0, 0x86CEA000,
+/**/                   0xBD3E6EF5, 0x74487308,
+/**/                   0x3FF5D800, 0x00000000,
+/**/                   0x3F19F0FB, 0x38A94D24,
+/**/                   0xBFD3EDF4, 0x63C17000,
+/**/                   0x3D3F067C, 0x297F2C3F,
+/**/                   0x3FF5D000, 0x00000000,
+/**/                   0x3F2EADD9, 0x23CAD2AA,
+/**/                   0xBFD3D81F, 0xB5947000,
+/**/                   0x3D222C7C, 0x2A9D37A4,
+/**/                   0x3FF5C800, 0x00000000,
+/**/                   0x3F3882B9, 0x31057262,
+/**/                   0xBFD3C252, 0x77333000,
+/**/                   0xBD183B54, 0xB606BD5C,
+/**/                   0x3FF5C400, 0x00000000,
+/**/                   0xBF3E00AE, 0x10FFA8F8,
+/**/                   0xBFD3AC8C, 0xA38E6000,
+/**/                   0x3D2D0BEF, 0xBC02BE4A,
+/**/                   0x3FF5BC00, 0x00000000,
+/**/                   0xBF34339B, 0x8056EAF3,
+/**/                   0xBFD396CE, 0x359BC000,
+/**/                   0x3D05839C, 0x5663663D,
+/**/                   0x3FF5B400, 0x00000000,
+/**/                   0xBF242CC1, 0xF31D7FD5,
+/**/                   0xBFD38117, 0x28565000,
+/**/                   0x3D2A71E4, 0x93A0702B,
+/**/                   0x3FF5AC00, 0x00000000,
+/**/                   0x3ED5AC05, 0x6B015AC0,
+/**/                   0xBFD36B67, 0x76BE1000,
+/**/                   0xBD116ECD, 0xB0F177C8,
+/**/                   0x3FF5A400, 0x00000000,
+/**/                   0x3F26268D, 0x5BA55E5A,
+/**/                   0xBFD355BF, 0x1BD83000,
+/**/                   0x3D2BA99B, 0x8964F0E8,
+/**/                   0x3FF59C00, 0x00000000,
+/**/                   0x3F361F12, 0x3CCAA376,
+/**/                   0xBFD3401E, 0x12AED000,
+/**/                   0x3D317C73, 0x556E291D,
+/**/                   0x3FF59800, 0x00000000,
+/**/                   0xBF3E863D, 0x62D32417,
+/**/                   0xBFD32A84, 0x56512000,
+/**/                   0xBD04F928, 0x139AF5D6,
+/**/                   0x3FF59000, 0x00000000,
+/**/                   0xBF32DCF7, 0xEA712DCF,
+/**/                   0xBFD314F1, 0xE1D36000,
+/**/                   0x3D28E27A, 0xD3213CB8,
+/**/                   0x3FF58800, 0x00000000,
+/**/                   0xBF1B95B2, 0xA0CC87E8,
+/**/                   0xBFD2FF66, 0xB04EB000,
+/**/                   0x3D38AED2, 0x541E6E2E,
+/**/                   0x3FF58000, 0x00000000,
+/**/                   0x3F158056, 0x01580560,
+/**/                   0xBFD2E9E2, 0xBCE12000,
+/**/                   0xBD24300C, 0x128D1DC2,
+/**/                   0x3FF57800, 0x00000000,
+/**/                   0x3F31F340, 0x15791F34,
+/**/                   0xBFD2D466, 0x02ADD000,
+/**/                   0x3D288D0D, 0xDCD54196,
+/**/                   0x3FF57000, 0x00000000,
+/**/                   0x3F3ED3C5, 0x06B39A23,
+/**/                   0xBFD2BEF0, 0x7CDC9000,
+/**/                   0xBD2A9CFA, 0x4A5004F4,
+/**/                   0x3FF56C00, 0x00000000,
+/**/                   0xBF33FEA9, 0x53FEA954,
+/**/                   0xBFD2A982, 0x269A4000,
+/**/                   0x3D22058E, 0x557285CF,
+/**/                   0x3FF56400, 0x00000000,
+/**/                   0xBF1A1160, 0xEB478503,
+/**/                   0xBFD2941A, 0xFB187000,
+/**/                   0x3D3210C2, 0xB730E28B,
+/**/                   0x3FF55C00, 0x00000000,
+/**/                   0x3F1D09AD, 0xE4A18B2E,
+/**/                   0xBFD27EBA, 0xF58D9000,
+/**/                   0x3D2B1988, 0x00B4BDA7,
+/**/                   0x3FF55400, 0x00000000,
+/**/                   0x3F355555, 0x55555555,
+/**/                   0xBFD26962, 0x1134E000,
+/**/                   0x3D31B61F, 0x10522625,
+/**/                   0x3FF55000, 0x00000000,
+/**/                   0xBF3C4BE6, 0xB319A21F,
+/**/                   0xBFD25410, 0x494E5000,
+/**/                   0xBD3B1D7A, 0xC0EF77F2,
+/**/                   0x3FF54800, 0x00000000,
+/**/                   0xBF2B4328, 0x8FA03FD5,
+/**/                   0xBFD23EC5, 0x991EC000,
+/**/                   0x3D36DBE4, 0x48A2E522,
+/**/                   0x3FF54000, 0x00000000,
+/**/                   0x3EF54015, 0x40154015,
+/**/                   0xBFD22981, 0xFBEF8000,
+/**/                   0x3D3A1421, 0x609580DA,
+/**/                   0x3FF53800, 0x00000000,
+/**/                   0x3F30948F, 0x40FEAC6F,
+/**/                   0xBFD21445, 0x6D0EC000,
+/**/                   0x3D3CAF04, 0x28B728A3,
+/**/                   0x3FF53400, 0x00000000,
+/**/                   0xBF3FE034, 0xFD04F7B8,
+/**/                   0xBFD1FF0F, 0xE7CF4000,
+/**/                   0xBD3E9D5B, 0x513FF0C1,
+/**/                   0x3FF52C00, 0x00000000,
+/**/                   0xBF300A95, 0x7FAB5403,
+/**/                   0xBFD1E9E1, 0x6788A000,
+/**/                   0x3D382EAE, 0xD3C8B65E,
+/**/                   0x3FF52400, 0x00000000,
+/**/                   0x3EB52401, 0x52401524,
+/**/                   0xBFD1D4B9, 0xE796C000,
+/**/                   0xBD222A66, 0x7C42E56D,
+/**/                   0x3FF51C00, 0x00000000,
+/**/                   0x3F307EAE, 0x2F8151D0,
+/**/                   0xBFD1BF99, 0x635A7000,
+/**/                   0x3D31AC89, 0x575C2125,
+/**/                   0x3FF51800, 0x00000000,
+/**/                   0xBF3ECE3F, 0xEAE9ECE4,
+/**/                   0xBFD1AA7F, 0xD638D000,
+/**/                   0xBD29F60A, 0x9616F7A0,
+/**/                   0x3FF51000, 0x00000000,
+/**/                   0xBF2BA3DD, 0xC7675243,
+/**/                   0xBFD1956D, 0x3B9BC000,
+/**/                   0xBD27D2F7, 0x3AD1AA14,
+/**/                   0x3FF50800, 0x00000000,
+/**/                   0x3F0B9AC8, 0x764E368D,
+/**/                   0xBFD18061, 0x8EF19000,
+/**/                   0x3D3482FF, 0xC86D38E5,
+/**/                   0x3FF50000, 0x00000000,
+/**/                   0x3F350150, 0x15015015,
+/**/                   0xBFD16B5C, 0xCBAD0000,
+/**/                   0x3D323299, 0x042D74BF,
+/**/                   0x3FF4FC00, 0x00000000,
+/**/                   0xBF392851, 0x4A683C50,
+/**/                   0xBFD1565E, 0xED456000,
+/**/                   0x3CEE75AD, 0xFB6ABA25,
+/**/                   0x3FF4F400, 0x00000000,
+/**/                   0xBF1C2748, 0xACD95EF0,
+/**/                   0xBFD14167, 0xEF367000,
+/**/                   0xBD3E0C07, 0x824DAAF5,
+/**/                   0x3FF4EC00, 0x00000000,
+/**/                   0x3F26B90D, 0x67A47465,
+/**/                   0xBFD12C77, 0xCD007000,
+/**/                   0xBD13B294, 0x8A11F797,
+/**/                   0x3FF4E400, 0x00000000,
+/**/                   0x3F3E0A72, 0xF0539783,
+/**/                   0xBFD1178E, 0x8227E000,
+/**/                   0xBD31EF78, 0xCE2D07F2,
+/**/                   0x3FF4E000, 0x00000000,
+/**/                   0xBF2E00A6, 0xF87FD642,
+/**/                   0xBFD102AC, 0x0A35D000,
+/**/                   0x3D2F1FBD, 0xDFDFD686,
+/**/                   0x3FF4D800, 0x00000000,
+/**/                   0x3F10EFB7, 0x0B12E3FD,
+/**/                   0xBFD0EDD0, 0x60B78000,
+/**/                   0xBD0019B5, 0x2D8435F5,
+/**/                   0x3FF4D000, 0x00000000,
+/**/                   0x3F37BEF1, 0x5CB4DBE5,
+/**/                   0xBFD0D8FB, 0x813EB000,
+/**/                   0xBD1EE8C8, 0x8753FA35,
+/**/                   0x3FF4CC00, 0x00000000,
+/**/                   0xBF34778D, 0xA50918B1,
+/**/                   0xBFD0C42D, 0x67616000,
+/**/                   0xBD27188B, 0x163CEAE9,
+/**/                   0x3FF4C400, 0x00000000,
+/**/                   0xBED9F4F7, 0xE37288EC,
+/**/                   0xBFD0AF66, 0x0EB9E000,
+/**/                   0xBD23C7C3, 0xF528D80A,
+/**/                   0x3FF4BC00, 0x00000000,
+/**/                   0x3F33EDDA, 0x68FE0E42,
+/**/                   0xBFD09AA5, 0x72E6C000,
+/**/                   0xBD3B50A1, 0xE1734342,
+/**/                   0x3FF4B800, 0x00000000,
+/**/                   0xBF3776C6, 0xB72E47D9,
+/**/                   0xBFD085EB, 0x8F8AE000,
+/**/                   0xBD3E5D51, 0x3F45FE7B,
+/**/                   0x3FF4B000, 0x00000000,
+/**/                   0xBF04AFD6, 0xA052BF5B,
+/**/                   0xBFD07138, 0x604D6000,
+/**/                   0x3D3E7632, 0x4E912B17,
+/**/                   0x3FF4A800, 0x00000000,
+/**/                   0x3F328FFA, 0xD5B5C015,
+/**/                   0xBFD05C8B, 0xE0D96000,
+/**/                   0xBD2AD0F1, 0xC77CCB58,
+/**/                   0x3FF4A400, 0x00000000,
+/**/                   0xBF380528, 0x9FEB5D80,
+/**/                   0xBFD047E6, 0x0CDE8000,
+/**/                   0xBD2DBDF1, 0x0D397F3C,
+/**/                   0x3FF49C00, 0x00000000,
+/**/                   0xBF02AD3E, 0x25FF5B21,
+/**/                   0xBFD03346, 0xE0106000,
+/**/                   0xBCF89FF8, 0xA966395C,
+/**/                   0x3FF49400, 0x00000000,
+/**/                   0x3F339E3B, 0x2D066EA2,
+/**/                   0xBFD01EAE, 0x5626C000,
+/**/                   0xBD3A43DC, 0xFADE85AE,
+/**/                   0x3FF49000, 0x00000000,
+/**/                   0xBF3629C1, 0xAFB2E932,
+/**/                   0xBFD00A1C, 0x6ADDA000,
+/**/                   0xBD31CD8D, 0x688B9E18,
+/**/                   0x3FF48800, 0x00000000,
+/**/                   0x3ED48805, 0x22014880,
+/**/                   0xBFCFEB22, 0x33EA0000,
+/**/                   0xBD2F3418, 0xDE00938B,
+/**/                   0x3FF48000, 0x00000000,
+/**/                   0x3F37119F, 0x3D324D89,
+/**/                   0xBFCFC218, 0xBE620000,
+/**/                   0xBD34BBA4, 0x6F1CF6A0,
+/**/                   0x3FF47C00, 0x00000000,
+/**/                   0xBF31EB85, 0x1EB851EC,
+/**/                   0xBFCF991C, 0x6CB3C000,
+/**/                   0x3D390D04, 0xCD7CC834,
+/**/                   0x3FF47400, 0x00000000,
+/**/                   0x3F1569C9, 0xAAFC7C01,
+/**/                   0xBFCF702D, 0x36778000,
+/**/                   0x3D108195, 0x16673E23,
+/**/                   0x3FF46C00, 0x00000000,
+/**/                   0x3F3CE345, 0x96066250,
+/**/                   0xBFCF474B, 0x134E0000,
+/**/                   0x3D3BAE49, 0xF1DF7B5E,
+/**/                   0x3FF46800, 0x00000000,
+/**/                   0xBF26A297, 0x1D02DE87,
+/**/                   0xBFCF1E75, 0xFADFA000,
+/**/                   0x3D20862B, 0x25D83F6D,
+/**/                   0x3FF46000, 0x00000000,
+/**/                   0x3F2978FE, 0xB9F34381,
+/**/                   0xBFCEF5AD, 0xE4DD0000,
+/**/                   0x3CCA2115, 0x65BB8E11,
+/**/                   0x3FF45C00, 0x00000000,
+/**/                   0xBF3AF398, 0xF6C71366,
+/**/                   0xBFCECCF2, 0xC8FEA000,
+/**/                   0x3D3BEC63, 0xA3E75640,
+/**/                   0x3FF45400, 0x00000000,
+/**/                   0xBF030E9C, 0x449AFF5D,
+/**/                   0xBFCEA444, 0x9F04A000,
+/**/                   0xBD35E916, 0x63732A36,
+/**/                   0x3FF44C00, 0x00000000,
+/**/                   0x3F367190, 0xF8B42EF3,
+/**/                   0xBFCE7BA3, 0x5EB78000,
+/**/                   0x3D0D5EEE, 0x23793649,
+/**/                   0x3FF44800, 0x00000000,
+/**/                   0xBF3079A9, 0xD260511C,
+/**/                   0xBFCE530E, 0xFFE72000,
+/**/                   0x3D3FDBDB, 0xB13F7C18,
+/**/                   0x3FF44000, 0x00000000,
+/**/                   0x3F21B87C, 0x0B644FBE,
+/**/                   0xBFCE2A87, 0x7A6B2000,
+/**/                   0xBD382381, 0x7787081A,
+/**/                   0x3FF43C00, 0x00000000,
+/**/                   0xBF3D8CF5, 0x411B2E25,
+/**/                   0xBFCE020C, 0xC6236000,
+/**/                   0x3D252B00, 0xADB91424,
+/**/                   0x3FF43400, 0x00000000,
+/**/                   0xBF0DAC08, 0xD6A60978,
+/**/                   0xBFCDD99E, 0xDAF6E000,
+/**/                   0x3D302EC6, 0x69C756EB,
+/**/                   0x3FF42C00, 0x00000000,
+/**/                   0x3F36625D, 0x51F86EFA,
+/**/                   0xBFCDB13D, 0xB0D48000,
+/**/                   0xBD32806A, 0x847527E6,
+/**/                   0x3FF42800, 0x00000000,
+/**/                   0xBF2E8B2D, 0xA8766564,
+/**/                   0xBFCD88E9, 0x3FB30000,
+/**/                   0x3D375F28, 0x0234BF51,
+/**/                   0x3FF42000, 0x00000000,
+/**/                   0x3F26A4CB, 0xCB2A247B,
+/**/                   0xBFCD60A1, 0x7F904000,
+/**/                   0x3D35D6E0, 0x6FC20D39,
+/**/                   0x3FF41C00, 0x00000000,
+/**/                   0xBF39D5E8, 0xC17DF552,
+/**/                   0xBFCD3866, 0x68720000,
+/**/                   0x3D373650, 0xB38932BC,
+/**/                   0x3FF41400, 0x00000000,
+/**/                   0x3EF41414, 0x14141414,
+/**/                   0xBFCD1037, 0xF2656000,
+/**/                   0x3D084A7E, 0x75B6F6E4,
+/**/                   0x3FF40C00, 0x00000000,
+/**/                   0x3F3C97A8, 0x43AE87FD,
+/**/                   0xBFCCE816, 0x157F2000,
+/**/                   0x3D29E0AB, 0xA2099515,
+/**/                   0x3FF40800, 0x00000000,
+/**/                   0xBF1F4BBC, 0x66A67E6F,
+/**/                   0xBFCCC000, 0xC9DB4000,
+/**/                   0x3D1D6D58, 0x5D57AFF9,
+/**/                   0x3FF40000, 0x00000000,
+/**/                   0x3F340140, 0x14014014,
+/**/                   0xBFCC97F8, 0x079D4000,
+/**/                   0xBD23B161, 0xA8C6E6C5,
+/**/                   0x3FF3FC00, 0x00000000,
+/**/                   0xBF2FD809, 0xFD809FD8,
+/**/                   0xBFCC6FFB, 0xC6F00000,
+/**/                   0xBD3EE138, 0xD3A69D43,
+/**/                   0x3FF3F400, 0x00000000,
+/**/                   0x3F28CA0E, 0x57EE89D2,
+/**/                   0xBFCC480C, 0x0005C000,
+/**/                   0xBD39A294, 0xD5E44E76,
+/**/                   0x3FF3F000, 0x00000000,
+/**/                   0xBF370BD5, 0xA50F9260,
+/**/                   0xBFCC2028, 0xAB180000,
+/**/                   0x3D292E0E, 0xE55C7AC6,
+/**/                   0x3FF3E800, 0x00000000,
+/**/                   0x3F1704AA, 0x75945FCE,
+/**/                   0xBFCBF851, 0xC0676000,
+/**/                   0x3D35420E, 0x4C0854AD,
+/**/                   0x3FF3E400, 0x00000000,
+/**/                   0xBF3D3431, 0xB56FD83C,
+/**/                   0xBFCBD087, 0x383BE000,
+/**/                   0x3D2D4BC4, 0x595412B6,
+/**/                   0x3FF3DC00, 0x00000000,
+/**/                   0x3EB3DC01, 0x3DC013DC,
+/**/                   0xBFCBA8C9, 0x0AE4A000,
+/**/                   0xBD3A32E7, 0xF44432DA,
+/**/                   0x3FF3D400, 0x00000000,
+/**/                   0x3F3D991A, 0xA75C5BBD,
+/**/                   0xBFCB8117, 0x30B82000,
+/**/                   0xBD1E9068, 0x3B9CD768,
+/**/                   0x3FF3D000, 0x00000000,
+/**/                   0xBF1292BA, 0x59C52F5D,
+/**/                   0xBFCB5971, 0xA213A000,
+/**/                   0xBD39B50E, 0x83AA91DF,
+/**/                   0x3FF3C800, 0x00000000,
+/**/                   0x3F395A47, 0xBABE7440,
+/**/                   0xBFCB31D8, 0x575BC000,
+/**/                   0xBD3C794E, 0x562A63CB,
+/**/                   0x3FF3C400, 0x00000000,
+/**/                   0xBF20D475, 0x58A0943A,
+/**/                   0xBFCB0A4B, 0x48FC2000,
+/**/                   0x3D22E72D, 0x5C3998ED,
+/**/                   0x3FF3BC00, 0x00000000,
+/**/                   0x3F360D92, 0x3295482C,
+/**/                   0xBFCAE2CA, 0x6F672000,
+/**/                   0xBD37A8D5, 0xAE54F550,
+/**/                   0x3FF3B800, 0x00000000,
+/**/                   0xBF267D12, 0xCAB48651,
+/**/                   0xBFCABB55, 0xC316A000,
+/**/                   0x3D38A65A, 0xCAF14CD8,
+/**/                   0x3FF3B000, 0x00000000,
+/**/                   0x3F33B13B, 0x13B13B14,
+/**/                   0xBFCA93ED, 0x3C8AE000,
+/**/                   0x3D287243, 0x50562169,
+/**/                   0x3FF3AC00, 0x00000000,
+/**/                   0xBF2A46AF, 0x2C8FD3BF,
+/**/                   0xBFCA6C90, 0xD44B8000,
+/**/                   0x3D3F63B7, 0xF037B0C6,
+/**/                   0x3FF3A400, 0x00000000,
+/**/                   0x3F324387, 0xAC822610,
+/**/                   0xBFCA4540, 0x82E6A000,
+/**/                   0xBD360A77, 0xC81F7171,
+/**/                   0x3FF3A000, 0x00000000,
+/**/                   0xBF2C34BB, 0xA1923DEE,
+/**/                   0xBFCA1DFC, 0x40F1C000,
+/**/                   0x3D301E0F, 0x004F3781,
+/**/                   0x3FF39800, 0x00000000,
+/**/                   0x3F31C2C1, 0x87F63372,
+/**/                   0xBFC9F6C4, 0x0708A000,
+/**/                   0x3D3337D9, 0x4BCD3F43,
+/**/                   0x3FF39400, 0x00000000,
+/**/                   0xBF2C4AA0, 0xE11BD52E,
+/**/                   0xBFC9CF97, 0xCDCE0000,
+/**/                   0xBD3D862F, 0x10C414E3,
+/**/                   0x3FF38C00, 0x00000000,
+/**/                   0x3F322D36, 0x6088DBF4,
+/**/                   0xBFC9A877, 0x8DEBA000,
+/**/                   0xBD3470FA, 0x3EFEC390,
+/**/                   0x3FF38800, 0x00000000,
+/**/                   0xBF2A8BBF, 0x503F774E,
+/**/                   0xBFC98163, 0x4011A000,
+/**/                   0xBD34EADD, 0x9E9045E2,
+/**/                   0x3FF38000, 0x00000000,
+/**/                   0x3F338138, 0x13813814,
+/**/                   0xBFC95A5A, 0xDCF70000,
+/**/                   0xBD07F228, 0x58A0FF6F,
+/**/                   0x3FF37C00, 0x00000000,
+/**/                   0xBF26FB6F, 0x1B177053,
+/**/                   0xBFC9335E, 0x5D594000,
+/**/                   0xBD33115C, 0x3ABD47DA,
+/**/                   0x3FF37400, 0x00000000,
+/**/                   0x3F35BD1C, 0x945EDC20,
+/**/                   0xBFC90C6D, 0xB9FCC000,
+/**/                   0x3D1935F5, 0x7718D7CA,
+/**/                   0x3FF37000, 0x00000000,
+/**/                   0xBF219D00, 0x4DBDCC60,
+/**/                   0xBFC8E588, 0xEBAC2000,
+/**/                   0xBD3B7D5C, 0xAB2D1140,
+/**/                   0x3FF36800, 0x00000000,
+/**/                   0x3F38DF3D, 0xE0747954,
+/**/                   0xBFC8BEAF, 0xEB390000,
+/**/                   0x3D073D54, 0xAAE92CD1,
+/**/                   0x3FF36400, 0x00000000,
+/**/                   0xBF14E775, 0xD9D3C49F,
+/**/                   0xBFC897E2, 0xB17B2000,
+/**/                   0x3D296B37, 0x380CBE9E,
+/**/                   0x3FF35C00, 0x00000000,
+/**/                   0x3F3CE5F9, 0xF2AF821E,
+/**/                   0xBFC87121, 0x3750E000,
+/**/                   0xBD3328EB, 0x42F9AF75,
+/**/                   0x3FF35800, 0x00000000,
+/**/                   0xBEE82DF0, 0xE34971F2,
+/**/                   0xBFC84A6B, 0x759F6000,
+/**/                   0x3D3DA280, 0x2ADF8609,
+/**/                   0x3FF35400, 0x00000000,
+/**/                   0xBF3E304D, 0x4873ECAE,
+/**/                   0xBFC823C1, 0x6551A000,
+/**/                   0xBD1E0DDB, 0x9A631E83,
+/**/                   0x3FF34C00, 0x00000000,
+/**/                   0x3F1264B6, 0x1FF659DB,
+/**/                   0xBFC7FD22, 0xFF59A000,
+/**/                   0x3D158BEB, 0xF457B7D2,
+/**/                   0x3FF34800, 0x00000000,
+/**/                   0xBF386531, 0xFECB9865,
+/**/                   0xBFC7D690, 0x3CAF6000,
+/**/                   0x3D24C06B, 0x17C301D7,
+/**/                   0x3FF34000, 0x00000000,
+/**/                   0x3F25A8C2, 0xEEDA65AE,
+/**/                   0xBFC7B009, 0x16516000,
+/**/                   0x3D3AE75F, 0xCB067E57,
+/**/                   0x3FF33C00, 0x00000000,
+/**/                   0xBF31BA4A, 0x8434E1F4,
+/**/                   0xBFC7898D, 0x85444000,
+/**/                   0xBD38E67B, 0xE3DBAF3F,
+/**/                   0x3FF33400, 0x00000000,
+/**/                   0x3F31EE97, 0xDBFC660A,
+/**/                   0xBFC7631D, 0x82936000,
+/**/                   0x3D25E77D, 0xC7C5F3E1,
+/**/                   0x3FF33000, 0x00000000,
+/**/                   0xBF246252, 0xBC40BFDA,
+/**/                   0xBFC73CB9, 0x074FE000,
+/**/                   0x3D3D66A9, 0x0D0005A6,
+/**/                   0x3FF32800, 0x00000000,
+/**/                   0x3F39E640, 0x13299E64,
+/**/                   0xBFC71660, 0x0C914000,
+/**/                   0xBCE51B15, 0x7CEC3838,
+/**/                   0x3FF32400, 0x00000000,
+/**/                   0xBEFCB5D4, 0xEF40991F,
+/**/                   0xBFC6F012, 0x8B756000,
+/**/                   0xBD357739, 0x0D31EF0F,
+/**/                   0x3FF32000, 0x00000000,
+/**/                   0xBF3D4632, 0xC823D892,
+/**/                   0xBFC6C9D0, 0x7D204000,
+/**/                   0x3CDC73FA, 0xFD9B2DCA,
+/**/                   0x3FF31800, 0x00000000,
+/**/                   0x3F1DD63A, 0x7AED804C,
+/**/                   0xBFC6A399, 0xDABBE000,
+/**/                   0x3D38F934, 0xE66A15A6,
+/**/                   0x3FF31400, 0x00000000,
+/**/                   0xBF339849, 0xE8C11E1A,
+/**/                   0xBFC67D6E, 0x9D786000,
+/**/                   0x3D311E88, 0x30A706D3,
+/**/                   0x3FF30C00, 0x00000000,
+/**/                   0x3F319013, 0x0D190131,
+/**/                   0xBFC6574E, 0xBE8C2000,
+/**/                   0x3D398C1D, 0x34F0F462,
+/**/                   0x3FF30800, 0x00000000,
+/**/                   0xBF222315, 0xB47A7FDA,
+/**/                   0xBFC6313A, 0x37336000,
+/**/                   0x3D144DF5, 0x4F21EA6D,
+/**/                   0x3FF30000, 0x00000000,
+/**/                   0x3F3C82AC, 0x40260390,
+/**/                   0xBFC60B31, 0x00B0A000,
+/**/                   0x3D371456, 0xC988F814,
+/**/                   0x3FF2FC00, 0x00000000,
+/**/                   0x3F026443, 0xA2430A62,
+/**/                   0xBFC5E533, 0x144C2000,
+/**/                   0x3D31CE0B, 0xF3B290EA,
+/**/                   0x3FF2F800, 0x00000000,
+/**/                   0xBF37B425, 0xED097B42,
+/**/                   0xBFC5BF40, 0x6B544000,
+/**/                   0x3D127023, 0xEB68981C,
+/**/                   0x3FF2F000, 0x00000000,
+/**/                   0x3F2D00E3, 0x4AE0553C,
+/**/                   0xBFC59958, 0xFF1D6000,
+/**/                   0x3D3A1D05, 0x9769CA05,
+/**/                   0x3FF2EC00, 0x00000000,
+/**/                   0xBF262BC0, 0x25D69D44,
+/**/                   0xBFC5737C, 0xC9018000,
+/**/                   0xBD39BAA7, 0xA6B887F6,
+/**/                   0x3FF2E400, 0x00000000,
+/**/                   0x3F3B88B5, 0xE3103D6B,
+/**/                   0xBFC54DAB, 0xC2610000,
+/**/                   0xBD2746FE, 0xE5C8D0D8,
+/**/                   0x3FF2E000, 0x00000000,
+/**/                   0x3F02E025, 0xC04B8097,
+/**/                   0xBFC527E5, 0xE4A1C000,
+/**/                   0x3D34E60B, 0x8D4B411D,
+/**/                   0x3FF2DC00, 0x00000000,
+/**/                   0xBF369C22, 0x2C305021,
+/**/                   0xBFC5022B, 0x292F6000,
+/**/                   0xBD348A05, 0xFF36A25B,
+/**/                   0x3FF2D400, 0x00000000,
+/**/                   0x3F30A012, 0xD50A012D,
+/**/                   0xBFC4DC7B, 0x897BC000,
+/**/                   0xBD0C79B6, 0x0AE1FF0F,
+/**/                   0x3FF2D000, 0x00000000,
+/**/                   0xBF1FBE29, 0xBC66484E,
+/**/                   0xBFC4B6D6, 0xFEFE2000,
+/**/                   0xBD1522EC, 0xF56E7952,
+/**/                   0x3FF2C800, 0x00000000,
+/**/                   0x3F3FB4D8, 0x12C9FB4E,
+/**/                   0xBFC4913D, 0x8333C000,
+/**/                   0x3D353E43, 0x558124C4,
+/**/                   0x3FF2C400, 0x00000000,
+/**/                   0x3F1E3432, 0x7004B11E,
+/**/                   0xBFC46BAF, 0x0F9F6000,
+/**/                   0x3D1249CD, 0x0790841A,
+/**/                   0x3FF2C000, 0x00000000,
+/**/                   0xBF30671A, 0x5C8EF02F,
+/**/                   0xBFC4462B, 0x9DC9C000,
+/**/                   0x3D384858, 0xA711B062,
+/**/                   0x3FF2B800, 0x00000000,
+/**/                   0x3F37D835, 0xD548D9AC,
+/**/                   0xBFC420B3, 0x27410000,
+/**/                   0x3D116282, 0xC85A0884,
+/**/                   0x3FF2B400, 0x00000000,
+/**/                   0x3ED2B404, 0xAD012B40,
+/**/                   0xBFC3FB45, 0xA5992000,
+/**/                   0xBD319713, 0xC0CAE559,
+/**/                   0x3FF2B000, 0x00000000,
+/**/                   0xBF370F78, 0x8E7302A1,
+/**/                   0xBFC3D5E3, 0x126BC000,
+/**/                   0xBD13FB2F, 0x85096C4B,
+/**/                   0x3FF2A800, 0x00000000,
+/**/                   0x3F31C92F, 0x3C1053F9,
+/**/                   0xBFC3B08B, 0x67580000,
+/**/                   0x3D3AADE8, 0xF29320FB,
+/**/                   0x3FF2A400, 0x00000000,
+/**/                   0xBF14AD94, 0x3DBE2E04,
+/**/                   0xBFC38B3E, 0x9E028000,
+/**/                   0x3D370EF0, 0x545C17F9,
+/**/                   0x3FF2A000, 0x00000000,
+/**/                   0xBF3BED61, 0xBED61BED,
+/**/                   0xBFC365FC, 0xB015A000,
+/**/                   0x3D3FD3A0, 0xAFB9691B,
+/**/                   0x3FF29800, 0x00000000,
+/**/                   0x3F2B061A, 0x26F004A6,
+/**/                   0xBFC340C5, 0x97412000,
+/**/                   0x3D37A3DC, 0xF7D9D386,
+/**/                   0x3FF29400, 0x00000000,
+/**/                   0xBF21B488, 0xFF6B646D,
+/**/                   0xBFC31B99, 0x4D3A4000,
+/**/                   0xBD3F098E, 0xE3A50810,
+/**/                   0x3FF29000, 0x00000000,
+/**/                   0xBF3F0582, 0x2CA5D5AC,
+/**/                   0xBFC2F677, 0xCBBC0000,
+/**/                   0xBD352B30, 0x2160F40D,
+/**/                   0x3FF28800, 0x00000000,
+/**/                   0x3F260251, 0x16025116,
+/**/                   0xBFC2D161, 0x0C868000,
+/**/                   0xBD039D6C, 0xCB81B4A1,
+/**/                   0x3FF28400, 0x00000000,
+/**/                   0xBF258CDF, 0x502065D2,
+/**/                   0xBFC2AC55, 0x095F6000,
+/**/                   0x3D1D3466, 0xD0C6C8A8,
+/**/                   0x3FF27C00, 0x00000000,
+/**/                   0x3F3FA38A, 0x1CE4D6F8,
+/**/                   0xBFC28753, 0xBC11A000,
+/**/                   0xBD37494E, 0x359302E6,
+/**/                   0x3FF27800, 0x00000000,
+/**/                   0x3F247DD5, 0xDCCA0781,
+/**/                   0xBFC2625D, 0x1E6DE000,
+/**/                   0x3CF52962, 0xF09E3D82,
+/**/                   0x3FF27400, 0x00000000,
+/**/                   0xBF25E8EF, 0xDB195E8F,
+/**/                   0xBFC23D71, 0x2A49C000,
+/**/                   0xBD100D23, 0x8FD3DF5C,
+/**/                   0x3FF27000, 0x00000000,
+/**/                   0xBF3FF6C8, 0xFFB647FE,
+/**/                   0xBFC2188F, 0xD9808000,
+/**/                   0x3D3B3A1E, 0x7F50C701,
+/**/                   0x3FF26800, 0x00000000,
+/**/                   0x3F266F9A, 0xC024D167,
+/**/                   0xBFC1F3B9, 0x25F26000,
+/**/                   0x3D15F74E, 0x9B083633,
+/**/                   0x3FF26400, 0x00000000,
+/**/                   0xBF22D1BD, 0xEABD0E14,
+/**/                   0xBFC1CEED, 0x09854000,
+/**/                   0x3D315C1C, 0x39192AF9,
+/**/                   0x3FF26000, 0x00000000,
+/**/                   0xBF3DD8F7, 0xF6D0EEC8,
+/**/                   0xBFC1AA2B, 0x7E240000,
+/**/                   0x3D31AC38, 0xDDE3B366,
+/**/                   0x3FF25800, 0x00000000,
+/**/                   0x3F2BCEB1, 0x2A241EF6,
+/**/                   0xBFC18574, 0x7DBEC000,
+/**/                   0xBD3E6744, 0x45BD9B49,
+/**/                   0x3FF25400, 0x00000000,
+/**/                   0xBF18A05B, 0xA21378D7,
+/**/                   0xBFC160C8, 0x024B2000,
+/**/                   0xBD2EC2D2, 0xA9009E3D,
+/**/                   0x3FF25000, 0x00000000,
+/**/                   0xBF3A076F, 0xD6CFA90C,
+/**/                   0xBFC13C26, 0x05C3A000,
+/**/                   0x3D2CF5FD, 0xD94F6509,
+/**/                   0x3FF24800, 0x00000000,
+/**/                   0x3F324924, 0x92492492,
+/**/                   0xBFC1178E, 0x8227E000,
+/**/                   0xBD21EF78, 0xCE2D07F2,
+/**/                   0x3FF24400, 0x00000000,
+/**/                   0xBEF3682B, 0x6151E899,
+/**/                   0xBFC0F301, 0x717D0000,
+/**/                   0x3D3E09B4, 0x41AE86C5,
+/**/                   0x3FF24000, 0x00000000,
+/**/                   0xBF34868E, 0x89FA4C67,
+/**/                   0xBFC0CE7E, 0xCDCCC000,
+/**/                   0xBD14652D, 0xABFF5447,
+/**/                   0x3FF23800, 0x00000000,
+/**/                   0x3F3858D8, 0x6B11F09F,
+/**/                   0xBFC0AA06, 0x91268000,
+/**/                   0x3D345519, 0xD7032129,
+/**/                   0x3FF23400, 0x00000000,
+/**/                   0x3F159E26, 0xAF37C049,
+/**/                   0xBFC08598, 0xB59E4000,
+/**/                   0x3D27E5DD, 0x7009902C,
+/**/                   0x3FF23000, 0x00000000,
+/**/                   0xBF2AB546, 0x2E076329,
+/**/                   0xBFC06135, 0x354D4000,
+/**/                   0xBD363046, 0x28340EE9,
+/**/                   0x3FF22C00, 0x00000000,
+/**/                   0xBF3FEDD5, 0xFEDD5FEE,
+/**/                   0xBFC03CDC, 0x0A51E000,
+/**/                   0xBD381A9C, 0xF169FC5C,
+/**/                   0x3FF22400, 0x00000000,
+/**/                   0x3F2B5B92, 0x009126D7,
+/**/                   0xBFC0188D, 0x2ECF6000,
+/**/                   0xBD03F965, 0x1CFF9DFE,
+/**/                   0x3FF22000, 0x00000000,
+/**/                   0xBF121FB7, 0x8121FB78,
+/**/                   0xBFBFE891, 0x39DBC000,
+/**/                   0xBD356594, 0xD82F7A82,
+/**/                   0x3FF21C00, 0x00000000,
+/**/                   0xBF368F22, 0x3A459635,
+/**/                   0xBFBFA01C, 0x9DB58000,
+/**/                   0x3D08F351, 0xFA48A730,
+/**/                   0x3FF21400, 0x00000000,
+/**/                   0x3F379804, 0x855E6012,
+/**/                   0xBFBF57BC, 0x7D900000,
+/**/                   0xBD176A6C, 0x9EA8B04E,
+/**/                   0x3FF21000, 0x00000000,
+/**/                   0x3F17B57C, 0x78CD7A37,
+/**/                   0xBFBF0F70, 0xCDD98000,
+/**/                   0xBD32E31F, 0x6C272C1E,
+/**/                   0x3FF20C00, 0x00000000,
+/**/                   0xBF271E73, 0x07E4EF15,
+/**/                   0xBFBEC739, 0x830A0000,
+/**/                   0xBD311FCB, 0xA80CDD10,
+/**/                   0x3FF20800, 0x00000000,
+/**/                   0xBF3CDDEC, 0x49392BA7,
+/**/                   0xBFBE7F16, 0x91A34000,
+/**/                   0x3D32C1C5, 0x9BC77BFA,
+/**/                   0x3FF20000, 0x00000000,
+/**/                   0x3F320120, 0x12012012,
+/**/                   0xBFBE3707, 0xEE304000,
+/**/                   0xBD20F684, 0xE6766ABD,
+/**/                   0x3FF1FC00, 0x00000000,
+/**/                   0x3EF0DC4F, 0xCE8AD1A2,
+/**/                   0xBFBDEF0D, 0x8D468000,
+/**/                   0x3D324750, 0x412E9A74,
+/**/                   0x3FF1F800, 0x00000000,
+/**/                   0xBF2F7047, 0xDC11F704,
+/**/                   0xBFBDA727, 0x63844000,
+/**/                   0xBD1A8940, 0x1FA71733,
+/**/                   0x3FF1F000, 0x00000000,
+/**/                   0x3F3FAF3F, 0x16B6419D,
+/**/                   0xBFBD5F55, 0x65920000,
+/**/                   0xBD30E239, 0xCC185469,
+/**/                   0x3FF1EC00, 0x00000000,
+/**/                   0x3F2E878F, 0xF70985E2,
+/**/                   0xBFBD1797, 0x88218000,
+/**/                   0xBD336433, 0xB5EFBEED,
+/**/                   0x3FF1E800, 0x00000000,
+/**/                   0xBEEF55E4, 0x94D7FDC3,
+/**/                   0xBFBCCFED, 0xBFEE0000,
+/**/                   0xBD33A823, 0x2FE71256,
+/**/                   0x3FF1E400, 0x00000000,
+/**/                   0xBF310C4C, 0x0478BBCF,
+/**/                   0xBFBC8858, 0x01BC4000,
+/**/                   0xBD2646D1, 0xC65AACD3,
+/**/                   0x3FF1DC00, 0x00000000,
+/**/                   0x3F3F0ECB, 0xCB840C49,
+/**/                   0xBFBC40D6, 0x425A4000,
+/**/                   0xBD3CB112, 0x1D1930DD,
+/**/                   0x3FF1D800, 0x00000000,
+/**/                   0x3F2EACE5, 0xC9579074,
+/**/                   0xBFBBF968, 0x769FC000,
+/**/                   0xBD24218C, 0x8D824283,
+/**/                   0x3FF1D400, 0x00000000,
+/**/                   0xBECABDFA, 0xFC60F0AE,
+/**/                   0xBFBBB20E, 0x936D8000,
+/**/                   0x3D368BA8, 0x35459B8E,
+/**/                   0x3FF1D000, 0x00000000,
+/**/                   0xBF2F2A4B, 0xAFDC61F3,
+/**/                   0xBFBB6AC8, 0x8DAD4000,
+/**/                   0xBD3B1BDF, 0xF50225C7,
+/**/                   0x3FF1CC00, 0x00000000,
+/**/                   0xBF3EC8AF, 0xAB802394,
+/**/                   0xBFBB2396, 0x5A530000,
+/**/                   0x3CEFF64E, 0xEA137079,
+/**/                   0x3FF1C400, 0x00000000,
+/**/                   0x3F322FC1, 0xCE058D9B,
+/**/                   0xBFBADC77, 0xEE5B0000,
+/**/                   0x3D3573B2, 0x09C31904,
+/**/                   0x3FF1C000, 0x00000000,
+/**/                   0x3F0AA04F, 0xE0EFA2CF,
+/**/                   0xBFBA956D, 0x3ECAC000,
+/**/                   0xBD3E6379, 0x4C02C4AF,
+/**/                   0x3FF1BC00, 0x00000000,
+/**/                   0xBF26B7F7, 0x225ADFDD,
+/**/                   0xBFBA4E76, 0x40B1C000,
+/**/                   0x3D0E42B6, 0xB94407C8,
+/**/                   0x3FF1B800, 0x00000000,
+/**/                   0xBF39E073, 0x217CD13A,
+/**/                   0xBFBA0792, 0xE9278000,
+/**/                   0x3D0A9CE6, 0xC9AD51BF,
+/**/                   0x3FF1B000, 0x00000000,
+/**/                   0x3F37C67F, 0x2BAE2B21,
+/**/                   0xBFB9C0C3, 0x2D4D4000,
+/**/                   0x3D3AB7C0, 0x9E838668,
+/**/                   0x3FF1AC00, 0x00000000,
+/**/                   0x3F23316E, 0xBD720DCF,
+/**/                   0xBFB97A07, 0x024CC000,
+/**/                   0x3CF8BCC1, 0x732093CE,
+/**/                   0x3FF1A800, 0x00000000,
+/**/                   0xBF11A7B9, 0x611A7B96,
+/**/                   0xBFB9335E, 0x5D594000,
+/**/                   0xBD23115C, 0x3ABD47DA,
+/**/                   0x3FF1A400, 0x00000000,
+/**/                   0xBF324195, 0xA1C1B8E7,
+/**/                   0xBFB8ECC9, 0x33AEC000,
+/**/                   0x3D222F39, 0xBE67F7AA,
+/**/                   0x3FF1A000, 0x00000000,
+/**/                   0xBF3FEE61, 0xFEE61FEE,
+/**/                   0xBFB8A647, 0x7A91C000,
+/**/                   0xBD3C28C0, 0xAF9BD6DF,
+/**/                   0x3FF19800, 0x00000000,
+/**/                   0x3F328F89, 0x362B721D,
+/**/                   0xBFB85FD9, 0x27508000,
+/**/                   0x3D35B818, 0x19970C1C,
+/**/                   0x3FF19400, 0x00000000,
+/**/                   0x3F14E023, 0x28A70119,
+/**/                   0xBFB8197E, 0x2F410000,
+/**/                   0x3D3C0FE4, 0x60D20041,
+/**/                   0x3FF19000, 0x00000000,
+/**/                   0xBF1FD419, 0x3E48FC6F,
+/**/                   0xBFB7D336, 0x87C28000,
+/**/                   0xBD33C88C, 0x3E706706,
+/**/                   0x3FF18C00, 0x00000000,
+/**/                   0xBF34F7C6, 0xFD42546B,
+/**/                   0xBFB78D02, 0x263D8000,
+/**/                   0xBD069B57, 0x94B69FB7,
+/**/                   0x3FF18400, 0x00000000,
+/**/                   0x3F3E2FA4, 0x01185E30,
+/**/                   0xBFB746E1, 0x00228000,
+/**/                   0x3D3126D1, 0x6E1E21D2,
+/**/                   0x3FF18000, 0x00000000,
+/**/                   0x3F318118, 0x11811812,
+/**/                   0xBFB700D3, 0x0AEAC000,
+/**/                   0xBCEC1E8D, 0xA99DED32,
+/**/                   0x3FF17C00, 0x00000000,
+/**/                   0x3F13F1CA, 0xFF2E2C43,
+/**/                   0xBFB6BAD8, 0x3C188000,
+/**/                   0xBD0DAF3C, 0xC08926AE,
+/**/                   0x3FF17800, 0x00000000,
+/**/                   0xBF1D79B9, 0x0A5EF9FF,
+/**/                   0xBFB674F0, 0x89364000,
+/**/                   0xBD3A7999, 0x4C9D3302,
+/**/                   0x3FF17400, 0x00000000,
+/**/                   0xBF338FAD, 0x1ECEA765,
+/**/                   0xBFB62F1B, 0xE7D78000,
+/**/                   0x3D217995, 0x7ED63C4E,
+/**/                   0x3FF17000, 0x00000000,
+/**/                   0xBF3F976B, 0xD8C8714B,
+/**/                   0xBFB5E95A, 0x4D978000,
+/**/                   0xBD31CB7C, 0xE1D17171,
+/**/                   0x3FF16800, 0x00000000,
+/**/                   0x3F348A33, 0xB08FA497,
+/**/                   0xBFB5A3AB, 0xB01AC000,
+/**/                   0xBD3E2574, 0x9E6AFA18,
+/**/                   0x3FF16400, 0x00000000,
+/**/                   0x3F21AA1F, 0x864022C9,
+/**/                   0xBFB55E10, 0x050E0000,
+/**/                   0xBD0C1D74, 0x0C53C72E,
+/**/                   0x3FF16000, 0x00000000,
+/**/                   0xBF05B7C9, 0xB487BCAD,
+/**/                   0xBFB51887, 0x42260000,
+/**/                   0xBD330A1D, 0x96258B3E,
+/**/                   0x3FF15C00, 0x00000000,
+/**/                   0xBF2C3411, 0x5B1E5F75,
+/**/                   0xBFB4D311, 0x5D208000,
+/**/                   0x3CF53A25, 0x82F4E1EF,
+/**/                   0x3FF15800, 0x00000000,
+/**/                   0xBF39543F, 0xEEA99544,
+/**/                   0xBFB48DAE, 0x4BC30000,
+/**/                   0xBD30185B, 0x208C200C,
+/**/                   0x3FF15000, 0x00000000,
+/**/                   0x3F3B9A3F, 0xDD5C8CB8,
+/**/                   0xBFB4485E, 0x03DBC000,
+/**/                   0xBD3FAD46, 0xE8D26AB7,
+/**/                   0x3FF14C00, 0x00000000,
+/**/                   0x3F30B155, 0xB19AE5C7,
+/**/                   0xBFB40320, 0x7B414000,
+/**/                   0xBD26FD84, 0xAA8157C0,
+/**/                   0x3FF14800, 0x00000000,
+/**/                   0x3F17C382, 0xB34EDA32,
+/**/                   0xBFB3BDF5, 0xA7D20000,
+/**/                   0x3D319BD0, 0xAD125895,
+/**/                   0x3FF14400, 0x00000000,
+/**/                   0xBF129CFF, 0xBAF129D0,
+/**/                   0xBFB378DD, 0x7F748000,
+/**/                   0xBD371411, 0x28F1FACA,
+/**/                   0x3FF14000, 0x00000000,
+/**/                   0xBF2E2E59, 0x771B7C7F,
+/**/                   0xBFB333D7, 0xF8184000,
+/**/                   0x3CE692B6, 0xA81B8848,
+/**/                   0x3FF13C00, 0x00000000,
+/**/                   0xBF395F06, 0x30FE1D9C,
+/**/                   0xBFB2EEE5, 0x07B40000,
+/**/                   0xBD08081E, 0xDD77C860,
+/**/                   0x3FF13400, 0x00000000,
+/**/                   0x3F3C8113, 0x5C81135D,
+/**/                   0xBFB2AA04, 0xA4470000,
+/**/                   0xBD37A48B, 0xA8B1CB41,
+/**/                   0x3FF13000, 0x00000000,
+/**/                   0x3F3288FF, 0xBB3B5DC0,
+/**/                   0xBFB26536, 0xC3D8C000,
+/**/                   0xBD0B4BAC, 0x097C5BA3,
+/**/                   0x3FF12C00, 0x00000000,
+/**/                   0x3F21713D, 0xB81577AE,
+/**/                   0xBFB2207B, 0x5C784000,
+/**/                   0xBD349D8C, 0xFC10C7BF,
+/**/                   0x3FF12800, 0x00000000,
+/**/                   0xBEEE05E5, 0xBAD6FC84,
+/**/                   0xBFB1DBD2, 0x643D0000,
+/**/                   0xBD390B24, 0xD977C494,
+/**/                   0x3FF12400, 0x00000000,
+/**/                   0xBF24E314, 0x59F992BF,
+/**/                   0xBFB1973B, 0xD1464000,
+/**/                   0xBD3566D1, 0x54F930B3,
+/**/                   0x3FF12000, 0x00000000,
+/**/                   0xBF33CB91, 0xC9F6E7A8,
+/**/                   0xBFB152B7, 0x99BB4000,
+/**/                   0x3D09BB29, 0x07030829,
+/**/                   0x3FF11C00, 0x00000000,
+/**/                   0xBF3CFE65, 0x8B7D9851,
+/**/                   0xBFB10E45, 0xB3CB0000,
+/**/                   0x3D37CF69, 0x284A3465,
+/**/                   0x3FF11400, 0x00000000,
+/**/                   0x3F39F5DB, 0x29605DF7,
+/**/                   0xBFB0C9E6, 0x15AC4000,
+/**/                   0xBD2C2DA8, 0x0974D976,
+/**/                   0x3FF11000, 0x00000000,
+/**/                   0x3F311111, 0x11111111,
+/**/                   0xBFB08598, 0xB59E4000,
+/**/                   0x3D17E5DD, 0x7009902C,
+/**/                   0x3FF10C00, 0x00000000,
+/**/                   0x3F20A63A, 0x12A5B1AE,
+/**/                   0xBFB0415D, 0x89E74000,
+/**/                   0xBD1111C0, 0x5CF1D753,
+/**/                   0x3FF10800, 0x00000000,
+/**/                   0xBED107FB, 0xBE011080,
+/**/                   0xBFAFFA69, 0x11AB8000,
+/**/                   0xBD23008C, 0x98381A8F,
+/**/                   0x3FF10400, 0x00000000,
+/**/                   0xBF216989, 0x6FEABBAE,
+/**/                   0xBFAF723B, 0x51800000,
+/**/                   0x3D3D6EB0, 0xDD5610D3,
+/**/                   0x3FF10000, 0x00000000,
+/**/                   0xBF30FEF0, 0x10FEF011,
+/**/                   0xBFAEEA31, 0xC0068000,
+/**/                   0xBD3C3DD8, 0x3606D891,
+/**/                   0x3FF0FC00, 0x00000000,
+/**/                   0xBF3922C0, 0x98CDDC74,
+/**/                   0xBFAE624C, 0x4A0B8000,
+/**/                   0x3D30F25C, 0x74676689,
+/**/                   0x3FF0F400, 0x00000000,
+/**/                   0x3F3EDFAB, 0x325A1A80,
+/**/                   0xBFADDA8A, 0xDC680000,
+/**/                   0x3D21B1AC, 0x64D9E42F,
+/**/                   0x3FF0F000, 0x00000000,
+/**/                   0x3F370834, 0xF27F9A57,
+/**/                   0xBFAD52ED, 0x64060000,
+/**/                   0x3D33C85D, 0x2A29BBD6,
+/**/                   0x3FF0EC00, 0x00000000,
+/**/                   0x3F2EAD7C, 0xD391FBC5,
+/**/                   0xBFACCB73, 0xCDDD8000,
+/**/                   0xBD3965C3, 0x6E09F5FE,
+/**/                   0x3FF0E800, 0x00000000,
+/**/                   0x3F1F2CA5, 0xE9479870,
+/**/                   0xBFAC441E, 0x06F70000,
+/**/                   0xBD354F1F, 0x49850D15,
+/**/                   0x3FF0E400, 0x00000000,
+/**/                   0x3ED95609, 0x80439019,
+/**/                   0xBFABBCEB, 0xFC690000,
+/**/                   0x3D17BF86, 0x8C317C2A,
+/**/                   0x3FF0E000, 0x00000000,
+/**/                   0xBF1B6B4D, 0xC6867596,
+/**/                   0xBFAB35DD, 0x9B588000,
+/**/                   0xBD3D5674, 0xD6CF558E,
+/**/                   0x3FF0DC00, 0x00000000,
+/**/                   0xBF2BEAEE, 0x172D4CE8,
+/**/                   0xBFAAAEF2, 0xD0FB0000,
+/**/                   0xBD20FC1A, 0x353BB42E,
+/**/                   0x3FF0D800, 0x00000000,
+/**/                   0xBF34EAB0, 0x479071A9,
+/**/                   0xBFAA282B, 0x8A938000,
+/**/                   0x3D2E8F59, 0x80EFC8E3,
+/**/                   0x3FF0D400, 0x00000000,
+/**/                   0xBF3BBA9C, 0xA61C62D3,
+/**/                   0xBFA9A187, 0xB5740000,
+/**/                   0x3D30C22E, 0x4EC4D90D,
+/**/                   0x3FF0CC00, 0x00000000,
+/**/                   0x3F3D9AA6, 0x77344011,
+/**/                   0xBFA91B07, 0x3EFD8000,
+/**/                   0x3D19D7C5, 0x3F76CA96,
+/**/                   0x3FF0C800, 0x00000000,
+/**/                   0x3F3714FB, 0xCDA3AC11,
+/**/                   0xBFA894AA, 0x149F8000,
+/**/                   0xBD39A19A, 0x8BE97661,
+/**/                   0x3FF0C400, 0x00000000,
+/**/                   0x3F30B446, 0x391F2E61,
+/**/                   0xBFA80E70, 0x23D90000,
+/**/                   0x3D399DC1, 0x6F28BF45,
+/**/                   0x3FF0C000, 0x00000000,
+/**/                   0x3F24F0D1, 0x682E11CD,
+/**/                   0xBFA78859, 0x5A358000,
+/**/                   0x3D108B0D, 0x083B3A4C,
+/**/                   0x3FF0BC00, 0x00000000,
+/**/                   0x3F118519, 0x5D5A36EA,
+/**/                   0xBFA70265, 0xA5510000,
+/**/                   0x3D2888DF, 0x11FD5CE7,
+/**/                   0x3FF0B800, 0x00000000,
+/**/                   0xBEF913DA, 0x62386CAB,
+/**/                   0xBFA67C94, 0xF2D48000,
+/**/                   0xBD3DAC20, 0x827CCA0C,
+/**/                   0x3FF0B400, 0x00000000,
+/**/                   0xBF1D7CFF, 0xBD31D7D0,
+/**/                   0xBFA5F6E7, 0x30790000,
+/**/                   0x3D20485A, 0x8012494C,
+/**/                   0x3FF0B000, 0x00000000,
+/**/                   0xBF2A11BA, 0x226951DC,
+/**/                   0xBFA5715C, 0x4C040000,
+/**/                   0x3D38888D, 0xDFC47628,
+/**/                   0x3FF0AC00, 0x00000000,
+/**/                   0xBF328E31, 0x7B2E9DD2,
+/**/                   0xBFA4EBF4, 0x334A0000,
+/**/                   0x3D2D9150, 0xF73BE773,
+/**/                   0x3FF0A800, 0x00000000,
+/**/                   0xBF37EF59, 0x7EF597EF,
+/**/                   0xBFA466AE, 0xD42E0000,
+/**/                   0x3D2C1673, 0x75BDFD28,
+/**/                   0x3FF0A400, 0x00000000,
+/**/                   0xBF3D2C71, 0x50D413C1,
+/**/                   0xBFA3E18C, 0x1CA08000,
+/**/                   0xBD3748ED, 0x3F6E378E,
+/**/                   0x3FF09C00, 0x00000000,
+/**/                   0x3F3DBA6A, 0xF836010A,
+/**/                   0xBFA35C8B, 0xFAA10000,
+/**/                   0xBD38357D, 0x5EF9EB35,
+/**/                   0x3FF09800, 0x00000000,
+/**/                   0x3F38C51F, 0x624D4AF5,
+/**/                   0xBFA2D7AE, 0x5C3C8000,
+/**/                   0x3D322939, 0x459DA66D,
+/**/                   0x3FF09400, 0x00000000,
+/**/                   0x3F33F390, 0x10953F39,
+/**/                   0xBFA252F3, 0x2F8D0000,
+/**/                   0xBD283E9A, 0xE021B67B,
+/**/                   0x3FF09000, 0x00000000,
+/**/                   0x3F2E8B42, 0x861539B9,
+/**/                   0xBFA1CE5A, 0x62BC0000,
+/**/                   0xBD3A9CC7, 0x8D8DF999,
+/**/                   0x3FF08C00, 0x00000000,
+/**/                   0x3F25766E, 0xACBC4021,
+/**/                   0xBFA149E3, 0xE4008000,
+/**/                   0x3D32B98A, 0x9A4168FD,
+/**/                   0x3FF08800, 0x00000000,
+/**/                   0x3F1950DB, 0x0F3DBD5A,
+/**/                   0xBFA0C58F, 0xA19E0000,
+/**/                   0x3D0559D1, 0x58B17913,
+/**/                   0x3FF08400, 0x00000000,
+/**/                   0x3F008421, 0x08421084,
+/**/                   0xBFA0415D, 0x89E78000,
+/**/                   0x3D3DDDC7, 0xF461C516,
+/**/                   0x3FF08000, 0x00000000,
+/**/                   0xBF007FDF, 0x0041FF7C,
+/**/                   0xBF9F7A9B, 0x16780000,
+/**/                   0xBD242AD9, 0x271BE7D7,
+/**/                   0x3FF07C00, 0x00000000,
+/**/                   0xBF183591, 0xC54798FB,
+/**/                   0xBF9E72BF, 0x28140000,
+/**/                   0x3D28D751, 0x49774D47,
+/**/                   0x3FF07800, 0x00000000,
+/**/                   0xBF23CFA1, 0x518F4EFD,
+/**/                   0xBF9D6B27, 0x25980000,
+/**/                   0x3D39FF7B, 0x50D1B838,
+/**/                   0x3FF07400, 0x00000000,
+/**/                   0xBF2B3EB7, 0x01073261,
+/**/                   0xBF9C63D2, 0xEC150000,
+/**/                   0x3D35439C, 0xE030A687,
+/**/                   0x3FF07000, 0x00000000,
+/**/                   0xBF31341F, 0xD6EAB025,
+/**/                   0xBF9B5CC2, 0x58B70000,
+/**/                   0xBD18E611, 0xB8AFBFE8,
+/**/                   0x3FF06C00, 0x00000000,
+/**/                   0xBF34A638, 0x6ED049E0,
+/**/                   0xBF9A55F5, 0x48C60000,
+/**/                   0x3D2DE070, 0x9F2D03C9,
+/**/                   0x3FF06800, 0x00000000,
+/**/                   0xBF37F5BF, 0xEF997F5C,
+/**/                   0xBF994F6B, 0x99A20000,
+/**/                   0xBD311D5E, 0xF96CF7F5,
+/**/                   0x3FF06400, 0x00000000,
+/**/                   0xBF3B22D0, 0xE5604189,
+/**/                   0xBF984925, 0x28C90000,
+/**/                   0x3D2AA0BA, 0x325A0C34,
+/**/                   0x3FF06000, 0x00000000,
+/**/                   0xBF3E2D85, 0xC1163FF0,
+/**/                   0xBF974321, 0xD3D00000,
+/**/                   0xBCFB4A69, 0x0FE94778,
+/**/                   0x3FF05800, 0x00000000,
+/**/                   0x3F3EEA07, 0x27586632,
+/**/                   0xBF963D61, 0x78690000,
+/**/                   0xBD07ABF3, 0x89596542,
+/**/                   0x3FF05400, 0x00000000,
+/**/                   0x3F3C23BB, 0x98E2A5E7,
+/**/                   0xBF9537E3, 0xF45F0000,
+/**/                   0xBD2AB259, 0xD2D7F253,
+/**/                   0x3FF05000, 0x00000000,
+/**/                   0x3F397F7D, 0x73404146,
+/**/                   0xBF9432A9, 0x25980000,
+/**/                   0xBD098139, 0x928637FE,
+/**/                   0x3FF04C00, 0x00000000,
+/**/                   0x3F36FD32, 0xB0C7B49A,
+/**/                   0xBF932DB0, 0xEA130000,
+/**/                   0xBD2710CB, 0x130895FC,
+/**/                   0x3FF04800, 0x00000000,
+/**/                   0x3F349CC1, 0x664C578A,
+/**/                   0xBF9228FB, 0x1FEA0000,
+/**/                   0xBD2713E3, 0x284991FE,
+/**/                   0x3FF04400, 0x00000000,
+/**/                   0x3F325E0F, 0xC2FCB1F4,
+/**/                   0xBF912487, 0xA5500000,
+/**/                   0xBD3FDBE5, 0xFED4B393,
+/**/                   0x3FF04000, 0x00000000,
+/**/                   0x3F304104, 0x10410410,
+/**/                   0xBF902056, 0x58930000,
+/**/                   0xBD3611D2, 0x7C8E8417,
+/**/                   0x3FF03C00, 0x00000000,
+/**/                   0x3F2C8B09, 0x6334030B,
+/**/                   0xBF8E38CE, 0x30340000,
+/**/                   0x3D39DE88, 0xA3DA281A,
+/**/                   0x3FF03800, 0x00000000,
+/**/                   0x3F28D6F0, 0x48FF7E3A,
+/**/                   0xBF8C3173, 0x84C80000,
+/**/                   0x3D341F33, 0xFCEFB9FE,
+/**/                   0x3FF03400, 0x00000000,
+/**/                   0x3F25658A, 0x0081A559,
+/**/                   0xBF8A2A9C, 0x6C180000,
+/**/                   0x3D3F73BC, 0x4D6D3472,
+/**/                   0x3FF03000, 0x00000000,
+/**/                   0x3F2236A3, 0xEBC349DE,
+/**/                   0xBF882448, 0xA3880000,
+/**/                   0xBD345544, 0x12C584E0,
+/**/                   0x3FF02C00, 0x00000000,
+/**/                   0x3F1E9417, 0x3FEFD386,
+/**/                   0xBF861E77, 0xE8B60000,
+/**/                   0x3D38073E, 0xEAF8EAF3,
+/**/                   0x3FF02800, 0x00000000,
+/**/                   0x3F193F1D, 0xCA7A317C,
+/**/                   0xBF841929, 0xF9680000,
+/**/                   0xBD1977C7, 0x55D01368,
+/**/                   0x3FF02400, 0x00000000,
+/**/                   0x3F146DF7, 0x6CB49652,
+/**/                   0xBF82145E, 0x939E0000,
+/**/                   0xBD3E3D12, 0x38C4EA00,
+/**/                   0x3FF02000, 0x00000000,
+/**/                   0x3F102040, 0x81020408,
+/**/                   0xBF801015, 0x75880000,
+/**/                   0xBD3BCE25, 0x1998B506,
+/**/                   0x3FF01C00, 0x00000000,
+/**/                   0x3F08AB2B, 0x8C355D63,
+/**/                   0xBF7C189C, 0xBB100000,
+/**/                   0x3D3D8055, 0x12588560,
+/**/                   0x3FF01800, 0x00000000,
+/**/                   0x3F021B28, 0xBD1BA97E,
+/**/                   0xBF781212, 0x14580000,
+/**/                   0xBD1AD503, 0x82973F27,
+/**/                   0x3FF01400, 0x00000000,
+/**/                   0x3EF91F67, 0x411155AB,
+/**/                   0xBF740C8A, 0x74780000,
+/**/                   0xBD1E3871, 0xDF070002,
+/**/                   0x3FF01000, 0x00000000,
+/**/                   0x3EF01010, 0x10101010,
+/**/                   0xBF700805, 0x59580000,
+/**/                   0xBD2166AF, 0xCB31C67B,
+/**/                   0x3FF00C00, 0x00000000,
+/**/                   0x3EE20D8A, 0x279DB649,
+/**/                   0xBF680904, 0x82880000,
+/**/                   0xBD285C06, 0x96A70C0C,
+/**/                   0x3FF00800, 0x00000000,
+/**/                   0x3ED00804, 0x02010080,
+/**/                   0xBF600401, 0x55D80000,
+/**/                   0x3D33BB10, 0xC7CC7089,
+/**/                   0x3FF00400, 0x00000000,
+/**/                   0x3EB00401, 0x00401004,
+/**/                   0xBF500200, 0x55600000,
+/**/                   0xBD356224, 0xCD5F35F8,
+/**/                   0x3FF00000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x3FEFF800, 0x00000000,
+/**/                   0x3EAFF801, 0xFF801FF8,
+/**/                   0x3F4FFC00, 0xAA800000,
+/**/                   0x3D35621F, 0x7809A0A3,
+/**/                   0x3FEFF000, 0x00000000,
+/**/                   0x3ECFF007, 0xFC01FF00,
+/**/                   0x3F5FF802, 0xA9B00000,
+/**/                   0xBD33BC66, 0x1D61C5EB,
+/**/                   0x3FEFE800, 0x00000000,
+/**/                   0x3EE1F28A, 0x186DADBE,
+/**/                   0x3F67F704, 0x7D780000,
+/**/                   0x3D283DA6, 0x89D68648,
+/**/                   0x3FEFE000, 0x00000000,
+/**/                   0x3EEFE01F, 0xE01FE020,
+/**/                   0x3F6FF00A, 0xA2B00000,
+/**/                   0x3D20BC04, 0xA086B56A,
+/**/                   0x3FEFD800, 0x00000000,
+/**/                   0x3EF8E0E6, 0xDF68BD14,
+/**/                   0x3F73F38A, 0x60F00000,
+/**/                   0x3D192256, 0x93C93749,
+/**/                   0x3FEFD000, 0x00000000,
+/**/                   0x3F01E528, 0x439A981C,
+/**/                   0x3F77EE11, 0xEBD80000,
+/**/                   0x3D0749D3, 0xC2D23A07,
+/**/                   0x3FEFC800, 0x00000000,
+/**/                   0x3F08556A, 0x8596391C,
+/**/                   0x3F7BE79C, 0x70040000,
+/**/                   0x3D38EC8F, 0x9A6C0404,
+/**/                   0x3FEFC000, 0x00000000,
+/**/                   0x3F0FC07F, 0x01FC07F0,
+/**/                   0x3F7FE02A, 0x6B100000,
+/**/                   0x3D19E23F, 0x0DDA40E4,
+/**/                   0x3FEFB800, 0x00000000,
+/**/                   0x3F1412D5, 0x9F5976B5,
+/**/                   0x3F81EBDE, 0x2D1A0000,
+/**/                   0xBD2A0683, 0xFF48DC36,
+/**/                   0x3FEFB000, 0x00000000,
+/**/                   0x3F18C21A, 0xBD271E34,
+/**/                   0x3F83E729, 0x5D260000,
+/**/                   0xBD2609C1, 0xFF29A114,
+/**/                   0x3FEFA800, 0x00000000,
+/**/                   0x3F1DEDB2, 0x5594A734,
+/**/                   0x3F85E1F7, 0x03EC0000,
+/**/                   0x3D37CA09, 0xF585DA1B,
+/**/                   0x3FEFA000, 0x00000000,
+/**/                   0x3F21CAA0, 0x1FA11CAA,
+/**/                   0x3F87DC47, 0x5F820000,
+/**/                   0xBD3EB124, 0x5B5DA1F5,
+/**/                   0x3FEF9800, 0x00000000,
+/**/                   0x3F24DC34, 0x55E8CB6B,
+/**/                   0x3F89D61A, 0xADC60000,
+/**/                   0x3D37B196, 0x327B4257,
+/**/                   0x3FEF9000, 0x00000000,
+/**/                   0x3F282B68, 0x13BAF1B2,
+/**/                   0x3F8BCF71, 0x2C740000,
+/**/                   0x3D1C25E0, 0x97BD9771,
+/**/                   0x3FEF8800, 0x00000000,
+/**/                   0x3F2BB80D, 0xCC420861,
+/**/                   0x3F8DC84B, 0x19120000,
+/**/                   0x3D1C0A54, 0x1E3A5B30,
+/**/                   0x3FEF8000, 0x00000000,
+/**/                   0x3F2F81F8, 0x1F81F820,
+/**/                   0x3F8FC0A8, 0xB0FC0000,
+/**/                   0x3CDF1E7C, 0xF6D3A69C,
+/**/                   0x3FEF7800, 0x00000000,
+/**/                   0x3F31C47C, 0xED1079FA,
+/**/                   0x3F90DC45, 0x18B00000,
+/**/                   0xBD29BC2F, 0x380313FC,
+/**/                   0x3FEF7000, 0x00000000,
+/**/                   0x3F33E672, 0xFA98528D,
+/**/                   0x3F91D7F7, 0xEB9F0000,
+/**/                   0xBD14193A, 0x83FCC7A6,
+/**/                   0x3FEF6800, 0x00000000,
+/**/                   0x3F3626C7, 0xCAFBD3D2,
+/**/                   0x3F92D36C, 0xEFB50000,
+/**/                   0x3D35F0BB, 0x341706C3,
+/**/                   0x3FEF6000, 0x00000000,
+/**/                   0x3F388565, 0x06DDABA6,
+/**/                   0x3F93CEA4, 0x43470000,
+/**/                   0xBD36A2C4, 0x32D6A40B,
+/**/                   0x3FEF5800, 0x00000000,
+/**/                   0x3F3B0234, 0x6CC4F5F5,
+/**/                   0x3F94C99E, 0x04900000,
+/**/                   0x3D1DECC6, 0x5DF5F4A5,
+/**/                   0x3FEF5000, 0x00000000,
+/**/                   0x3F3D9D1F, 0xD102728A,
+/**/                   0x3F95C45A, 0x51B90000,
+/**/                   0xBD263BB6, 0x216D87D8,
+/**/                   0x3FEF5000, 0x00000000,
+/**/                   0xBF3FA9EE, 0xE26A1DD4,
+/**/                   0x3F96BED9, 0x48D20000,
+/**/                   0xBD320BC4, 0x160A43F8,
+/**/                   0x3FEF4800, 0x00000000,
+/**/                   0xBF3CD30D, 0xADEC7540,
+/**/                   0x3F97B91B, 0x07D60000,
+/**/                   0xBD33B955, 0xB602ACE4,
+/**/                   0x3FEF4000, 0x00000000,
+/**/                   0xBF39DE52, 0x7C761DC6,
+/**/                   0x3F98B31F, 0xACAA0000,
+/**/                   0xBD33FC78, 0xA96E4964,
+/**/                   0x3FEF3800, 0x00000000,
+/**/                   0xBF36CBD3, 0x23989FF0,
+/**/                   0x3F99ACE7, 0x551D0000,
+/**/                   0xBD2D75D9, 0x7EC7C410,
+/**/                   0x3FEF3000, 0x00000000,
+/**/                   0xBF339BA5, 0x639F8B15,
+/**/                   0x3F9AA672, 0x1EE80000,
+/**/                   0x3D2AD4EB, 0x5C5AF494,
+/**/                   0x3FEF2800, 0x00000000,
+/**/                   0xBF304DDE, 0xE7AA579B,
+/**/                   0x3F9B9FC0, 0x27B00000,
+/**/                   0xBD3B9A01, 0x0AE6922A,
+/**/                   0x3FEF2000, 0x00000000,
+/**/                   0xBF29C52A, 0x8B8C46FD,
+/**/                   0x3F9C98D1, 0x8D010000,
+/**/                   0xBD2BF615, 0x0589DF0F,
+/**/                   0x3FEF1800, 0x00000000,
+/**/                   0xBF22B3BB, 0xFE0E92B4,
+/**/                   0x3F9D91A6, 0x6C540000,
+/**/                   0x3D2E61F1, 0x658CFB9A,
+/**/                   0x3FEF1000, 0x00000000,
+/**/                   0xBF16CF39, 0xFE8B488E,
+/**/                   0x3F9E8A3E, 0xE30D0000,
+/**/                   0xBD21A9FA, 0x3DE53900,
+/**/                   0x3FEF0800, 0x00000000,
+/**/                   0xBEFF07C1, 0xF07C1F08,
+/**/                   0x3F9F829B, 0x0E780000,
+/**/                   0x3D298026, 0x7C7E09E4,
+/**/                   0x3FEF0000, 0x00000000,
+/**/                   0x3EFF003E, 0x007C00F8,
+/**/                   0x3FA03D5D, 0x85E70000,
+/**/                   0x3D3F7789, 0x60ED29CF,
+/**/                   0x3FEEF800, 0x00000000,
+/**/                   0x3F17B671, 0x3D759870,
+/**/                   0x3FA0B94F, 0x7C198000,
+/**/                   0xBD2E8989, 0x6F022783,
+/**/                   0x3FEEF000, 0x00000000,
+/**/                   0x3F241070, 0x2A8BB96A,
+/**/                   0x3FA13523, 0x78598000,
+/**/                   0xBD1C1AC3, 0xB71FA59B,
+/**/                   0x3FEEE800, 0x00000000,
+/**/                   0x3F2C7F84, 0x58E01EEA,
+/**/                   0x3FA1B0D9, 0x89240000,
+/**/                   0xBD33401E, 0x9AE889BB,
+/**/                   0x3FEEE000, 0x00000000,
+/**/                   0x3F329425, 0xA3D491BC,
+/**/                   0x3FA22C71, 0xBCEA8000,
+/**/                   0x3CFD2818, 0xF87F888F,
+/**/                   0x3FEED800, 0x00000000,
+/**/                   0x3F37054D, 0x9E9D2AE8,
+/**/                   0x3FA2A7EC, 0x22150000,
+/**/                   0xBD278CE7, 0x7A9163FE,
+/**/                   0x3FEED000, 0x00000000,
+/**/                   0x3F3B9325, 0x540C85E6,
+/**/                   0x3FA32348, 0xC7000000,
+/**/                   0x3D2696DB, 0x90B1E49F,
+/**/                   0x3FEED000, 0x00000000,
+/**/                   0xBF3FC267, 0xF099FC26,
+/**/                   0x3FA39E87, 0xB9FE8000,
+/**/                   0x3D3EAFD4, 0x80AD9015,
+/**/                   0x3FEEC800, 0x00000000,
+/**/                   0xBF3AFB6E, 0xD02A4E5D,
+/**/                   0x3FA419A9, 0x09590000,
+/**/                   0x3D3B5CDC, 0x67D48EA7,
+/**/                   0x3FEEC000, 0x00000000,
+/**/                   0xBF361803, 0xD7A79FF1,
+/**/                   0x3FA494AC, 0xC34D8000,
+/**/                   0x3D211C78, 0xA56FD247,
+/**/                   0x3FEEB800, 0x00000000,
+/**/                   0xBF31183B, 0x805C2197,
+/**/                   0x3FA50F92, 0xF60F8000,
+/**/                   0x3D296CFB, 0x0A91FFE3,
+/**/                   0x3FEEB000, 0x00000000,
+/**/                   0xBF27F854, 0x5FE15180,
+/**/                   0x3FA58A5B, 0xAFC90000,
+/**/                   0xBD2B2B73, 0x9570AD39,
+/**/                   0x3FEEA800, 0x00000000,
+/**/                   0xBF1B0F90, 0xE210C36A,
+/**/                   0x3FA60506, 0xFE990000,
+/**/                   0xBD32BA40, 0x8194E036,
+/**/                   0x3FEEA000, 0x00000000,
+/**/                   0xBEF6F7DD, 0x8C33ADB2,
+/**/                   0x3FA67F94, 0xF0948000,
+/**/                   0x3D3ECC1F, 0x3E7E4ED7,
+/**/                   0x3FEE9800, 0x00000000,
+/**/                   0x3F1003D3, 0x1003D310,
+/**/                   0x3FA6FA05, 0x93C78000,
+/**/                   0x3D3B415E, 0x41D634A1,
+/**/                   0x3FEE9000, 0x00000000,
+/**/                   0x3F231ABF, 0x0B7672A0,
+/**/                   0x3FA77458, 0xF6330000,
+/**/                   0xBD3181DC, 0xE586AF09,
+/**/                   0x3FEE8800, 0x00000000,
+/**/                   0x3F2E6B5C, 0xCF172481,
+/**/                   0x3FA7EE8F, 0x25CD8000,
+/**/                   0xBD3F4216, 0x11A5C1E9,
+/**/                   0x3FEE8000, 0x00000000,
+/**/                   0x3F34F9CD, 0x77A84876,
+/**/                   0x3FA868A8, 0x30840000,
+/**/                   0xBD12623A, 0x134AC693,
+/**/                   0x3FEE7800, 0x00000000,
+/**/                   0x3F3AD9A8, 0xD7473427,
+/**/                   0x3FA8E2A4, 0x243A0000,
+/**/                   0x3D2B9EEB, 0x01426490,
+/**/                   0x3FEE7800, 0x00000000,
+/**/                   0xBF3F2AD3, 0x4578DCCA,
+/**/                   0x3FA95C83, 0x0EC90000,
+/**/                   0xBD2C1482, 0x97C5FEB8,
+/**/                   0x3FEE7000, 0x00000000,
+/**/                   0xBF3913BA, 0x97A6A035,
+/**/                   0x3FA9D644, 0xFDFF8000,
+/**/                   0x3D313C90, 0x539A473B,
+/**/                   0x3FEE6800, 0x00000000,
+/**/                   0xBF32E120, 0xC594A915,
+/**/                   0x3FAA4FE9, 0xFFA40000,
+/**/                   0xBD36E584, 0xA0402925,
+/**/                   0x3FEE6000, 0x00000000,
+/**/                   0xBF292632, 0xC5DF4232,
+/**/                   0x3FAAC972, 0x21710000,
+/**/                   0x3D2F8D3E, 0xF013222C,
+/**/                   0x3FEE5800, 0x00000000,
+/**/                   0xBF18A6DF, 0xC3518A6E,
+/**/                   0x3FAB42DD, 0x71198000,
+/**/                   0xBD1C827A, 0xE5D6704C,
+/**/                   0x3FEE5000, 0x00000000,
+/**/                   0x3ED6BC08, 0x86833271,
+/**/                   0x3FABBC2B, 0xFC450000,
+/**/                   0xBD17D186, 0x91417DAF,
+/**/                   0x3FEE4800, 0x00000000,
+/**/                   0x3F1BEB2D, 0xE672838D,
+/**/                   0x3FAC355D, 0xD0920000,
+/**/                   0x3D2F2CCC, 0x9ABF8388,
+/**/                   0x3FEE4000, 0x00000000,
+/**/                   0x3F2B6B8D, 0x9785150A,
+/**/                   0x3FACAE72, 0xFB960000,
+/**/                   0xBD3EFABF, 0x2025B1BE,
+/**/                   0x3FEE3800, 0x00000000,
+/**/                   0x3F348BCE, 0xE0D399FA,
+/**/                   0x3FAD276B, 0x8ADB0000,
+/**/                   0x3D16A423, 0xC78A64B0,
+/**/                   0x3FEE3000, 0x00000000,
+/**/                   0x3F3B7CD0, 0x933AC00F,
+/**/                   0x3FADA047, 0x8BE38000,
+/**/                   0x3D2252C7, 0xB1F6FE05,
+/**/                   0x3FEE3000, 0x00000000,
+/**/                   0xBF3D7747, 0x308F5281,
+/**/                   0x3FAE1907, 0x0C278000,
+/**/                   0xBD2FEA46, 0x64629E86,
+/**/                   0x3FEE2800, 0x00000000,
+/**/                   0xBF36508B, 0x6C196F66,
+/**/                   0x3FAE91AA, 0x19150000,
+/**/                   0xBD0E82A0, 0x1DCC6A76,
+/**/                   0x3FEE2000, 0x00000000,
+/**/                   0xBF2E1E1E, 0x1E1E1E1E,
+/**/                   0x3FAF0A30, 0xC0118000,
+/**/                   0xBD2D599E, 0x83368E91,
+/**/                   0x3FEE1800, 0x00000000,
+/**/                   0xBF1ECB93, 0xDD355CDB,
+/**/                   0x3FAF829B, 0x0E780000,
+/**/                   0x3D398026, 0x7C7E09E4,
+/**/                   0x3FEE1000, 0x00000000,
+/**/                   0xBECE0FF8, 0x7C01E100,
+/**/                   0x3FAFFAE9, 0x119B8000,
+/**/                   0x3D230337, 0x4262C554,
+/**/                   0x3FEE0800, 0x00000000,
+/**/                   0x3F1D54B5, 0x25C73724,
+/**/                   0x3FB0398D, 0x6B624000,
+/**/                   0xBD3AB14D, 0xFCBFCD00,
+/**/                   0x3FEE0000, 0x00000000,
+/**/                   0x3F2E01E0, 0x1E01E01E,
+/**/                   0x3FB07598, 0x35990000,
+/**/                   0xBD3B8ECF, 0xE4B59987,
+/**/                   0x3FEDF800, 0x00000000,
+/**/                   0x3F36C715, 0xC84194BA,
+/**/                   0x3FB0B194, 0xEE0D0000,
+/**/                   0x3D3666EA, 0x4F69EDCC,
+/**/                   0x3FEDF000, 0x00000000,
+/**/                   0x3F3EA78B, 0xEF26D838,
+/**/                   0x3FB0ED83, 0x9B554000,
+/**/                   0xBD3901F4, 0x6D48ABB4,
+/**/                   0x3FEDF000, 0x00000000,
+/**/                   0xBF395DBF, 0xF10995DC,
+/**/                   0x3FB12964, 0x44030000,
+/**/                   0xBD3D53BB, 0x751AA773,
+/**/                   0x3FEDE800, 0x00000000,
+/**/                   0xBF3148E0, 0x3BCBADC8,
+/**/                   0x3FB16536, 0xEEA38000,
+/**/                   0xBD147C5E, 0x768FA309,
+/**/                   0x3FEDE000, 0x00000000,
+/**/                   0xBF2233CE, 0x86E25CE1,
+/**/                   0x3FB1A0FB, 0xA1BF8000,
+/**/                   0x3D24A3FC, 0xC319D6DC,
+/**/                   0x3FEDD800, 0x00000000,
+/**/                   0xBEEA1CE9, 0x26B3FE23,
+/**/                   0x3FB1DCB2, 0x63DB0000,
+/**/                   0x3D39444F, 0x5E9E8981,
+/**/                   0x3FEDD000, 0x00000000,
+/**/                   0x3F1E4836, 0x0AB71710,
+/**/                   0x3FB2185B, 0x3B75C000,
+/**/                   0xBD3E3189, 0xF8F32304,
+/**/                   0x3FEDC800, 0x00000000,
+/**/                   0x3F300EE5, 0x00EE500F,
+/**/                   0x3FB253F6, 0x2F0A0000,
+/**/                   0x3D3416F8, 0xFB69A701,
+/**/                   0x3FEDC000, 0x00000000,
+/**/                   0x3F38A58D, 0x231C226A,
+/**/                   0x3FB28F83, 0x450EC000,
+/**/                   0x3D3A8D75, 0xAA119769,
+/**/                   0x3FEDC000, 0x00000000,
+/**/                   0xBF3EAA0C, 0x14715D63,
+/**/                   0x3FB2CB02, 0x83F5C000,
+/**/                   0x3D3E1EE2, 0xCA657021,
+/**/                   0x3FEDB800, 0x00000000,
+/**/                   0xBF35DFF8, 0x92AEFFC5,
+/**/                   0x3FB30673, 0xF22C8000,
+/**/                   0x3D24C9E2, 0x9DCF0BA5,
+/**/                   0x3FEDB000, 0x00000000,
+/**/                   0xBF29F894, 0x67E251A0,
+/**/                   0x3FB341D7, 0x961BC000,
+/**/                   0x3D31D092, 0x99837610,
+/**/                   0x3FEDA800, 0x00000000,
+/**/                   0xBF0FF896, 0x1FF89620,
+/**/                   0x3FB37D2D, 0x76284000,
+/**/                   0xBD2C60AA, 0x9B7FF15C,
+/**/                   0x3FEDA000, 0x00000000,
+/**/                   0x3F145E70, 0x076828BD,
+/**/                   0x3FB3B875, 0x98B1C000,
+/**/                   0xBD222415, 0x94ACA313,
+/**/                   0x3FED9800, 0x00000000,
+/**/                   0x3F2C8F60, 0xE567D573,
+/**/                   0x3FB3F3B0, 0x04140000,
+/**/                   0x3CEE2474, 0xACDFCEC5,
+/**/                   0x3FED9000, 0x00000000,
+/**/                   0x3F379118, 0xF3FC4DA2,
+/**/                   0x3FB42EDC, 0xBEA64000,
+/**/                   0x3D1BC0EE, 0xEA7C9ACD,
+/**/                   0x3FED9000, 0x00000000,
+/**/                   0xBF3F0C3C, 0x049DE4C3,
+/**/                   0x3FB469FB, 0xCEBB4000,
+/**/                   0x3D3B663C, 0x4F257194,
+/**/                   0x3FED8800, 0x00000000,
+/**/                   0xBF35905F, 0xF13D5906,
+/**/                   0x3FB4A50D, 0x3AA1C000,
+/**/                   0xBD2F7FE1, 0x308973E2,
+/**/                   0x3FED8000, 0x00000000,
+/**/                   0xBF27F6C8, 0x77D1EA57,
+/**/                   0x3FB4E011, 0x08A34000,
+/**/                   0x3D3AE5CF, 0xDF2C5AE5,
+/**/                   0x3FED7800, 0x00000000,
+/**/                   0xBF026AD1, 0xF4F31BA0,
+/**/                   0x3FB51B07, 0x3F060000,
+/**/                   0x3D383F69, 0x278E686A,
+/**/                   0x3FED7000, 0x00000000,
+/**/                   0x3F1DE6B2, 0xF26DF1BD,
+/**/                   0x3FB555EF, 0xE40B4000,
+/**/                   0x3D30B497, 0x8C868E23,
+/**/                   0x3FED6800, 0x00000000,
+/**/                   0x3F31599F, 0x7BA23D96,
+/**/                   0x3FB590CA, 0xFDF00000,
+/**/                   0x3D3C284F, 0x5722ABAA,
+/**/                   0x3FED6000, 0x00000000,
+/**/                   0x3F3B526C, 0xD425A760,
+/**/                   0x3FB5CB98, 0x92ED4000,
+/**/                   0x3D17BE44, 0xA64FC52F,
+/**/                   0x3FED6000, 0x00000000,
+/**/                   0xBF3A9BFC, 0x546A6FF1,
+/**/                   0x3FB60658, 0xA9374000,
+/**/                   0x3D30C3B1, 0xDEE9C4F8,
+/**/                   0x3FED5800, 0x00000000,
+/**/                   0xBF3071AD, 0x08F02FAC,
+/**/                   0x3FB6410B, 0x46FE8000,
+/**/                   0xBD153F8F, 0x3CBD8D14,
+/**/                   0x3FED5000, 0x00000000,
+/**/                   0xBF18BAD9, 0x12C6C142,
+/**/                   0x3FB67BB0, 0x726EC000,
+/**/                   0x3CEF724B, 0x69EF5912,
+/**/                   0x3FED4800, 0x00000000,
+/**/                   0x3F10B35C, 0x3254A5A2,
+/**/                   0x3FB6B648, 0x31B00000,
+/**/                   0xBD3BF30A, 0x1377DE92,
+/**/                   0x3FED4000, 0x00000000,
+/**/                   0x3F2D41D4, 0x1D41D41D,
+/**/                   0x3FB6F0D2, 0x8AE58000,
+/**/                   0xBD34B464, 0x1B664613,
+/**/                   0x3FED3800, 0x00000000,
+/**/                   0x3F392D71, 0xF494E548,
+/**/                   0x3FB72B4F, 0x842EC000,
+/**/                   0xBD3704CC, 0xC00C9DD3,
+/**/                   0x3FED3800, 0x00000000,
+/**/                   0xBF3C2DA1, 0xFF165C2E,
+/**/                   0x3FB765BF, 0x23A6C000,
+/**/                   0xBCFECBC0, 0x35C4256A,
+/**/                   0x3FED3000, 0x00000000,
+/**/                   0xBF317062, 0x7AA49674,
+/**/                   0x3FB7A021, 0x6F648000,
+/**/                   0x3D3E124C, 0xA18418FF,
+/**/                   0x3FED2800, 0x00000000,
+/**/                   0xBF1A6B80, 0x749CB290,
+/**/                   0x3FB7DA76, 0x6D7B0000,
+/**/                   0x3D32CC84, 0x4480C89B,
+/**/                   0x3FED2000, 0x00000000,
+/**/                   0x3F114B52, 0x25C6336D,
+/**/                   0x3FB814BE, 0x23F8C000,
+/**/                   0x3CCB2381, 0xDA82FDFD,
+/**/                   0x3FED1800, 0x00000000,
+/**/                   0x3F2EB155, 0xF08A3B1D,
+/**/                   0x3FB84EF8, 0x98E84000,
+/**/                   0xBD37D5CD, 0x246977C9,
+/**/                   0x3FED1000, 0x00000000,
+/**/                   0x3F3A7692, 0xBD71CD93,
+/**/                   0x3FB88925, 0xD24FC000,
+/**/                   0xBD31D505, 0x44FBB806,
+/**/                   0x3FED1000, 0x00000000,
+/**/                   0xBF3A5384, 0x89FC5E69,
+/**/                   0x3FB8C345, 0xD6318000,
+/**/                   0x3D3B20F5, 0xACB42A66,
+/**/                   0x3FED0800, 0x00000000,
+/**/                   0xBF2E0B56, 0x6439240E,
+/**/                   0x3FB8FD58, 0xAA8C4000,
+/**/                   0xBD3EEC90, 0x1BCB725B,
+/**/                   0x3FED0000, 0x00000000,
+/**/                   0xBF0CFF8C, 0x01CFF8C0,
+/**/                   0x3FB9375E, 0x55594000,
+/**/                   0x3D3EDDC3, 0x7380C364,
+/**/                   0x3FECF800, 0x00000000,
+/**/                   0x3F1F7661, 0x546D8D78,
+/**/                   0x3FB97156, 0xDC8F8000,
+/**/                   0xBD3C1FC1, 0x9AFDB97B,
+/**/                   0x3FECF000, 0x00000000,
+/**/                   0x3F3372E2, 0x25FE30D9,
+/**/                   0x3FB9AB42, 0x46204000,
+/**/                   0xBD28A648, 0x26787061,
+/**/                   0x3FECE800, 0x00000000,
+/**/                   0x3F3F1FDB, 0xD92305A6,
+/**/                   0x3FB9E520, 0x97F9C000,
+/**/                   0x3D235FAC, 0xB52DD050,
+/**/                   0x3FECE800, 0x00000000,
+/**/                   0xBF351B8A, 0x9C37FC63,
+/**/                   0x3FBA1EF1, 0xD8060000,
+/**/                   0x3D3CD417, 0x6DF97BCB,
+/**/                   0x3FECE000, 0x00000000,
+/**/                   0xBF227EC2, 0x6CB725AB,
+/**/                   0x3FBA58B6, 0x0C2B4000,
+/**/                   0xBD3CDC73, 0x5C5C9F2A,
+/**/                   0x3FECD800, 0x00000000,
+/**/                   0x3F05A240, 0xE6C2B448,
+/**/                   0x3FBA926D, 0x3A4AC000,
+/**/                   0x3D356365, 0x0BD22A9C,
+/**/                   0x3FECD000, 0x00000000,
+/**/                   0x3F2D7EC2, 0xFBB8D9F3,
+/**/                   0x3FBACC17, 0x68434000,
+/**/                   0xBD2AA783, 0xA0B7FA4C,
+/**/                   0x3FECC800, 0x00000000,
+/**/                   0x3F3AE1DB, 0x1B71D3E9,
+/**/                   0x3FBB05B4, 0x9BEE4000,
+/**/                   0x3D0FF22C, 0x18F84A5E,
+/**/                   0x3FECC800, 0x00000000,
+/**/                   0xBF38E45A, 0xCD6DE82D,
+/**/                   0x3FBB3F44, 0xDB220000,
+/**/                   0x3D3FD153, 0xD8DE09AF,
+/**/                   0x3FECC000, 0x00000000,
+/**/                   0xBF29269F, 0xE341926A,
+/**/                   0x3FBB78C8, 0x2BB10000,
+/**/                   0xBD325EF7, 0xBC3987E7,
+/**/                   0x3FECB800, 0x00000000,
+/**/                   0xBEC589FB, 0xF620C1DA,
+/**/                   0x3FBBB23E, 0x93690000,
+/**/                   0xBD368B18, 0x3559DB8B,
+/**/                   0x3FECB000, 0x00000000,
+/**/                   0x3F28A893, 0x0DE5FF1A,
+/**/                   0x3FBBEBA8, 0x18148000,
+/**/                   0xBD389B78, 0xB6DF1F57,
+/**/                   0x3FECA800, 0x00000000,
+/**/                   0x3F38EAB9, 0x0039563B,
+/**/                   0x3FBC2504, 0xBF79C000,
+/**/                   0x3D3717C4, 0xD0EF4ADC,
+/**/                   0x3FECA800, 0x00000000,
+/**/                   0xBF3A67D5, 0x08F377F2,
+/**/                   0x3FBC5E54, 0x8F5BC000,
+/**/                   0x3D1D0C57, 0x585FBE06,
+/**/                   0x3FECA000, 0x00000000,
+/**/                   0xBF2B46E0, 0x072792E4,
+/**/                   0x3FBC9797, 0x8D790000,
+/**/                   0xBD36E010, 0x977D1884,
+/**/                   0x3FEC9800, 0x00000000,
+/**/                   0xBEE904EA, 0x1BB327C3,
+/**/                   0x3FBCD0CD, 0xBF8C0000,
+/**/                   0x3D33E14D, 0xB50DD743,
+/**/                   0x3FEC9000, 0x00000000,
+/**/                   0x3F2853EB, 0x77683AEC,
+/**/                   0x3FBD09F7, 0x2B4C4000,
+/**/                   0x3D2048C0, 0x00354E33,
+/**/                   0x3FEC8800, 0x00000000,
+/**/                   0x3F3932D7, 0xDC52100E,
+/**/                   0x3FBD4313, 0xD66CC000,
+/**/                   0xBD294543, 0x79135713,
+/**/                   0x3FEC8800, 0x00000000,
+/**/                   0xBF39AD90, 0x2736962B,
+/**/                   0x3FBD7C23, 0xC69CC000,
+/**/                   0xBD297EE4, 0xDD328771,
+/**/                   0x3FEC8000, 0x00000000,
+/**/                   0xBF28EEA2, 0xF316B4C2,
+/**/                   0x3FBDB527, 0x0187C000,
+/**/                   0x3D392778, 0x56AE181F,
+/**/                   0x3FEC7800, 0x00000000,
+/**/                   0x3EEAB099, 0x058F7536,
+/**/                   0x3FBDEE1D, 0x8CD60000,
+/**/                   0xBD328DA0, 0x729EFF89,
+/**/                   0x3FEC7000, 0x00000000,
+/**/                   0x3F2C71C7, 0x1C71C71C,
+/**/                   0x3FBE2707, 0x6E2B0000,
+/**/                   0xBD2A342C, 0x2AF0003C,
+/**/                   0x3FEC6800, 0x00000000,
+/**/                   0x3F3BB2BB, 0xD6422A30,
+/**/                   0x3FBE5FE4, 0xAB274000,
+/**/                   0xBD35FAE9, 0xF74FFE4D,
+/**/                   0x3FEC6800, 0x00000000,
+/**/                   0xBF36BD01, 0x54BDE47E,
+/**/                   0x3FBE98B5, 0x49670000,
+/**/                   0x3D346774, 0x89C50E97,
+/**/                   0x3FEC6000, 0x00000000,
+/**/                   0xBF222CC5, 0xB5157FE4,
+/**/                   0x3FBED179, 0x4E838000,
+/**/                   0xBD1FD143, 0x749D0484,
+/**/                   0x3FEC5800, 0x00000000,
+/**/                   0x3F129A21, 0xA930B840,
+/**/                   0x3FBF0A30, 0xC0118000,
+/**/                   0xBD3D599E, 0x83368E91,
+/**/                   0x3FEC5000, 0x00000000,
+/**/                   0x3F3279B1, 0xAC5CEE14,
+/**/                   0x3FBF42DB, 0xA3A24000,
+/**/                   0xBD3312B7, 0x32DF6C0D,
+/**/                   0x3FEC5000, 0x00000000,
+/**/                   0xBF3F9CF5, 0xD4AB8D0B,
+/**/                   0x3FBF7B79, 0xFEC38000,
+/**/                   0xBD010987, 0xE897ED01,
+/**/                   0x3FEC4800, 0x00000000,
+/**/                   0xBF319D7C, 0xCC17DAE4,
+/**/                   0x3FBFB40B, 0xD6FF4000,
+/**/                   0x3D2C0BEC, 0xB7B53B5B,
+/**/                   0x3FEC4000, 0x00000000,
+/**/                   0xBF0C3F8F, 0x01C3F8F0,
+/**/                   0x3FBFEC91, 0x31DC0000,
+/**/                   0xBD354555, 0xD1AE6607,
+/**/                   0x3FEC3800, 0x00000000,
+/**/                   0x3F254738, 0xAB1B8FFC,
+/**/                   0x3FC01285, 0x0A6E0000,
+/**/                   0xBD1A8619, 0x4805BF94,
+/**/                   0x3FEC3000, 0x00000000,
+/**/                   0x3F38E51F, 0x48B3C5D7,
+/**/                   0x3FC02EBB, 0x42BF4000,
+/**/                   0xBD15A8FA, 0x5CE00E5D,
+/**/                   0x3FEC3000, 0x00000000,
+/**/                   0xBF38C377, 0x867E595E,
+/**/                   0x3FC04AEB, 0x449F6000,
+/**/                   0x3D2AFA90, 0x65CCD35C,
+/**/                   0x3FEC2800, 0x00000000,
+/**/                   0xBF24AC6D, 0x15FE3D95,
+/**/                   0x3FC06715, 0x12CA6000,
+/**/                   0xBD2A4757, 0x9CDC0A3D,
+/**/                   0x3FEC2000, 0x00000000,
+/**/                   0x3F10B34F, 0x53B8CDAE,
+/**/                   0x3FC08338, 0xAFFA2000,
+/**/                   0x3D30533C, 0xAC823E27,
+/**/                   0x3FEC1800, 0x00000000,
+/**/                   0x3F32C599, 0x3FABB0F6,
+/**/                   0x3FC09F56, 0x1EE72000,
+/**/                   0xBD28F305, 0x7157D1A8,
+/**/                   0x3FEC1800, 0x00000000,
+/**/                   0xBF3E8BF4, 0x97CD1B6C,
+/**/                   0x3FC0BB6D, 0x6247A000,
+/**/                   0x3D35464F, 0x3CCD04B3,
+/**/                   0x3FEC1000, 0x00000000,
+/**/                   0xBF2F8FC7, 0xE3F1F8FC,
+/**/                   0x3FC0D77E, 0x7CD08000,
+/**/                   0x3D3CB2CD, 0x2EE2F482,
+/**/                   0x3FEC0800, 0x00000000,
+/**/                   0xBEEDC860, 0x5B199F35,
+/**/                   0x3FC0F389, 0x7134C000,
+/**/                   0xBD3DA359, 0xE893D6C6,
+/**/                   0x3FEC0000, 0x00000000,
+/**/                   0x3F2C01C0, 0x1C01C01C,
+/**/                   0x3FC10F8E, 0x42254000,
+/**/                   0xBD293B38, 0x43396307,
+/**/                   0x3FEBF800, 0x00000000,
+/**/                   0x3F3D0577, 0x256228AA,
+/**/                   0x3FC12B8C, 0xF2518000,
+/**/                   0x3D348A4A, 0x13C0A0FC,
+/**/                   0x3FEBF800, 0x00000000,
+/**/                   0xBF33E08B, 0xCB93A8A1,
+/**/                   0x3FC14785, 0x84674000,
+/**/                   0x3D156345, 0x1027C750,
+/**/                   0x3FEBF000, 0x00000000,
+/**/                   0xBF12C4DB, 0x1DE63F4A,
+/**/                   0x3FC16377, 0xFB124000,
+/**/                   0x3D091E1A, 0xBF41763E,
+/**/                   0x3FEBE800, 0x00000000,
+/**/                   0x3F2526D0, 0x769F9E4F,
+/**/                   0x3FC17F64, 0x58FCA000,
+/**/                   0x3D2843FA, 0xD093C8DC,
+/**/                   0x3FEBE000, 0x00000000,
+/**/                   0x3F39ED43, 0x5292D891,
+/**/                   0x3FC19B4A, 0xA0CEE000,
+/**/                   0xBD3D8824, 0x9621338B,
+/**/                   0x3FEBE000, 0x00000000,
+/**/                   0xBF36A3B3, 0x5FC845A9,
+/**/                   0x3FC1B72A, 0xD52F6000,
+/**/                   0x3D2E80A4, 0x1811A396,
+/**/                   0x3FEBD800, 0x00000000,
+/**/                   0xBF1C7E26, 0xB7230491,
+/**/                   0x3FC1D304, 0xF8C36000,
+/**/                   0xBD3A6D44, 0xDF451042,
+/**/                   0x3FEBD000, 0x00000000,
+/**/                   0x3F20F365, 0x451B61CB,
+/**/                   0x3FC1EED9, 0x0E2DC000,
+/**/                   0x3D161563, 0x7097648F,
+/**/                   0x3FEBC800, 0x00000000,
+/**/                   0x3F3827F3, 0xD72DD0AA,
+/**/                   0x3FC20AA7, 0x18102000,
+/**/                   0x3D3F2C94, 0x348552FE,
+/**/                   0x3FEBC800, 0x00000000,
+/**/                   0xBF3814D3, 0xBE0C262F,
+/**/                   0x3FC2266F, 0x190A6000,
+/**/                   0xBD24D20A, 0xB840E7F6,
+/**/                   0x3FEBC000, 0x00000000,
+/**/                   0xBF207963, 0x7ECECB53,
+/**/                   0x3FC24231, 0x13BA6000,
+/**/                   0xBD3E3A00, 0x78EE9D9C,
+/**/                   0x3FEBB800, 0x00000000,
+/**/                   0x3F1EC130, 0xF29268D3,
+/**/                   0x3FC25DED, 0x0ABC6000,
+/**/                   0x3D35A385, 0x4F176449,
+/**/                   0x3FEBB000, 0x00000000,
+/**/                   0x3F37B218, 0xAB6353BF,
+/**/                   0x3FC279A3, 0x00AB4000,
+/**/                   0x3D3EF432, 0xB3235108,
+/**/                   0x3FEBB000, 0x00000000,
+/**/                   0xBF383759, 0xF2298376,
+/**/                   0x3FC29552, 0xF8200000,
+/**/                   0xBD35B967, 0xF4471DFC,
+/**/                   0x3FEBA800, 0x00000000,
+/**/                   0xBF201832, 0x1EAD4253,
+/**/                   0x3FC2B0FC, 0xF3B1A000,
+/**/                   0x3D177CA3, 0xE30A59EA,
+/**/                   0x3FEBA000, 0x00000000,
+/**/                   0x3F20679B, 0xD84886B1,
+/**/                   0x3FC2CCA0, 0xF5F60000,
+/**/                   0xBD3B5EF1, 0x91AFF120,
+/**/                   0x3FEB9800, 0x00000000,
+/**/                   0x3F38884D, 0xA41FEB4C,
+/**/                   0x3FC2E83F, 0x0180E000,
+/**/                   0xBD3F0C2A, 0xC284E1CE,
+/**/                   0x3FEB9800, 0x00000000,
+/**/                   0xBF370EA7, 0x3806E548,
+/**/                   0x3FC303D7, 0x18E48000,
+/**/                   0xBCD680B5, 0xCE3ECB05,
+/**/                   0x3FEB9000, 0x00000000,
+/**/                   0xBF1A4477, 0xB5EF34C0,
+/**/                   0x3FC31F69, 0x3EB1A000,
+/**/                   0xBD2A6726, 0xE5A396FB,
+/**/                   0x3FEB8800, 0x00000000,
+/**/                   0x3F2401B8, 0x9401B894,
+/**/                   0x3FC33AF5, 0x75770000,
+/**/                   0x3D3C9ECC, 0xA2FE72A5,
+/**/                   0x3FEB8000, 0x00000000,
+/**/                   0x3F3AA73A, 0x400DC1AA,
+/**/                   0x3FC3567B, 0xBFC22000,
+/**/                   0x3D3250D2, 0x53991A1F,
+/**/                   0x3FEB8000, 0x00000000,
+/**/                   0xBF349E11, 0x2E63A6A8,
+/**/                   0x3FC371FC, 0x201E8000,
+/**/                   0x3D3EE877, 0x9B2D8ABC,
+/**/                   0x3FEB7800, 0x00000000,
+/**/                   0xBF0E7898, 0xC8DA04B9,
+/**/                   0x3FC38D76, 0x99164000,
+/**/                   0x3D1844A5, 0x9E39BB70,
+/**/                   0x3FEB7000, 0x00000000,
+/**/                   0x3F2A284E, 0xE6B33E2D,
+/**/                   0x3FC3A8EB, 0x2D31A000,
+/**/                   0x3D1BAFB7, 0x7D5D503E,
+/**/                   0x3FEB6800, 0x00000000,
+/**/                   0x3F3E0B91, 0x759C2BB4,
+/**/                   0x3FC3C459, 0xDEF76000,
+/**/                   0x3D3EDC86, 0xF6B70D33,
+/**/                   0x3FEB6800, 0x00000000,
+/**/                   0xBF30E8E2, 0x088FD6E7,
+/**/                   0x3FC3DFC2, 0xB0ECC000,
+/**/                   0x3D28A72A, 0x62B8C13F,
+/**/                   0x3FEB6000, 0x00000000,
+/**/                   0x3ECB6006, 0xD801B600,
+/**/                   0x3FC3FB25, 0xA5952000,
+/**/                   0x3D3195BE, 0x6B358FF7,
+/**/                   0x3FEB5800, 0x00000000,
+/**/                   0x3F316A6A, 0xD840F62C,
+/**/                   0x3FC41682, 0xBF728000,
+/**/                   0xBD210047, 0x081F849D,
+/**/                   0x3FEB5800, 0x00000000,
+/**/                   0xBF3D4DEE, 0x7DF8BD99,
+/**/                   0x3FC431DA, 0x01050000,
+/**/                   0x3D304837, 0x836E0391,
+/**/                   0x3FEB5000, 0x00000000,
+/**/                   0xBF27E4B1, 0x7E4B17E5,
+/**/                   0x3FC44D2B, 0x6CCB8000,
+/**/                   0xBD170CC1, 0x6135783C,
+/**/                   0x3FEB4800, 0x00000000,
+/**/                   0x3F15F47D, 0x55E6D8FE,
+/**/                   0x3FC46877, 0x05430000,
+/**/                   0xBD3D8145, 0xF8D5087E,
+/**/                   0x3FEB4000, 0x00000000,
+/**/                   0x3F37006D, 0x0B803686,
+/**/                   0x3FC483BC, 0xCCE6E000,
+/**/                   0x3D1EEA52, 0x723F6369,
+/**/                   0x3FEB4000, 0x00000000,
+/**/                   0xBF37687C, 0x46A66920,
+/**/                   0x3FC49EFC, 0xC6314000,
+/**/                   0xBD090F59, 0x9F55572B,
+/**/                   0x3FEB3800, 0x00000000,
+/**/                   0xBF16F6A4, 0xFF2645BE,
+/**/                   0x3FC4BA36, 0xF39A6000,
+/**/                   0xBD34354B, 0xB3F219E5,
+/**/                   0x3FEB3000, 0x00000000,
+/**/                   0x3F2801B3, 0x1801B318,
+/**/                   0x3FC4D56B, 0x5798E000,
+/**/                   0x3D380580, 0x15A96555,
+/**/                   0x3FEB2800, 0x00000000,
+/**/                   0x3F3DD2FF, 0x93511680,
+/**/                   0x3FC4F099, 0xF4A24000,
+/**/                   0xBD3E9BF2, 0xFAFEAF27,
+/**/                   0x3FEB2800, 0x00000000,
+/**/                   0xBF304743, 0xA89DCCAC,
+/**/                   0x3FC50BC2, 0xCD29C000,
+/**/                   0x3D1ADA57, 0x28DB8D4F,
+/**/                   0x3FEB2000, 0x00000000,
+/**/                   0x3EFB2036, 0x406C80D9,
+/**/                   0x3FC526E5, 0xE3A1C000,
+/**/                   0xBD3790BA, 0x37FC5238,
+/**/                   0x3FEB1800, 0x00000000,
+/**/                   0x3F33BEC8, 0x4F9DC00E,
+/**/                   0x3FC54203, 0x3A7A8000,
+/**/                   0x3D268D68, 0xED855F0E,
+/**/                   0x3FEB1800, 0x00000000,
+/**/                   0xBF3A2101, 0x44F8CE7E,
+/**/                   0x3FC55D1A, 0xD4232000,
+/**/                   0x3D3ADD94, 0xDDA647E8,
+/**/                   0x3FEB1000, 0x00000000,
+/**/                   0xBF1FB596, 0xB99AF3F3,
+/**/                   0x3FC5782C, 0xB3092000,
+/**/                   0xBD33A463, 0x51794442,
+/**/                   0x3FEB0800, 0x00000000,
+/**/                   0x3F24B31D, 0x922A3E85,
+/**/                   0x3FC59338, 0xD9982000,
+/**/                   0x3CF0BA68, 0xB7555D4A,
+/**/                   0x3FEB0000, 0x00000000,
+/**/                   0x3F3CB3CF, 0xE19BF6B7,
+/**/                   0x3FC5AE3F, 0x4A3AA000,
+/**/                   0x3D21EA25, 0xF012A8B9,
+/**/                   0x3FEB0000, 0x00000000,
+/**/                   0xBF30DEAE, 0x9A5BF0D1,
+/**/                   0x3FC5C940, 0x07598000,
+/**/                   0xBD3A8D94, 0x8CD23322,
+/**/                   0x3FEAF800, 0x00000000,
+/**/                   0x3EFA2072, 0x9EDE13CE,
+/**/                   0x3FC5E43B, 0x135BE000,
+/**/                   0xBD343AB4, 0xCEED9C31,
+/**/                   0x3FEAF000, 0x00000000,
+/**/                   0x3F3435E5, 0x0D79435E,
+/**/                   0x3FC5FF30, 0x70A7A000,
+/**/                   0xBD38586F, 0x183BEBF2,
+/**/                   0x3FEAF000, 0x00000000,
+/**/                   0xBF392321, 0x06855D30,
+/**/                   0x3FC61A20, 0x21A0E000,
+/**/                   0x3D3DD9DD, 0x1BDF3CDD,
+/**/                   0x3FEAE800, 0x00000000,
+/**/                   0xBF19A45C, 0x7ABED811,
+/**/                   0x3FC6350A, 0x28AAA000,
+/**/                   0x3D2D5EC0, 0xAB8163AF,
+/**/                   0x3FEAE000, 0x00000000,
+/**/                   0x3F28C7ED, 0x84EF68CB,
+/**/                   0x3FC64FEE, 0x88260000,
+/**/                   0xBD1DA40D, 0x759DDED6,
+/**/                   0x3FEAD800, 0x00000000,
+/**/                   0x3F3F43FC, 0xA482F00D,
+/**/                   0x3FC66ACD, 0x4272A000,
+/**/                   0x3D3AA1BD, 0xBFC6C785,
+/**/                   0x3FEAD800, 0x00000000,
+/**/                   0xBF2B9222, 0xCDE3E7AE,
+/**/                   0x3FC685A6, 0x59EF0000,
+/**/                   0xBD21F2A9, 0x6C103214,
+/**/                   0x3FEAD000, 0x00000000,
+/**/                   0x3F14F302, 0xEED254A3,
+/**/                   0x3FC6A079, 0xD0F7A000,
+/**/                   0x3D35A3F8, 0x448D14F5,
+/**/                   0x3FEAC800, 0x00000000,
+/**/                   0x3F385567, 0x32071DEF,
+/**/                   0x3FC6BB47, 0xA9E80000,
+/**/                   0x3D19F64D, 0x23EA3296,
+/**/                   0x3FEAC800, 0x00000000,
+/**/                   0xBF347F29, 0xD47F29D4,
+/**/                   0x3FC6D60F, 0xE719E000,
+/**/                   0xBD3BC6E5, 0x57134767,
+/**/                   0x3FEAC000, 0x00000000,
+/**/                   0xBEF40FE1, 0xE82D23BC,
+/**/                   0x3FC6F0D2, 0x8AE56000,
+/**/                   0x3D369737, 0xC93373DA,
+/**/                   0x3FEAB800, 0x00000000,
+/**/                   0x3F320FDE, 0x972D8538,
+/**/                   0x3FC70B8F, 0x97A1A000,
+/**/                   0x3D34EA64, 0xF6A95BEF,
+/**/                   0x3FEAB800, 0x00000000,
+/**/                   0xBF3A8C9F, 0x66711513,
+/**/                   0x3FC72647, 0x0FA40000,
+/**/                   0xBD3774DF, 0x0E743A45,
+/**/                   0x3FEAB000, 0x00000000,
+/**/                   0xBF1C5A0F, 0x02806ABC,
+/**/                   0x3FC740F8, 0xF5404000,
+/**/                   0xBD30B66C, 0x99018AA1,
+/**/                   0x3FEAA800, 0x00000000,
+/**/                   0x3F28E44B, 0xD22C937A,
+/**/                   0x3FC75BA5, 0x4AC8E000,
+/**/                   0x3D3DDCA5, 0x8BC4A7C0,
+/**/                   0x3FEAA800, 0x00000000,
+/**/                   0xBF3FF2AD, 0xFF2ADFF3,
+/**/                   0x3FC7764C, 0x128F2000,
+/**/                   0x3D027490, 0x3479E3D1,
+/**/                   0x3FEAA000, 0x00000000,
+/**/                   0xBF288A16, 0x0B3ADA5C,
+/**/                   0x3FC790ED, 0x4EE26000,
+/**/                   0x3D199BBD, 0x4E7746F6,
+/**/                   0x3FEA9800, 0x00000000,
+/**/                   0x3F1DEC0D, 0x4C77B035,
+/**/                   0x3FC7AB89, 0x0210E000,
+/**/                   0xBD2BDB90, 0x72534A58,
+/**/                   0x3FEA9000, 0x00000000,
+/**/                   0x3F3B4D71, 0x91F59E6B,
+/**/                   0x3FC7C61F, 0x2E674000,
+/**/                   0xBD32392D, 0xB31BE8E0,
+/**/                   0x3FEA9000, 0x00000000,
+/**/                   0xBF30CDCB, 0xB8A2A522,
+/**/                   0x3FC7E0AF, 0xD630C000,
+/**/                   0x3D139E7C, 0x1D8F1034,
+/**/                   0x3FEA8800, 0x00000000,
+/**/                   0x3F094A00, 0x6A2194A0,
+/**/                   0x3FC7FB3A, 0xFBB76000,
+/**/                   0xBD37DBF5, 0x24609D57,
+/**/                   0x3FEA8000, 0x00000000,
+/**/                   0x3F373289, 0x870AC52E,
+/**/                   0x3FC815C0, 0xA1436000,
+/**/                   0xBD302A52, 0xF9201CE8,
+/**/                   0x3FEA8000, 0x00000000,
+/**/                   0xBF34B1FA, 0x9E8684DD,
+/**/                   0x3FC83040, 0xC91BC000,
+/**/                   0x3D3E5B71, 0xC6E66F32,
+/**/                   0x3FEA7800, 0x00000000,
+/**/                   0xBEE08AF5, 0xA9267648,
+/**/                   0x3FC84ABB, 0x75866000,
+/**/                   0xBD3D8DAA, 0xDF4E2BD2,
+/**/                   0x3FEA7000, 0x00000000,
+/**/                   0x3F33BB67, 0x1A3D927E,
+/**/                   0x3FC86530, 0xA8C70000,
+/**/                   0x3D398BB0, 0xCB4EA3E3,
+/**/                   0x3FEA7000, 0x00000000,
+/**/                   0xBF37F2C9, 0x7F2C97F3,
+/**/                   0x3FC87FA0, 0x6520C000,
+/**/                   0x3D322120, 0x401202FC,
+/**/                   0x3FEA6800, 0x00000000,
+/**/                   0xBF0C77A5, 0x3C076D20,
+/**/                   0x3FC89A0A, 0xACD4E000,
+/**/                   0x3D2C0BFB, 0xDA8F5A72,
+/**/                   0x3FEA6000, 0x00000000,
+/**/                   0x3F30E6DA, 0x7C7EF82B,
+/**/                   0x3FC8B46F, 0x82236000,
+/**/                   0x3D12D9F2, 0x102DD7C9,
+/**/                   0x3FEA6000, 0x00000000,
+/**/                   0xBF3A9167, 0x2EC05C44,
+/**/                   0x3FC8CECE, 0xE74AE000,
+/**/                   0xBD3A5BA0, 0xAA429BB5,
+/**/                   0x3FEA5800, 0x00000000,
+/**/                   0xBF17DF12, 0xEEB6BD53,
+/**/                   0x3FC8E928, 0xDE886000,
+/**/                   0x3D3A8154, 0xB13D72D5,
+/**/                   0x3FEA5000, 0x00000000,
+/**/                   0x3F2D676D, 0x98C70AE6,
+/**/                   0x3FC9037D, 0x6A180000,
+/**/                   0x3D230DEA, 0x57C1C8D9,
+/**/                   0x3FEA5000, 0x00000000,
+/**/                   0xBF3C8EFF, 0x96CE4780,
+/**/                   0x3FC91DCC, 0x8C340000,
+/**/                   0x3D37BC6A, 0xBDDEFF46,
+/**/                   0x3FEA4800, 0x00000000,
+/**/                   0xBF1EFFCB, 0x71EFFCB7,
+/**/                   0x3FC93816, 0x4715A000,
+/**/                   0xBD34C63D, 0x6A3A39D9,
+/**/                   0x3FEA4000, 0x00000000,
+/**/                   0x3F2A41A4, 0x1A41A41A,
+/**/                   0x3FC9525A, 0x9CF46000,
+/**/                   0xBD329713, 0x7D9F158F,
+/**/                   0x3FEA4000, 0x00000000,
+/**/                   0xBF3DECBB, 0xBF3B3C0E,
+/**/                   0x3FC96C99, 0x9006A000,
+/**/                   0x3D2A88D5, 0x9CBB452C,
+/**/                   0x3FEA3800, 0x00000000,
+/**/                   0xBF21D14E, 0x3BCD35A8,
+/**/                   0x3FC986D3, 0x22818000,
+/**/                   0x3CF93B56, 0x4DD44000,
+/**/                   0x3FEA3000, 0x00000000,
+/**/                   0x3F285A0A, 0x3B5832C0,
+/**/                   0x3FC9A107, 0x56988000,
+/**/                   0x3D264AA6, 0x242CD098,
+/**/                   0x3FEA3000, 0x00000000,
+/**/                   0xBF3EABC1, 0xD71AFD8C,
+/**/                   0x3FC9BB36, 0x2E7E0000,
+/**/                   0xBD21F2A8, 0xA1CE0FFC,
+/**/                   0x3FEA2800, 0x00000000,
+/**/                   0xBF22E60D, 0x7C041611,
+/**/                   0x3FC9D55F, 0xAC62E000,
+/**/                   0xBD3F4669, 0xFC3B5BC3,
+/**/                   0x3FEA2000, 0x00000000,
+/**/                   0x3F27AE57, 0x5FF2EF43,
+/**/                   0x3FC9EF83, 0xD276A000,
+/**/                   0xBD2730B7, 0xB3F9CE00,
+/**/                   0x3FEA2000, 0x00000000,
+/**/                   0xBF3ECD35, 0x3D66322E,
+/**/                   0x3FCA09A2, 0xA2E7A000,
+/**/                   0xBD2DD99D, 0xCD411233,
+/**/                   0x3FEA1800, 0x00000000,
+/**/                   0xBF22C068, 0x5B4FE5E9,
+/**/                   0x3FCA23BC, 0x1FE2C000,
+/**/                   0xBD3539CD, 0x91DC9F0B,
+/**/                   0x3FEA1000, 0x00000000,
+/**/                   0x3F283C48, 0x80B67A9A,
+/**/                   0x3FCA3DD0, 0x4B938000,
+/**/                   0x3D297DA1, 0x366E2C5A,
+/**/                   0x3FEA1000, 0x00000000,
+/**/                   0xBF3E5236, 0x89907BBA,
+/**/                   0x3FCA57DF, 0x28244000,
+/**/                   0x3D3B99C8, 0xCA1D9ABB,
+/**/                   0x3FEA0800, 0x00000000,
+/**/                   0xBF21629E, 0x32054967,
+/**/                   0x3FCA71E8, 0xB7BE0000,
+/**/                   0xBD210ACA, 0x6EF05323,
+/**/                   0x3FEA0000, 0x00000000,
+/**/                   0x3F2A01A0, 0x1A01A01A,
+/**/                   0x3FCA8BEC, 0xFC882000,
+/**/                   0x3D3E3185, 0xCF21B9CF,
+/**/                   0x3FEA0000, 0x00000000,
+/**/                   0xBF3D3BE3, 0x93FF301D,
+/**/                   0x3FCAA5EB, 0xF8A94000,
+/**/                   0xBD32A0A9, 0x36951A8F,
+/**/                   0x3FE9F800, 0x00000000,
+/**/                   0xBF1D9DD1, 0xBFE608ED,
+/**/                   0x3FCABFE5, 0xAE462000,
+/**/                   0xBD3B68F5, 0x395F139D,
+/**/                   0x3FE9F000, 0x00000000,
+/**/                   0x3F2CFC26, 0x1B29257F,
+/**/                   0x3FCAD9DA, 0x1F828000,
+/**/                   0xBD3882B7, 0xC803F050,
+/**/                   0x3FE9F000, 0x00000000,
+/**/                   0xBF3B8B57, 0x7E613717,
+/**/                   0x3FCAF3C9, 0x4E80C000,
+/**/                   0xBCBA4E63, 0x3FCD9066,
+/**/                   0x3FE9E800, 0x00000000,
+/**/                   0xBF160EF9, 0xB9FABD04,
+/**/                   0x3FCB0DB3, 0x3D620000,
+/**/                   0x3D3FEE14, 0x38EAB906,
+/**/                   0x3FE9E000, 0x00000000,
+/**/                   0x3F3094D3, 0xEAF850E2,
+/**/                   0x3FCB2797, 0xEE464000,
+/**/                   0xBD3BE88A, 0x906D00A9,
+/**/                   0x3FE9E000, 0x00000000,
+/**/                   0xBF3941AA, 0xBBE88FDC,
+/**/                   0x3FCB4177, 0x634BA000,
+/**/                   0x3D355D01, 0x5666069F,
+/**/                   0x3FE9D800, 0x00000000,
+/**/                   0xBF083A25, 0x25F4B1AA,
+/**/                   0x3FCB5B51, 0x9E8FC000,
+/**/                   0xBD34B722, 0xEC011F31,
+/**/                   0x3FE9D000, 0x00000000,
+/**/                   0x3F3343FB, 0xF71FAC14,
+/**/                   0x3FCB7526, 0xA22E4000,
+/**/                   0x3D2C0DBF, 0x2E785490,
+/**/                   0x3FE9D000, 0x00000000,
+/**/                   0xBF365FF3, 0x1965FF32,
+/**/                   0x3FCB8EF6, 0x70420000,
+/**/                   0x3D387533, 0x321788E0,
+/**/                   0x3FE9C800, 0x00000000,
+/**/                   0x3EA9C801, 0x9C8019C8,
+/**/                   0x3FCBA8C1, 0x0AE46000,
+/**/                   0x3D3A32E2, 0x9EEE9D85,
+/**/                   0x3FE9C000, 0x00000000,
+/**/                   0x3F368A77, 0x25080CE1,
+/**/                   0x3FCBC286, 0x742D8000,
+/**/                   0x3D39AC53, 0xF39D121C,
+/**/                   0x3FE9C000, 0x00000000,
+/**/                   0xBF32E743, 0xC54763F2,
+/**/                   0x3FCBDC46, 0xAE344000,
+/**/                   0x3D3625B4, 0x023D6505,
+/**/                   0x3FE9B800, 0x00000000,
+/**/                   0x3F0DBD49, 0x8B7424F9,
+/**/                   0x3FCBF601, 0xBB0E4000,
+/**/                   0x3D2386A9, 0x47C378B5,
+/**/                   0x3FE9B000, 0x00000000,
+/**/                   0x3F3A6734, 0x00CD9A67,
+/**/                   0x3FCC0FB7, 0x9CCFE000,
+/**/                   0xBD346FFF, 0x99E8A558,
+/**/                   0x3FE9B000, 0x00000000,
+/**/                   0xBF2DB15A, 0xAEF25B7C,
+/**/                   0x3FCC2968, 0x558C2000,
+/**/                   0xBD2CFD73, 0xDEE38A40,
+/**/                   0x3FE9A800, 0x00000000,
+/**/                   0x3F1FDFEC, 0xC140C073,
+/**/                   0x3FCC4313, 0xE754E000,
+/**/                   0x3D3279BE, 0x74CAD7D6,
+/**/                   0x3FE9A000, 0x00000000,
+/**/                   0x3F3ED923, 0xA7DCBEB3,
+/**/                   0x3FCC5CBA, 0x543AE000,
+/**/                   0x3D20929D, 0xECB454FC,
+/**/                   0x3FE9A000, 0x00000000,
+/**/                   0xBF246A7B, 0xB256DE2C,
+/**/                   0x3FCC765B, 0x9E4D6000,
+/**/                   0x3D31AB6B, 0x36976F6C,
+/**/                   0x3FE99800, 0x00000000,
+/**/                   0x3F299999, 0x9999999A,
+/**/                   0x3FCC8FF7, 0xC79AA000,
+/**/                   0xBD27794F, 0x689F8434,
+/**/                   0x3FE99800, 0x00000000,
+/**/                   0xBF3C20C6, 0x3EC03FF3,
+/**/                   0x3FCCA98E, 0xD22F6000,
+/**/                   0xBCF698C1, 0x8CA209C8,
+/**/                   0x3FE99000, 0x00000000,
+/**/                   0xBF13F803, 0x31EC07FD,
+/**/                   0x3FCCC320, 0xC0176000,
+/**/                   0x3D240903, 0x9A653794,
+/**/                   0x3FE98800, 0x00000000,
+/**/                   0x3F323513, 0x5AC98715,
+/**/                   0x3FCCDCAD, 0x935D2000,
+/**/                   0xBD0A0FF0, 0x34C9A447,
+/**/                   0x3FE98800, 0x00000000,
+/**/                   0xBF368793, 0x89F80661,
+/**/                   0x3FCCF635, 0x4E09C000,
+/**/                   0x3D277123, 0x9A07D55B,
+/**/                   0x3FE98000, 0x00000000,
+/**/                   0x3EE98019, 0x8019801A,
+/**/                   0x3FCD0FB7, 0xF2256000,
+/**/                   0xBD0AF52B, 0x20633B29,
+/**/                   0x3FE97800, 0x00000000,
+/**/                   0x3F382FC6, 0xAB329020,
+/**/                   0x3FCD2935, 0x81B6C000,
+/**/                   0xBD383270, 0x128AAA5F,
+/**/                   0x3FE97800, 0x00000000,
+/**/                   0xBF305C4B, 0x962DBFF3,
+/**/                   0x3FCD42AD, 0xFEC36000,
+/**/                   0xBD175C00, 0xFD804272,
+/**/                   0x3FE97000, 0x00000000,
+/**/                   0x3F1C9F01, 0x970E4F81,
+/**/                   0x3FCD5C21, 0x6B4FC000,
+/**/                   0xBD21BA91, 0xBBCA681B,
+/**/                   0x3FE96800, 0x00000000,
+/**/                   0x3F3EBBE1, 0x049160B8,
+/**/                   0x3FCD758F, 0xC95F0000,
+/**/                   0xBD15A10A, 0x8B4162AA,
+/**/                   0x3FE96800, 0x00000000,
+/**/                   0xBF233FE6, 0x9933FE6A,
+/**/                   0x3FCD8EF9, 0x1AF32000,
+/**/                   0xBD15105F, 0xC364C784,
+/**/                   0x3FE96000, 0x00000000,
+/**/                   0x3F2C2873, 0xCE078906,
+/**/                   0x3FCDA85D, 0x620CE000,
+/**/                   0x3D240194, 0xC16CC7EC,
+/**/                   0x3FE96000, 0x00000000,
+/**/                   0xBF3A27A0, 0xE442936B,
+/**/                   0x3FCDC1BC, 0xA0ABE000,
+/**/                   0x3D38FAC1, 0xA628CCC6,
+/**/                   0x3FE95800, 0x00000000,
+/**/                   0xBF029C69, 0x548A97A9,
+/**/                   0x3FCDDB16, 0xD8CEA000,
+/**/                   0xBD1EEF79, 0x7104B8BC,
+/**/                   0x3FE95000, 0x00000000,
+/**/                   0x3F35906B, 0x9F74B92D,
+/**/                   0x3FCDF46C, 0x0C722000,
+/**/                   0x3D3A5E82, 0xB0B79039,
+/**/                   0x3FE95000, 0x00000000,
+/**/                   0xBF327BBF, 0xF35927BC,
+/**/                   0x3FCE0DBC, 0x3D92A000,
+/**/                   0x3D359233, 0xF0529BF1,
+/**/                   0x3FE94800, 0x00000000,
+/**/                   0x3F161F9A, 0xDD3C0CA4,
+/**/                   0x3FCE2707, 0x6E2B0000,
+/**/                   0xBD3A342C, 0x2AF0003C,
+/**/                   0x3FE94000, 0x00000000,
+/**/                   0x3F3D9B56, 0x41228A8F,
+/**/                   0x3FCE404D, 0xA034C000,
+/**/                   0xBD3187EE, 0xE09A2799,
+/**/                   0x3FE94000, 0x00000000,
+/**/                   0xBF2482F5, 0x598A73F8,
+/**/                   0x3FCE598E, 0xD5A88000,
+/**/                   0xBD0D134B, 0xCF1E98A1,
+/**/                   0x3FE93800, 0x00000000,
+/**/                   0x3F2BE2D5, 0x3C1B9728,
+/**/                   0x3FCE72CB, 0x107DA000,
+/**/                   0x3D1DD48C, 0xCDF5471C,
+/**/                   0x3FE93800, 0x00000000,
+/**/                   0xBF39CC03, 0x2698CFF3,
+/**/                   0x3FCE8C02, 0x52AA6000,
+/**/                   0xBD26805B, 0x80E8E6FF,
+/**/                   0x3FE93000, 0x00000000,
+/**/                   0xBEF79CD3, 0xB9F30358,
+/**/                   0x3FCEA534, 0x9E23A000,
+/**/                   0x3D381B93, 0x4C73CCB5,
+/**/                   0x3FE92800, 0x00000000,
+/**/                   0x3F36E803, 0x255BA00D,
+/**/                   0x3FCEBE61, 0xF4DD8000,
+/**/                   0xBD23D453, 0x30FDCA4D,
+/**/                   0x3FE92800, 0x00000000,
+/**/                   0xBF30A69B, 0x36077742,
+/**/                   0x3FCED78A, 0x58CA8000,
+/**/                   0x3D16F1B5, 0x3793387E,
+/**/                   0x3FE92000, 0x00000000,
+/**/                   0x3F1F693A, 0x1C451AB3,
+/**/                   0x3FCEF0AD, 0xCBDC6000,
+/**/                   0xBD2B26B7, 0x9C86AF24,
+/**/                   0x3FE92000, 0x00000000,
+/**/                   0xBF3F9548, 0xC74EA9E2,
+/**/                   0x3FCF09CC, 0x50036000,
+/**/                   0x3D3DA094, 0x18D999DB,
+/**/                   0x3FE91800, 0x00000000,
+/**/                   0xBF1BD5A8, 0xF7C46911,
+/**/                   0x3FCF22E5, 0xE72F2000,
+/**/                   0xBD3F454F, 0x1417E41F,
+/**/                   0x3FE91000, 0x00000000,
+/**/                   0x3F31B9E1, 0x0D83D1C6,
+/**/                   0x3FCF3BFA, 0x934D6000,
+/**/                   0x3D2D9F2A, 0x937B903B,
+/**/                   0x3FE91000, 0x00000000,
+/**/                   0xBF35876F, 0xF3795877,
+/**/                   0x3FCF550A, 0x564B8000,
+/**/                   0xBD2323E3, 0xA09202FE,
+/**/                   0x3FE90800, 0x00000000,
+/**/                   0x3F0A34CD, 0xBD1D87EC,
+/**/                   0x3FCF6E15, 0x32154000,
+/**/                   0xBD3C9A97, 0x7AC4EC74,
+/**/                   0x3FE90000, 0x00000000,
+/**/                   0x3F3C23F5, 0x0E760899,
+/**/                   0x3FCF871B, 0x28956000,
+/**/                   0xBD3F75FD, 0x6A526EFE,
+/**/                   0x3FE90000, 0x00000000,
+/**/                   0xBF25DECD, 0xD0BE9594,
+/**/                   0x3FCFA01C, 0x3BB58000,
+/**/                   0xBD1A1F71, 0xFAE1D786,
+/**/                   0x3FE8F800, 0x00000000,
+/**/                   0x3F2C18F9, 0xC18F9C19,
+/**/                   0x3FCFB918, 0x6D5E4000,
+/**/                   0xBD0D572A, 0xAB993C87,
+/**/                   0x3FE8F800, 0x00000000,
+/**/                   0xBF38E868, 0x8176594C,
+/**/                   0x3FCFD20F, 0xBF770000,
+/**/                   0xBD11C55B, 0x72C6FE70,
+/**/                   0x3FE8F000, 0x00000000,
+/**/                   0x3EC8F006, 0x3C018F00,
+/**/                   0x3FCFEB02, 0x33E60000,
+/**/                   0x3D2F316E, 0x32D5E8C7,
+/**/                   0x3FE8E800, 0x00000000,
+/**/                   0x3F395B4D, 0xAD115384,
+/**/                   0x3FD001F7, 0xE6484000,
+/**/                   0x3D38A957, 0x40C9ABBC,
+/**/                   0x3FE8E800, 0x00000000,
+/**/                   0xBF2AD850, 0xEC8C0F90,
+/**/                   0x3FD00E6C, 0x45AD5000,
+/**/                   0x3CDCC68D, 0x52E01203,
+/**/                   0x3FE8E000, 0x00000000,
+/**/                   0x3F27B6E9, 0xA56B1AA1,
+/**/                   0x3FD01ADE, 0x3913A000,
+/**/                   0xBD108930, 0xCCDC1521,
+/**/                   0x3FE8E000, 0x00000000,
+/**/                   0xBF3ACDE3, 0x40DFC1D8,
+/**/                   0x3FD0274D, 0xC16C2000,
+/**/                   0x3D2979E8, 0x9CF835C2,
+/**/                   0x3FE8D800, 0x00000000,
+/**/                   0xBEF68397, 0x317DF64C,
+/**/                   0x3FD033BA, 0xDFA74000,
+/**/                   0x3D0C30BC, 0x1485BDFF,
+/**/                   0x3FE8D000, 0x00000000,
+/**/                   0x3F380C69, 0x80C6980C,
+/**/                   0x3FD04025, 0x94B4D000,
+/**/                   0x3CF036B8, 0x9EF42D7F,
+/**/                   0x3FE8D000, 0x00000000,
+/**/                   0xBF2CE006, 0x338C7FE7,
+/**/                   0x3FD04C8D, 0xE1842000,
+/**/                   0xBD1FE6BA, 0x512CEB86,
+/**/                   0x3FE8C800, 0x00000000,
+/**/                   0x3F2644F0, 0x1EFBBD63,
+/**/                   0x3FD058F3, 0xC703F000,
+/**/                   0xBD30E866, 0xBCD236AD,
+/**/                   0x3FE8C800, 0x00000000,
+/**/                   0xBF3B3C2D, 0xAA79217A,
+/**/                   0x3FD06557, 0x46227000,
+/**/                   0x3D0131DF, 0xB4868D6A,
+/**/                   0x3FE8C000, 0x00000000,
+/**/                   0xBEF8BFCE, 0x8062FF3A,
+/**/                   0x3FD071B8, 0x5FCD6000,
+/**/                   0xBD3BCB8B, 0xA3E01A11,
+/**/                   0x3FE8B800, 0x00000000,
+/**/                   0x3F383301, 0xBD2672C4,
+/**/                   0x3FD07E17, 0x14F1D000,
+/**/                   0xBD3EFCC6, 0x4F384BD5,
+/**/                   0x3FE8B800, 0x00000000,
+/**/                   0xBF2BFE74, 0x9BFE749C,
+/**/                   0x3FD08A73, 0x667C5000,
+/**/                   0x3D3EBC1D, 0x40C5A329,
+/**/                   0x3FE8B000, 0x00000000,
+/**/                   0x3F27BA8C, 0xD4353EB3,
+/**/                   0x3FD096CD, 0x55591000,
+/**/                   0x3D3F998D, 0x20550A31,
+/**/                   0x3FE8B000, 0x00000000,
+/**/                   0xBF3A3784, 0xA062B2E4,
+/**/                   0x3FD0A324, 0xE2739000,
+/**/                   0x3D0C6BEE, 0x7EF4030E,
+/**/                   0x3FE8A800, 0x00000000,
+/**/                   0xBECED1F6, 0x5E630281,
+/**/                   0x3FD0AF7A, 0x0EB6C000,
+/**/                   0x3D23CCF9, 0x4945ADAD,
+/**/                   0x3FE8A000, 0x00000000,
+/**/                   0x3F39CAE0, 0x0C519CAE,
+/**/                   0x3FD0BBCC, 0xDB0D2000,
+/**/                   0x3D32F32C, 0xCC5DCDFB,
+/**/                   0x3FE8A000, 0x00000000,
+/**/                   0xBF283C02, 0x4EDBA5FD,
+/**/                   0x3FD0C81D, 0x4860B000,
+/**/                   0xBD3E5BCF, 0x401D1731,
+/**/                   0x3FE89800, 0x00000000,
+/**/                   0x3F2C0F60, 0x1899C0F6,
+/**/                   0x3FD0D46B, 0x579AB000,
+/**/                   0x3D3D2C81, 0xF640E1E6,
+/**/                   0x3FE89800, 0x00000000,
+/**/                   0xBF37C414, 0xBDBE51D0,
+/**/                   0x3FD0E0B7, 0x09A43000,
+/**/                   0x3D32A038, 0xA7862F2A,
+/**/                   0x3FE89000, 0x00000000,
+/**/                   0x3F03F540, 0xDD12CE7D,
+/**/                   0x3FD0ED00, 0x5F658000,
+/**/                   0xBD22DC75, 0x285AA803,
+/**/                   0x3FE88800, 0x00000000,
+/**/                   0x3F3CCFDE, 0x400C45CD,
+/**/                   0x3FD0F947, 0x59C67000,
+/**/                   0xBD395261, 0x7F0818B6,
+/**/                   0x3FE88800, 0x00000000,
+/**/                   0xBF21A0F5, 0x44FB66B5,
+/**/                   0x3FD1058B, 0xF9AE5000,
+/**/                   0xBD34AB9D, 0x817D52CD,
+/**/                   0x3FE88000, 0x00000000,
+/**/                   0x3F319D95, 0x2866A138,
+/**/                   0x3FD111CE, 0x4003F000,
+/**/                   0xBD1B3237, 0x096B4B6B,
+/**/                   0x3FE88000, 0x00000000,
+/**/                   0xBF33E5FA, 0xA48B49DA,
+/**/                   0x3FD11E0E, 0x2DADA000,
+/**/                   0xBD2A47F8, 0x8FCCE5BA,
+/**/                   0x3FE87800, 0x00000000,
+/**/                   0x3F1A9336, 0xDEECB0A8,
+/**/                   0x3FD12A4B, 0xC3912000,
+/**/                   0xBD35A750, 0x61473259,
+/**/                   0x3FE87800, 0x00000000,
+/**/                   0xBF3EC219, 0xFB6A388D,
+/**/                   0x3FD13687, 0x0293B000,
+/**/                   0xBD3D3E84, 0x99D67123,
+/**/                   0x3FE87000, 0x00000000,
+/**/                   0xBF106AE7, 0xC1625090,
+/**/                   0x3FD142BF, 0xEB9A0000,
+/**/                   0x3D31CE61, 0x85B58A9E,
+/**/                   0x3FE86800, 0x00000000,
+/**/                   0x3F369AE5, 0xACD4200C,
+/**/                   0x3FD14EF6, 0x7F887000,
+/**/                   0xBD3E97A6, 0x5DFC9794,
+/**/                   0x3FE86800, 0x00000000,
+/**/                   0xBF2D4286, 0x9389D11C,
+/**/                   0x3FD15B2A, 0xBF429000,
+/**/                   0xBD2D8E3B, 0x49B629B2,
+/**/                   0x3FE86000, 0x00000000,
+/**/                   0x3F286186, 0x18618618,
+/**/                   0x3FD1675C, 0xABABA000,
+/**/                   0x3D38380E, 0x731F55C4,
+/**/                   0x3FE86000, 0x00000000,
+/**/                   0xBF38EF0F, 0x6AC71708,
+/**/                   0x3FD1738C, 0x45A67000,
+/**/                   0xBD39C6E9, 0x0032C176,
+/**/                   0x3FE85800, 0x00000000,
+/**/                   0x3EFFF3D3, 0xE00C2C20,
+/**/                   0x3FD17FB9, 0x8E151000,
+/**/                   0xBD3A8A8B, 0xA74A2684,
+/**/                   0x3FE85000, 0x00000000,
+/**/                   0x3F3CFBA0, 0xF9592266,
+/**/                   0x3FD18BE4, 0x85D93000,
+/**/                   0x3D3C167F, 0x6F3604AB,
+/**/                   0x3FE85000, 0x00000000,
+/**/                   0xBF1FE7B0, 0xFF3D87FA,
+/**/                   0x3FD1980D, 0x2DD42000,
+/**/                   0x3D2B7B3A, 0x7A361C9A,
+/**/                   0x3FE84800, 0x00000000,
+/**/                   0x3F331E8D, 0x918DC223,
+/**/                   0x3FD1A433, 0x86E68000,
+/**/                   0xBD07A850, 0x634E0AAC,
+/**/                   0x3FE84800, 0x00000000,
+/**/                   0xBF31BAF9, 0x8D76B549,
+/**/                   0x3FD1B057, 0x91F08000,
+/**/                   0xBD32DD46, 0x6DC55E2D,
+/**/                   0x3FE84000, 0x00000000,
+/**/                   0x3F22F2EC, 0xDC90C512,
+/**/                   0x3FD1BC79, 0x4FD1D000,
+/**/                   0xBD3CCF0C, 0x747BA7BE,
+/**/                   0x3FE84000, 0x00000000,
+/**/                   0xBF3B442A, 0x6A0916B9,
+/**/                   0x3FD1C898, 0xC169A000,
+/**/                   0xBD381410, 0xE5C62AFF,
+/**/                   0x3FE83800, 0x00000000,
+/**/                   0x3EA83801, 0x83801838,
+/**/                   0x3FD1D4B5, 0xE796A000,
+/**/                   0x3D222A5B, 0xD197BAC2,
+/**/                   0x3FE83000, 0x00000000,
+/**/                   0x3F3B6A41, 0xCBD11C5C,
+/**/                   0x3FD1E0D0, 0xC3371000,
+/**/                   0x3D3AF8F2, 0xA9B0D4A0,
+/**/                   0x3FE83000, 0x00000000,
+/**/                   0xBF225381, 0xCB7A3CD6,
+/**/                   0x3FD1ECE9, 0x5528B000,
+/**/                   0xBD184E7B, 0x09B4A3B8,
+/**/                   0x3FE82800, 0x00000000,
+/**/                   0x3F32500C, 0x152500C1,
+/**/                   0x3FD1F8FF, 0x9E48A000,
+/**/                   0x3D27946C, 0x040CBE77,
+/**/                   0x3FE82800, 0x00000000,
+/**/                   0xBF32285F, 0x14902134,
+/**/                   0x3FD20513, 0x9F73B000,
+/**/                   0x3CF6E15E, 0x1609E0A4,
+/**/                   0x3FE82000, 0x00000000,
+/**/                   0x3F22D9EB, 0xA4018213,
+/**/                   0x3FD21125, 0x59861000,
+/**/                   0x3D382E78, 0xBA2950C4,
+/**/                   0x3FE82000, 0x00000000,
+/**/                   0xBF3AEFFC, 0xFC6BBFF4,
+/**/                   0x3FD21D34, 0xCD5B9000,
+/**/                   0x3D3B552F, 0xB28BADAA,
+/**/                   0x3FE81800, 0x00000000,
+/**/                   0x3EE81818, 0x18181818,
+/**/                   0x3FD22941, 0xFBCF8000,
+/**/                   0xBD3A6976, 0xF5EB0963,
+/**/                   0x3FE81000, 0x00000000,
+/**/                   0x3F3C7F27, 0x4FF0F3C6,
+/**/                   0x3FD2354C, 0xE5BC9000,
+/**/                   0xBD3D78ED, 0x0602A663,
+/**/                   0x3FE81000, 0x00000000,
+/**/                   0xBF1ED344, 0x0A86941D,
+/**/                   0x3FD24155, 0x8BFD1000,
+/**/                   0x3D300FFF, 0x3228FCAD,
+/**/                   0x3FE80800, 0x00000000,
+/**/                   0x3F3424D0, 0x1B0BD52D,
+/**/                   0x3FD24D5B, 0xEF6AF000,
+/**/                   0xBCBDD780, 0xFC9FABDD,
+/**/                   0x3FE80800, 0x00000000,
+/**/                   0xBF2FE7F9, 0xFE7F9FE8,
+/**/                   0x3FD25960, 0x10DF7000,
+/**/                   0x3D38E7BC, 0x224EA3E3,
+/**/                   0x3FE80000, 0x00000000,
+/**/                   0x3F280180, 0x18018018,
+/**/                   0x3FD26561, 0xF1338000,
+/**/                   0x3D38B488, 0x66FAA45F,
+/**/                   0x3FE80000, 0x00000000,
+/**/                   0xBF37FD00, 0x5FF40180,
+/**/                   0x3FD27161, 0x913F8000,
+/**/                   0x3D34F4F1, 0xF61564B4,
+/**/                   0x3FE7F800, 0x00000000,
+/**/                   0x3F104AE8, 0x9750B6C7,
+/**/                   0x3FD27D5E, 0xF1DB6000,
+/**/                   0xBD092374, 0x78CAC9F4,
+/**/                   0x3FE7F800, 0x00000000,
+/**/                   0xBF3FD017, 0xF405FD01,
+/**/                   0x3FD2895A, 0x13DE8000,
+/**/                   0x3D3A8D7A, 0xD24C13F0,
+/**/                   0x3FE7F000, 0x00000000,
+/**/                   0xBF0D2BF1, 0xC9C5485E,
+/**/                   0x3FD29552, 0xF81FF000,
+/**/                   0x3D348D30, 0x1771C408,
+/**/                   0x3FE7E800, 0x00000000,
+/**/                   0x3F38927F, 0xD029DB60,
+/**/                   0x3FD2A149, 0x9F763000,
+/**/                   0xBD30DBBF, 0x51F3AADC,
+/**/                   0x3FE7E800, 0x00000000,
+/**/                   0xBF26504A, 0xB0A45169,
+/**/                   0x3FD2AD3E, 0x0AB73000,
+/**/                   0x3D2B972E, 0x488C359F,
+/**/                   0x3FE7E000, 0x00000000,
+/**/                   0x3F312A8A, 0xD278E8DD,
+/**/                   0x3FD2B930, 0x3AB8A000,
+/**/                   0xBD26DB12, 0xD6BFB0A5,
+/**/                   0x3FE7E000, 0x00000000,
+/**/                   0xBF327577, 0x24BB32E7,
+/**/                   0x3FD2C520, 0x304F8000,
+/**/                   0x3D230852, 0x8C342F39,
+/**/                   0x3FE7D800, 0x00000000,
+/**/                   0x3F23EF9A, 0xA4B45AEC,
+/**/                   0x3FD2D10D, 0xEC508000,
+/**/                   0x3D360C61, 0xF7088353,
+/**/                   0x3FE7D800, 0x00000000,
+/**/                   0xBF398DAF, 0x32748CC1,
+/**/                   0x3FD2DCF9, 0x6F8FD000,
+/**/                   0x3D20B4A2, 0x8E33C9CE,
+/**/                   0x3FE7D000, 0x00000000,
+/**/                   0x3F07D05F, 0x417D05F4,
+/**/                   0x3FD2E8E2, 0xBAE12000,
+/**/                   0xBD267B1E, 0x99B72BD8,
+/**/                   0x3FE7C800, 0x00000000,
+/**/                   0x3F3F8EF7, 0x431D3027,
+/**/                   0x3FD2F4C9, 0xCF17A000,
+/**/                   0x3D371F04, 0x9374B87B,
+/**/                   0x3FE7C800, 0x00000000,
+/**/                   0xBF0E77A3, 0xDAD83E6C,
+/**/                   0x3FD300AE, 0xAD063000,
+/**/                   0x3D342F56, 0x8B75FCAC,
+/**/                   0x3FE7C000, 0x00000000,
+/**/                   0x3F38E041, 0x588D1676,
+/**/                   0x3FD30C91, 0x557F2000,
+/**/                   0xBD142958, 0xA1451755,
+/**/                   0x3FE7C000, 0x00000000,
+/**/                   0xBF24C6DD, 0x1FE8414C,
+/**/                   0x3FD31871, 0xC9544000,
+/**/                   0x3D184FAB, 0x94CECFD9,
+/**/                   0x3FE7B800, 0x00000000,
+/**/                   0x3F3265F4, 0x81C2D3B2,
+/**/                   0x3FD32450, 0x09570000,
+/**/                   0x3D3D271B, 0x9BDAE59D,
+/**/                   0x3FE7B800, 0x00000000,
+/**/                   0xBF30C39C, 0xB6466407,
+/**/                   0x3FD3302C, 0x16586000,
+/**/                   0x3D36217D, 0xC2A3E08B,
+/**/                   0x3FE7B000, 0x00000000,
+/**/                   0x3F283FAD, 0x12B21224,
+/**/                   0x3FD33C05, 0xF128E000,
+/**/                   0xBD22B906, 0x380E1A7D,
+/**/                   0x3FE7B000, 0x00000000,
+/**/                   0xBF36EFB8, 0xF899E55D,
+/**/                   0x3FD347DD, 0x9A988000,
+/**/                   0xBD25594D, 0xD4C58092,
+/**/                   0x3FE7A800, 0x00000000,
+/**/                   0x3F1836B6, 0x3FF42B9F,
+/**/                   0x3FD353B3, 0x1376E000,
+/**/                   0xBD1331AF, 0xE6C26D9B,
+/**/                   0x3FE7A800, 0x00000000,
+/**/                   0xBF3CE7FD, 0x0B739FF4,
+/**/                   0x3FD35F86, 0x5C933000,
+/**/                   0xBD3B07DE, 0x4EA1A54A,
+/**/                   0x3FE7A000, 0x00000000,
+/**/                   0x3EC7A005, 0xE8017A00,
+/**/                   0x3FD36B57, 0x76BC1000,
+/**/                   0x3D116978, 0x5A9C223F,
+/**/                   0x3FE79800, 0x00000000,
+/**/                   0x3F3D535D, 0xB1CC5B7B,
+/**/                   0x3FD37726, 0x62BFE000,
+/**/                   0xBD3E9436, 0xAC53B023,
+/**/                   0x3FE79800, 0x00000000,
+/**/                   0xBF15EEAC, 0xE0DA37A9,
+/**/                   0x3FD382F3, 0x216C5000,
+/**/                   0xBD1061D2, 0x1D1A7F6D,
+/**/                   0x3FE79000, 0x00000000,
+/**/                   0x3F37C21E, 0x344E16D6,
+/**/                   0x3FD38EBD, 0xB38ED000,
+/**/                   0x3D290582, 0xE67D4CA0,
+/**/                   0x3FE79000, 0x00000000,
+/**/                   0xBF25E69A, 0x39C9E465,
+/**/                   0x3FD39A86, 0x19F45000,
+/**/                   0x3D18EE51, 0x937354F5,
+/**/                   0x3FE78800, 0x00000000,
+/**/                   0x3F32640B, 0xC52640BC,
+/**/                   0x3FD3A64C, 0x55694000,
+/**/                   0x3D37A71C, 0xBCD735D0,
+/**/                   0x3FE78800, 0x00000000,
+/**/                   0xBF3037DE, 0x2F6A09ED,
+/**/                   0x3FD3B210, 0x66B9C000,
+/**/                   0xBD33C1ED, 0x9811560E,
+/**/                   0x3FE78000, 0x00000000,
+/**/                   0x3F2A71DC, 0x01781A72,
+/**/                   0x3FD3BDD2, 0x4EB15000,
+/**/                   0xBD3257B4, 0x970E6ED9,
+/**/                   0x3FE78000, 0x00000000,
+/**/                   0xBF354996, 0xA9EEBFF4,
+/**/                   0x3FD3C992, 0x0E1B2000,
+/**/                   0x3D141C28, 0xAA680B76,
+/**/                   0x3FE77800, 0x00000000,
+/**/                   0x3F208119, 0xAC60D341,
+/**/                   0x3FD3D54F, 0xA5C1F000,
+/**/                   0x3D3C3E1C, 0xD9A395E3,
+/**/                   0x3FE77800, 0x00000000,
+/**/                   0xBF3A28AE, 0x742E2DD0,
+/**/                   0x3FD3E10B, 0x16701000,
+/**/                   0x3D3F3BCF, 0x145429C7,
+/**/                   0x3FE77000, 0x00000000,
+/**/                   0x3F0BD584, 0x36340177,
+/**/                   0x3FD3ECC4, 0x60EF6000,
+/**/                   0xBD060286, 0x27C1300F,
+/**/                   0x3FE77000, 0x00000000,
+/**/                   0xBF3ED55D, 0x240C7174,
+/**/                   0x3FD3F87B, 0x86094000,
+/**/                   0xBD35DFD7, 0x54589889,
+/**/                   0x3FE76800, 0x00000000,
+/**/                   0xBEF18DE5, 0xAB277F45,
+/**/                   0x3FD40430, 0x8686A000,
+/**/                   0x3D3F8EF4, 0x3049F7D3,
+/**/                   0x3FE76000, 0x00000000,
+/**/                   0x3F3CB026, 0x01D3C7B8,
+/**/                   0x3FD40FE3, 0x63303000,
+/**/                   0x3D3E5C5F, 0xE79F05C6,
+/**/                   0x3FE76000, 0x00000000,
+/**/                   0xBF15E95B, 0xA9D08664,
+/**/                   0x3FD41B94, 0x1CCE1000,
+/**/                   0xBD304690, 0x13E43FC9,
+/**/                   0x3FE75800, 0x00000000,
+/**/                   0x3F3867A4, 0x097CFD43,
+/**/                   0x3FD42742, 0xB427E000,
+/**/                   0xBD398727, 0x02B82675,
+/**/                   0x3FE75800, 0x00000000,
+/**/                   0xBF2353DF, 0xE8A9353E,
+/**/                   0x3FD432EF, 0x2A04F000,
+/**/                   0xBD3FB129, 0x931715AD,
+/**/                   0x3FE75000, 0x00000000,
+/**/                   0x3F3450E6, 0x4F13DC4A,
+/**/                   0x3FD43E99, 0x7F2C1000,
+/**/                   0x3D1C3F72, 0x40C41A04,
+/**/                   0x3FE75000, 0x00000000,
+/**/                   0xBF2B4FBF, 0xE8B1B4FC,
+/**/                   0x3FD44A41, 0xB463C000,
+/**/                   0x3D31EE28, 0xF37CF612,
+/**/                   0x3FE74800, 0x00000000,
+/**/                   0x3F306BB6, 0x7E458100,
+/**/                   0x3FD455E7, 0xCA720000,
+/**/                   0x3D1AD8C6, 0x36629AED,
+/**/                   0x3FE74800, 0x00000000,
+/**/                   0xBF31745D, 0x1745D174,
+/**/                   0x3FD4618B, 0xC21C6000,
+/**/                   0xBD13D82F, 0x484C84CC,
+/**/                   0x3FE74000, 0x00000000,
+/**/                   0x3F296FBD, 0x236DEC04,
+/**/                   0x3FD46D2D, 0x9C280000,
+/**/                   0x3D359B27, 0x5F67F75A,
+/**/                   0x3FE74000, 0x00000000,
+/**/                   0xBF350F9D, 0x3B304B87,
+/**/                   0x3FD478CD, 0x5959B000,
+/**/                   0x3D2EC89B, 0xF0C8D098,
+/**/                   0x3FE73800, 0x00000000,
+/**/                   0x3F226A51, 0xA4EBDC70,
+/**/                   0x3FD4846A, 0xFA75C000,
+/**/                   0xBD263EA2, 0xE3798DCE,
+/**/                   0x3FE73800, 0x00000000,
+/**/                   0xBF3879D5, 0xF00B9A78,
+/**/                   0x3FD49006, 0x80401000,
+/**/                   0xBD38BCCF, 0xFE1A0F8C,
+/**/                   0x3FE73000, 0x00000000,
+/**/                   0x3F178D7F, 0x5DAAD90C,
+/**/                   0x3FD49B9F, 0xEB7C1000,
+/**/                   0x3D3DAC1C, 0x58AB60D7,
+/**/                   0x3FE73000, 0x00000000,
+/**/                   0xBF3BB33C, 0x783709C7,
+/**/                   0x3FD4A737, 0x3CED0000,
+/**/                   0xBD39A234, 0xEBF35449,
+/**/                   0x3FE72800, 0x00000000,
+/**/                   0x3F061274, 0x265AD23A,
+/**/                   0x3FD4B2CC, 0x75556000,
+/**/                   0xBD380FCB, 0xC78BFA4B,
+/**/                   0x3FE72800, 0x00000000,
+/**/                   0xBF3EBC05, 0xC90A1FD2,
+/**/                   0x3FD4BE5F, 0x95778000,
+/**/                   0xBD3D7C92, 0xCD9AD824,
+/**/                   0x3FE72000, 0x00000000,
+/**/                   0xBEC71FFA, 0x38017200,
+/**/                   0x3FD4C9F0, 0x9E153000,
+/**/                   0xBD2E1DDE, 0x70E02DE0,
+/**/                   0x3FE71800, 0x00000000,
+/**/                   0x3F3E6B99, 0x74A050E1,
+/**/                   0x3FD4D57F, 0x8FEFE000,
+/**/                   0x3D23F926, 0x7FD06868,
+/**/                   0x3FE71800, 0x00000000,
+/**/                   0xBF077400, 0xB8BD1180,
+/**/                   0x3FD4E10C, 0x6BC8A000,
+/**/                   0x3CF8283F, 0x1636F061,
+/**/                   0x3FE71000, 0x00000000,
+/**/                   0x3F3BC36C, 0xE3E0453A,
+/**/                   0x3FD4EC97, 0x32600000,
+/**/                   0x3D234D7A, 0xAF04D104,
+/**/                   0x3FE71000, 0x00000000,
+/**/                   0xBF15FA98, 0x6935DDC5,
+/**/                   0x3FD4F81F, 0xE4764000,
+/**/                   0xBD27FCF6, 0x434FF08D,
+/**/                   0x3FE70800, 0x00000000,
+/**/                   0x3F394B40, 0x7337CF08,
+/**/                   0x3FD503A6, 0x82CB2000,
+/**/                   0xBD2A68C8, 0xF16F9B5D,
+/**/                   0x3FE70800, 0x00000000,
+/**/                   0xBF1F7B97, 0xA835403A,
+/**/                   0x3FD50F2B, 0x0E1E0000,
+/**/                   0x3D3A0940, 0x8C47B8D8,
+/**/                   0x3FE70000, 0x00000000,
+/**/                   0x3F3702E0, 0x5C0B8170,
+/**/                   0x3FD51AAD, 0x872E0000,
+/**/                   0xBD3F4BD8, 0xDB0A7CC1,
+/**/                   0x3FE70000, 0x00000000,
+/**/                   0xBF241EE6, 0x4F67A855,
+/**/                   0x3FD5262D, 0xEEB99000,
+/**/                   0xBD3E1B9F, 0x70894A01,
+/**/                   0x3FE6F800, 0x00000000,
+/**/                   0x3F34EA19, 0x221C0170,
+/**/                   0x3FD531AC, 0x457EE000,
+/**/                   0x3D3DF83B, 0x7D931501,
+/**/                   0x3FE6F800, 0x00000000,
+/**/                   0xBF282102, 0x5508CA5C,
+/**/                   0x3FD53D28, 0x8C3BE000,
+/**/                   0xBD111397, 0xEB6DFAC5,
+/**/                   0x3FE6F000, 0x00000000,
+/**/                   0x3F3300B7, 0x9300B793,
+/**/                   0x3FD548A2, 0xC3ADD000,
+/**/                   0x3D23167E, 0x63081CF7,
+/**/                   0x3FE6F000, 0x00000000,
+/**/                   0xBF2BC486, 0x005BB90F,
+/**/                   0x3FD5541A, 0xEC91C000,
+/**/                   0xBCF816AA, 0xDC72EEBA,
+/**/                   0x3FE6E800, 0x00000000,
+/**/                   0x3F314688, 0xC5A3A00B,
+/**/                   0x3FD55F91, 0x07A44000,
+/**/                   0xBD11E647, 0x78DF4A62,
+/**/                   0x3FE6E800, 0x00000000,
+/**/                   0xBF2F09D6, 0xDA9C5AE1,
+/**/                   0x3FD56B05, 0x15A18000,
+/**/                   0x3D29247B, 0xBC4A23FC,
+/**/                   0x3FE6E000, 0x00000000,
+/**/                   0x3F2F76B4, 0x337C6CB1,
+/**/                   0x3FD57677, 0x17456000,
+/**/                   0xBD364EAD, 0x9524D7CA,
+/**/                   0x3FE6E000, 0x00000000,
+/**/                   0xBF30F8AC, 0xEDF4EC87,
+/**/                   0x3FD581E7, 0x0D4B3000,
+/**/                   0xBD1F31E1, 0xB12D8F1D,
+/**/                   0x3FE6D800, 0x00000000,
+/**/                   0x3F2CBDF2, 0x6EAEF381,
+/**/                   0x3FD58D54, 0xF86E0000,
+/**/                   0x3D2791F3, 0x0A795215,
+/**/                   0x3FE6D800, 0x00000000,
+/**/                   0xBF323DB9, 0xB624BFF5,
+/**/                   0x3FD598C0, 0xD9688000,
+/**/                   0xBD385F49, 0x70D96DA4,
+/**/                   0x3FE6D000, 0x00000000,
+/**/                   0x3F2A6268, 0x1C860FB0,
+/**/                   0x3FD5A42A, 0xB0F4D000,
+/**/                   0xBCDE63AF, 0x2DF7BA69,
+/**/                   0x3FE6D000, 0x00000000,
+/**/                   0xBF335443, 0xB253BAE1,
+/**/                   0x3FD5AF92, 0x7FCCE000,
+/**/                   0xBD1C032F, 0xF5FFC77A,
+/**/                   0x3FE6C800, 0x00000000,
+/**/                   0x3F2863B1, 0xAB4294D4,
+/**/                   0x3FD5BAF8, 0x46AA2000,
+/**/                   0xBD339AE8, 0xF873FA41,
+/**/                   0x3FE6C800, 0x00000000,
+/**/                   0xBF343C7C, 0x87EAA6DF,
+/**/                   0x3FD5C65C, 0x0645A000,
+/**/                   0xBD39FE06, 0x0180EE65,
+/**/                   0x3FE6C000, 0x00000000,
+/**/                   0x3F26C16C, 0x16C16C17,
+/**/                   0x3FD5D1BD, 0xBF581000,
+/**/                   0xBD38D6BD, 0xC9C7C238,
+/**/                   0x3FE6C000, 0x00000000,
+/**/                   0xBF34F695, 0x95C33E00,
+/**/                   0x3FD5DD1D, 0x7299C000,
+/**/                   0xBD38AF61, 0x8815CE17,
+/**/                   0x3FE6B800, 0x00000000,
+/**/                   0x3F257B34, 0xE7802D73,
+/**/                   0x3FD5E87B, 0x20C29000,
+/**/                   0x3D3527D1, 0x8F7738FA,
+/**/                   0x3FE6B800, 0x00000000,
+/**/                   0xBF3582BF, 0xF4A5582C,
+/**/                   0x3FD5F3D6, 0xCA8A2000,
+/**/                   0x3D37AF84, 0x8E19CC75,
+/**/                   0x3FE6B000, 0x00000000,
+/**/                   0x3F2490AA, 0x31A3CFC7,
+/**/                   0x3FD5FF30, 0x70A79000,
+/**/                   0x3D2E9E43, 0x9F105039,
+/**/                   0x3FE6B000, 0x00000000,
+/**/                   0xBF35E12C, 0x77C30E5A,
+/**/                   0x3FD60A88, 0x13D1A000,
+/**/                   0x3D36E9B9, 0xC879AF55,
+/**/                   0x3FE6A800, 0x00000000,
+/**/                   0x3F24016A, 0x94016A94,
+/**/                   0x3FD615DD, 0xB4BEC000,
+/**/                   0x3D13C7CA, 0x90BC04B2,
+/**/                   0x3FE6A800, 0x00000000,
+/**/                   0xBF36120B, 0xAD33D63F,
+/**/                   0x3FD62131, 0x5424F000,
+/**/                   0xBD3382FC, 0x4AA68669,
+/**/                   0x3FE6A000, 0x00000000,
+/**/                   0x3F23CD15, 0x3729043E,
+/**/                   0x3FD62C82, 0xF2B9C000,
+/**/                   0x3D3E54BD, 0xBD7C8A98 } };
+
+static const union {int4 i[4350]; double x[2175]; } vj = { .i = {
+/**/                   0x3F46A400, 0x7D161C28,
+/**/                   0xBF46A200, 0x20600000,
+/**/                   0x3D27DC4E, 0xAA7623D9,
+/**/                   0x3F4693FA, 0xD596E639,
+/**/                   0xBF4691FD, 0x4CE00000,
+/**/                   0x3D26B0CF, 0x29C3F0AD,
+/**/                   0x3F4683F5, 0x3219CE89,
+/**/                   0xBF4681FA, 0x7B600000,
+/**/                   0x3D22B290, 0x95B9FDCC,
+/**/                   0x3F4673EF, 0x929ED397,
+/**/                   0xBF4671F7, 0xABE00000,
+/**/                   0x3D17C727, 0xFA2F2D87,
+/**/                   0x3F4663E9, 0xF725F3E2,
+/**/                   0xBF4661F4, 0xDE600000,
+/**/                   0x3CF22ED3, 0x6EDBFF1C,
+/**/                   0x3F4653E4, 0x5FAF2DE9,
+/**/                   0xBF4651F2, 0x12E00000,
+/**/                   0xBD144936, 0x157812BB,
+/**/                   0x3F4643DE, 0xCC3A802B,
+/**/                   0xBF4641EF, 0x49600000,
+/**/                   0xBD2959CB, 0x60314E05,
+/**/                   0x3F4633D9, 0x3CC7E927,
+/**/                   0xBF4631EC, 0x81E00000,
+/**/                   0xBD35ABDA, 0xC3638E99,
+/**/                   0x3F4623D3, 0xB157675C,
+/**/                   0xBF4621E9, 0xBC800000,
+/**/                   0x3D3FF1D3, 0xC63F9A21,
+/**/                   0x3F4613CE, 0x29E8F948,
+/**/                   0xBF4611E6, 0xF9000000,
+/**/                   0x3D342D26, 0x71EEE611,
+/**/                   0x3F4603C8, 0xA67C9D6B,
+/**/                   0xBF4601E4, 0x37800000,
+/**/                   0x3D1C1C77, 0x11A09689,
+/**/                   0x3F45F3C3, 0x27125244,
+/**/                   0xBF45F1E1, 0x78000000,
+/**/                   0xBD1DFD16, 0xF7DC643C,
+/**/                   0x3F45E3BD, 0xABAA1651,
+/**/                   0xBF45E1DE, 0xBA800000,
+/**/                   0xBD376503, 0x91318A02,
+/**/                   0x3F45D3B8, 0x3443E812,
+/**/                   0xBF45D1DB, 0xFF200000,
+/**/                   0x3D3756E4, 0xCE55DCDD,
+/**/                   0x3F45C3B2, 0xC0DFC606,
+/**/                   0xBF45C1D9, 0x45A00000,
+/**/                   0x3D12D5CF, 0x8F6F8FA0,
+/**/                   0x3F45B3AD, 0x517DAEAB,
+/**/                   0xBF45B1D6, 0x8E200000,
+/**/                   0xBD2E90AB, 0x9B85DC2C,
+/**/                   0x3F45A3A7, 0xE61DA081,
+/**/                   0xBF45A1D3, 0xD8C00000,
+/**/                   0x3D3B5E88, 0x3BF5AC54,
+/**/                   0x3F4593A2, 0x7EBF9A07,
+/**/                   0xBF4591D1, 0x25400000,
+/**/                   0x3D12AC3A, 0x0C86DDB1,
+/**/                   0x3F45839D, 0x1B6399BB,
+/**/                   0xBF4581CE, 0x73C00000,
+/**/                   0xBD3361C2, 0x76830985,
+/**/                   0x3F457397, 0xBC099E1C,
+/**/                   0xBF4571CB, 0xC4600000,
+/**/                   0x3D333915, 0xD062EBFF,
+/**/                   0x3F456392, 0x60B1A5AA,
+/**/                   0xBF4561C9, 0x16E00000,
+/**/                   0xBD1E0DA0, 0x9CC4988F,
+/**/                   0x3F45538D, 0x095BAEE4,
+/**/                   0xBF4551C6, 0x6B800000,
+/**/                   0x3D3C69C4, 0x235BC18A,
+/**/                   0x3F454387, 0xB607B848,
+/**/                   0xBF4541C3, 0xC2000000,
+/**/                   0xBCEFCC99, 0xF7737723,
+/**/                   0x3F453382, 0x66B5C056,
+/**/                   0xBF4531C1, 0x1A800000,
+/**/                   0xBD3FBAE2, 0x809CBCBB,
+/**/                   0x3F45237D, 0x1B65C58C,
+/**/                   0xBF4521BE, 0x75200000,
+/**/                   0x3CCAA5C8, 0x194FEE63,
+/**/                   0x3F451377, 0xD417C66A,
+/**/                   0xBF4511BB, 0xD1C00000,
+/**/                   0x3D3ED325, 0xE1CC7BBC,
+/**/                   0x3F450372, 0x90CBC16E,
+/**/                   0xBF4501B9, 0x30400000,
+/**/                   0xBD0F0298, 0x68AB3742,
+/**/                   0x3F44F36D, 0x5181B517,
+/**/                   0xBF44F1B6, 0x90E00000,
+/**/                   0x3D381BE1, 0x41E67AD9,
+/**/                   0x3F44E368, 0x16399FE6,
+/**/                   0xBF44E1B3, 0xF3600000,
+/**/                   0xBD2A6E79, 0x668D3662,
+/**/                   0x3F44D362, 0xDEF38058,
+/**/                   0xBF44D1B1, 0x58000000,
+/**/                   0x3D284EA7, 0x21F8B7C2,
+/**/                   0x3F44C35D, 0xABAF54EC,
+/**/                   0xBF44C1AE, 0xBE800000,
+/**/                   0xBD3BC76D, 0x7417D9C5,
+/**/                   0x3F44B358, 0x7C6D1C22,
+/**/                   0xBF44B1AC, 0x27200000,
+/**/                   0xBD1409FD, 0x16AAD1FC,
+/**/                   0x3F44A353, 0x512CD479,
+/**/                   0xBF44A1A9, 0x91C00000,
+/**/                   0x3D30771E, 0x98BC14FD,
+/**/                   0x3F44934E, 0x29EE7C70,
+/**/                   0xBF4491A6, 0xFE400000,
+/**/                   0xBD3B5993, 0x5CCB7232,
+/**/                   0x3F448349, 0x06B21285,
+/**/                   0xBF4481A4, 0x6CE00000,
+/**/                   0xBD20E729, 0x5512F9C2,
+/**/                   0x3F447343, 0xE7779538,
+/**/                   0xBF4471A1, 0xDD800000,
+/**/                   0x3D225436, 0x55B30899,
+/**/                   0x3F44633E, 0xCC3F0308,
+/**/                   0xBF44619F, 0x50200000,
+/**/                   0x3D39807C, 0x9E54E31F,
+/**/                   0x3F445339, 0xB5085A73,
+/**/                   0xBF44519C, 0xC4A00000,
+/**/                   0xBD376F6F, 0xD5804C0E,
+/**/                   0x3F444334, 0xA1D399FA,
+/**/                   0xBF44419A, 0x3B400000,
+/**/                   0xBD234953, 0x6CDE6425,
+/**/                   0x3F44332F, 0x92A0C01A,
+/**/                   0xBF443197, 0xB3E00000,
+/**/                   0x3D070E7B, 0xAAF6596F,
+/**/                   0x3F44232A, 0x876FCB54,
+/**/                   0xBF442195, 0x2E800000,
+/**/                   0x3D2C49F8, 0x4EC011F1,
+/**/                   0x3F441325, 0x8040BA25,
+/**/                   0xBF441192, 0xAB200000,
+/**/                   0x3D3825DC, 0xD8AAA7EB,
+/**/                   0x3F440320, 0x7D138B0E,
+/**/                   0xBF440190, 0x29A00000,
+/**/                   0xBD3F1A8D, 0xFE0B73D6,
+/**/                   0x3F43F31B, 0x7DE83C8C,
+/**/                   0xBF43F18D, 0xAA400000,
+/**/                   0xBD379B43, 0xE46CA26B,
+/**/                   0x3F43E316, 0x82BECD20,
+/**/                   0xBF43E18B, 0x2CE00000,
+/**/                   0xBD315B44, 0x6283780D,
+/**/                   0x3F43D311, 0x8B973B49,
+/**/                   0xBF43D188, 0xB1800000,
+/**/                   0xBD28B31E, 0x017589BE,
+/**/                   0x3F43C30C, 0x98718584,
+/**/                   0xBF43C186, 0x38200000,
+/**/                   0xBD212A46, 0x8FBB296E,
+/**/                   0x3F43B307, 0xA94DAA52,
+/**/                   0xBF43B183, 0xC0C00000,
+/**/                   0xBD183403, 0x045CBBD2,
+/**/                   0x3F43A302, 0xBE2BA832,
+/**/                   0xBF43A181, 0x4B600000,
+/**/                   0xBD13009B, 0xD7CC5936,
+/**/                   0x3F4392FD, 0xD70B7DA2,
+/**/                   0xBF43917E, 0xD8000000,
+/**/                   0xBD12B655, 0xC1742279,
+/**/                   0x3F4382F8, 0xF3ED2921,
+/**/                   0xBF43817C, 0x66A00000,
+/**/                   0xBD17512E, 0xEA83FAE8,
+/**/                   0x3F4372F4, 0x14D0A930,
+/**/                   0xBF437179, 0xF7400000,
+/**/                   0xBD206692, 0xBED65875,
+/**/                   0x3F4362EF, 0x39B5FC4C,
+/**/                   0xBF436177, 0x89E00000,
+/**/                   0xBD27931B, 0xD38FFE9E,
+/**/                   0x3F4352EA, 0x629D20F5,
+/**/                   0xBF435175, 0x1E800000,
+/**/                   0xBD309618, 0xE524208F,
+/**/                   0x3F4342E5, 0x8F8615AA,
+/**/                   0xBF434172, 0xB5200000,
+/**/                   0xBD3697E9, 0xDD4C72C5,
+/**/                   0x3F4332E0, 0xC070D8EB,
+/**/                   0xBF433170, 0x4DC00000,
+/**/                   0xBD3DCE00, 0x5E6E12C3,
+/**/                   0x3F4322DB, 0xF55D6935,
+/**/                   0xBF43216D, 0xE8800000,
+/**/                   0x3D39C8A4, 0x0AE9A8CE,
+/**/                   0x3F4312D7, 0x2E4BC509,
+/**/                   0xBF43116B, 0x85200000,
+/**/                   0x3D302D03, 0xD1CD2FA1,
+/**/                   0x3F4302D2, 0x6B3BEAE5,
+/**/                   0xBF430169, 0x23C00000,
+/**/                   0x3D15807D, 0xA3BADFD1,
+/**/                   0x3F42F2CD, 0xAC2DD949,
+/**/                   0xBF42F166, 0xC4600000,
+/**/                   0xBD1A7422, 0xF57F0504,
+/**/                   0x3F42E2C8, 0xF1218EB3,
+/**/                   0xBF42E164, 0x67000000,
+/**/                   0xBD33C974, 0x2F2C781C,
+/**/                   0x3F42D2C4, 0x3A1709A3,
+/**/                   0xBF42D162, 0x0BC00000,
+/**/                   0x3D3DDBDD, 0x851A1E61,
+/**/                   0x3F42C2BF, 0x870E4898,
+/**/                   0xBF42C15F, 0xB2600000,
+/**/                   0x3D2CA7D9, 0xA14AA8FD,
+/**/                   0x3F42B2BA, 0xD8074A10,
+/**/                   0xBF42B15D, 0x5B000000,
+/**/                   0xBD03022E, 0xDDCDDFF5,
+/**/                   0x3F42A2B6, 0x2D020C8C,
+/**/                   0xBF42A15B, 0x05A00000,
+/**/                   0xBD343FBA, 0x0F9231A8,
+/**/                   0x3F4292B1, 0x85FE8E8A,
+/**/                   0xBF429158, 0xB2600000,
+/**/                   0x3D38B690, 0xA52C9CCF,
+/**/                   0x3F4282AC, 0xE2FCCE8A,
+/**/                   0xBF428156, 0x61000000,
+/**/                   0x3D120E6A, 0xC8CC82EB,
+/**/                   0x3F4272A8, 0x43FCCB0A,
+/**/                   0xBF427154, 0x11A00000,
+/**/                   0xBD30D79B, 0x792E6C51,
+/**/                   0x3F4262A3, 0xA8FE8289,
+/**/                   0xBF426151, 0xC4600000,
+/**/                   0x3D38A5EE, 0x91F7F7AA,
+/**/                   0x3F42529F, 0x1201F387,
+/**/                   0xBF42514F, 0x79000000,
+/**/                   0x3CEFA728, 0x46C2E8BA,
+/**/                   0x3F42429A, 0x7F071C84,
+/**/                   0xBF42414D, 0x2FA00000,
+/**/                   0xBD37D0BA, 0xFA447A17,
+/**/                   0x3F423295, 0xF00DFBFD,
+/**/                   0xBF42314A, 0xE8600000,
+/**/                   0x3D2C7A24, 0x94AF3FED,
+/**/                   0x3F422291, 0x65169072,
+/**/                   0xBF422148, 0xA3000000,
+/**/                   0xBD29B0BD, 0x050CEA04,
+/**/                   0x3F42128C, 0xDE20D863,
+/**/                   0xBF421146, 0x5FC00000,
+/**/                   0x3D36EFF3, 0x0C3035EB,
+/**/                   0x3F420288, 0x5B2CD24E,
+/**/                   0xBF420144, 0x1E600000,
+/**/                   0xBD19A3E2, 0x73569B27,
+/**/                   0x3F41F283, 0xDC3A7CB2,
+/**/                   0xBF41F141, 0xDF200000,
+/**/                   0x3D3B1DDE, 0xEEB67715,
+/**/                   0x3F41E27F, 0x6149D610,
+/**/                   0xBF41E13F, 0xA1C00000,
+/**/                   0xBD11EA17, 0x94F49154,
+/**/                   0x3F41D27A, 0xEA5ADCE5,
+/**/                   0xBF41D13D, 0x66800000,
+/**/                   0x3D3ACED9, 0x52DD9D37,
+/**/                   0x3F41C276, 0x776D8FB1,
+/**/                   0xBF41C13B, 0x2D200000,
+/**/                   0xBD1C140B, 0xF72D8EEB,
+/**/                   0x3F41B272, 0x0881ECF4,
+/**/                   0xBF41B138, 0xF5E00000,
+/**/                   0x3D360AE5, 0x939583E1,
+/**/                   0x3F41A26D, 0x9D97F32C,
+/**/                   0xBF41A136, 0xC0800000,
+/**/                   0xBD2C00D9, 0x1D246C7C,
+/**/                   0x3F419269, 0x36AFA0D9,
+/**/                   0xBF419134, 0x8D400000,
+/**/                   0x3D29B40E, 0x0B955CFB,
+/**/                   0x3F418264, 0xD3C8F479,
+/**/                   0xBF418132, 0x5BE00000,
+/**/                   0xBD3964BF, 0x45A6C249,
+/**/                   0x3F417260, 0x74E3EC8D,
+/**/                   0xBF417130, 0x2CA00000,
+/**/                   0xBCE777E0, 0xF3363612,
+/**/                   0x3F41625C, 0x1A008792,
+/**/                   0xBF41612D, 0xFF600000,
+/**/                   0x3D36D608, 0x28DE8296,
+/**/                   0x3F415257, 0xC31EC409,
+/**/                   0xBF41512B, 0xD4000000,
+/**/                   0xBD32AE69, 0x4BB1B788,
+/**/                   0x3F414253, 0x703EA071,
+/**/                   0xBF414129, 0xAAC00000,
+/**/                   0x3D05BF68, 0x170ECD8C,
+/**/                   0x3F41324F, 0x21601B48,
+/**/                   0xBF413127, 0x83800000,
+/**/                   0x3D370A0B, 0x7C653BFC,
+/**/                   0x3F41224A, 0xD683330E,
+/**/                   0xBF412125, 0x5E200000,
+/**/                   0xBD35B70D, 0x77BBBEBF,
+/**/                   0x3F411246, 0x8FA7E642,
+/**/                   0xBF411123, 0x3AE00000,
+/**/                   0xBD0C52EB, 0x93ABC1CD,
+/**/                   0x3F410242, 0x4CCE3363,
+/**/                   0xBF410121, 0x19A00000,
+/**/                   0x3D2B2237, 0xE5C6F4C7,
+/**/                   0x3F40F23E, 0x0DF618F1,
+/**/                   0xBF40F11E, 0xFA600000,
+/**/                   0x3D3D9C5F, 0x1E9A50AD,
+/**/                   0x3F40E239, 0xD31F956A,
+/**/                   0xBF40E11C, 0xDD000000,
+/**/                   0xBD336793, 0x8965F0DA,
+/**/                   0x3F40D235, 0x9C4AA74E,
+/**/                   0xBF40D11A, 0xC1C00000,
+/**/                   0xBD15E6EE, 0x7E49E231,
+/**/                   0x3F40C231, 0x69774D1D,
+/**/                   0xBF40C118, 0xA8800000,
+/**/                   0x3D1D9B9D, 0x04FD621C,
+/**/                   0x3F40B22D, 0x3AA58554,
+/**/                   0xBF40B116, 0x91400000,
+/**/                   0x3D333B55, 0x7DD9EED3,
+/**/                   0x3F40A229, 0x0FD54E74,
+/**/                   0xBF40A114, 0x7C000000,
+/**/                   0x3D3E048F, 0x7AA78478,
+/**/                   0x3F409224, 0xE906A6FC,
+/**/                   0xBF409112, 0x68A00000,
+/**/                   0xBD383C6A, 0x644DDE88,
+/**/                   0x3F408220, 0xC6398D6B,
+/**/                   0xBF408110, 0x57600000,
+/**/                   0xBD2F0D2F, 0x76B8C83A,
+/**/                   0x3F40721C, 0xA76E0040,
+/**/                   0xBF40710E, 0x48200000,
+/**/                   0xBD1F63E0, 0x9CE99FD3,
+/**/                   0x3F406218, 0x8CA3FDFB,
+/**/                   0xBF40610C, 0x3AE00000,
+/**/                   0xBCF328B4, 0x4FE774F2,
+/**/                   0x3F405214, 0x75DB851A,
+/**/                   0xBF40510A, 0x2FA00000,
+/**/                   0x3D11B6BD, 0x3782BCD4,
+/**/                   0x3F404210, 0x6314941D,
+/**/                   0xBF404108, 0x26600000,
+/**/                   0x3D22116F, 0xE7183792,
+/**/                   0x3F40320C, 0x544F2983,
+/**/                   0xBF403106, 0x1F200000,
+/**/                   0x3D293F1E, 0x1B995B3D,
+/**/                   0x3F402208, 0x498B43CB,
+/**/                   0xBF402104, 0x19E00000,
+/**/                   0x3D2E6669, 0xFC162630,
+/**/                   0x3F401204, 0x42C8E175,
+/**/                   0xBF401102, 0x16A00000,
+/**/                   0x3D30C4AA, 0x254FC9F8,
+/**/                   0x3F400200, 0x40080100,
+/**/                   0xBF400100, 0x15600000,
+/**/                   0x3D3154EE, 0xE4431F92,
+/**/                   0x3F3FE3F8, 0x829141D6,
+/**/                   0xBF3FE1FC, 0x2C400000,
+/**/                   0x3D30E503, 0x9B2D30FB,
+/**/                   0x3F3FC3F0, 0x8D157F6B,
+/**/                   0xBF3FC1F8, 0x31C00000,
+/**/                   0x3D2EEBD1, 0x53EBD670,
+/**/                   0x3F3FA3E8, 0x9F9CB7BC,
+/**/                   0xBF3FA1F4, 0x3B400000,
+/**/                   0x3D2A113C, 0xE04A16E0,
+/**/                   0x3F3F83E0, 0xBA26E7CA,
+/**/                   0xBF3F81F0, 0x48C00000,
+/**/                   0x3D233C4A, 0x99C43E34,
+/**/                   0x3F3F63D8, 0xDCB40C91,
+/**/                   0xBF3F61EC, 0x5A400000,
+/**/                   0x3D14DDF6, 0x7BD210C1,
+/**/                   0x3F3F43D1, 0x07442311,
+/**/                   0xBF3F41E8, 0x6FC00000,
+/**/                   0xBCC52C1D, 0x9E4B51C8,
+/**/                   0x3F3F23C9, 0x39D72849,
+/**/                   0xBF3F21E4, 0x89400000,
+/**/                   0xBD1A196F, 0x8EA8C754,
+/**/                   0x3F3F03C1, 0x746D1936,
+/**/                   0xBF3F01E0, 0xA6C00000,
+/**/                   0xBD2BB719, 0xF95AF98D,
+/**/                   0x3F3EE3B9, 0xB705F2D8,
+/**/                   0xBF3EE1DC, 0xC8400000,
+/**/                   0xBD3628EB, 0x28FFD598,
+/**/                   0x3F3EC3B2, 0x01A1B22C,
+/**/                   0xBF3EC1D8, 0xEDC00000,
+/**/                   0xBD3F6D76, 0x0BBAC8F8,
+/**/                   0x3F3EA3AA, 0x54405432,
+/**/                   0xBF3EA1D5, 0x17800000,
+/**/                   0x3D3657D2, 0xB7A7EE0D,
+/**/                   0x3F3E83A2, 0xAEE1D5E8,
+/**/                   0xBF3E81D1, 0x45000000,
+/**/                   0x3D264FDE, 0xFA9CCC78,
+/**/                   0x3F3E639B, 0x1186344C,
+/**/                   0xBF3E61CD, 0x76800000,
+/**/                   0xBCEF83EB, 0xE02EF455,
+/**/                   0x3F3E4393, 0x7C2D6C5E,
+/**/                   0xBF3E41C9, 0xAC000000,
+/**/                   0xBD2C26B3, 0x03C3E129,
+/**/                   0x3F3E238B, 0xEED77B1B,
+/**/                   0xBF3E21C5, 0xE5800000,
+/**/                   0xBD3C1CBE, 0x904D773D,
+/**/                   0x3F3E0384, 0x69845D83,
+/**/                   0xBF3E01C2, 0x23400000,
+/**/                   0x3D34E8B1, 0xD0615454,
+/**/                   0x3F3DE37C, 0xEC341093,
+/**/                   0xBF3DE1BE, 0x64C00000,
+/**/                   0x3D13F7DF, 0xE9BE933E,
+/**/                   0x3F3DC375, 0x76E6914B,
+/**/                   0xBF3DC1BA, 0xAA400000,
+/**/                   0xBD27B7D7, 0x707B004A,
+/**/                   0x3F3DA36E, 0x099BDCA9,
+/**/                   0xBF3DA1B6, 0xF3C00000,
+/**/                   0xBD3DA3F8, 0xEE2141C3,
+/**/                   0x3F3D8366, 0xA453EFAC,
+/**/                   0xBF3D81B3, 0x41800000,
+/**/                   0x3D2F4DA1, 0x63D21825,
+/**/                   0x3F3D635F, 0x470EC752,
+/**/                   0xBF3D61AF, 0x93000000,
+/**/                   0xBD0FD473, 0xFAD0B844,
+/**/                   0x3F3D4357, 0xF1CC609A,
+/**/                   0xBF3D41AB, 0xE8800000,
+/**/                   0xBD388716, 0x298657C2,
+/**/                   0x3F3D2350, 0xA48CB882,
+/**/                   0xBF3D21A8, 0x42400000,
+/**/                   0x3D32023A, 0x0B68711A,
+/**/                   0x3F3D0349, 0x5F4FCC0A,
+/**/                   0xBF3D01A4, 0x9FC00000,
+/**/                   0xBD117676, 0x23A704B0,
+/**/                   0x3F3CE342, 0x22159830,
+/**/                   0xBF3CE1A1, 0x01400000,
+/**/                   0xBD3BA59C, 0x8F391F09,
+/**/                   0x3F3CC33A, 0xECDE19F1,
+/**/                   0xBF3CC19D, 0x67000000,
+/**/                   0x3D28567A, 0x9EBBF706,
+/**/                   0x3F3CA333, 0xBFA94E4E,
+/**/                   0xBF3CA199, 0xD0800000,
+/**/                   0xBD29D41F, 0x2D41F1CC,
+/**/                   0x3F3C832C, 0x9A773245,
+/**/                   0xBF3C8196, 0x3E400000,
+/**/                   0x3D391B7D, 0x14ED5134,
+/**/                   0x3F3C6325, 0x7D47C2D4,
+/**/                   0xBF3C6192, 0xAFC00000,
+/**/                   0xBCFC31C5, 0x83403B5B,
+/**/                   0x3F3C431E, 0x681AFCFA,
+/**/                   0xBF3C418F, 0x25400000,
+/**/                   0xBD3D84DB, 0x88A1FFF3,
+/**/                   0x3F3C2317, 0x5AF0DDB6,
+/**/                   0xBF3C218B, 0x9F000000,
+/**/                   0x3D175CFF, 0x6298A63B,
+/**/                   0x3F3C0310, 0x55C96207,
+/**/                   0xBF3C0188, 0x1C800000,
+/**/                   0xBD37ADC9, 0xDFB8E489,
+/**/                   0x3F3BE309, 0x58A486EA,
+/**/                   0xBF3BE184, 0x9E400000,
+/**/                   0x3D23DA0F, 0x45069C64,
+/**/                   0x3F3BC302, 0x6382495F,
+/**/                   0xBF3BC181, 0x23C00000,
+/**/                   0xBD35574B, 0x4CC2EFE0,
+/**/                   0x3F3BA2FB, 0x7662A665,
+/**/                   0xBF3BA17D, 0xAD800000,
+/**/                   0x3D250C7B, 0x4BED0B89,
+/**/                   0x3F3B82F4, 0x91459AFA,
+/**/                   0xBF3B817A, 0x3B000000,
+/**/                   0xBD36795D, 0x322E5605,
+/**/                   0x3F3B62ED, 0xB42B241D,
+/**/                   0xBF3B6176, 0xCCC00000,
+/**/                   0x3D1EAB91, 0xF6413886,
+/**/                   0x3F3B42E6, 0xDF133ECC,
+/**/                   0xBF3B4173, 0x62400000,
+/**/                   0xBD3B0BFC, 0xF86BE5B5,
+/**/                   0x3F3B22E0, 0x11FDE807,
+/**/                   0xBF3B216F, 0xFC000000,
+/**/                   0x3CF62FEB, 0xDDE8D701,
+/**/                   0x3F3B02D9, 0x4CEB1CCC,
+/**/                   0xBF3B016C, 0x99C00000,
+/**/                   0x3D3CF8D7, 0xF210FD9E,
+/**/                   0x3F3AE2D2, 0x8FDADA1A,
+/**/                   0xBF3AE169, 0x3B400000,
+/**/                   0xBD2092E2, 0x1526CFB0,
+/**/                   0x3F3AC2CB, 0xDACD1CEF,
+/**/                   0xBF3AC165, 0xE1000000,
+/**/                   0x3D319D24, 0x18D261D5,
+/**/                   0x3F3AA2C5, 0x2DC1E24A,
+/**/                   0xBF3AA162, 0x8A800000,
+/**/                   0xBD355268, 0x533CC8EC,
+/**/                   0x3F3A82BE, 0x88B9272B,
+/**/                   0xBF3A815F, 0x38400000,
+/**/                   0x3D074750, 0x0AFE6139,
+/**/                   0x3F3A62B7, 0xEBB2E88F,
+/**/                   0xBF3A615B, 0xEA000000,
+/**/                   0x3D3A501B, 0x6668AD57,
+/**/                   0x3F3A42B1, 0x56AF2375,
+/**/                   0xBF3A4158, 0x9F800000,
+/**/                   0xBD2E37A7, 0xA98381BD,
+/**/                   0x3F3A22AA, 0xC9ADD4DD,
+/**/                   0xBF3A2155, 0x59400000,
+/**/                   0x3D1A9872, 0x7B82F9AC,
+/**/                   0x3F3A02A4, 0x44AEF9C5,
+/**/                   0xBF3A0152, 0x17000000,
+/**/                   0x3D3B96ED, 0x0FF040AD,
+/**/                   0x3F39E29D, 0xC7B28F2C,
+/**/                   0xBF39E14E, 0xD8800000,
+/**/                   0xBD304862, 0x33534BD7,
+/**/                   0x3F39C297, 0x52B89211,
+/**/                   0xBF39C14B, 0x9E400000,
+/**/                   0x3D084979, 0x17AF009B,
+/**/                   0x3F39A290, 0xE5C0FF72,
+/**/                   0xBF39A148, 0x68000000,
+/**/                   0x3D358CA1, 0x604B64C9,
+/**/                   0x3F39828A, 0x80CBD44E,
+/**/                   0xBF398145, 0x35800000,
+/**/                   0xBD38BD0B, 0x2E334404,
+/**/                   0x3F396284, 0x23D90DA4,
+/**/                   0xBF396142, 0x07400000,
+/**/                   0xBD1F4B58, 0xEF1B1C68,
+/**/                   0x3F39427D, 0xCEE8A873,
+/**/                   0xBF39413E, 0xDD000000,
+/**/                   0x3D209881, 0x07E010EC,
+/**/                   0x3F392277, 0x81FAA1B9,
+/**/                   0xBF39213B, 0xB6C00000,
+/**/                   0x3D37A139, 0x5CF03181,
+/**/                   0x3F390271, 0x3D0EF676,
+/**/                   0xBF390138, 0x94400000,
+/**/                   0xBD39D2EB, 0x65276B0B,
+/**/                   0x3F38E26B, 0x0025A3A8,
+/**/                   0xBF38E135, 0x76000000,
+/**/                   0xBD281E5A, 0xEE3023F6,
+/**/                   0x3F38C264, 0xCB3EA64F,
+/**/                   0xBF38C132, 0x5BC00000,
+/**/                   0x3CEDAE6E, 0x3F9A4B53,
+/**/                   0x3F38A25E, 0x9E59FB68,
+/**/                   0xBF38A12F, 0x45800000,
+/**/                   0x3D2A47EF, 0x412B648E,
+/**/                   0x3F388258, 0x79779FF3,
+/**/                   0xBF38812C, 0x33400000,
+/**/                   0x3D38955F, 0x5ED0D8F2,
+/**/                   0x3F386252, 0x5C9790EE,
+/**/                   0xBF386129, 0x24C00000,
+/**/                   0xBD3CBD55, 0x09939374,
+/**/                   0x3F38424C, 0x47B9CB5A,
+/**/                   0xBF384126, 0x1A800000,
+/**/                   0xBD32D325, 0x4F399186,
+/**/                   0x3F382246, 0x3ADE4C33,
+/**/                   0xBF382123, 0x14400000,
+/**/                   0xBD235622, 0x524688EB,
+/**/                   0x3F380240, 0x3605107A,
+/**/                   0xBF380120, 0x12000000,
+/**/                   0xBCF44184, 0xEB2F3DDC,
+/**/                   0x3F37E23A, 0x392E152C,
+/**/                   0xBF37E11D, 0x13C00000,
+/**/                   0x3D198B16, 0x2153D1B8,
+/**/                   0x3F37C234, 0x4459574A,
+/**/                   0xBF37C11A, 0x19800000,
+/**/                   0x3D2A9511, 0x47A3C923,
+/**/                   0x3F37A22E, 0x5786D3D1,
+/**/                   0xBF37A117, 0x23400000,
+/**/                   0x3D337431, 0x4B4128D9,
+/**/                   0x3F378228, 0x72B687C1,
+/**/                   0xBF378114, 0x31000000,
+/**/                   0x3D38E0BF, 0xC5BFE9E8,
+/**/                   0x3F376222, 0x95E87019,
+/**/                   0xBF376111, 0x42C00000,
+/**/                   0x3D3D9134, 0x5A0B2CE9,
+/**/                   0x3F37421C, 0xC11C89D8,
+/**/                   0xBF37410E, 0x58400000,
+/**/                   0xBD3E7970, 0xB1802C40,
+/**/                   0x3F372216, 0xF452D1FB,
+/**/                   0xBF37210B, 0x72000000,
+/**/                   0xBD3B3E2F, 0x16E562C9,
+/**/                   0x3F370211, 0x2F8B4583,
+/**/                   0xBF370108, 0x8FC00000,
+/**/                   0xBD38BC06, 0x9087DACD,
+/**/                   0x3F36E20B, 0x72C5E16F,
+/**/                   0xBF36E105, 0xB1800000,
+/**/                   0xBD36F1F6, 0xD92B1B21,
+/**/                   0x3F36C205, 0xBE02A2BC,
+/**/                   0xBF36C102, 0xD7400000,
+/**/                   0xBD35DEFF, 0xABF2CD23,
+/**/                   0x3F36A200, 0x1141866B,
+/**/                   0xBF36A100, 0x01000000,
+/**/                   0xBD358220, 0xC462BC85,
+/**/                   0x3F3681FA, 0x6C828979,
+/**/                   0xBF3680FD, 0x2EC00000,
+/**/                   0xBD35DA59, 0xDE5ED723,
+/**/                   0x3F3661F4, 0xCFC5A8E7,
+/**/                   0xBF3660FA, 0x60800000,
+/**/                   0xBD36E6AA, 0xB62B2CD1,
+/**/                   0x3F3641EF, 0x3B0AE1B2,
+/**/                   0xBF3640F7, 0x96400000,
+/**/                   0xBD38A613, 0x086BEF29,
+/**/                   0x3F3621E9, 0xAE5230DA,
+/**/                   0xBF3620F4, 0xD0000000,
+/**/                   0xBD3B1792, 0x9225715D,
+/**/                   0x3F3601E4, 0x299B935F,
+/**/                   0xBF3600F2, 0x0DC00000,
+/**/                   0xBD3E3A29, 0x10BC2805,
+/**/                   0x3F35E1DE, 0xACE7063E,
+/**/                   0xBF35E0EF, 0x4FC00000,
+/**/                   0x3D3DF329, 0xBE0B570D,
+/**/                   0x3F35C1D9, 0x38348676,
+/**/                   0xBF35C0EC, 0x95800000,
+/**/                   0x3D397166, 0x1C0C5502,
+/**/                   0x3F35A1D3, 0xCB841108,
+/**/                   0xBF35A0E9, 0xDF400000,
+/**/                   0x3D34418C, 0x4AC1FA2D,
+/**/                   0x3F3581CE, 0x66D5A2F1,
+/**/                   0xBF3580E7, 0x2D000000,
+/**/                   0x3D2CC939, 0x168E9C6E,
+/**/                   0x3F3561C9, 0x0A293931,
+/**/                   0xBF3560E4, 0x7EC00000,
+/**/                   0x3D1F6E5C, 0x795CE154,
+/**/                   0x3F3541C3, 0xB57ED0C7,
+/**/                   0xBF3540E1, 0xD4800000,
+/**/                   0x3CE4EF88, 0x898FEE67,
+/**/                   0x3F3521BE, 0x68D666B1,
+/**/                   0xBF3520DF, 0x2E400000,
+/**/                   0xBD1CDACF, 0x0B78D65E,
+/**/                   0x3F3501B9, 0x242FF7EF,
+/**/                   0xBF3500DC, 0x8C000000,
+/**/                   0xBD2F7BF1, 0x6F1CBFB8,
+/**/                   0x3F34E1B3, 0xE78B8180,
+/**/                   0xBF34E0D9, 0xEDC00000,
+/**/                   0xBD38ED52, 0x5A899820,
+/**/                   0x3F34C1AE, 0xB2E90063,
+/**/                   0xBF34C0D7, 0x53C00000,
+/**/                   0x3D3D3C3F, 0x930A694E,
+/**/                   0x3F34A1A9, 0x86487196,
+/**/                   0xBF34A0D4, 0xBD800000,
+/**/                   0x3D32BFBD, 0x4FA7CCCB,
+/**/                   0x3F3481A4, 0x61A9D219,
+/**/                   0xBF3480D2, 0x2B400000,
+/**/                   0x3D1E789C, 0x65A26E32,
+/**/                   0x3F34619F, 0x450D1EEB,
+/**/                   0xBF3460CF, 0x9D000000,
+/**/                   0xBD109E0B, 0x47E500B5,
+/**/                   0x3F34419A, 0x3072550B,
+/**/                   0xBF3440CD, 0x12C00000,
+/**/                   0xBD309040, 0x3523FAE9,
+/**/                   0x3F342195, 0x23D97178,
+/**/                   0xBF3420CA, 0x8C800000,
+/**/                   0xBD3D9B10, 0xD31DE7C2,
+/**/                   0x3F340190, 0x1F427131,
+/**/                   0xBF3400C8, 0x0A800000,
+/**/                   0x3D34B90B, 0x90B287C4,
+/**/                   0x3F33E18B, 0x22AD5135,
+/**/                   0xBF33E0C5, 0x8C400000,
+/**/                   0x3D19B454, 0xCA1B0FC2,
+/**/                   0x3F33C186, 0x2E1A0E83,
+/**/                   0xBF33C0C3, 0x12000000,
+/**/                   0xBD20FBE7, 0x638FC1F4,
+/**/                   0x3F33A181, 0x4188A61A,
+/**/                   0xBF33A0C0, 0x9BC00000,
+/**/                   0xBD38070E, 0xE0C03290,
+/**/                   0x3F33817C, 0x5CF914F9,
+/**/                   0xBF3380BE, 0x29C00000,
+/**/                   0x3D37D2C3, 0xE0B6E5F5,
+/**/                   0x3F336177, 0x806B5820,
+/**/                   0xBF3360BB, 0xBB800000,
+/**/                   0x3D1C4213, 0x35598794,
+/**/                   0x3F334172, 0xABDF6C8D,
+/**/                   0xBF3340B9, 0x51400000,
+/**/                   0xBD249997, 0xC111C569,
+/**/                   0x3F33216D, 0xDF554F40,
+/**/                   0xBF3320B6, 0xEB000000,
+/**/                   0xBD3C442D, 0xEEEE28E2,
+/**/                   0x3F330169, 0x1ACCFD37,
+/**/                   0xBF3300B4, 0x89000000,
+/**/                   0x3D312B5E, 0xDBBF316D,
+/**/                   0x3F32E164, 0x5E467372,
+/**/                   0xBF32E0B2, 0x2AC00000,
+/**/                   0xBCFFD254, 0x7484E6E1,
+/**/                   0x3F32C15F, 0xA9C1AEF0,
+/**/                   0xBF32C0AF, 0xD0800000,
+/**/                   0xBD35BCBA, 0x1F2C3F9D,
+/**/                   0x3F32A15A, 0xFD3EACAF,
+/**/                   0xBF32A0AD, 0x7A800000,
+/**/                   0x3D35EDA0, 0x8C8BAA61,
+/**/                   0x3F328156, 0x58BD69B0,
+/**/                   0xBF3280AB, 0x28400000,
+/**/                   0x3CF02EAF, 0x3F79FE5E,
+/**/                   0x3F326151, 0xBC3DE2F1,
+/**/                   0xBF3260A8, 0xDA000000,
+/**/                   0xBD347BDA, 0xB1304AA8,
+/**/                   0x3F32414D, 0x27C01572,
+/**/                   0xBF3240A6, 0x90000000,
+/**/                   0x3D35724F, 0xD46BE359,
+/**/                   0x3F322148, 0x9B43FE30,
+/**/                   0xBF3220A4, 0x49C00000,
+/**/                   0xBCF31954, 0x43BF90C9,
+/**/                   0x3F320144, 0x16C99A2D,
+/**/                   0xBF3200A2, 0x07800000,
+/**/                   0xBD386689, 0xC4901E30,
+/**/                   0x3F31E13F, 0x9A50E666,
+/**/                   0xBF31E09F, 0xC9800000,
+/**/                   0x3D2FA8E5, 0x134E34BF,
+/**/                   0x3F31C13B, 0x25D9DFDB,
+/**/                   0xBF31C09D, 0x8F400000,
+/**/                   0xBD20FF40, 0x477D87DF,
+/**/                   0x3F31A136, 0xB964838C,
+/**/                   0xBF31A09B, 0x59400000,
+/**/                   0x3D3E9E3E, 0x68B5B77B,
+/**/                   0x3F318132, 0x54F0CE76,
+/**/                   0xBF318099, 0x27000000,
+/**/                   0x3D14BC39, 0x906F8A53,
+/**/                   0x3F31612D, 0xF87EBD9A,
+/**/                   0xBF316096, 0xF8C00000,
+/**/                   0xBD34CC2F, 0xFCD50724,
+/**/                   0x3F314129, 0xA40E4DF7,
+/**/                   0xBF314094, 0xCEC00000,
+/**/                   0x3D30AD83, 0x7A3A1B8D,
+/**/                   0x3F312125, 0x579F7C8B,
+/**/                   0xBF312092, 0xA8800000,
+/**/                   0xBD24C5AE, 0x057F5C66,
+/**/                   0x3F310121, 0x13324657,
+/**/                   0xBF310090, 0x86800000,
+/**/                   0x3D3A03C0, 0xBFD488E0,
+/**/                   0x3F30E11C, 0xD6C6A858,
+/**/                   0xBF30E08E, 0x68400000,
+/**/                   0xBD00EDA8, 0x56935D63,
+/**/                   0x3F30C118, 0xA25C9F8F,
+/**/                   0xBF30C08C, 0x4E000000,
+/**/                   0xBD3EC638, 0x2FDDD1CE,
+/**/                   0x3F30A114, 0x75F428FB,
+/**/                   0xBF30A08A, 0x38000000,
+/**/                   0x3D102CDE, 0x0CA3DCBE,
+/**/                   0x3F308110, 0x518D419B,
+/**/                   0xBF308088, 0x25C00000,
+/**/                   0xBD39A865, 0xBFA78921,
+/**/                   0x3F30610C, 0x3527E66D,
+/**/                   0xBF306086, 0x17C00000,
+/**/                   0x3D203FE0, 0x72CE37BD,
+/**/                   0x3F304108, 0x20C41472,
+/**/                   0xBF304084, 0x0D800000,
+/**/                   0xBD369AC6, 0x6054C3FA,
+/**/                   0x3F302104, 0x1461C8A9,
+/**/                   0xBF302082, 0x07800000,
+/**/                   0x3D2450ED, 0x4836293A,
+/**/                   0x3F300100, 0x10010010,
+/**/                   0xBF300080, 0x05400000,
+/**/                   0xBD359558, 0x88B3357C,
+/**/                   0x3F2FC1F8, 0x27436F4F,
+/**/                   0xBF2FC0FC, 0x0E800000,
+/**/                   0x3D245998, 0x92ECD4D1,
+/**/                   0x3F2F81F0, 0x3E87D8DC,
+/**/                   0xBF2F80F8, 0x1A000000,
+/**/                   0xBD36901A, 0xB592170A,
+/**/                   0x3F2F41E8, 0x65CF36C6,
+/**/                   0xBF2F40F4, 0x2E000000,
+/**/                   0x3D2069E5, 0x53524603,
+/**/                   0x3F2F01E0, 0x9D19830B,
+/**/                   0xBF2F00F0, 0x49800000,
+/**/                   0xBD39830B, 0x69C22240,
+/**/                   0x3F2EC1D8, 0xE466B7AB,
+/**/                   0xBF2EC0EC, 0x6D800000,
+/**/                   0x3D1123AC, 0xFB871BBA,
+/**/                   0x3F2E81D1, 0x3BB6CEA4,
+/**/                   0xBF2E80E8, 0x99000000,
+/**/                   0xBD3E6629, 0x2E158AF6,
+/**/                   0x3F2E41C9, 0xA309C1F4,
+/**/                   0xBF2E40E4, 0xCD000000,
+/**/                   0xBCF8F488, 0x2B29884E,
+/**/                   0x3F2E01C2, 0x1A5F8B99,
+/**/                   0xBF2E00E1, 0x09000000,
+/**/                   0x3D3ACE8D, 0x6EA006C6,
+/**/                   0x3F2DC1BA, 0xA1B82593,
+/**/                   0xBF2DC0DD, 0x4C800000,
+/**/                   0xBD22974E, 0x59D0B687,
+/**/                   0x3F2D81B3, 0x391389E0,
+/**/                   0xBF2D80D9, 0x98800000,
+/**/                   0x3D322319, 0xD7897CAD,
+/**/                   0x3F2D41AB, 0xE071B27F,
+/**/                   0xBF2D40D5, 0xEC000000,
+/**/                   0xBD32E42F, 0x57954C6E,
+/**/                   0x3F2D01A4, 0x97D2996E,
+/**/                   0xBF2D00D2, 0x48000000,
+/**/                   0x3D1E7DF5, 0xC741610E,
+/**/                   0x3F2CC19D, 0x5F3638AB,
+/**/                   0xBF2CC0CE, 0xAB800000,
+/**/                   0xBD3E50DF, 0xA0909C5A,
+/**/                   0x3F2C8196, 0x369C8A37,
+/**/                   0xBF2C80CB, 0x17800000,
+/**/                   0xBD12D119, 0x8D8D1C8F,
+/**/                   0x3F2C418F, 0x1E05880E,
+/**/                   0xBF2C40C7, 0x8B800000,
+/**/                   0x3D347649, 0x544D2574,
+/**/                   0x3F2C0188, 0x15712C30,
+/**/                   0xBF2C00C4, 0x07000000,
+/**/                   0xBD32D030, 0x4EEA9E68,
+/**/                   0x3F2BC181, 0x1CDF709C,
+/**/                   0xBF2BC0C0, 0x8B000000,
+/**/                   0x3D15E533, 0x74A84109,
+/**/                   0x3F2B817A, 0x34504F50,
+/**/                   0xBF2B80BD, 0x17000000,
+/**/                   0x3D3D53C1, 0x025FBF68,
+/**/                   0x3F2B4173, 0x5BC3C24B,
+/**/                   0xBF2B40B9, 0xAA800000,
+/**/                   0xBD267FA7, 0x6BAA2FA8,
+/**/                   0x3F2B016C, 0x9339C38C,
+/**/                   0xBF2B00B6, 0x46800000,
+/**/                   0x3D277F1D, 0xBB3FDE1E,
+/**/                   0x3F2AC165, 0xDAB24D11,
+/**/                   0xBF2AC0B2, 0xEA000000,
+/**/                   0xBD3DAD17, 0x1A8CDBE2,
+/**/                   0x3F2A815F, 0x322D58D9,
+/**/                   0xBF2A80AF, 0x96000000,
+/**/                   0xBD1E1315, 0xD81CF36E,
+/**/                   0x3F2A4158, 0x99AAE0E3,
+/**/                   0xBF2A40AC, 0x4A000000,
+/**/                   0x3D2C7307, 0xE649E7B4,
+/**/                   0x3F2A0152, 0x112ADF2D,
+/**/                   0xBF2A00A9, 0x05800000,
+/**/                   0xBD3C713A, 0xB77435EC,
+/**/                   0x3F29C14B, 0x98AD4DB7,
+/**/                   0xBF29C0A5, 0xC9800000,
+/**/                   0xBD1E1005, 0x3A7AE827,
+/**/                   0x3F298145, 0x3032267F,
+/**/                   0xBF2980A2, 0x95800000,
+/**/                   0x3D2A0460, 0xA8F2A842,
+/**/                   0x3F29413E, 0xD7B96385,
+/**/                   0xBF29409F, 0x69000000,
+/**/                   0xBD3EDDA5, 0xA7B8321E,
+/**/                   0x3F290138, 0x8F42FEC5,
+/**/                   0xBF29009C, 0x45000000,
+/**/                   0xBD264506, 0x3A3F0D33,
+/**/                   0x3F28C132, 0x56CEF241,
+/**/                   0xBF28C099, 0x29000000,
+/**/                   0x3D206930, 0x33EE13CD,
+/**/                   0x3F28812C, 0x2E5D37F6,
+/**/                   0xBF288096, 0x15000000,
+/**/                   0x3D3B28AC, 0x22DF1FDA,
+/**/                   0x3F284126, 0x15EDC9E3,
+/**/                   0xBF284093, 0x08800000,
+/**/                   0xBD324546, 0xDD73B6DB,
+/**/                   0x3F280120, 0x0D80A208,
+/**/                   0xBF280090, 0x04800000,
+/**/                   0xBCB440C2, 0x6DFEB485,
+/**/                   0x3F27C11A, 0x1515BA62,
+/**/                   0xBF27C08D, 0x08800000,
+/**/                   0x3D31BCBE, 0x9823B19D,
+/**/                   0x3F278114, 0x2CAD0CF1,
+/**/                   0xBF27808A, 0x14000000,
+/**/                   0xBD3CD148, 0xA9EB4E97,
+/**/                   0x3F27410E, 0x544693B4,
+/**/                   0xBF274087, 0x28000000,
+/**/                   0xBD277AAC, 0xCA4F73AA,
+/**/                   0x3F270108, 0x8BE248AA,
+/**/                   0xBF270084, 0x44000000,
+/**/                   0x3D13E656, 0x26068EF7,
+/**/                   0x3F26C102, 0xD38025D2,
+/**/                   0xBF26C081, 0x68000000,
+/**/                   0x3D35547B, 0x44C3EC8A,
+/**/                   0x3F2680FD, 0x2B20252A,
+/**/                   0xBF26807E, 0x93800000,
+/**/                   0xBD3AABA5, 0x110DCE4B,
+/**/                   0x3F2640F7, 0x92C240B1,
+/**/                   0xBF26407B, 0xC7800000,
+/**/                   0xBD260B96, 0xAC011956,
+/**/                   0x3F2600F2, 0x0A667267,
+/**/                   0xBF260079, 0x03800000,
+/**/                   0x3D111C22, 0x5DFA826E,
+/**/                   0x3F25C0EC, 0x920CB44A,
+/**/                   0xBF25C076, 0x47800000,
+/**/                   0x3D333BD6, 0xD8A2980A,
+/**/                   0x3F2580E7, 0x29B5005A,
+/**/                   0xBF258073, 0x93000000,
+/**/                   0xBD3E2660, 0x71C1D861,
+/**/                   0x3F2540E1, 0xD15F5095,
+/**/                   0xBF254070, 0xE7000000,
+/**/                   0xBD2FBD3A, 0x4E77E5EE,
+/**/                   0x3F2500DC, 0x890B9EFA,
+/**/                   0xBF25006E, 0x43000000,
+/**/                   0xBCFEBDF2, 0x7B90A2D9,
+/**/                   0x3F24C0D7, 0x50B9E589,
+/**/                   0xBF24C06B, 0xA7000000,
+/**/                   0x3D2765B3, 0x58F2FF2C,
+/**/                   0x3F2480D2, 0x286A1E40,
+/**/                   0xBF248069, 0x13000000,
+/**/                   0x3D38FE8D, 0x74AE382C,
+/**/                   0x3F2440CD, 0x101C431E,
+/**/                   0xBF244066, 0x86800000,
+/**/                   0xBD3A07C3, 0xB0286224,
+/**/                   0x3F2400C8, 0x07D04E23,
+/**/                   0xBF240064, 0x02800000,
+/**/                   0xBD2ABE33, 0x46EFC0EC,
+/**/                   0x3F23C0C3, 0x0F86394D,
+/**/                   0xBF23C061, 0x86800000,
+/**/                   0xBCF06744, 0x70DE3151,
+/**/                   0x3F2380BE, 0x273DFE9C,
+/**/                   0xBF23805F, 0x12800000,
+/**/                   0x3D260659, 0x05CFCD61,
+/**/                   0x3F2340B9, 0x4EF7980F,
+/**/                   0xBF23405C, 0xA6800000,
+/**/                   0x3D36BEC8, 0xD7DBBEBC,
+/**/                   0x3F2300B4, 0x86B2FFA4,
+/**/                   0xBF23005A, 0x42000000,
+/**/                   0xBD3DD29F, 0x2B2027B4,
+/**/                   0x3F22C0AF, 0xCE702F5C,
+/**/                   0xBF22C057, 0xE6000000,
+/**/                   0xBD32B00B, 0x6959A7D0,
+/**/                   0x3F2280AB, 0x262F2134,
+/**/                   0xBF228055, 0x92000000,
+/**/                   0xBD1F61EF, 0x19FAAC2D,
+/**/                   0x3F2240A6, 0x8DEFCF2C,
+/**/                   0xBF224053, 0x46000000,
+/**/                   0x3D05A87E, 0xCB16B8A8,
+/**/                   0x3F2200A2, 0x05B23344,
+/**/                   0xBF220051, 0x02000000,
+/**/                   0x3D29F32F, 0x23B9B257,
+/**/                   0x3F21C09D, 0x8D76477A,
+/**/                   0xBF21C04E, 0xC6000000,
+/**/                   0x3D36F61B, 0x7E214821,
+/**/                   0x3F218099, 0x253C05CD,
+/**/                   0xBF21804C, 0x91800000,
+/**/                   0xBD3F5464, 0x46FDFCA2,
+/**/                   0x3F214094, 0xCD03683D,
+/**/                   0xBF21404A, 0x65800000,
+/**/                   0xBD35E4E7, 0xA30F2308,
+/**/                   0x3F210090, 0x84CC68C9,
+/**/                   0xBF210048, 0x41800000,
+/**/                   0xBD2974DC, 0xF800CC34,
+/**/                   0x3F20C08C, 0x4C970171,
+/**/                   0xBF20C046, 0x25800000,
+/**/                   0xBD0E9FC5, 0xC1006E9D,
+/**/                   0x3F208088, 0x24632C32,
+/**/                   0xBF208044, 0x11800000,
+/**/                   0x3D133DE7, 0x078E4438,
+/**/                   0x3F204084, 0x0C30E30D,
+/**/                   0xBF204042, 0x05800000,
+/**/                   0x3D2A61D2, 0x15F82A7B,
+/**/                   0x3F200080, 0x04002001,
+/**/                   0xBF200040, 0x01800000,
+/**/                   0x3D355155, 0x3BBB110C,
+/**/                   0x3F1F80F8, 0x17A1BA1A,
+/**/                   0xBF1F807C, 0x0B000000,
+/**/                   0x3D3D31BE, 0x6C520A9B,
+/**/                   0x3F1F00F0, 0x47462860,
+/**/                   0xBF1F0078, 0x22000000,
+/**/                   0xBD3B2CDB, 0x4B6D83F6,
+/**/                   0x3F1E80E8, 0x96ED7ED3,
+/**/                   0xBF1E8074, 0x4A000000,
+/**/                   0xBD33C977, 0xD4122C5A,
+/**/                   0x3F1E00E1, 0x0697B172,
+/**/                   0xBF1E0070, 0x82000000,
+/**/                   0xBD29462E, 0x2D1517C4,
+/**/                   0x3F1D80D9, 0x9644B43B,
+/**/                   0xBF1D806C, 0xCA000000,
+/**/                   0xBD16E2E3, 0xF0952D45,
+/**/                   0x3F1D00D2, 0x45F47B2C,
+/**/                   0xBF1D0069, 0x22000000,
+/**/                   0x3CEED452, 0x2DDC2A8D,
+/**/                   0x3F1C80CB, 0x15A6FA46,
+/**/                   0xBF1C8065, 0x8A000000,
+/**/                   0x3D1DAFEE, 0xA08CEBE8,
+/**/                   0x3F1C00C4, 0x055C2585,
+/**/                   0xBF1C0062, 0x02000000,
+/**/                   0x3D2B50A4, 0xBB11EF55,
+/**/                   0x3F1B80BD, 0x1513F0E9,
+/**/                   0xBF1B805E, 0x8A000000,
+/**/                   0x3D33ACA6, 0xC6D142BF,
+/**/                   0x3F1B00B6, 0x44CE5071,
+/**/                   0xBF1B005B, 0x22000000,
+/**/                   0x3D3979F8, 0xF8CD3D11,
+/**/                   0x3F1A80AF, 0x948B381A,
+/**/                   0xBF1A8057, 0xCA000000,
+/**/                   0x3D3F1149, 0x07EDFD29,
+/**/                   0x3F1A00A9, 0x044A9BE5,
+/**/                   0xBF1A0054, 0x81000000,
+/**/                   0xBD3B8C68, 0xF7BB7092,
+/**/                   0x3F1980A2, 0x940C6FCF,
+/**/                   0xBF198051, 0x49000000,
+/**/                   0xBD365E1C, 0xF27E09A9,
+/**/                   0x3F19009C, 0x43D0A7D8,
+/**/                   0xBF19004E, 0x21000000,
+/**/                   0xBD3162D2, 0xD508D564,
+/**/                   0x3F188096, 0x139737FE,
+/**/                   0xBF18804B, 0x09000000,
+/**/                   0xBD293315, 0x18D5C93E,
+/**/                   0x3F180090, 0x03601440,
+/**/                   0xBF180048, 0x01000000,
+/**/                   0xBD200288, 0x0C26A328,
+/**/                   0x3F17808A, 0x132B309E,
+/**/                   0xBF178045, 0x09000000,
+/**/                   0xBD0CC7F9, 0x7E89FD6F,
+/**/                   0x3F170084, 0x42F88115,
+/**/                   0xBF170042, 0x21000000,
+/**/                   0x3CE40881, 0x058494DC,
+/**/                   0x3F16807E, 0x92C7F9A5,
+/**/                   0xBF16803F, 0x49000000,
+/**/                   0x3D12AE16, 0xCD5698B9,
+/**/                   0x3F160079, 0x02998E4D,
+/**/                   0xBF16003C, 0x81000000,
+/**/                   0x3D21138B, 0xC5780E17,
+/**/                   0x3F158073, 0x926D330B,
+/**/                   0xBF158039, 0xC9000000,
+/**/                   0x3D287809, 0x4E2001E2,
+/**/                   0x3F15006E, 0x4242DBDF,
+/**/                   0xBF150037, 0x21000000,
+/**/                   0x3D2F8684, 0x21448AA2,
+/**/                   0x3F148069, 0x121A7CC8,
+/**/                   0xBF148034, 0x89000000,
+/**/                   0x3D33207E, 0x2F637D8E,
+/**/                   0x3F140064, 0x01F409C4,
+/**/                   0xBF140032, 0x01000000,
+/**/                   0x3D3654B9, 0x12E44B29,
+/**/                   0x3F13805F, 0x11CF76D3,
+/**/                   0xBF13802F, 0x89000000,
+/**/                   0x3D3960F2, 0xCA5547F3,
+/**/                   0x3F13005A, 0x41ACB7F4,
+/**/                   0xBF13002D, 0x21000000,
+/**/                   0x3D3C462B, 0x6487063D,
+/**/                   0x3F128055, 0x918BC126,
+/**/                   0xBF12802A, 0xC9000000,
+/**/                   0x3D3F0562, 0xEFEA1107,
+/**/                   0x3F120051, 0x016C8668,
+/**/                   0xBF120028, 0x80000000,
+/**/                   0xBD3E6066, 0x857113CE,
+/**/                   0x3F11804C, 0x914EFBBA,
+/**/                   0xBF118026, 0x48000000,
+/**/                   0xBD3BEA30, 0xEDD9EB54,
+/**/                   0x3F110048, 0x41331519,
+/**/                   0xBF110024, 0x20000000,
+/**/                   0xBD3996FC, 0x3BFFFF5A,
+/**/                   0x3F108044, 0x1118C686,
+/**/                   0xBF108022, 0x08000000,
+/**/                   0xBD3765C8, 0x62F2E042,
+/**/                   0x3F100040, 0x01000400,
+/**/                   0xBF100020, 0x00000000,
+/**/                   0xBD355595, 0x562224CD,
+/**/                   0x3F0F0078, 0x21D1830C,
+/**/                   0xBF0F003C, 0x10000000,
+/**/                   0xBD336563, 0x095D69EB,
+/**/                   0x3F0E0070, 0x81A5E62E,
+/**/                   0xBF0E0038, 0x40000000,
+/**/                   0xBD319431, 0x70D45290,
+/**/                   0x3F0D0069, 0x217D1965,
+/**/                   0xBF0D0034, 0x90000000,
+/**/                   0xBD2FC201, 0x022D0EF6,
+/**/                   0x3F0C0062, 0x015704B1,
+/**/                   0xBF0C0031, 0x00000000,
+/**/                   0xBD2C95A0, 0x5E276E21,
+/**/                   0x3F0B005B, 0x2133900E,
+/**/                   0xBF0B002D, 0x90000000,
+/**/                   0xBD29A140, 0xE0372A42,
+/**/                   0x3F0A0054, 0x8112A37D,
+/**/                   0xBF0A002A, 0x40000000,
+/**/                   0xBD26E2E2, 0x73BBB580,
+/**/                   0x3F09004E, 0x20F426FB,
+/**/                   0xBF090027, 0x10000000,
+/**/                   0xBD245885, 0x04D48C20,
+/**/                   0x3F080048, 0x00D80288,
+/**/                   0xBF080024, 0x00000000,
+/**/                   0xBD220028, 0x80613426,
+/**/                   0x3F070042, 0x20BE1E23,
+/**/                   0xBF070021, 0x10000000,
+/**/                   0xBD1FAF99, 0xA80279F3,
+/**/                   0x3F06003C, 0x80A661CA,
+/**/                   0xBF06001E, 0x40000000,
+/**/                   0xBD1BBAE3, 0xDC287DFE,
+/**/                   0x3F050037, 0x2090B57C,
+/**/                   0xBF05001B, 0x90000000,
+/**/                   0xBD181E2F, 0x7B73B67C,
+/**/                   0x3F040032, 0x007D0139,
+/**/                   0xBF040019, 0x00000000,
+/**/                   0xBD14D57C, 0x65A375F8,
+/**/                   0x3F03002D, 0x206B2CFF,
+/**/                   0xBF030016, 0x90000000,
+/**/                   0xBD11DCCA, 0x7BF71EC1,
+/**/                   0x3F020028, 0x805B20CD,
+/**/                   0xBF020014, 0x40000000,
+/**/                   0xBD0E6033, 0x425C4447,
+/**/                   0x3F010024, 0x204CC4A3,
+/**/                   0xBF010012, 0x10000000,
+/**/                   0xBD0996D3, 0x730FFF5C,
+/**/                   0x3F000020, 0x00400080,
+/**/                   0xBF000010, 0x00000000,
+/**/                   0xBD055575, 0x558888DE,
+/**/                   0x3EFE0038, 0x406978C6,
+/**/                   0xBEFE001C, 0x20000000,
+/**/                   0xBD019418, 0xB845146A,
+/**/                   0x3EFC0031, 0x0055C096,
+/**/                   0xBEFC0018, 0x80000000,
+/**/                   0xBCFC957A, 0xD989DB3C,
+/**/                   0x3EFA002A, 0x4044A870,
+/**/                   0xBEFA0015, 0x20000000,
+/**/                   0xBCF6E2C6, 0x8F0EED2F,
+/**/                   0x3EF80024, 0x00360051,
+/**/                   0xBEF80012, 0x00000000,
+/**/                   0xBCF20014, 0x40184CEB,
+/**/                   0x3EF6001E, 0x40299839,
+/**/                   0xBEF6000F, 0x20000000,
+/**/                   0xBCEBBAC7, 0x434A1F5C,
+/**/                   0x3EF40019, 0x001F4027,
+/**/                   0xBEF4000C, 0x80000000,
+/**/                   0xBCE4D568, 0xDD68DD6A,
+/**/                   0x3EF20014, 0x4016C81A,
+/**/                   0xBEF2000A, 0x20000000,
+/**/                   0xBCDE6019, 0xA11710FC,
+/**/                   0x3EF00010, 0x00100010,
+/**/                   0xBEF00008, 0x00000000,
+/**/                   0xBCD55565, 0x5562222D,
+/**/                   0x3EEC0018, 0x80157013,
+/**/                   0xBEEC000C, 0x40000000,
+/**/                   0xBCCC9568, 0x176276C5,
+/**/                   0x3EE80012, 0x000D800A,
+/**/                   0xBEE80009, 0x00000000,
+/**/                   0xBCC2000A, 0x20061337,
+/**/                   0x3EE4000C, 0x8007D005,
+/**/                   0xBEE40006, 0x40000000,
+/**/                   0xBCB4D55F, 0x195A3758,
+/**/                   0x3EE00008, 0x00040002,
+/**/                   0xBEE00004, 0x00000000,
+/**/                   0xBCA5555D, 0x5558888A,
+/**/                   0x3ED80009, 0x00036001,
+/**/                   0xBED80004, 0x80000000,
+/**/                   0xBC920005, 0x100184CD,
+/**/                   0x3ED00004, 0x00010000,
+/**/                   0xBED00002, 0x00000000,
+/**/                   0xBC755559, 0x55562222,
+/**/                   0x3EC00002, 0x00004000,
+/**/                   0xBEC00001, 0x00000000,
+/**/                   0xBC455557, 0x55558889,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0xBEBFFFFC, 0x00008000,
+/**/                   0x3EBFFFFE, 0x00000000,
+/**/                   0x3C455553, 0x55558889,
+/**/                   0xBECFFFF8, 0x00020000,
+/**/                   0x3ECFFFFC, 0x00000000,
+/**/                   0x3C755551, 0x55562222,
+/**/                   0xBED7FFF7, 0x00035FFF,
+/**/                   0x3ED7FFFB, 0x80000000,
+/**/                   0x3C91FFFA, 0xF00184CC,
+/**/                   0xBEDFFFF0, 0x0007FFFC,
+/**/                   0x3EDFFFF8, 0x00000000,
+/**/                   0x3CA5554D, 0x55588887,
+/**/                   0xBEE3FFF3, 0x8007CFFB,
+/**/                   0x3EE3FFF9, 0xC0000000,
+/**/                   0x3CB4D54B, 0x915A3753,
+/**/                   0xBEE7FFEE, 0x000D7FF6,
+/**/                   0x3EE7FFF7, 0x00000000,
+/**/                   0x3CC1FFF5, 0xE006132F,
+/**/                   0xBEEBFFE7, 0x80156FED,
+/**/                   0x3EEBFFF3, 0xC0000000,
+/**/                   0x3CCC9542, 0x936276B2,
+/**/                   0xBEEFFFE0, 0x001FFFE0,
+/**/                   0x3EEFFFF0, 0x00000000,
+/**/                   0x3CD55545, 0x55622217,
+/**/                   0xBEF1FFEB, 0xC016C7E6,
+/**/                   0x3EF1FFF5, 0xE0000000,
+/**/                   0x3CDE5FE6, 0x5F1710D1,
+/**/                   0xBEF3FFE7, 0x001F3FD9,
+/**/                   0x3EF3FFF3, 0x80000000,
+/**/                   0x3CE4D541, 0xCD68DD41,
+/**/                   0xBEF5FFE1, 0xC02997C7,
+/**/                   0x3EF5FFF0, 0xE0000000,
+/**/                   0x3CEBBA8E, 0x124A1F13,
+/**/                   0xBEF7FFDC, 0x0035FFAF,
+/**/                   0x3EF7FFEE, 0x00000000,
+/**/                   0x3CF1FFEB, 0xC0184CAE,
+/**/                   0xBEF9FFD5, 0xC044A790,
+/**/                   0x3EF9FFEA, 0xE0000000,
+/**/                   0x3CF6E28E, 0xC68EECCD,
+/**/                   0xBEFBFFCF, 0x0055BF6A,
+/**/                   0x3EFBFFE7, 0x80000000,
+/**/                   0x3CFC952F, 0xD189DAA2,
+/**/                   0xBEFDFFC7, 0xC069773A,
+/**/                   0x3EFDFFE3, 0xE0000000,
+/**/                   0x3D0193E7, 0x480513F6,
+/**/                   0xBEFFFFC0, 0x007FFF00,
+/**/                   0x3EFFFFE0, 0x00000000,
+/**/                   0x3D055535, 0x55888833,
+/**/                   0xBF00FFDB, 0xE04CC35D,
+/**/                   0x3F00FFED, 0xF0000000,
+/**/                   0x3D099681, 0xE2CFFE66,
+/**/                   0xBF01FFD7, 0x805B1F33,
+/**/                   0x3F01FFEB, 0xC0000000,
+/**/                   0x3D0E5FCC, 0xBE5C42ED,
+/**/                   0xBF02FFD2, 0xE06B2B01,
+/**/                   0x3F02FFE9, 0x70000000,
+/**/                   0x3D11DC8A, 0xD9D71DD1,
+/**/                   0xBF03FFCE, 0x007CFEC8,
+/**/                   0x3F03FFE7, 0x00000000,
+/**/                   0x3D14D52E, 0x45A374B3,
+/**/                   0xBF04FFC8, 0xE090B284,
+/**/                   0x3F04FFE4, 0x70000000,
+/**/                   0x3D181DD0, 0x8553B4C7,
+/**/                   0xBF05FFC3, 0x80A65E36,
+/**/                   0x3F05FFE1, 0xC0000000,
+/**/                   0x3D1BBA71, 0x7A287BBE,
+/**/                   0xBF06FFBD, 0xE0BE19DD,
+/**/                   0x3F06FFDE, 0xF0000000,
+/**/                   0x3D1FAF11, 0x03E27702,
+/**/                   0xBF07FFB8, 0x00D7FD78,
+/**/                   0x3F07FFDC, 0x00000000,
+/**/                   0x3D21FFD7, 0x80613240,
+/**/                   0xBF08FFB1, 0xE0F42105,
+/**/                   0x3F08FFD8, 0xF0000000,
+/**/                   0x3D245825, 0xA6C489B3,
+/**/                   0xBF09FFAB, 0x81129C84,
+/**/                   0x3F09FFD5, 0xC0000000,
+/**/                   0x3D26E272, 0xE2BBB26F,
+/**/                   0xBF0AFFA4, 0xE13387F2,
+/**/                   0x3F0AFFD2, 0x70000000,
+/**/                   0x3D29A0BF, 0x21272669,
+/**/                   0xBF0BFF9E, 0x0156FB50,
+/**/                   0x3F0BFFCF, 0x00000000,
+/**/                   0x3D2C950A, 0x4E276957,
+/**/                   0xBF0CFF96, 0xE17D0E9B,
+/**/                   0x3F0CFFCB, 0x70000000,
+/**/                   0x3D2FC154, 0x551D090E,
+/**/                   0xBF0DFF8F, 0x81A5D9D2,
+/**/                   0x3F0DFFC7, 0xC0000000,
+/**/                   0x3D3193CE, 0x90544EF1,
+/**/                   0xBF0EFF87, 0xE1D174F4,
+/**/                   0x3F0EFFC3, 0xF0000000,
+/**/                   0x3D3364F2, 0x4D556583,
+/**/                   0xBF0FFF80, 0x01FFF800,
+/**/                   0x3F0FFFC0, 0x00000000,
+/**/                   0x3D355515, 0x56221F78,
+/**/                   0xBF107FBB, 0xF118BD7A,
+/**/                   0x3F107FDD, 0xF8000000,
+/**/                   0x3D376537, 0x9EEAD9D8,
+/**/                   0xBF10FFB7, 0xC1330AE7,
+/**/                   0x3F10FFDB, 0xE0000000,
+/**/                   0x3D399659, 0x1B7FF7AE,
+/**/                   0xBF117FB3, 0x714EF047,
+/**/                   0x3F117FD9, 0xB8000000,
+/**/                   0x3D3BE979, 0xBF51E233,
+/**/                   0xBF11FFAF, 0x016C7998,
+/**/                   0x3F11FFD7, 0x80000000,
+/**/                   0x3D3E5F99, 0x7D7108FF,
+/**/                   0xBF127FAA, 0x718BB2DA,
+/**/                   0x3F127FD5, 0x39000000,
+/**/                   0xBD3F0647, 0xB7721DC6,
+/**/                   0xBF12FFA5, 0xC1ACA80C,
+/**/                   0x3F12FFD2, 0xE1000000,
+/**/                   0xBD3C4729, 0xED071532,
+/**/                   0xBF137FA0, 0xF1CF652D,
+/**/                   0x3F137FD0, 0x79000000,
+/**/                   0xBD39620D, 0x315D596D,
+/**/                   0xBF13FF9C, 0x01F3F63C,
+/**/                   0x3F13FFCE, 0x01000000,
+/**/                   0xBD3655F1, 0x92E45F81,
+/**/                   0xBF147F96, 0xF21A6739,
+/**/                   0x3F147FCB, 0x79000000,
+/**/                   0xBD3321D7, 0x206B9526,
+/**/                   0xBF14FF91, 0xC242C421,
+/**/                   0x3F14FFC8, 0xE1000000,
+/**/                   0xBD2F897B, 0xD244C12A,
+/**/                   0xBF157F8C, 0x726D18F6,
+/**/                   0x3F157FC6, 0x39000000,
+/**/                   0xBD287B4B, 0xF93040AE,
+/**/                   0xBF15FF87, 0x029971B4,
+/**/                   0x3F15FFC3, 0x81000000,
+/**/                   0xBD21171E, 0xD578562C,
+/**/                   0xBF167F81, 0x72C7DA5C,
+/**/                   0x3F167FC0, 0xB9000000,
+/**/                   0xBD12B5E9, 0x0F773DB4,
+/**/                   0xBF16FF7B, 0xC2F85EEC,
+/**/                   0x3F16FFBD, 0xE1000000,
+/**/                   0xBCE44CD3, 0x158A76C2,
+/**/                   0xBF177F75, 0xF32B0B63,
+/**/                   0x3F177FBA, 0xF9000000,
+/**/                   0x3D0CB55C, 0x2E48511B,
+/**/                   0xBF17FF70, 0x035FEBC0,
+/**/                   0x3F17FFB8, 0x01000000,
+/**/                   0x3D1FFAF0, 0x184C534F,
+/**/                   0xBF187F69, 0xF3970C03,
+/**/                   0x3F187FB4, 0xF9000000,
+/**/                   0x3D292D95, 0xACC53FBE,
+/**/                   0xBF18FF63, 0xC3D07829,
+/**/                   0x3F18FFB1, 0xE1000000,
+/**/                   0x3D315FD7, 0xE48887C8,
+/**/                   0xBF197F5D, 0x740C3C32,
+/**/                   0x3F197FAE, 0xB9000000,
+/**/                   0x3D365AE3, 0x1DF5B242,
+/**/                   0xBF19FF57, 0x044A641C,
+/**/                   0x3F19FFAB, 0x81000000,
+/**/                   0x3D3B88EC, 0x6FBB0E5F,
+/**/                   0xBF1A7F50, 0x748AFBE7,
+/**/                   0x3F1A7FA8, 0x3A000000,
+/**/                   0xBD3F150C, 0x39766B40,
+/**/                   0xBF1AFF49, 0xC4CE0F91,
+/**/                   0x3F1AFFA4, 0xE2000000,
+/**/                   0xBD397E06, 0xF14DB839,
+/**/                   0xBF1B7F42, 0xF513AB19,
+/**/                   0x3F1B7FA1, 0x7A000000,
+/**/                   0xBD33B103, 0xCBD9CC3D,
+/**/                   0xBF1BFF3C, 0x055BDA7D,
+/**/                   0x3F1BFF9E, 0x02000000,
+/**/                   0xBD2B5A05, 0xBB1321B5,
+/**/                   0xBF1C7F34, 0xF5A6A9BD,
+/**/                   0x3F1C7F9A, 0x7A000000,
+/**/                   0xBD1DC410, 0xECAF9551,
+/**/                   0xBF1CFF2D, 0xC5F424D6,
+/**/                   0x3F1CFF96, 0xE2000000,
+/**/                   0xBCEF80FF, 0x3DF3CD68,
+/**/                   0xBF1D7F26, 0x764457C8,
+/**/                   0x3F1D7F93, 0x3A000000,
+/**/                   0x3D16CBC7, 0x4271E737,
+/**/                   0xBF1DFF1F, 0x06974E91,
+/**/                   0x3F1DFF8F, 0x82000000,
+/**/                   0x3D2939D2, 0x1D134848,
+/**/                   0xBF1E7F17, 0x76ED1530,
+/**/                   0x3F1E7F8B, 0xBA000000,
+/**/                   0x3D33C2DD, 0xA9892C73,
+/**/                   0xBF1EFF0F, 0xC745B7A4,
+/**/                   0x3F1EFF87, 0xE2000000,
+/**/                   0x3D3B25CF, 0x8AEC69D5,
+/**/                   0xBF1F7F07, 0xF7A141EA,
+/**/                   0x3F1F7F83, 0xFB000000,
+/**/                   0xBD3D3941, 0x645B412A,
+/**/                   0xBF1FFF00, 0x07FFC002,
+/**/                   0x3F1FFF80, 0x03000000,
+/**/                   0xBD355955, 0x3BBC6662,
+/**/                   0xBF203F7B, 0xFC309EF5,
+/**/                   0x3F203FBD, 0xFD800000,
+/**/                   0xBD2A72D8, 0x260B17B3,
+/**/                   0xBF207F77, 0xE462E3D0,
+/**/                   0x3F207FBB, 0xF1800000,
+/**/                   0xBD136218, 0x0994AE68,
+/**/                   0xBF20BF73, 0xBC96B492,
+/**/                   0x3F20BFB9, 0xDD800000,
+/**/                   0x3D0E52E6, 0xECB2641F,
+/**/                   0xBF20FF6F, 0x84CC1739,
+/**/                   0x3F20FFB7, 0xC1800000,
+/**/                   0x3D296078, 0xE7FCF60B,
+/**/                   0xBF213F6B, 0x3D0311C6,
+/**/                   0x3F213FB5, 0x9D800000,
+/**/                   0x3D35DA18, 0xA7850AFF,
+/**/                   0xBF217F66, 0xE53BAA36,
+/**/                   0x3F217FB3, 0x71800000,
+/**/                   0x3D3F48F1, 0x5E7BB444,
+/**/                   0xBF21BF62, 0x7D75E68A,
+/**/                   0x3F21BFB1, 0x3E000000,
+/**/                   0xBD370239, 0x812BC469,
+/**/                   0xBF21FF5E, 0x05B1CCC0,
+/**/                   0x3F21FFAF, 0x02000000,
+/**/                   0xBD2A0CD0, 0x23BF1A4D,
+/**/                   0xBF223F59, 0x7DEF62D8,
+/**/                   0x3F223FAC, 0xBE000000,
+/**/                   0xBD0614D3, 0x736E3623,
+/**/                   0xBF227F54, 0xE62EAED0,
+/**/                   0x3F227FAA, 0x72000000,
+/**/                   0x3D1F28BD, 0x37EDEDB0,
+/**/                   0xBF22BF50, 0x3E6FB6A9,
+/**/                   0x3F22BFA8, 0x1E000000,
+/**/                   0x3D32A0F5, 0x07CE33C8,
+/**/                   0xBF22FF4B, 0x86B28060,
+/**/                   0x3F22FFA5, 0xC2000000,
+/**/                   0x3D3DC2B6, 0xA31C6A8D,
+/**/                   0xBF233F46, 0xBEF711F6,
+/**/                   0x3F233FA3, 0x5E800000,
+/**/                   0xBD36CF8B, 0xFC67C9FB,
+/**/                   0xBF237F41, 0xE73D7169,
+/**/                   0x3F237FA0, 0xF2800000,
+/**/                   0xBD2629A5, 0xE6D88A89,
+/**/                   0xBF23BF3C, 0xFF85A4B8,
+/**/                   0x3F23BF9E, 0x7E800000,
+/**/                   0x3CEE7C34, 0x202574EC,
+/**/                   0xBF23FF38, 0x07CFB1E3,
+/**/                   0x3F23FF9C, 0x02800000,
+/**/                   0x3D2A9723, 0x46E594C1,
+/**/                   0xBF243F33, 0x001B9EE8,
+/**/                   0x3F243F99, 0x7E800000,
+/**/                   0x3D39F33C, 0xF61AE74C,
+/**/                   0xBF247F2D, 0xE86971C7,
+/**/                   0x3F247F96, 0xF3000000,
+/**/                   0xBD39141C, 0x85341E31,
+/**/                   0xBF24BF28, 0xC0B9307F,
+/**/                   0x3F24BF94, 0x5F000000,
+/**/                   0xBD2792F5, 0xDA0FAF09,
+/**/                   0xBF24FF23, 0x890AE10E,
+/**/                   0x3F24FF91, 0xC3000000,
+/**/                   0x3CFD4219, 0xFB239430,
+/**/                   0xBF253F1E, 0x415E8974,
+/**/                   0x3F253F8F, 0x1F000000,
+/**/                   0x3D2F8B72, 0x0359434A,
+/**/                   0xBF257F18, 0xE9B42FAF,
+/**/                   0x3F257F8C, 0x73000000,
+/**/                   0x3D3E0C4B, 0x1939FEDF,
+/**/                   0xBF25BF13, 0x820BD9BF,
+/**/                   0x3F25BF89, 0xBF800000,
+/**/                   0xBD335728, 0x39B301E2,
+/**/                   0xBF25FF0E, 0x0A658DA3,
+/**/                   0x3F25FF87, 0x03800000,
+/**/                   0xBD118E84, 0x5E1E8D4F,
+/**/                   0xBF263F08, 0x82C15159,
+/**/                   0x3F263F84, 0x3F800000,
+/**/                   0x3D25CFC0, 0xBDDDD045,
+/**/                   0xBF267F02, 0xEB1F2AE1,
+/**/                   0x3F267F81, 0x73800000,
+/**/                   0x3D3A8C5C, 0x08837E99,
+/**/                   0xBF26BEFD, 0x437F203A,
+/**/                   0x3F26BF7E, 0xA0000000,
+/**/                   0xBD35752E, 0x3C56F12D,
+/**/                   0xBF26FEF7, 0x8BE13762,
+/**/                   0x3F26FF7B, 0xC4000000,
+/**/                   0xBD146EFA, 0x46359E28,
+/**/                   0xBF273EF1, 0xC4457659,
+/**/                   0x3F273F78, 0xE0000000,
+/**/                   0x3D273355, 0xCD265865,
+/**/                   0xBF277EEB, 0xECABE31C,
+/**/                   0x3F277F75, 0xF4000000,
+/**/                   0x3D3CAC0E, 0x095DEBF8,
+/**/                   0xBF27BEE6, 0x051483AC,
+/**/                   0x3F27BF73, 0x00800000,
+/**/                   0xBD31E395, 0x4C39F4DB,
+/**/                   0xBF27FEE0, 0x0D7F5E08,
+/**/                   0x3F27FF70, 0x04800000,
+/**/                   0xBCB43F3D, 0xA1314B81,
+/**/                   0xBF283EDA, 0x05EC782D,
+/**/                   0x3F283F6D, 0x00800000,
+/**/                   0x3D321B10, 0x115B8D70,
+/**/                   0xBF287ED3, 0xEE5BD81B,
+/**/                   0x3F287F69, 0xF5000000,
+/**/                   0xBD3B54A7, 0x83704FE1,
+/**/                   0xBF28BECD, 0xC6CD83D1,
+/**/                   0x3F28BF66, 0xE1000000,
+/**/                   0xBD20C4CC, 0x41229C91,
+/**/                   0xBF28FEC7, 0x8F41814D,
+/**/                   0x3F28FF63, 0xC5000000,
+/**/                   0x3D25E5A8, 0x2A183F17,
+/**/                   0xBF293EC1, 0x47B7D68F,
+/**/                   0x3F293F60, 0xA1000000,
+/**/                   0x3D3EAC06, 0xF81B997D,
+/**/                   0xBF297EBA, 0xF0308995,
+/**/                   0x3F297F5D, 0x75800000,
+/**/                   0xBD2A6B9B, 0x3A1E5BAD,
+/**/                   0xBF29BEB4, 0x88ABA05E,
+/**/                   0x3F29BF5A, 0x41800000,
+/**/                   0x3D1D3958, 0xBDFE3C77,
+/**/                   0xBF29FEAE, 0x112920E9,
+/**/                   0x3F29FF57, 0x05800000,
+/**/                   0x3D3C3972, 0x375BA904,
+/**/                   0xBF2A3EA7, 0x89A91135,
+/**/                   0x3F2A3F53, 0xC2000000,
+/**/                   0xBD2CE6F3, 0x588DE85B,
+/**/                   0xBF2A7EA0, 0xF22B7740,
+/**/                   0x3F2A7F50, 0x76000000,
+/**/                   0x3D1D2249, 0x75AEDBFD,
+/**/                   0xBF2ABE9A, 0x4AB05909,
+/**/                   0x3F2ABF4D, 0x22000000,
+/**/                   0x3D3D6E96, 0x2CE7BDAC,
+/**/                   0xBF2AFE93, 0x9337BC90,
+/**/                   0x3F2AFF49, 0xC6800000,
+/**/                   0xBD2800DC, 0xCB7D724C,
+/**/                   0xBF2B3E8C, 0xCBC1A7D1,
+/**/                   0x3F2B3F46, 0x62800000,
+/**/                   0x3D25F908, 0xFA591B29,
+/**/                   0xBF2B7E85, 0xF44E20CE,
+/**/                   0x3F2B7F42, 0xF7000000,
+/**/                   0xBD3D9991, 0x53021ED8,
+/**/                   0xBF2BBE7F, 0x0CDD2D83,
+/**/                   0x3F2BBF3F, 0x83000000,
+/**/                   0xBD1706BF, 0xFD596AD6,
+/**/                   0xBF2BFE78, 0x156ED3F0,
+/**/                   0x3F2BFF3C, 0x07000000,
+/**/                   0x3D328528, 0x4EC45253,
+/**/                   0xBF2C3E71, 0x0E031A14,
+/**/                   0x3F2C3F38, 0x83800000,
+/**/                   0xBD34C408, 0x927D8A9E,
+/**/                   0xBF2C7E69, 0xF69A05ED,
+/**/                   0x3F2C7F34, 0xF7800000,
+/**/                   0x3D118EF4, 0xCAE2C25F,
+/**/                   0xBF2CBE62, 0xCF339D7A,
+/**/                   0x3F2CBF31, 0x63800000,
+/**/                   0x3D3DFD79, 0x73DBBB41,
+/**/                   0xBF2CFE5B, 0x97CFE6B9,
+/**/                   0x3F2CFF2D, 0xC8000000,
+/**/                   0xBD1FD74F, 0xE7FE77E6,
+/**/                   0xBF2D3E54, 0x506EE7AA,
+/**/                   0x3F2D3F2A, 0x24000000,
+/**/                   0x3D328AD4, 0xBDDB871F,
+/**/                   0xBF2D7E4C, 0xF910A64A,
+/**/                   0x3F2D7F26, 0x78800000,
+/**/                   0xBD327F8C, 0x903DDD81,
+/**/                   0xBF2DBE45, 0x91B52899,
+/**/                   0x3F2DBF22, 0xC4800000,
+/**/                   0x3D21D80F, 0xDF52840A,
+/**/                   0xBF2DFE3E, 0x1A5C7495,
+/**/                   0x3F2DFF1F, 0x09000000,
+/**/                   0xBD3B316D, 0xEED9F651,
+/**/                   0xBF2E3E36, 0x9306903D,
+/**/                   0x3F2E3F1B, 0x45000000,
+/**/                   0x3CF2911A, 0x76DB3C6B,
+/**/                   0xBF2E7E2E, 0xFBB3818F,
+/**/                   0x3F2E7F17, 0x79000000,
+/**/                   0x3D3DFC86, 0x85559113,
+/**/                   0xBF2EBE27, 0x54634E89,
+/**/                   0x3F2EBF13, 0xA5800000,
+/**/                   0xBD12D83E, 0x0AB3DBE7,
+/**/                   0xBF2EFE1F, 0x9D15FD2B,
+/**/                   0x3F2EFF0F, 0xC9800000,
+/**/                   0x3D39124F, 0x617B99F1,
+/**/                   0xBF2F3E17, 0xD5CB9373,
+/**/                   0x3F2F3F0B, 0xE6000000,
+/**/                   0xBD2152B9, 0xF8F64DA1,
+/**/                   0xBF2F7E0F, 0xFE841760,
+/**/                   0x3F2F7F07, 0xFA000000,
+/**/                   0x3D3617EB, 0x34C4735B,
+/**/                   0xBF2FBE08, 0x173F8EEF,
+/**/                   0x3F2FBF04, 0x06800000,
+/**/                   0xBD2551B0, 0x739FA712,
+/**/                   0xBF2FFE00, 0x1FFE0020,
+/**/                   0x3F2FFF00, 0x0A800000,
+/**/                   0x3D351558, 0x885DE027,
+/**/                   0xBF301EFC, 0x0C5FB879,
+/**/                   0x3F301F7E, 0x03800000,
+/**/                   0xBD255905, 0x68F8FC50,
+/**/                   0xBF303EF8, 0x00C1F3B0,
+/**/                   0x3F303F7B, 0xFD800000,
+/**/                   0x3D361295, 0xDF771CF4,
+/**/                   0xBF305EF3, 0xED25B4B7,
+/**/                   0x3F305F79, 0xF3C00000,
+/**/                   0xBD2158BB, 0xD8A255DB,
+/**/                   0xBF307EEF, 0xD18AFE8B,
+/**/                   0x3F307F77, 0xE5C00000,
+/**/                   0x3D3917A1, 0xB740E625,
+/**/                   0xBF309EEB, 0xADF1D42C,
+/**/                   0x3F309F75, 0xD4000000,
+/**/                   0xBD1281AD, 0x9C716D59,
+/**/                   0xBF30BEE7, 0x825A3899,
+/**/                   0x3F30BF73, 0xBE000000,
+/**/                   0x3D3E2C7A, 0x86ED7DDC,
+/**/                   0xBF30DEE3, 0x4EC42ED1,
+/**/                   0x3F30DF71, 0xA4400000,
+/**/                   0x3CF7F534, 0xF54F7E28,
+/**/                   0xBF30FEDF, 0x132FB9D5,
+/**/                   0x3F30FF6F, 0x86800000,
+/**/                   0xBD3AA6E1, 0x404F4E01,
+/**/                   0xBF311EDA, 0xCF9CDCA2,
+/**/                   0x3F311F6D, 0x64800000,
+/**/                   0x3D2375B9, 0x4A6EC981,
+/**/                   0xBF313ED6, 0x840B9A38,
+/**/                   0x3F313F6B, 0x3EC00000,
+/**/                   0xBD315A73, 0x33401DD0,
+/**/                   0xBF315ED2, 0x307BF596,
+/**/                   0x3F315F69, 0x14C00000,
+/**/                   0x3D341A2F, 0x02C11605,
+/**/                   0xBF317ECD, 0xD4EDF1BC,
+/**/                   0x3F317F66, 0xE7000000,
+/**/                   0xBD1798F3, 0xB2B7E8C5,
+/**/                   0xBF319EC9, 0x716191A8,
+/**/                   0x3F319F64, 0xB5400000,
+/**/                   0xBD3F5AB7, 0x35D62ED5,
+/**/                   0xBF31BEC5, 0x05D6D85A,
+/**/                   0x3F31BF62, 0x7F400000,
+/**/                   0x3D1EF6FF, 0xCA7EC7CD,
+/**/                   0xBF31DEC0, 0x924DC8D2,
+/**/                   0x3F31DF60, 0x45800000,
+/**/                   0xBD309BD7, 0xA8550396,
+/**/                   0xBF31FEBC, 0x16C6660D,
+/**/                   0x3F31FF5E, 0x07800000,
+/**/                   0x3D379981, 0xC3E31F70,
+/**/                   0xBF321EB7, 0x9340B30B,
+/**/                   0x3F321F5B, 0xC5C00000,
+/**/                   0x3CD7B300, 0x5FE92B94,
+/**/                   0xBF323EB3, 0x07BCB2CC,
+/**/                   0x3F323F59, 0x80000000,
+/**/                   0xBD364AF9, 0x25A7CF34,
+/**/                   0xBF325EAE, 0x743A684F,
+/**/                   0x3F325F57, 0x36000000,
+/**/                   0x3D339D32, 0x17E48399,
+/**/                   0xBF327EA9, 0xD8B9D692,
+/**/                   0x3F327F54, 0xE8400000,
+/**/                   0xBCFE7B27, 0xCC387BD1,
+/**/                   0xBF329EA5, 0x353B0095,
+/**/                   0x3F329F52, 0x96800000,
+/**/                   0xBD36D8A7, 0x1AE7FA80,
+/**/                   0xBF32BEA0, 0x89BDE957,
+/**/                   0x3F32BF50, 0x40800000,
+/**/                   0x3D34CB54, 0x05CF3DC3,
+/**/                   0xBF32DE9B, 0xD64293D7,
+/**/                   0x3F32DF4D, 0xE6C00000,
+/**/                   0x3CF053EA, 0xD5A4F691,
+/**/                   0xBF32FE97, 0x1AC90315,
+/**/                   0x3F32FF4B, 0x89000000,
+/**/                   0xBD3229E7, 0x5CAE7B16,
+/**/                   0xBF331E92, 0x57513A0F,
+/**/                   0x3F331F49, 0x27000000,
+/**/                   0x3D3B3EE1, 0xAEED4509,
+/**/                   0xBF333E8D, 0x8BDB3BC4,
+/**/                   0x3F333F46, 0xC1400000,
+/**/                   0x3D228133, 0x2E0C2605,
+/**/                   0xBF335E88, 0xB8670B34,
+/**/                   0x3F335F44, 0x57800000,
+/**/                   0xBD20477F, 0xBBD6E280,
+/**/                   0xBF337E83, 0xDCF4AB5D,
+/**/                   0x3F337F41, 0xE9C00000,
+/**/                   0xBD38ED2A, 0xE9CE8AFC,
+/**/                   0xBF339E7E, 0xF9841F3F,
+/**/                   0x3F339F3F, 0x77C00000,
+/**/                   0x3D36E558, 0x39159F9B,
+/**/                   0xBF33BE7A, 0x0E1569D9,
+/**/                   0x3F33BF3D, 0x02000000,
+/**/                   0x3D1D5325, 0x40681634,
+/**/                   0xBF33DE75, 0x1AA88E2A,
+/**/                   0x3F33DF3A, 0x88400000,
+/**/                   0xBD1E775F, 0x7F2112CE,
+/**/                   0xBF33FE70, 0x1F3D8F31,
+/**/                   0x3F33FF38, 0x0A800000,
+/**/                   0xBD35F18B, 0x91F80D1B,
+/**/                   0xBF341E6B, 0x1BD46FED,
+/**/                   0x3F341F35, 0x88800000,
+/**/                   0x3D3C5AAD, 0xFDC3FC2F,
+/**/                   0xBF343E66, 0x106D335D,
+/**/                   0x3F343F33, 0x02C00000,
+/**/                   0x3D2E8FA9, 0x268A89F1,
+/**/                   0xBF345E60, 0xFD07DC80,
+/**/                   0x3F345F30, 0x79000000,
+/**/                   0x3D06B73F, 0x902AC9EE,
+/**/                   0xBF347E5B, 0xE1A46E55,
+/**/                   0x3F347F2D, 0xEB400000,
+/**/                   0xBD21EE30, 0x45C43959,
+/**/                   0xBF349E56, 0xBE42EBDC,
+/**/                   0x3F349F2B, 0x59800000,
+/**/                   0xBD34212B, 0xE8B753E8,
+/**/                   0xBF34BE51, 0x92E35813,
+/**/                   0x3F34BF28, 0xC3C00000,
+/**/                   0xBD3EA653, 0x9D2064DB,
+/**/                   0xBF34DE4C, 0x5F85B5F9,
+/**/                   0x3F34DF26, 0x29C00000,
+/**/                   0x3D377A70, 0x81DCB6FB,
+/**/                   0xBF34FE47, 0x242A088D,
+/**/                   0x3F34FF23, 0x8C000000,
+/**/                   0x3D2C8440, 0x6BB44A6D,
+/**/                   0xBF351E41, 0xE0D052CF,
+/**/                   0x3F351F20, 0xEA400000,
+/**/                   0x3D16C6ED, 0x0048AAF8,
+/**/                   0xBF353E3C, 0x957897BD,
+/**/                   0x3F353F1E, 0x44800000,
+/**/                   0xBD01ADF4, 0xF506A07E,
+/**/                   0xBF355E37, 0x4222DA57,
+/**/                   0x3F355F1B, 0x9AC00000,
+/**/                   0xBD22E69B, 0x4B88A655,
+/**/                   0xBF357E31, 0xE6CF1D9B,
+/**/                   0x3F357F18, 0xED000000,
+/**/                   0xBD3005F2, 0x153DAEB0,
+/**/                   0xBF359E2C, 0x837D6488,
+/**/                   0x3F359F16, 0x3B400000,
+/**/                   0xBD35ECAC, 0x2D5222B4,
+/**/                   0xBF35BE27, 0x182DB21E,
+/**/                   0x3F35BF13, 0x85800000,
+/**/                   0xBD3B267C, 0x2EA6CB14,
+/**/                   0xBF35DE21, 0xA4E0095B,
+/**/                   0x3F35DF10, 0xCBC00000,
+/**/                   0xBD3FB262, 0x5A40A340,
+/**/                   0xBF35FE1C, 0x29946D3F,
+/**/                   0x3F35FF0E, 0x0DC00000,
+/**/                   0x3D3C70A1, 0x0E7B79ED,
+/**/                   0xBF361E16, 0xA64AE0C7,
+/**/                   0x3F361F0B, 0x4C000000,
+/**/                   0x3D39438D, 0xC9C8D263,
+/**/                   0xBF363E11, 0x1B0366F4,
+/**/                   0x3F363F08, 0x86400000,
+/**/                   0x3D36C763, 0x9582CD0C,
+/**/                   0xBF365E0B, 0x87BE02C5,
+/**/                   0x3F365F05, 0xBC800000,
+/**/                   0x3D34FD22, 0x2F24F1F9,
+/**/                   0xBF367E05, 0xEC7AB737,
+/**/                   0x3F367F02, 0xEEC00000,
+/**/                   0x3D33E5C9, 0x53CAEA94,
+/**/                   0xBF369E00, 0x4939874A,
+/**/                   0x3F369F00, 0x1D000000,
+/**/                   0x3D338258, 0xC03081D0,
+/**/                   0xBF36BDFA, 0x9DFA75FE,
+/**/                   0x3F36BEFD, 0x47400000,
+/**/                   0x3D33D3D0, 0x30B1A458,
+/**/                   0xBF36DDF4, 0xEABD8651,
+/**/                   0x3F36DEFA, 0x6D800000,
+/**/                   0x3D34DB2F, 0x614A60C1,
+/**/                   0xBF36FDEF, 0x2F82BB41,
+/**/                   0x3F36FEF7, 0x8FC00000,
+/**/                   0x3D369976, 0x0D96E7B8,
+/**/                   0xBF371DE9, 0x6C4A17CF,
+/**/                   0x3F371EF4, 0xAE000000,
+/**/                   0x3D390FA3, 0xF0D38C30,
+/**/                   0xBF373DE3, 0xA1139EF8,
+/**/                   0x3F373EF1, 0xC8400000,
+/**/                   0x3D3C3EB8, 0xC5DCC397,
+/**/                   0xBF375DDD, 0xCDDF53BC,
+/**/                   0x3F375EEE, 0xDEC00000,
+/**/                   0xBD3FD84B, 0xB8D0D9FD,
+/**/                   0xBF377DD7, 0xF2AD3919,
+/**/                   0x3F377EEB, 0xF1000000,
+/**/                   0xBD3B3469, 0xD11891A0,
+/**/                   0xBF379DD2, 0x0F7D520F,
+/**/                   0x3F379EE8, 0xFF400000,
+/**/                   0xBD35D4A1, 0xC93D855B,
+/**/                   0xBF37BDCC, 0x244FA19D,
+/**/                   0x3F37BEE6, 0x09800000,
+/**/                   0xBD2F6FE7, 0xCFC56806,
+/**/                   0xBF37DDC6, 0x31242AC1,
+/**/                   0x3F37DEE3, 0x0FC00000,
+/**/                   0xBD21BAC0, 0xE815F202,
+/**/                   0xBF37FDC0, 0x35FAF079,
+/**/                   0x3F37FEE0, 0x12000000,
+/**/                   0xBCF43E7B, 0x5190C28B,
+/**/                   0xBF381DBA, 0x32D3F5C6,
+/**/                   0x3F381EDD, 0x10400000,
+/**/                   0x3D1C55D8, 0x34C1F9E9,
+/**/                   0xBF383DB4, 0x27AF3DA6,
+/**/                   0x3F383EDA, 0x0A800000,
+/**/                   0x3D302FB8, 0x8AAF36D4,
+/**/                   0xBF385DAE, 0x148CCB18,
+/**/                   0x3F385ED7, 0x00C00000,
+/**/                   0x3D3A0BDF, 0x7AE0D0F8,
+/**/                   0xBF387DA7, 0xF96CA11B,
+/**/                   0x3F387ED3, 0xF3400000,
+/**/                   0xBD3B5515, 0x6B1CDAAF,
+/**/                   0xBF389DA1, 0xD64EC2AD,
+/**/                   0x3F389ED0, 0xE1800000,
+/**/                   0xBD2FE44C, 0xE1179E5E,
+/**/                   0xBF38BD9B, 0xAB3332CD,
+/**/                   0x3F38BECD, 0xCBC00000,
+/**/                   0xBD0E529E, 0xF86F56EC,
+/**/                   0xBF38DD95, 0x7819F47A,
+/**/                   0x3F38DECA, 0xB2000000,
+/**/                   0x3D2246C3, 0xFEB631AB,
+/**/                   0xBF38FD8F, 0x3D030AB4,
+/**/                   0x3F38FEC7, 0x94400000,
+/**/                   0x3D36D7FA, 0xE04DA791,
+/**/                   0xBF391D88, 0xF9EE7878,
+/**/                   0x3F391EC4, 0x72C00000,
+/**/                   0xBD3AAB89, 0x86F7ADBB,
+/**/                   0xBF393D82, 0xAEDC40C7,
+/**/                   0x3F393EC1, 0x4D000000,
+/**/                   0xBD26CC57, 0x032C6155,
+/**/                   0xBF395D7C, 0x5BCC669D,
+/**/                   0x3F395EBE, 0x23400000,
+/**/                   0x3D12A452, 0x93C3EB3D,
+/**/                   0xBF397D76, 0x00BEECFB,
+/**/                   0x3F397EBA, 0xF5800000,
+/**/                   0x3D358336, 0xA0BCD695,
+/**/                   0xBF399D6F, 0x9DB3D6E0,
+/**/                   0x3F399EB7, 0xC4000000,
+/**/                   0xBD38D6C5, 0xDA737570,
+/**/                   0xBF39BD69, 0x32AB2749,
+/**/                   0x3F39BEB4, 0x8E400000,
+/**/                   0xBD198F84, 0x65026C7D,
+/**/                   0xBF39DD62, 0xBFA4E136,
+/**/                   0x3F39DEB1, 0x54800000,
+/**/                   0x3D29B9C9, 0x2EA9B41A,
+/**/                   0xBF39FD5C, 0x44A107A5,
+/**/                   0x3F39FEAE, 0x17000000,
+/**/                   0xBD3F1375, 0x16137ACF,
+/**/                   0xBF3A1D55, 0xC19F9D96,
+/**/                   0x3F3A1EAA, 0xD5400000,
+/**/                   0xBD2467DC, 0xDE73AFA0,
+/**/                   0xBF3A3D4F, 0x36A0A607,
+/**/                   0x3F3A3EA7, 0x8F800000,
+/**/                   0x3D26F8F0, 0x7B8357C6,
+/**/                   0xBF3A5D48, 0xA3A423F7,
+/**/                   0x3F3A5EA4, 0x46000000,
+/**/                   0xBD3E0141, 0x5DA0DFB7,
+/**/                   0xBF3A7D42, 0x08AA1A64,
+/**/                   0x3F3A7EA0, 0xF8400000,
+/**/                   0xBD1AB06E, 0x41050D29,
+/**/                   0xBF3A9D3B, 0x65B28C4E,
+/**/                   0x3F3A9E9D, 0xA6800000,
+/**/                   0x3D317CE9, 0x56A0E005,
+/**/                   0xBF3ABD34, 0xBABD7CB3,
+/**/                   0x3F3ABE9A, 0x51000000,
+/**/                   0xBD358532, 0xF899EF39,
+/**/                   0xBF3ADD2E, 0x07CAEE92,
+/**/                   0x3F3ADE96, 0xF7400000,
+/**/                   0x3D113A3C, 0xC83BF5C2,
+/**/                   0xBF3AFD27, 0x4CDAE4EA,
+/**/                   0x3F3AFE93, 0x99800000,
+/**/                   0x3D3EF92F, 0x863C7C8E,
+/**/                   0xBF3B1D20, 0x89ED62B9,
+/**/                   0x3F3B1E90, 0x38000000,
+/**/                   0xBD161149, 0x3341CC3C,
+/**/                   0xBF3B3D19, 0xBF026AFE,
+/**/                   0x3F3B3E8C, 0xD2400000,
+/**/                   0x3D36D709, 0x67C955DF,
+/**/                   0xBF3B5D12, 0xEC1A00B8,
+/**/                   0x3F3B5E89, 0x68C00000,
+/**/                   0xBD27E77B, 0x5AE9B17A,
+/**/                   0xBF3B7D0C, 0x113426E6,
+/**/                   0x3F3B7E85, 0xFB000000,
+/**/                   0x3D321C58, 0x219679DE,
+/**/                   0xBF3B9D05, 0x2E50E086,
+/**/                   0x3F3B9E82, 0x89800000,
+/**/                   0xBD2DEF6A, 0xFAA62113,
+/**/                   0xBF3BBCFE, 0x43703097,
+/**/                   0x3F3BBE7F, 0x13C00000,
+/**/                   0x3D30D119, 0x23305306,
+/**/                   0xBF3BDCF7, 0x50921A17,
+/**/                   0x3F3BDE7B, 0x9A400000,
+/**/                   0xBD2D1078, 0x9FBACE27,
+/**/                   0xBF3BFCF0, 0x55B6A006,
+/**/                   0x3F3BFE78, 0x1C800000,
+/**/                   0x3D32FD49, 0xD625DF1E,
+/**/                   0xBF3C1CE9, 0x52DDC563,
+/**/                   0x3F3C1E74, 0x9B000000,
+/**/                   0xBD253AA9, 0x7D07255B,
+/**/                   0xBF3C3CE2, 0x48078D2B,
+/**/                   0x3F3C3E71, 0x15400000,
+/**/                   0x3D38A8E7, 0x9E08B538,
+/**/                   0xBF3C5CDB, 0x3533FA5D,
+/**/                   0x3F3C5E6D, 0x8BC00000,
+/**/                   0xBD09780B, 0x45956AFC,
+/**/                   0xBF3C7CD4, 0x1A630FF9,
+/**/                   0x3F3C7E69, 0xFE400000,
+/**/                   0xBD3E2410, 0x2792F44E,
+/**/                   0xBF3C9CCC, 0xF794D0FC,
+/**/                   0x3F3C9E66, 0x6C800000,
+/**/                   0x3D1F2AEC, 0x30AB4456,
+/**/                   0xBF3CBCC5, 0xCCC94066,
+/**/                   0x3F3CBE62, 0xD7000000,
+/**/                   0xBD3161A0, 0x231641D5,
+/**/                   0xBF3CDCBE, 0x9A006135,
+/**/                   0x3F3CDE5F, 0x3D400000,
+/**/                   0x3D3657DD, 0xF4AD1934,
+/**/                   0xBF3CFCB7, 0x5F3A3668,
+/**/                   0x3F3CFE5B, 0x9FC00000,
+/**/                   0xBCF07CB0, 0x2E7AC798,
+/**/                   0xBF3D1CB0, 0x1C76C2FD,
+/**/                   0x3F3D1E57, 0xFE400000,
+/**/                   0xBD377F9B, 0x6090F643,
+/**/                   0xBF3D3CA8, 0xD1B609F3,
+/**/                   0x3F3D3E54, 0x58800000,
+/**/                   0x3D32F16C, 0x849503E6,
+/**/                   0xBF3D5CA1, 0x7EF80E49,
+/**/                   0x3F3D5E50, 0xAF000000,
+/**/                   0xBCFB3B3A, 0xAF1CA4EA,
+/**/                   0xBF3D7C9A, 0x243CD2FE,
+/**/                   0x3F3D7E4D, 0x01800000,
+/**/                   0xBD356DFC, 0x4701415B,
+/**/                   0xBF3D9C92, 0xC1845B0F,
+/**/                   0x3F3D9E49, 0x4FC00000,
+/**/                   0x3D37C392, 0x582AEA48,
+/**/                   0xBF3DBC8B, 0x56CEA97C,
+/**/                   0x3F3DBE45, 0x9A400000,
+/**/                   0x3D1787DF, 0x67DCC15E,
+/**/                   0xBF3DDC83, 0xE41BC143,
+/**/                   0x3F3DDE41, 0xE0C00000,
+/**/                   0xBD262398, 0x352F961F,
+/**/                   0xBF3DFC7C, 0x696BA563,
+/**/                   0x3F3DFE3E, 0x23400000,
+/**/                   0xBD3B16B9, 0xDEDD373A,
+/**/                   0xBF3E1C74, 0xE6BE58DA,
+/**/                   0x3F3E1E3A, 0x61800000,
+/**/                   0x3D35D42E, 0x336BE94B,
+/**/                   0xBF3E3C6D, 0x5C13DEA7,
+/**/                   0x3F3E3E36, 0x9C000000,
+/**/                   0x3D1EBFAF, 0x08A303A2,
+/**/                   0xBF3E5C65, 0xC96C39C9,
+/**/                   0x3F3E5E32, 0xD2800000,
+/**/                   0xBD160A06, 0x34856362,
+/**/                   0xBF3E7C5E, 0x2EC76D3D,
+/**/                   0x3F3E7E2F, 0x05000000,
+/**/                   0xBD31C21A, 0x154CDF1A,
+/**/                   0xBF3E9C56, 0x8C257C04,
+/**/                   0x3F3E9E2B, 0x33800000,
+/**/                   0xBD3D0DDE, 0x31941F7F,
+/**/                   0xBF3EBC4E, 0xE186691B,
+/**/                   0x3F3EBE27, 0x5DC00000,
+/**/                   0x3D389B31, 0xC26EC60D,
+/**/                   0xBF3EDC47, 0x2EEA3781,
+/**/                   0x3F3EDE23, 0x84400000,
+/**/                   0x3D2E742A, 0xD583BEF8,
+/**/                   0xBF3EFC3F, 0x7450EA34,
+/**/                   0x3F3EFE1F, 0xA6C00000,
+/**/                   0x3D1B3F31, 0xAC2DA351,
+/**/                   0xBF3F1C37, 0xB1BA8433,
+/**/                   0x3F3F1E1B, 0xC5400000,
+/**/                   0xBCE45533, 0x2DC67430,
+/**/                   0xBF3F3C2F, 0xE727087C,
+/**/                   0x3F3F3E17, 0xDFC00000,
+/**/                   0xBD1C7133, 0xFF1174AE,
+/**/                   0xBF3F5C28, 0x14967A0F,
+/**/                   0x3F3F5E13, 0xF6400000,
+/**/                   0xBD29383C, 0x4AE098DC,
+/**/                   0xBF3F7C20, 0x3A08DBE9,
+/**/                   0x3F3F7E10, 0x08C00000,
+/**/                   0xBD31211D, 0x684B0B3B,
+/**/                   0xBF3F9C18, 0x577E3109,
+/**/                   0x3F3F9E0C, 0x17400000,
+/**/                   0xBD34AA4B, 0x268D7464,
+/**/                   0xBF3FBC10, 0x6CF67C6E,
+/**/                   0x3F3FBE08, 0x21C00000,
+/**/                   0xBD3736A7, 0xBED03388,
+/**/                   0xBF3FDC08, 0x7A71C116,
+/**/                   0x3F3FDE04, 0x28400000,
+/**/                   0xBD38C533, 0x900BC4E5,
+/**/                   0xBF3FFC00, 0x7FF00200,
+/**/                   0x3F3FFE00, 0x2AC00000,
+/**/                   0xBD3954EE, 0xF9987527,
+/**/                   0xBF400DFC, 0x3EB8A115,
+/**/                   0x3F400EFE, 0x14A00000,
+/**/                   0xBD38E4DA, 0x5B2E613B,
+/**/                   0xBF401DF8, 0x397AC249,
+/**/                   0x3F401EFC, 0x11E00000,
+/**/                   0xBD3773F6, 0x14E5761B,
+/**/                   0xBF402DF4, 0x303E661C,
+/**/                   0x3F402EFA, 0x0D200000,
+/**/                   0xBD350142, 0x873570A0,
+/**/                   0xBF403DF0, 0x23038E0C,
+/**/                   0x3F403EF8, 0x06600000,
+/**/                   0xBD318BC0, 0x12F5DD53,
+/**/                   0xBF404DEC, 0x11CA3B9A,
+/**/                   0x3F404EF5, 0xFDA00000,
+/**/                   0xBD2A24DE, 0x32BC307C,
+/**/                   0xBF405DE7, 0xFC927044,
+/**/                   0x3F405EF3, 0xF2E00000,
+/**/                   0xBD1E513F, 0xF01532DA,
+/**/                   0xBF406DE3, 0xE35C2D8A,
+/**/                   0x3F406EF1, 0xE6200000,
+/**/                   0xBCF10631, 0xCE27534E,
+/**/                   0xBF407DDF, 0xC62774EA,
+/**/                   0x3F407EEF, 0xD7600000,
+/**/                   0x3D19E95C, 0x86CE9380,
+/**/                   0xBF408DDB, 0xA4F447E4,
+/**/                   0x3F408EED, 0xC6A00000,
+/**/                   0x3D2E19BC, 0xBA0CD2C3,
+/**/                   0xBF409DD7, 0x7FC2A7F8,
+/**/                   0x3F409EEB, 0xB3E00000,
+/**/                   0x3D38A832, 0x31FF7199,
+/**/                   0xBF40ADD3, 0x569296A4,
+/**/                   0x3F40AEE9, 0x9F400000,
+/**/                   0xBD3CB2AD, 0xC2D77791,
+/**/                   0xBF40BDCF, 0x29641567,
+/**/                   0x3F40BEE7, 0x88800000,
+/**/                   0xBD3102C1, 0xE5545563,
+/**/                   0xBF40CDCA, 0xF83725C2,
+/**/                   0x3F40CEE5, 0x6FC00000,
+/**/                   0xBD111C2A, 0x66B3E48D,
+/**/                   0xBF40DDC6, 0xC30BC932,
+/**/                   0x3F40DEE3, 0x55000000,
+/**/                   0x3D2302EF, 0x7711FC2A,
+/**/                   0xBF40EDC2, 0x89E20138,
+/**/                   0x3F40EEE1, 0x38400000,
+/**/                   0x3D3857C4, 0xB558238E,
+/**/                   0xBF40FDBE, 0x4CB9CF52,
+/**/                   0x3F40FEDF, 0x19A00000,
+/**/                   0xBD37C324, 0x1194C2E1,
+/**/                   0xBF410DBA, 0x0B933501,
+/**/                   0x3F410EDC, 0xF8E00000,
+/**/                   0xBD1B390B, 0xFBCAF285,
+/**/                   0xBF411DB5, 0xC66E33C2,
+/**/                   0x3F411EDA, 0xD6200000,
+/**/                   0x3D266ECF, 0x0E52C3A4,
+/**/                   0xBF412DB1, 0x7D4ACD15,
+/**/                   0x3F412ED8, 0xB1600000,
+/**/                   0x3D3E4EDB, 0x1A4AF71D,
+/**/                   0xBF413DAD, 0x30290279,
+/**/                   0x3F413ED6, 0x8AC00000,
+/**/                   0xBD2B0DD1, 0x58C4D599,
+/**/                   0xBF414DA8, 0xDF08D56E,
+/**/                   0x3F414ED4, 0x62000000,
+/**/                   0x3D1EDC6F, 0x2FB4061D,
+/**/                   0xBF415DA4, 0x89EA4773,
+/**/                   0x3F415ED2, 0x37400000,
+/**/                   0x3D3E09E8, 0x1BA53538,
+/**/                   0xBF416DA0, 0x30CD5A06,
+/**/                   0x3F416ED0, 0x0AA00000,
+/**/                   0xBD251B08, 0x4A5B4574,
+/**/                   0xBF417D9B, 0xD3B20EA8,
+/**/                   0x3F417ECD, 0xDBE00000,
+/**/                   0x3D2BE3AD, 0x4241B57B,
+/**/                   0xBF418D97, 0x729866D7,
+/**/                   0x3F418ECB, 0xAB400000,
+/**/                   0xBD387707, 0xFA22BD16,
+/**/                   0xBF419D93, 0x0D806412,
+/**/                   0x3F419EC9, 0x78800000,
+/**/                   0x3D01C6FC, 0xFFA2FC2F,
+/**/                   0xBF41AD8E, 0xA46A07D9,
+/**/                   0x3F41AEC7, 0x43C00000,
+/**/                   0x3D3E028D, 0x05F32EE8,
+/**/                   0xBF41BD8A, 0x375553AB,
+/**/                   0x3F41BEC5, 0x0D200000,
+/**/                   0xBD146400, 0xC7E46F2B,
+/**/                   0xBF41CD85, 0xC6424907,
+/**/                   0x3F41CEC2, 0xD4600000,
+/**/                   0x3D38E737, 0x8DFCE791,
+/**/                   0xBF41DD81, 0x5130E96B,
+/**/                   0x3F41DEC0, 0x99C00000,
+/**/                   0xBD1FEF30, 0x92F4A6CE,
+/**/                   0xBF41ED7C, 0xD8213659,
+/**/                   0x3F41EEBE, 0x5D000000,
+/**/                   0x3D383EF4, 0x4AE68315,
+/**/                   0xBF41FD78, 0x5B13314D,
+/**/                   0x3F41FEBC, 0x1E600000,
+/**/                   0xBD199E1E, 0x39A8276A,
+/**/                   0xBF420D73, 0xDA06DBC8,
+/**/                   0x3F420EB9, 0xDDA00000,
+/**/                   0x3D3C11BF, 0xE39F6D77,
+/**/                   0xBF421D6F, 0x54FC3749,
+/**/                   0x3F421EB7, 0x9B000000,
+/**/                   0xBCD50D72, 0xC3A8C440,
+/**/                   0xBF422D6A, 0xCBF3454F,
+/**/                   0x3F422EB5, 0x56600000,
+/**/                   0xBD3B9869, 0x06E59170,
+/**/                   0xBF423D66, 0x3EEC0759,
+/**/                   0x3F423EB3, 0x0FA00000,
+/**/                   0x3D248C4B, 0x86930551,
+/**/                   0xBF424D61, 0xADE67EE6,
+/**/                   0x3F424EB0, 0xC7000000,
+/**/                   0xBD2D6F13, 0xB3649FF7,
+/**/                   0xBF425D5D, 0x18E2AD76,
+/**/                   0x3F425EAE, 0x7C400000,
+/**/                   0x3D396F87, 0xB496441D,
+/**/                   0xBF426D58, 0x7FE09487,
+/**/                   0x3F426EAC, 0x2FA00000,
+/**/                   0x3D05E2D0, 0x01961A2F,
+/**/                   0xBF427D53, 0xE2E03598,
+/**/                   0x3F427EA9, 0xE1000000,
+/**/                   0xBD32D013, 0x652D1720,
+/**/                   0xBF428D4F, 0x41E1922A,
+/**/                   0x3F428EA7, 0x90400000,
+/**/                   0x3D38CB3F, 0x15C6A78A,
+/**/                   0xBF429D4A, 0x9CE4ABBA,
+/**/                   0x3F429EA5, 0x3DA00000,
+/**/                   0x3D163D44, 0x07F8A52A,
+/**/                   0xBF42AD45, 0xF3E983C8,
+/**/                   0x3F42AEA2, 0xE9000000,
+/**/                   0xBD2905BC, 0x1FEC6070,
+/**/                   0xBF42BD41, 0x46F01BD4,
+/**/                   0x3F42BEA0, 0x92600000,
+/**/                   0xBD3D6A4E, 0x8FE5CB8E,
+/**/                   0xBF42CD3C, 0x95F8755C,
+/**/                   0x3F42CE9E, 0x39A00000,
+/**/                   0x3D32D9FF, 0x120028B6,
+/**/                   0xBF42DD37, 0xE10291DF,
+/**/                   0x3F42DE9B, 0xDF000000,
+/**/                   0x3D112C29, 0x94B2D8A6,
+/**/                   0xBF42ED33, 0x280E72DD,
+/**/                   0x3F42EE99, 0x82600000,
+/**/                   0xBD222C5A, 0x0E9DC27F,
+/**/                   0xBF42FD2E, 0x6B1C19D4,
+/**/                   0x3F42FE97, 0x23C00000,
+/**/                   0xBD3548A7, 0xA4C12307,
+/**/                   0xBF430D29, 0xAA2B8844,
+/**/                   0x3F430E94, 0xC3000000,
+/**/                   0x3D3FB49A, 0x1B27A40C,
+/**/                   0xBF431D24, 0xE53CBFAC,
+/**/                   0x3F431E92, 0x60600000,
+/**/                   0x3D35E297, 0xC65D601D,
+/**/                   0xBF432D20, 0x1C4FC18B,
+/**/                   0x3F432E8F, 0xFBC00000,
+/**/                   0x3D2A84A1, 0xD4E46CD5,
+/**/                   0xBF433D1B, 0x4F648F60,
+/**/                   0x3F433E8D, 0x95200000,
+/**/                   0x3D175314, 0x526215F8,
+/**/                   0xBF434D16, 0x7E7B2AAB,
+/**/                   0x3F434E8B, 0x2C800000,
+/**/                   0xBCD9430B, 0x9746A94C,
+/**/                   0xBF435D11, 0xA99394E9,
+/**/                   0x3F435E88, 0xC1E00000,
+/**/                   0xBD15A88D, 0x47EF6144,
+/**/                   0xBF436D0C, 0xD0ADCF9B,
+/**/                   0x3F436E86, 0x55400000,
+/**/                   0xBD227301, 0x94614FFB,
+/**/                   0xBF437D07, 0xF3C9DC3F,
+/**/                   0x3F437E83, 0xE6A00000,
+/**/                   0xBD27A44A, 0x16908831,
+/**/                   0xBF438D03, 0x12E7BC55,
+/**/                   0x3F438E81, 0x76000000,
+/**/                   0xBD2A6621, 0x13DE59AC,
+/**/                   0xBF439CFE, 0x2E07715C,
+/**/                   0x3F439E7F, 0x03600000,
+/**/                   0xBD2AB687, 0x76635000,
+/**/                   0xBF43ACF9, 0x4528FCD2,
+/**/                   0x3F43AE7C, 0x8EC00000,
+/**/                   0xBD28937E, 0x28F7818F,
+/**/                   0xBF43BCF4, 0x584C6037,
+/**/                   0x3F43BE7A, 0x18200000,
+/**/                   0xBD23FB06, 0x17328F27,
+/**/                   0xBF43CCEF, 0x67719D0A,
+/**/                   0x3F43CE77, 0x9F800000,
+/**/                   0xBD19D640, 0x5AD74747,
+/**/                   0xBF43DCEA, 0x7298B4CA,
+/**/                   0x3F43DE75, 0x24E00000,
+/**/                   0xBCFB0E6A, 0xC5CB9C74,
+/**/                   0xBF43ECE5, 0x79C1A8F6,
+/**/                   0x3F43EE72, 0xA8400000,
+/**/                   0x3D1145E2, 0xF21B8682,
+/**/                   0xBF43FCE0, 0x7CEC7B0D,
+/**/                   0x3F43FE70, 0x29A00000,
+/**/                   0x3D27251B, 0x59543A06,
+/**/                   0xBF440CDB, 0x7C192C8E,
+/**/                   0x3F440E6D, 0xA9000000,
+/**/                   0x3D341357, 0xAC6250B6,
+/**/                   0xBF441CD6, 0x7747BEF8,
+/**/                   0x3F441E6B, 0x26600000,
+/**/                   0x3D3DD4D6, 0x43A510F7,
+/**/                   0xBF442CD1, 0x6E7833CB,
+/**/                   0x3F442E68, 0xA1E00000,
+/**/                   0xBD3727F7, 0x05F7D1E1,
+/**/                   0xBF443CCC, 0x61AA8C85,
+/**/                   0x3F443E66, 0x1B400000,
+/**/                   0xBD25C421, 0x527C9668,
+/**/                   0xBF444CC7, 0x50DECAA5,
+/**/                   0x3F444E63, 0x92A00000,
+/**/                   0x3D053C47, 0x053F70AC,
+/**/                   0xBF445CC2, 0x3C14EFAB,
+/**/                   0x3F445E61, 0x08000000,
+/**/                   0x3D3175D5, 0x1E315FBB,
+/**/                   0xBF446CBD, 0x234CFD15,
+/**/                   0x3F446E5E, 0x7B800000,
+/**/                   0xBD3E762C, 0x6A8B33AC,
+/**/                   0xBF447CB8, 0x0686F463,
+/**/                   0x3F447E5B, 0xECE00000,
+/**/                   0xBD2A36F8, 0x67AD9900,
+/**/                   0xBF448CB2, 0xE5C2D713,
+/**/                   0x3F448E59, 0x5C400000,
+/**/                   0x3D161B95, 0x1E974853,
+/**/                   0xBF449CAD, 0xC100A6A5,
+/**/                   0x3F449E56, 0xC9A00000,
+/**/                   0x3D3971F7, 0x8CE22250,
+/**/                   0xBF44ACA8, 0x98406498,
+/**/                   0x3F44AE54, 0x35200000,
+/**/                   0xBD315945, 0xDF8A23F8,
+/**/                   0xBF44BCA3, 0x6B82126A,
+/**/                   0x3F44BE51, 0x9E800000,
+/**/                   0x3D1498B2, 0x1A63D360,
+/**/                   0xBF44CC9E, 0x3AC5B19B,
+/**/                   0x3F44CE4F, 0x05E00000,
+/**/                   0x3D3CF14E, 0x4323A054,
+/**/                   0xBF44DC99, 0x060B43AA,
+/**/                   0x3F44DE4C, 0x6B600000,
+/**/                   0xBD23EDC2, 0x4CE35F94,
+/**/                   0xBF44EC93, 0xCD52CA15,
+/**/                   0x3F44EE49, 0xCEC00000,
+/**/                   0x3D306E9D, 0xCCF1B48E,
+/**/                   0xBF44FC8E, 0x909C465C,
+/**/                   0x3F44FE47, 0x30400000,
+/**/                   0xBD33DD35, 0x5FF9440B,
+/**/                   0xBF450C89, 0x4FE7B9FF,
+/**/                   0x3F450E44, 0x8FA00000,
+/**/                   0x3D224D49, 0xAA4D276D,
+/**/                   0xBF451C84, 0x0B35267A,
+/**/                   0x3F451E41, 0xED200000,
+/**/                   0xBD3884D4, 0x11B557F9,
+/**/                   0xBF452C7E, 0xC2848D4F,
+/**/                   0x3F452E3F, 0x48800000,
+/**/                   0x3D1C857D, 0xB43290C4,
+/**/                   0xBF453C79, 0x75D5EFFC,
+/**/                   0x3F453E3C, 0xA2000000,
+/**/                   0xBD37E5C1, 0x2D598D3C,
+/**/                   0xBF454C74, 0x25294FFF,
+/**/                   0x3F454E39, 0xF9600000,
+/**/                   0x3D24CD93, 0x3FE47B89,
+/**/                   0xBF455C6E, 0xD07EAED8,
+/**/                   0x3F455E37, 0x4EE00000,
+/**/                   0xBD31F800, 0xAA959122,
+/**/                   0xBF456C69, 0x77D60E06,
+/**/                   0x3F456E34, 0xA2400000,
+/**/                   0x3D32FEDF, 0x7329AF92,
+/**/                   0xBF457C64, 0x1B2F6F08,
+/**/                   0x3F457E31, 0xF3C00000,
+/**/                   0xBD1ACE5A, 0x1C545A6F,
+/**/                   0xBF458C5E, 0xBA8AD35D,
+/**/                   0x3F458E2F, 0x43400000,
+/**/                   0xBD3F0E63, 0x19F6B9EF,
+/**/                   0xBF459C59, 0x55E83C84,
+/**/                   0x3F459E2C, 0x90A00000,
+/**/                   0x3D23DEF2, 0x73005F6F,
+/**/                   0xBF45AC53, 0xED47ABFB,
+/**/                   0x3F45AE29, 0xDC200000,
+/**/                   0xBD277204, 0x1C295DE7,
+/**/                   0xBF45BC4E, 0x80A92343,
+/**/                   0x3F45BE27, 0x25800000,
+/**/                   0x3D3FF92A, 0x8D869589,
+/**/                   0xBF45CC49, 0x100CA3D9,
+/**/                   0x3F45CE24, 0x6D000000,
+/**/                   0x3D2A0DFD, 0x145C5335,
+/**/                   0xBF45DC43, 0x9B722F3C,
+/**/                   0x3F45DE21, 0xB2800000,
+/**/                   0xBD123A1A, 0x6A8614B3,
+/**/                   0xBF45EC3E, 0x22D9C6ED,
+/**/                   0x3F45EE1E, 0xF6000000,
+/**/                   0xBD34C665, 0x63CBC7E7,
+/**/                   0xBF45FC38, 0xA6436C69,
+/**/                   0x3F45FE1C, 0x37600000,
+/**/                   0x3D3C6061, 0xAB6C51D7,
+/**/                   0xBF460C33, 0x25AF2130,
+/**/                   0x3F460E19, 0x76E00000,
+/**/                   0x3D2DCD9C, 0x1EC7F453,
+/**/                   0xBF461C2D, 0xA11CE6C1,
+/**/                   0x3F461E16, 0xB4600000,
+/**/                   0x3D066EFA, 0x20C52899,
+/**/                   0xBF462C28, 0x188CBE9A,
+/**/                   0x3F462E13, 0xEFE00000,
+/**/                   0xBD1FA5AC, 0xEB5FDD5C,
+/**/                   0xBF463C22, 0x8BFEAA3B,
+/**/                   0x3F463E11, 0x29600000,
+/**/                   0xBD313E11, 0xF22FE2BC,
+/**/                   0xBF464C1C, 0xFB72AB23,
+/**/                   0x3F464E0E, 0x60E00000,
+/**/                   0xBD392F15, 0x6710E251,
+/**/                   0xBF465C17, 0x66E8C2D0,
+/**/                   0x3F465E0B, 0x96600000,
+/**/                   0xBD3FBB76, 0x1EFC78A7,
+/**/                   0xBF466C11, 0xCE60F2C1,
+/**/                   0x3F466E08, 0xC9C00000,
+/**/                   0x3D3B1DCB, 0x602C1A84,
+/**/                   0xBF467C0C, 0x31DB3C76,
+/**/                   0x3F467E05, 0xFB400000,
+/**/                   0x3D375DAE, 0x9027DA74,
+/**/                   0xBF468C06, 0x9157A16E,
+/**/                   0x3F468E03, 0x2AC00000,
+/**/                   0x3D350532, 0xEA560DA0,
+/**/                   0xBF469C00, 0xECD62326,
+/**/                   0x3F469E00, 0x58400000,
+/**/                   0x3D341557, 0xE7B63DE2 } };
+
+#else
+#ifdef LITTLE_ENDI
+static const union {int4 i[5800]; double x[2900];} ui = { .i = {
+/**/                   0x00000000, 0x3FF6A000,
+/**/                   0x3729043E, 0x3F33CD15,
+/**/                   0x0B3AB000, 0xBFD63003,
+/**/                   0xE731AE00, 0x3D2DB623,
+/**/                   0x00000000, 0x3FF69800,
+/**/                   0xCC7267D0, 0x3F33F349,
+/**/                   0xCDB03000, 0xBFD61965,
+/**/                   0x603C488E, 0x3D2F08AD,
+/**/                   0x00000000, 0x3FF69000,
+/**/                   0x8D0BFD2E, 0x3F3473A8,
+/**/                   0x8AF09000, 0xBFD602D0,
+/**/                   0x76DF3F65, 0xBD1EBE91,
+/**/                   0x00000000, 0x3FF68800,
+/**/                   0x390B9ED0, 0x3F354DD2,
+/**/                   0x3D5C3000, 0xBFD5EC43,
+/**/                   0x1229D17F, 0xBD36B71A,
+/**/                   0x00000000, 0x3FF68000,
+/**/                   0x16816817, 0x3F368168,
+/**/                   0xDF596000, 0xBFD5D5BD,
+/**/                   0x08A465DC, 0x3D0A0B2A,
+/**/                   0x00000000, 0x3FF67800,
+/**/                   0xF08C7765, 0x3F380E0B,
+/**/                   0x6B544000, 0xBFD5BF40,
+/**/                   0xEB68981C, 0x3D227023,
+/**/                   0x00000000, 0x3FF67000,
+/**/                   0x16719F36, 0x3F39F360,
+/**/                   0xDBBEE000, 0xBFD5A8CA,
+/**/                   0x0AF7ECF8, 0x3CF7C79B,
+/**/                   0x00000000, 0x3FF66800,
+/**/                   0x5AB40167, 0x3F3C3107,
+/**/                   0x2B113000, 0xBFD5925D,
+/**/                   0xA7A56F34, 0x3D369BF5,
+/**/                   0x00000000, 0x3FF66000,
+/**/                   0x122F9016, 0x3F3EC6A5,
+/**/                   0x53C8D000, 0xBFD57BF7,
+/**/                   0xEE5D40EF, 0xBD1FADED,
+/**/                   0x00000000, 0x3FF65C00,
+/**/                   0xECCA9097, 0xBF3E4C22,
+/**/                   0x50695000, 0xBFD56599,
+/**/                   0x2BADC774, 0xBD14C5FD,
+/**/                   0x00000000, 0x3FF65400,
+/**/                   0x4B55CC62, 0xBF3B07AC,
+/**/                   0x1B7BE000, 0xBFD54F43,
+/**/                   0xC0910952, 0xBD1A8954,
+/**/                   0x00000000, 0x3FF64C00,
+/**/                   0x32DA090E, 0xBF376C52,
+/**/                   0xAF8F7000, 0xBFD538F4,
+/**/                   0xE45547CE, 0xBD27EC02,
+/**/                   0x00000000, 0x3FF64400,
+/**/                   0x4DE9BD38, 0xBF337A6F,
+/**/                   0x0738A000, 0xBFD522AE,
+/**/                   0x8164C759, 0xBD2EBE70,
+/**/                   0x00000000, 0x3FF63C00,
+/**/                   0x923C708B, 0xBF2E64BB,
+/**/                   0x1D11C000, 0xBFD50C6F,
+/**/                   0x7E827C2C, 0x3D3A0E6B,
+/**/                   0x00000000, 0x3FF63400,
+/**/                   0xA7E43FD4, 0xBF2528EE,
+/**/                   0xEBBAA000, 0xBFD4F637,
+/**/                   0xCB3124B9, 0x3D3FC158,
+/**/                   0x00000000, 0x3FF62C00,
+/**/                   0x86689DF7, 0xBF168454,
+/**/                   0x6DD8C000, 0xBFD4E008,
+/**/                   0xA1E44788, 0x3D34D692,
+/**/                   0x00000000, 0x3FF62400,
+/**/                   0x77016240, 0xBED623FA,
+/**/                   0x9E173000, 0xBFD4C9E0,
+/**/                   0x1B0AD8A4, 0x3D2E2089,
+/**/                   0x00000000, 0x3FF61C00,
+/**/                   0x58715130, 0x3F151300,
+/**/                   0x77268000, 0xBFD4B3C0,
+/**/                   0x81052B9F, 0x3D165B46,
+/**/                   0x00000000, 0x3FF61400,
+/**/                   0x35D2754E, 0x3F266D06,
+/**/                   0xF3BCC000, 0xBFD49DA7,
+/**/                   0x4DAF4B9A, 0xBD307B33,
+/**/                   0x00000000, 0x3FF60C00,
+/**/                   0xDA197F23, 0x3F317C61,
+/**/                   0x0E958000, 0xBFD48797,
+/**/                   0x465CF25F, 0xBD3DC1B8,
+/**/                   0x00000000, 0x3FF60400,
+/**/                   0x81605816, 0x3F381605,
+/**/                   0xC271C000, 0xBFD4718D,
+/**/                   0xFB4C14C5, 0xBD306C18,
+/**/                   0x00000000, 0x3FF5FC00,
+/**/                   0xB5C6F559, 0x3F3F0317,
+/**/                   0x0A17E000, 0xBFD45B8C,
+/**/                   0xE7D0A853, 0x3D0D9120,
+/**/                   0x00000000, 0x3FF5F800,
+/**/                   0x6D2041E3, 0xBF39BCBD,
+/**/                   0xE053A000, 0xBFD44591,
+/**/                   0x92923D88, 0x3D06E958,
+/**/                   0x00000000, 0x3FF5F000,
+/**/                   0x5604CC40, 0xBF3229CF,
+/**/                   0x3FF62000, 0xBFD42F9F,
+/**/                   0x0F7D3354, 0xBD390644,
+/**/                   0x00000000, 0x3FF5E800,
+/**/                   0xFD431489, 0xBF2488E5,
+/**/                   0x23D5F000, 0xBFD419B4,
+/**/                   0x226DE3EC, 0x3D3CE379,
+/**/                   0x00000000, 0x3FF5E000,
+/**/                   0x6424E9C9, 0xBF0067E7,
+/**/                   0x86CEA000, 0xBFD403D0,
+/**/                   0x74487308, 0xBD3E6EF5,
+/**/                   0x00000000, 0x3FF5D800,
+/**/                   0x38A94D24, 0x3F19F0FB,
+/**/                   0x63C17000, 0xBFD3EDF4,
+/**/                   0x297F2C3F, 0x3D3F067C,
+/**/                   0x00000000, 0x3FF5D000,
+/**/                   0x23CAD2AA, 0x3F2EADD9,
+/**/                   0xB5947000, 0xBFD3D81F,
+/**/                   0x2A9D37A4, 0x3D222C7C,
+/**/                   0x00000000, 0x3FF5C800,
+/**/                   0x31057262, 0x3F3882B9,
+/**/                   0x77333000, 0xBFD3C252,
+/**/                   0xB606BD5C, 0xBD183B54,
+/**/                   0x00000000, 0x3FF5C400,
+/**/                   0x10FFA8F8, 0xBF3E00AE,
+/**/                   0xA38E6000, 0xBFD3AC8C,
+/**/                   0xBC02BE4A, 0x3D2D0BEF,
+/**/                   0x00000000, 0x3FF5BC00,
+/**/                   0x8056EAF3, 0xBF34339B,
+/**/                   0x359BC000, 0xBFD396CE,
+/**/                   0x5663663D, 0x3D05839C,
+/**/                   0x00000000, 0x3FF5B400,
+/**/                   0xF31D7FD5, 0xBF242CC1,
+/**/                   0x28565000, 0xBFD38117,
+/**/                   0x93A0702B, 0x3D2A71E4,
+/**/                   0x00000000, 0x3FF5AC00,
+/**/                   0x6B015AC0, 0x3ED5AC05,
+/**/                   0x76BE1000, 0xBFD36B67,
+/**/                   0xB0F177C8, 0xBD116ECD,
+/**/                   0x00000000, 0x3FF5A400,
+/**/                   0x5BA55E5A, 0x3F26268D,
+/**/                   0x1BD83000, 0xBFD355BF,
+/**/                   0x8964F0E8, 0x3D2BA99B,
+/**/                   0x00000000, 0x3FF59C00,
+/**/                   0x3CCAA376, 0x3F361F12,
+/**/                   0x12AED000, 0xBFD3401E,
+/**/                   0x556E291D, 0x3D317C73,
+/**/                   0x00000000, 0x3FF59800,
+/**/                   0x62D32417, 0xBF3E863D,
+/**/                   0x56512000, 0xBFD32A84,
+/**/                   0x139AF5D6, 0xBD04F928,
+/**/                   0x00000000, 0x3FF59000,
+/**/                   0xEA712DCF, 0xBF32DCF7,
+/**/                   0xE1D36000, 0xBFD314F1,
+/**/                   0xD3213CB8, 0x3D28E27A,
+/**/                   0x00000000, 0x3FF58800,
+/**/                   0xA0CC87E8, 0xBF1B95B2,
+/**/                   0xB04EB000, 0xBFD2FF66,
+/**/                   0x541E6E2E, 0x3D38AED2,
+/**/                   0x00000000, 0x3FF58000,
+/**/                   0x01580560, 0x3F158056,
+/**/                   0xBCE12000, 0xBFD2E9E2,
+/**/                   0x128D1DC2, 0xBD24300C,
+/**/                   0x00000000, 0x3FF57800,
+/**/                   0x15791F34, 0x3F31F340,
+/**/                   0x02ADD000, 0xBFD2D466,
+/**/                   0xDCD54196, 0x3D288D0D,
+/**/                   0x00000000, 0x3FF57000,
+/**/                   0x06B39A23, 0x3F3ED3C5,
+/**/                   0x7CDC9000, 0xBFD2BEF0,
+/**/                   0x4A5004F4, 0xBD2A9CFA,
+/**/                   0x00000000, 0x3FF56C00,
+/**/                   0x53FEA954, 0xBF33FEA9,
+/**/                   0x269A4000, 0xBFD2A982,
+/**/                   0x557285CF, 0x3D22058E,
+/**/                   0x00000000, 0x3FF56400,
+/**/                   0xEB478503, 0xBF1A1160,
+/**/                   0xFB187000, 0xBFD2941A,
+/**/                   0xB730E28B, 0x3D3210C2,
+/**/                   0x00000000, 0x3FF55C00,
+/**/                   0xE4A18B2E, 0x3F1D09AD,
+/**/                   0xF58D9000, 0xBFD27EBA,
+/**/                   0x00B4BDA7, 0x3D2B1988,
+/**/                   0x00000000, 0x3FF55400,
+/**/                   0x55555555, 0x3F355555,
+/**/                   0x1134E000, 0xBFD26962,
+/**/                   0x10522625, 0x3D31B61F,
+/**/                   0x00000000, 0x3FF55000,
+/**/                   0xB319A21F, 0xBF3C4BE6,
+/**/                   0x494E5000, 0xBFD25410,
+/**/                   0xC0EF77F2, 0xBD3B1D7A,
+/**/                   0x00000000, 0x3FF54800,
+/**/                   0x8FA03FD5, 0xBF2B4328,
+/**/                   0x991EC000, 0xBFD23EC5,
+/**/                   0x48A2E522, 0x3D36DBE4,
+/**/                   0x00000000, 0x3FF54000,
+/**/                   0x40154015, 0x3EF54015,
+/**/                   0xFBEF8000, 0xBFD22981,
+/**/                   0x609580DA, 0x3D3A1421,
+/**/                   0x00000000, 0x3FF53800,
+/**/                   0x40FEAC6F, 0x3F30948F,
+/**/                   0x6D0EC000, 0xBFD21445,
+/**/                   0x28B728A3, 0x3D3CAF04,
+/**/                   0x00000000, 0x3FF53400,
+/**/                   0xFD04F7B8, 0xBF3FE034,
+/**/                   0xE7CF4000, 0xBFD1FF0F,
+/**/                   0x513FF0C1, 0xBD3E9D5B,
+/**/                   0x00000000, 0x3FF52C00,
+/**/                   0x7FAB5403, 0xBF300A95,
+/**/                   0x6788A000, 0xBFD1E9E1,
+/**/                   0xD3C8B65E, 0x3D382EAE,
+/**/                   0x00000000, 0x3FF52400,
+/**/                   0x52401524, 0x3EB52401,
+/**/                   0xE796C000, 0xBFD1D4B9,
+/**/                   0x7C42E56D, 0xBD222A66,
+/**/                   0x00000000, 0x3FF51C00,
+/**/                   0x2F8151D0, 0x3F307EAE,
+/**/                   0x635A7000, 0xBFD1BF99,
+/**/                   0x575C2125, 0x3D31AC89,
+/**/                   0x00000000, 0x3FF51800,
+/**/                   0xEAE9ECE4, 0xBF3ECE3F,
+/**/                   0xD638D000, 0xBFD1AA7F,
+/**/                   0x9616F7A0, 0xBD29F60A,
+/**/                   0x00000000, 0x3FF51000,
+/**/                   0xC7675243, 0xBF2BA3DD,
+/**/                   0x3B9BC000, 0xBFD1956D,
+/**/                   0x3AD1AA14, 0xBD27D2F7,
+/**/                   0x00000000, 0x3FF50800,
+/**/                   0x764E368D, 0x3F0B9AC8,
+/**/                   0x8EF19000, 0xBFD18061,
+/**/                   0xC86D38E5, 0x3D3482FF,
+/**/                   0x00000000, 0x3FF50000,
+/**/                   0x15015015, 0x3F350150,
+/**/                   0xCBAD0000, 0xBFD16B5C,
+/**/                   0x042D74BF, 0x3D323299,
+/**/                   0x00000000, 0x3FF4FC00,
+/**/                   0x4A683C50, 0xBF392851,
+/**/                   0xED456000, 0xBFD1565E,
+/**/                   0xFB6ABA25, 0x3CEE75AD,
+/**/                   0x00000000, 0x3FF4F400,
+/**/                   0xACD95EF0, 0xBF1C2748,
+/**/                   0xEF367000, 0xBFD14167,
+/**/                   0x824DAAF5, 0xBD3E0C07,
+/**/                   0x00000000, 0x3FF4EC00,
+/**/                   0x67A47465, 0x3F26B90D,
+/**/                   0xCD007000, 0xBFD12C77,
+/**/                   0x8A11F797, 0xBD13B294,
+/**/                   0x00000000, 0x3FF4E400,
+/**/                   0xF0539783, 0x3F3E0A72,
+/**/                   0x8227E000, 0xBFD1178E,
+/**/                   0xCE2D07F2, 0xBD31EF78,
+/**/                   0x00000000, 0x3FF4E000,
+/**/                   0xF87FD642, 0xBF2E00A6,
+/**/                   0x0A35D000, 0xBFD102AC,
+/**/                   0xDFDFD686, 0x3D2F1FBD,
+/**/                   0x00000000, 0x3FF4D800,
+/**/                   0x0B12E3FD, 0x3F10EFB7,
+/**/                   0x60B78000, 0xBFD0EDD0,
+/**/                   0x2D8435F5, 0xBD0019B5,
+/**/                   0x00000000, 0x3FF4D000,
+/**/                   0x5CB4DBE5, 0x3F37BEF1,
+/**/                   0x813EB000, 0xBFD0D8FB,
+/**/                   0x8753FA35, 0xBD1EE8C8,
+/**/                   0x00000000, 0x3FF4CC00,
+/**/                   0xA50918B1, 0xBF34778D,
+/**/                   0x67616000, 0xBFD0C42D,
+/**/                   0x163CEAE9, 0xBD27188B,
+/**/                   0x00000000, 0x3FF4C400,
+/**/                   0xE37288EC, 0xBED9F4F7,
+/**/                   0x0EB9E000, 0xBFD0AF66,
+/**/                   0xF528D80A, 0xBD23C7C3,
+/**/                   0x00000000, 0x3FF4BC00,
+/**/                   0x68FE0E42, 0x3F33EDDA,
+/**/                   0x72E6C000, 0xBFD09AA5,
+/**/                   0xE1734342, 0xBD3B50A1,
+/**/                   0x00000000, 0x3FF4B800,
+/**/                   0xB72E47D9, 0xBF3776C6,
+/**/                   0x8F8AE000, 0xBFD085EB,
+/**/                   0x3F45FE7B, 0xBD3E5D51,
+/**/                   0x00000000, 0x3FF4B000,
+/**/                   0xA052BF5B, 0xBF04AFD6,
+/**/                   0x604D6000, 0xBFD07138,
+/**/                   0x4E912B17, 0x3D3E7632,
+/**/                   0x00000000, 0x3FF4A800,
+/**/                   0xD5B5C015, 0x3F328FFA,
+/**/                   0xE0D96000, 0xBFD05C8B,
+/**/                   0xC77CCB58, 0xBD2AD0F1,
+/**/                   0x00000000, 0x3FF4A400,
+/**/                   0x9FEB5D80, 0xBF380528,
+/**/                   0x0CDE8000, 0xBFD047E6,
+/**/                   0x0D397F3C, 0xBD2DBDF1,
+/**/                   0x00000000, 0x3FF49C00,
+/**/                   0x25FF5B21, 0xBF02AD3E,
+/**/                   0xE0106000, 0xBFD03346,
+/**/                   0xA966395C, 0xBCF89FF8,
+/**/                   0x00000000, 0x3FF49400,
+/**/                   0x2D066EA2, 0x3F339E3B,
+/**/                   0x5626C000, 0xBFD01EAE,
+/**/                   0xFADE85AE, 0xBD3A43DC,
+/**/                   0x00000000, 0x3FF49000,
+/**/                   0xAFB2E932, 0xBF3629C1,
+/**/                   0x6ADDA000, 0xBFD00A1C,
+/**/                   0x688B9E18, 0xBD31CD8D,
+/**/                   0x00000000, 0x3FF48800,
+/**/                   0x22014880, 0x3ED48805,
+/**/                   0x33EA0000, 0xBFCFEB22,
+/**/                   0xDE00938B, 0xBD2F3418,
+/**/                   0x00000000, 0x3FF48000,
+/**/                   0x3D324D89, 0x3F37119F,
+/**/                   0xBE620000, 0xBFCFC218,
+/**/                   0x6F1CF6A0, 0xBD34BBA4,
+/**/                   0x00000000, 0x3FF47C00,
+/**/                   0x1EB851EC, 0xBF31EB85,
+/**/                   0x6CB3C000, 0xBFCF991C,
+/**/                   0xCD7CC834, 0x3D390D04,
+/**/                   0x00000000, 0x3FF47400,
+/**/                   0xAAFC7C01, 0x3F1569C9,
+/**/                   0x36778000, 0xBFCF702D,
+/**/                   0x16673E23, 0x3D108195,
+/**/                   0x00000000, 0x3FF46C00,
+/**/                   0x96066250, 0x3F3CE345,
+/**/                   0x134E0000, 0xBFCF474B,
+/**/                   0xF1DF7B5E, 0x3D3BAE49,
+/**/                   0x00000000, 0x3FF46800,
+/**/                   0x1D02DE87, 0xBF26A297,
+/**/                   0xFADFA000, 0xBFCF1E75,
+/**/                   0x25D83F6D, 0x3D20862B,
+/**/                   0x00000000, 0x3FF46000,
+/**/                   0xB9F34381, 0x3F2978FE,
+/**/                   0xE4DD0000, 0xBFCEF5AD,
+/**/                   0x65BB8E11, 0x3CCA2115,
+/**/                   0x00000000, 0x3FF45C00,
+/**/                   0xF6C71366, 0xBF3AF398,
+/**/                   0xC8FEA000, 0xBFCECCF2,
+/**/                   0xA3E75640, 0x3D3BEC63,
+/**/                   0x00000000, 0x3FF45400,
+/**/                   0x449AFF5D, 0xBF030E9C,
+/**/                   0x9F04A000, 0xBFCEA444,
+/**/                   0x63732A36, 0xBD35E916,
+/**/                   0x00000000, 0x3FF44C00,
+/**/                   0xF8B42EF3, 0x3F367190,
+/**/                   0x5EB78000, 0xBFCE7BA3,
+/**/                   0x23793649, 0x3D0D5EEE,
+/**/                   0x00000000, 0x3FF44800,
+/**/                   0xD260511C, 0xBF3079A9,
+/**/                   0xFFE72000, 0xBFCE530E,
+/**/                   0xB13F7C18, 0x3D3FDBDB,
+/**/                   0x00000000, 0x3FF44000,
+/**/                   0x0B644FBE, 0x3F21B87C,
+/**/                   0x7A6B2000, 0xBFCE2A87,
+/**/                   0x7787081A, 0xBD382381,
+/**/                   0x00000000, 0x3FF43C00,
+/**/                   0x411B2E25, 0xBF3D8CF5,
+/**/                   0xC6236000, 0xBFCE020C,
+/**/                   0xADB91424, 0x3D252B00,
+/**/                   0x00000000, 0x3FF43400,
+/**/                   0xD6A60978, 0xBF0DAC08,
+/**/                   0xDAF6E000, 0xBFCDD99E,
+/**/                   0x69C756EB, 0x3D302EC6,
+/**/                   0x00000000, 0x3FF42C00,
+/**/                   0x51F86EFA, 0x3F36625D,
+/**/                   0xB0D48000, 0xBFCDB13D,
+/**/                   0x847527E6, 0xBD32806A,
+/**/                   0x00000000, 0x3FF42800,
+/**/                   0xA8766564, 0xBF2E8B2D,
+/**/                   0x3FB30000, 0xBFCD88E9,
+/**/                   0x0234BF51, 0x3D375F28,
+/**/                   0x00000000, 0x3FF42000,
+/**/                   0xCB2A247B, 0x3F26A4CB,
+/**/                   0x7F904000, 0xBFCD60A1,
+/**/                   0x6FC20D39, 0x3D35D6E0,
+/**/                   0x00000000, 0x3FF41C00,
+/**/                   0xC17DF552, 0xBF39D5E8,
+/**/                   0x68720000, 0xBFCD3866,
+/**/                   0xB38932BC, 0x3D373650,
+/**/                   0x00000000, 0x3FF41400,
+/**/                   0x14141414, 0x3EF41414,
+/**/                   0xF2656000, 0xBFCD1037,
+/**/                   0x75B6F6E4, 0x3D084A7E,
+/**/                   0x00000000, 0x3FF40C00,
+/**/                   0x43AE87FD, 0x3F3C97A8,
+/**/                   0x157F2000, 0xBFCCE816,
+/**/                   0xA2099515, 0x3D29E0AB,
+/**/                   0x00000000, 0x3FF40800,
+/**/                   0x66A67E6F, 0xBF1F4BBC,
+/**/                   0xC9DB4000, 0xBFCCC000,
+/**/                   0x5D57AFF9, 0x3D1D6D58,
+/**/                   0x00000000, 0x3FF40000,
+/**/                   0x14014014, 0x3F340140,
+/**/                   0x079D4000, 0xBFCC97F8,
+/**/                   0xA8C6E6C5, 0xBD23B161,
+/**/                   0x00000000, 0x3FF3FC00,
+/**/                   0xFD809FD8, 0xBF2FD809,
+/**/                   0xC6F00000, 0xBFCC6FFB,
+/**/                   0xD3A69D43, 0xBD3EE138,
+/**/                   0x00000000, 0x3FF3F400,
+/**/                   0x57EE89D2, 0x3F28CA0E,
+/**/                   0x0005C000, 0xBFCC480C,
+/**/                   0xD5E44E76, 0xBD39A294,
+/**/                   0x00000000, 0x3FF3F000,
+/**/                   0xA50F9260, 0xBF370BD5,
+/**/                   0xAB180000, 0xBFCC2028,
+/**/                   0xE55C7AC6, 0x3D292E0E,
+/**/                   0x00000000, 0x3FF3E800,
+/**/                   0x75945FCE, 0x3F1704AA,
+/**/                   0xC0676000, 0xBFCBF851,
+/**/                   0x4C0854AD, 0x3D35420E,
+/**/                   0x00000000, 0x3FF3E400,
+/**/                   0xB56FD83C, 0xBF3D3431,
+/**/                   0x383BE000, 0xBFCBD087,
+/**/                   0x595412B6, 0x3D2D4BC4,
+/**/                   0x00000000, 0x3FF3DC00,
+/**/                   0x3DC013DC, 0x3EB3DC01,
+/**/                   0x0AE4A000, 0xBFCBA8C9,
+/**/                   0xF44432DA, 0xBD3A32E7,
+/**/                   0x00000000, 0x3FF3D400,
+/**/                   0xA75C5BBD, 0x3F3D991A,
+/**/                   0x30B82000, 0xBFCB8117,
+/**/                   0x3B9CD768, 0xBD1E9068,
+/**/                   0x00000000, 0x3FF3D000,
+/**/                   0x59C52F5D, 0xBF1292BA,
+/**/                   0xA213A000, 0xBFCB5971,
+/**/                   0x83AA91DF, 0xBD39B50E,
+/**/                   0x00000000, 0x3FF3C800,
+/**/                   0xBABE7440, 0x3F395A47,
+/**/                   0x575BC000, 0xBFCB31D8,
+/**/                   0x562A63CB, 0xBD3C794E,
+/**/                   0x00000000, 0x3FF3C400,
+/**/                   0x58A0943A, 0xBF20D475,
+/**/                   0x48FC2000, 0xBFCB0A4B,
+/**/                   0x5C3998ED, 0x3D22E72D,
+/**/                   0x00000000, 0x3FF3BC00,
+/**/                   0x3295482C, 0x3F360D92,
+/**/                   0x6F672000, 0xBFCAE2CA,
+/**/                   0xAE54F550, 0xBD37A8D5,
+/**/                   0x00000000, 0x3FF3B800,
+/**/                   0xCAB48651, 0xBF267D12,
+/**/                   0xC316A000, 0xBFCABB55,
+/**/                   0xCAF14CD8, 0x3D38A65A,
+/**/                   0x00000000, 0x3FF3B000,
+/**/                   0x13B13B14, 0x3F33B13B,
+/**/                   0x3C8AE000, 0xBFCA93ED,
+/**/                   0x50562169, 0x3D287243,
+/**/                   0x00000000, 0x3FF3AC00,
+/**/                   0x2C8FD3BF, 0xBF2A46AF,
+/**/                   0xD44B8000, 0xBFCA6C90,
+/**/                   0xF037B0C6, 0x3D3F63B7,
+/**/                   0x00000000, 0x3FF3A400,
+/**/                   0xAC822610, 0x3F324387,
+/**/                   0x82E6A000, 0xBFCA4540,
+/**/                   0xC81F7171, 0xBD360A77,
+/**/                   0x00000000, 0x3FF3A000,
+/**/                   0xA1923DEE, 0xBF2C34BB,
+/**/                   0x40F1C000, 0xBFCA1DFC,
+/**/                   0x004F3781, 0x3D301E0F,
+/**/                   0x00000000, 0x3FF39800,
+/**/                   0x87F63372, 0x3F31C2C1,
+/**/                   0x0708A000, 0xBFC9F6C4,
+/**/                   0x4BCD3F43, 0x3D3337D9,
+/**/                   0x00000000, 0x3FF39400,
+/**/                   0xE11BD52E, 0xBF2C4AA0,
+/**/                   0xCDCE0000, 0xBFC9CF97,
+/**/                   0x10C414E3, 0xBD3D862F,
+/**/                   0x00000000, 0x3FF38C00,
+/**/                   0x6088DBF4, 0x3F322D36,
+/**/                   0x8DEBA000, 0xBFC9A877,
+/**/                   0x3EFEC390, 0xBD3470FA,
+/**/                   0x00000000, 0x3FF38800,
+/**/                   0x503F774E, 0xBF2A8BBF,
+/**/                   0x4011A000, 0xBFC98163,
+/**/                   0x9E9045E2, 0xBD34EADD,
+/**/                   0x00000000, 0x3FF38000,
+/**/                   0x13813814, 0x3F338138,
+/**/                   0xDCF70000, 0xBFC95A5A,
+/**/                   0x58A0FF6F, 0xBD07F228,
+/**/                   0x00000000, 0x3FF37C00,
+/**/                   0x1B177053, 0xBF26FB6F,
+/**/                   0x5D594000, 0xBFC9335E,
+/**/                   0x3ABD47DA, 0xBD33115C,
+/**/                   0x00000000, 0x3FF37400,
+/**/                   0x945EDC20, 0x3F35BD1C,
+/**/                   0xB9FCC000, 0xBFC90C6D,
+/**/                   0x7718D7CA, 0x3D1935F5,
+/**/                   0x00000000, 0x3FF37000,
+/**/                   0x4DBDCC60, 0xBF219D00,
+/**/                   0xEBAC2000, 0xBFC8E588,
+/**/                   0xAB2D1140, 0xBD3B7D5C,
+/**/                   0x00000000, 0x3FF36800,
+/**/                   0xE0747954, 0x3F38DF3D,
+/**/                   0xEB390000, 0xBFC8BEAF,
+/**/                   0xAAE92CD1, 0x3D073D54,
+/**/                   0x00000000, 0x3FF36400,
+/**/                   0xD9D3C49F, 0xBF14E775,
+/**/                   0xB17B2000, 0xBFC897E2,
+/**/                   0x380CBE9E, 0x3D296B37,
+/**/                   0x00000000, 0x3FF35C00,
+/**/                   0xF2AF821E, 0x3F3CE5F9,
+/**/                   0x3750E000, 0xBFC87121,
+/**/                   0x42F9AF75, 0xBD3328EB,
+/**/                   0x00000000, 0x3FF35800,
+/**/                   0xE34971F2, 0xBEE82DF0,
+/**/                   0x759F6000, 0xBFC84A6B,
+/**/                   0x2ADF8609, 0x3D3DA280,
+/**/                   0x00000000, 0x3FF35400,
+/**/                   0x4873ECAE, 0xBF3E304D,
+/**/                   0x6551A000, 0xBFC823C1,
+/**/                   0x9A631E83, 0xBD1E0DDB,
+/**/                   0x00000000, 0x3FF34C00,
+/**/                   0x1FF659DB, 0x3F1264B6,
+/**/                   0xFF59A000, 0xBFC7FD22,
+/**/                   0xF457B7D2, 0x3D158BEB,
+/**/                   0x00000000, 0x3FF34800,
+/**/                   0xFECB9865, 0xBF386531,
+/**/                   0x3CAF6000, 0xBFC7D690,
+/**/                   0x17C301D7, 0x3D24C06B,
+/**/                   0x00000000, 0x3FF34000,
+/**/                   0xEEDA65AE, 0x3F25A8C2,
+/**/                   0x16516000, 0xBFC7B009,
+/**/                   0xCB067E57, 0x3D3AE75F,
+/**/                   0x00000000, 0x3FF33C00,
+/**/                   0x8434E1F4, 0xBF31BA4A,
+/**/                   0x85444000, 0xBFC7898D,
+/**/                   0xE3DBAF3F, 0xBD38E67B,
+/**/                   0x00000000, 0x3FF33400,
+/**/                   0xDBFC660A, 0x3F31EE97,
+/**/                   0x82936000, 0xBFC7631D,
+/**/                   0xC7C5F3E1, 0x3D25E77D,
+/**/                   0x00000000, 0x3FF33000,
+/**/                   0xBC40BFDA, 0xBF246252,
+/**/                   0x074FE000, 0xBFC73CB9,
+/**/                   0x0D0005A6, 0x3D3D66A9,
+/**/                   0x00000000, 0x3FF32800,
+/**/                   0x13299E64, 0x3F39E640,
+/**/                   0x0C914000, 0xBFC71660,
+/**/                   0x7CEC3838, 0xBCE51B15,
+/**/                   0x00000000, 0x3FF32400,
+/**/                   0xEF40991F, 0xBEFCB5D4,
+/**/                   0x8B756000, 0xBFC6F012,
+/**/                   0x0D31EF0F, 0xBD357739,
+/**/                   0x00000000, 0x3FF32000,
+/**/                   0xC823D892, 0xBF3D4632,
+/**/                   0x7D204000, 0xBFC6C9D0,
+/**/                   0xFD9B2DCA, 0x3CDC73FA,
+/**/                   0x00000000, 0x3FF31800,
+/**/                   0x7AED804C, 0x3F1DD63A,
+/**/                   0xDABBE000, 0xBFC6A399,
+/**/                   0xE66A15A6, 0x3D38F934,
+/**/                   0x00000000, 0x3FF31400,
+/**/                   0xE8C11E1A, 0xBF339849,
+/**/                   0x9D786000, 0xBFC67D6E,
+/**/                   0x30A706D3, 0x3D311E88,
+/**/                   0x00000000, 0x3FF30C00,
+/**/                   0x0D190131, 0x3F319013,
+/**/                   0xBE8C2000, 0xBFC6574E,
+/**/                   0x34F0F462, 0x3D398C1D,
+/**/                   0x00000000, 0x3FF30800,
+/**/                   0xB47A7FDA, 0xBF222315,
+/**/                   0x37336000, 0xBFC6313A,
+/**/                   0x4F21EA6D, 0x3D144DF5,
+/**/                   0x00000000, 0x3FF30000,
+/**/                   0x40260390, 0x3F3C82AC,
+/**/                   0x00B0A000, 0xBFC60B31,
+/**/                   0xC988F814, 0x3D371456,
+/**/                   0x00000000, 0x3FF2FC00,
+/**/                   0xA2430A62, 0x3F026443,
+/**/                   0x144C2000, 0xBFC5E533,
+/**/                   0xF3B290EA, 0x3D31CE0B,
+/**/                   0x00000000, 0x3FF2F800,
+/**/                   0xED097B42, 0xBF37B425,
+/**/                   0x6B544000, 0xBFC5BF40,
+/**/                   0xEB68981C, 0x3D127023,
+/**/                   0x00000000, 0x3FF2F000,
+/**/                   0x4AE0553C, 0x3F2D00E3,
+/**/                   0xFF1D6000, 0xBFC59958,
+/**/                   0x9769CA05, 0x3D3A1D05,
+/**/                   0x00000000, 0x3FF2EC00,
+/**/                   0x25D69D44, 0xBF262BC0,
+/**/                   0xC9018000, 0xBFC5737C,
+/**/                   0xA6B887F6, 0xBD39BAA7,
+/**/                   0x00000000, 0x3FF2E400,
+/**/                   0xE3103D6B, 0x3F3B88B5,
+/**/                   0xC2610000, 0xBFC54DAB,
+/**/                   0xE5C8D0D8, 0xBD2746FE,
+/**/                   0x00000000, 0x3FF2E000,
+/**/                   0xC04B8097, 0x3F02E025,
+/**/                   0xE4A1C000, 0xBFC527E5,
+/**/                   0x8D4B411D, 0x3D34E60B,
+/**/                   0x00000000, 0x3FF2DC00,
+/**/                   0x2C305021, 0xBF369C22,
+/**/                   0x292F6000, 0xBFC5022B,
+/**/                   0xFF36A25B, 0xBD348A05,
+/**/                   0x00000000, 0x3FF2D400,
+/**/                   0xD50A012D, 0x3F30A012,
+/**/                   0x897BC000, 0xBFC4DC7B,
+/**/                   0x0AE1FF0F, 0xBD0C79B6,
+/**/                   0x00000000, 0x3FF2D000,
+/**/                   0xBC66484E, 0xBF1FBE29,
+/**/                   0xFEFE2000, 0xBFC4B6D6,
+/**/                   0xF56E7952, 0xBD1522EC,
+/**/                   0x00000000, 0x3FF2C800,
+/**/                   0x12C9FB4E, 0x3F3FB4D8,
+/**/                   0x8333C000, 0xBFC4913D,
+/**/                   0x558124C4, 0x3D353E43,
+/**/                   0x00000000, 0x3FF2C400,
+/**/                   0x7004B11E, 0x3F1E3432,
+/**/                   0x0F9F6000, 0xBFC46BAF,
+/**/                   0x0790841A, 0x3D1249CD,
+/**/                   0x00000000, 0x3FF2C000,
+/**/                   0x5C8EF02F, 0xBF30671A,
+/**/                   0x9DC9C000, 0xBFC4462B,
+/**/                   0xA711B062, 0x3D384858,
+/**/                   0x00000000, 0x3FF2B800,
+/**/                   0xD548D9AC, 0x3F37D835,
+/**/                   0x27410000, 0xBFC420B3,
+/**/                   0xC85A0884, 0x3D116282,
+/**/                   0x00000000, 0x3FF2B400,
+/**/                   0xAD012B40, 0x3ED2B404,
+/**/                   0xA5992000, 0xBFC3FB45,
+/**/                   0xC0CAE559, 0xBD319713,
+/**/                   0x00000000, 0x3FF2B000,
+/**/                   0x8E7302A1, 0xBF370F78,
+/**/                   0x126BC000, 0xBFC3D5E3,
+/**/                   0x85096C4B, 0xBD13FB2F,
+/**/                   0x00000000, 0x3FF2A800,
+/**/                   0x3C1053F9, 0x3F31C92F,
+/**/                   0x67580000, 0xBFC3B08B,
+/**/                   0xF29320FB, 0x3D3AADE8,
+/**/                   0x00000000, 0x3FF2A400,
+/**/                   0x3DBE2E04, 0xBF14AD94,
+/**/                   0x9E028000, 0xBFC38B3E,
+/**/                   0x545C17F9, 0x3D370EF0,
+/**/                   0x00000000, 0x3FF2A000,
+/**/                   0xBED61BED, 0xBF3BED61,
+/**/                   0xB015A000, 0xBFC365FC,
+/**/                   0xAFB9691B, 0x3D3FD3A0,
+/**/                   0x00000000, 0x3FF29800,
+/**/                   0x26F004A6, 0x3F2B061A,
+/**/                   0x97412000, 0xBFC340C5,
+/**/                   0xF7D9D386, 0x3D37A3DC,
+/**/                   0x00000000, 0x3FF29400,
+/**/                   0xFF6B646D, 0xBF21B488,
+/**/                   0x4D3A4000, 0xBFC31B99,
+/**/                   0xE3A50810, 0xBD3F098E,
+/**/                   0x00000000, 0x3FF29000,
+/**/                   0x2CA5D5AC, 0xBF3F0582,
+/**/                   0xCBBC0000, 0xBFC2F677,
+/**/                   0x2160F40D, 0xBD352B30,
+/**/                   0x00000000, 0x3FF28800,
+/**/                   0x16025116, 0x3F260251,
+/**/                   0x0C868000, 0xBFC2D161,
+/**/                   0xCB81B4A1, 0xBD039D6C,
+/**/                   0x00000000, 0x3FF28400,
+/**/                   0x502065D2, 0xBF258CDF,
+/**/                   0x095F6000, 0xBFC2AC55,
+/**/                   0xD0C6C8A8, 0x3D1D3466,
+/**/                   0x00000000, 0x3FF27C00,
+/**/                   0x1CE4D6F8, 0x3F3FA38A,
+/**/                   0xBC11A000, 0xBFC28753,
+/**/                   0x359302E6, 0xBD37494E,
+/**/                   0x00000000, 0x3FF27800,
+/**/                   0xDCCA0781, 0x3F247DD5,
+/**/                   0x1E6DE000, 0xBFC2625D,
+/**/                   0xF09E3D82, 0x3CF52962,
+/**/                   0x00000000, 0x3FF27400,
+/**/                   0xDB195E8F, 0xBF25E8EF,
+/**/                   0x2A49C000, 0xBFC23D71,
+/**/                   0x8FD3DF5C, 0xBD100D23,
+/**/                   0x00000000, 0x3FF27000,
+/**/                   0xFFB647FE, 0xBF3FF6C8,
+/**/                   0xD9808000, 0xBFC2188F,
+/**/                   0x7F50C701, 0x3D3B3A1E,
+/**/                   0x00000000, 0x3FF26800,
+/**/                   0xC024D167, 0x3F266F9A,
+/**/                   0x25F26000, 0xBFC1F3B9,
+/**/                   0x9B083633, 0x3D15F74E,
+/**/                   0x00000000, 0x3FF26400,
+/**/                   0xEABD0E14, 0xBF22D1BD,
+/**/                   0x09854000, 0xBFC1CEED,
+/**/                   0x39192AF9, 0x3D315C1C,
+/**/                   0x00000000, 0x3FF26000,
+/**/                   0xF6D0EEC8, 0xBF3DD8F7,
+/**/                   0x7E240000, 0xBFC1AA2B,
+/**/                   0xDDE3B366, 0x3D31AC38,
+/**/                   0x00000000, 0x3FF25800,
+/**/                   0x2A241EF6, 0x3F2BCEB1,
+/**/                   0x7DBEC000, 0xBFC18574,
+/**/                   0x45BD9B49, 0xBD3E6744,
+/**/                   0x00000000, 0x3FF25400,
+/**/                   0xA21378D7, 0xBF18A05B,
+/**/                   0x024B2000, 0xBFC160C8,
+/**/                   0xA9009E3D, 0xBD2EC2D2,
+/**/                   0x00000000, 0x3FF25000,
+/**/                   0xD6CFA90C, 0xBF3A076F,
+/**/                   0x05C3A000, 0xBFC13C26,
+/**/                   0xD94F6509, 0x3D2CF5FD,
+/**/                   0x00000000, 0x3FF24800,
+/**/                   0x92492492, 0x3F324924,
+/**/                   0x8227E000, 0xBFC1178E,
+/**/                   0xCE2D07F2, 0xBD21EF78,
+/**/                   0x00000000, 0x3FF24400,
+/**/                   0x6151E899, 0xBEF3682B,
+/**/                   0x717D0000, 0xBFC0F301,
+/**/                   0x41AE86C5, 0x3D3E09B4,
+/**/                   0x00000000, 0x3FF24000,
+/**/                   0x89FA4C67, 0xBF34868E,
+/**/                   0xCDCCC000, 0xBFC0CE7E,
+/**/                   0xABFF5447, 0xBD14652D,
+/**/                   0x00000000, 0x3FF23800,
+/**/                   0x6B11F09F, 0x3F3858D8,
+/**/                   0x91268000, 0xBFC0AA06,
+/**/                   0xD7032129, 0x3D345519,
+/**/                   0x00000000, 0x3FF23400,
+/**/                   0xAF37C049, 0x3F159E26,
+/**/                   0xB59E4000, 0xBFC08598,
+/**/                   0x7009902C, 0x3D27E5DD,
+/**/                   0x00000000, 0x3FF23000,
+/**/                   0x2E076329, 0xBF2AB546,
+/**/                   0x354D4000, 0xBFC06135,
+/**/                   0x28340EE9, 0xBD363046,
+/**/                   0x00000000, 0x3FF22C00,
+/**/                   0xFEDD5FEE, 0xBF3FEDD5,
+/**/                   0x0A51E000, 0xBFC03CDC,
+/**/                   0xF169FC5C, 0xBD381A9C,
+/**/                   0x00000000, 0x3FF22400,
+/**/                   0x009126D7, 0x3F2B5B92,
+/**/                   0x2ECF6000, 0xBFC0188D,
+/**/                   0x1CFF9DFE, 0xBD03F965,
+/**/                   0x00000000, 0x3FF22000,
+/**/                   0x8121FB78, 0xBF121FB7,
+/**/                   0x39DBC000, 0xBFBFE891,
+/**/                   0xD82F7A82, 0xBD356594,
+/**/                   0x00000000, 0x3FF21C00,
+/**/                   0x3A459635, 0xBF368F22,
+/**/                   0x9DB58000, 0xBFBFA01C,
+/**/                   0xFA48A730, 0x3D08F351,
+/**/                   0x00000000, 0x3FF21400,
+/**/                   0x855E6012, 0x3F379804,
+/**/                   0x7D900000, 0xBFBF57BC,
+/**/                   0x9EA8B04E, 0xBD176A6C,
+/**/                   0x00000000, 0x3FF21000,
+/**/                   0x78CD7A37, 0x3F17B57C,
+/**/                   0xCDD98000, 0xBFBF0F70,
+/**/                   0x6C272C1E, 0xBD32E31F,
+/**/                   0x00000000, 0x3FF20C00,
+/**/                   0x07E4EF15, 0xBF271E73,
+/**/                   0x830A0000, 0xBFBEC739,
+/**/                   0xA80CDD10, 0xBD311FCB,
+/**/                   0x00000000, 0x3FF20800,
+/**/                   0x49392BA7, 0xBF3CDDEC,
+/**/                   0x91A34000, 0xBFBE7F16,
+/**/                   0x9BC77BFA, 0x3D32C1C5,
+/**/                   0x00000000, 0x3FF20000,
+/**/                   0x12012012, 0x3F320120,
+/**/                   0xEE304000, 0xBFBE3707,
+/**/                   0xE6766ABD, 0xBD20F684,
+/**/                   0x00000000, 0x3FF1FC00,
+/**/                   0xCE8AD1A2, 0x3EF0DC4F,
+/**/                   0x8D468000, 0xBFBDEF0D,
+/**/                   0x412E9A74, 0x3D324750,
+/**/                   0x00000000, 0x3FF1F800,
+/**/                   0xDC11F704, 0xBF2F7047,
+/**/                   0x63844000, 0xBFBDA727,
+/**/                   0x1FA71733, 0xBD1A8940,
+/**/                   0x00000000, 0x3FF1F000,
+/**/                   0x16B6419D, 0x3F3FAF3F,
+/**/                   0x65920000, 0xBFBD5F55,
+/**/                   0xCC185469, 0xBD30E239,
+/**/                   0x00000000, 0x3FF1EC00,
+/**/                   0xF70985E2, 0x3F2E878F,
+/**/                   0x88218000, 0xBFBD1797,
+/**/                   0xB5EFBEED, 0xBD336433,
+/**/                   0x00000000, 0x3FF1E800,
+/**/                   0x94D7FDC3, 0xBEEF55E4,
+/**/                   0xBFEE0000, 0xBFBCCFED,
+/**/                   0x2FE71256, 0xBD33A823,
+/**/                   0x00000000, 0x3FF1E400,
+/**/                   0x0478BBCF, 0xBF310C4C,
+/**/                   0x01BC4000, 0xBFBC8858,
+/**/                   0xC65AACD3, 0xBD2646D1,
+/**/                   0x00000000, 0x3FF1DC00,
+/**/                   0xCB840C49, 0x3F3F0ECB,
+/**/                   0x425A4000, 0xBFBC40D6,
+/**/                   0x1D1930DD, 0xBD3CB112,
+/**/                   0x00000000, 0x3FF1D800,
+/**/                   0xC9579074, 0x3F2EACE5,
+/**/                   0x769FC000, 0xBFBBF968,
+/**/                   0x8D824283, 0xBD24218C,
+/**/                   0x00000000, 0x3FF1D400,
+/**/                   0xFC60F0AE, 0xBECABDFA,
+/**/                   0x936D8000, 0xBFBBB20E,
+/**/                   0x35459B8E, 0x3D368BA8,
+/**/                   0x00000000, 0x3FF1D000,
+/**/                   0xAFDC61F3, 0xBF2F2A4B,
+/**/                   0x8DAD4000, 0xBFBB6AC8,
+/**/                   0xF50225C7, 0xBD3B1BDF,
+/**/                   0x00000000, 0x3FF1CC00,
+/**/                   0xAB802394, 0xBF3EC8AF,
+/**/                   0x5A530000, 0xBFBB2396,
+/**/                   0xEA137079, 0x3CEFF64E,
+/**/                   0x00000000, 0x3FF1C400,
+/**/                   0xCE058D9B, 0x3F322FC1,
+/**/                   0xEE5B0000, 0xBFBADC77,
+/**/                   0x09C31904, 0x3D3573B2,
+/**/                   0x00000000, 0x3FF1C000,
+/**/                   0xE0EFA2CF, 0x3F0AA04F,
+/**/                   0x3ECAC000, 0xBFBA956D,
+/**/                   0x4C02C4AF, 0xBD3E6379,
+/**/                   0x00000000, 0x3FF1BC00,
+/**/                   0x225ADFDD, 0xBF26B7F7,
+/**/                   0x40B1C000, 0xBFBA4E76,
+/**/                   0xB94407C8, 0x3D0E42B6,
+/**/                   0x00000000, 0x3FF1B800,
+/**/                   0x217CD13A, 0xBF39E073,
+/**/                   0xE9278000, 0xBFBA0792,
+/**/                   0xC9AD51BF, 0x3D0A9CE6,
+/**/                   0x00000000, 0x3FF1B000,
+/**/                   0x2BAE2B21, 0x3F37C67F,
+/**/                   0x2D4D4000, 0xBFB9C0C3,
+/**/                   0x9E838668, 0x3D3AB7C0,
+/**/                   0x00000000, 0x3FF1AC00,
+/**/                   0xBD720DCF, 0x3F23316E,
+/**/                   0x024CC000, 0xBFB97A07,
+/**/                   0x732093CE, 0x3CF8BCC1,
+/**/                   0x00000000, 0x3FF1A800,
+/**/                   0x611A7B96, 0xBF11A7B9,
+/**/                   0x5D594000, 0xBFB9335E,
+/**/                   0x3ABD47DA, 0xBD23115C,
+/**/                   0x00000000, 0x3FF1A400,
+/**/                   0xA1C1B8E7, 0xBF324195,
+/**/                   0x33AEC000, 0xBFB8ECC9,
+/**/                   0xBE67F7AA, 0x3D222F39,
+/**/                   0x00000000, 0x3FF1A000,
+/**/                   0xFEE61FEE, 0xBF3FEE61,
+/**/                   0x7A91C000, 0xBFB8A647,
+/**/                   0xAF9BD6DF, 0xBD3C28C0,
+/**/                   0x00000000, 0x3FF19800,
+/**/                   0x362B721D, 0x3F328F89,
+/**/                   0x27508000, 0xBFB85FD9,
+/**/                   0x19970C1C, 0x3D35B818,
+/**/                   0x00000000, 0x3FF19400,
+/**/                   0x28A70119, 0x3F14E023,
+/**/                   0x2F410000, 0xBFB8197E,
+/**/                   0x60D20041, 0x3D3C0FE4,
+/**/                   0x00000000, 0x3FF19000,
+/**/                   0x3E48FC6F, 0xBF1FD419,
+/**/                   0x87C28000, 0xBFB7D336,
+/**/                   0x3E706706, 0xBD33C88C,
+/**/                   0x00000000, 0x3FF18C00,
+/**/                   0xFD42546B, 0xBF34F7C6,
+/**/                   0x263D8000, 0xBFB78D02,
+/**/                   0x94B69FB7, 0xBD069B57,
+/**/                   0x00000000, 0x3FF18400,
+/**/                   0x01185E30, 0x3F3E2FA4,
+/**/                   0x00228000, 0xBFB746E1,
+/**/                   0x6E1E21D2, 0x3D3126D1,
+/**/                   0x00000000, 0x3FF18000,
+/**/                   0x11811812, 0x3F318118,
+/**/                   0x0AEAC000, 0xBFB700D3,
+/**/                   0xA99DED32, 0xBCEC1E8D,
+/**/                   0x00000000, 0x3FF17C00,
+/**/                   0xFF2E2C43, 0x3F13F1CA,
+/**/                   0x3C188000, 0xBFB6BAD8,
+/**/                   0xC08926AE, 0xBD0DAF3C,
+/**/                   0x00000000, 0x3FF17800,
+/**/                   0x0A5EF9FF, 0xBF1D79B9,
+/**/                   0x89364000, 0xBFB674F0,
+/**/                   0x4C9D3302, 0xBD3A7999,
+/**/                   0x00000000, 0x3FF17400,
+/**/                   0x1ECEA765, 0xBF338FAD,
+/**/                   0xE7D78000, 0xBFB62F1B,
+/**/                   0x7ED63C4E, 0x3D217995,
+/**/                   0x00000000, 0x3FF17000,
+/**/                   0xD8C8714B, 0xBF3F976B,
+/**/                   0x4D978000, 0xBFB5E95A,
+/**/                   0xE1D17171, 0xBD31CB7C,
+/**/                   0x00000000, 0x3FF16800,
+/**/                   0xB08FA497, 0x3F348A33,
+/**/                   0xB01AC000, 0xBFB5A3AB,
+/**/                   0x9E6AFA18, 0xBD3E2574,
+/**/                   0x00000000, 0x3FF16400,
+/**/                   0x864022C9, 0x3F21AA1F,
+/**/                   0x050E0000, 0xBFB55E10,
+/**/                   0x0C53C72E, 0xBD0C1D74,
+/**/                   0x00000000, 0x3FF16000,
+/**/                   0xB487BCAD, 0xBF05B7C9,
+/**/                   0x42260000, 0xBFB51887,
+/**/                   0x96258B3E, 0xBD330A1D,
+/**/                   0x00000000, 0x3FF15C00,
+/**/                   0x5B1E5F75, 0xBF2C3411,
+/**/                   0x5D208000, 0xBFB4D311,
+/**/                   0x82F4E1EF, 0x3CF53A25,
+/**/                   0x00000000, 0x3FF15800,
+/**/                   0xEEA99544, 0xBF39543F,
+/**/                   0x4BC30000, 0xBFB48DAE,
+/**/                   0x208C200C, 0xBD30185B,
+/**/                   0x00000000, 0x3FF15000,
+/**/                   0xDD5C8CB8, 0x3F3B9A3F,
+/**/                   0x03DBC000, 0xBFB4485E,
+/**/                   0xE8D26AB7, 0xBD3FAD46,
+/**/                   0x00000000, 0x3FF14C00,
+/**/                   0xB19AE5C7, 0x3F30B155,
+/**/                   0x7B414000, 0xBFB40320,
+/**/                   0xAA8157C0, 0xBD26FD84,
+/**/                   0x00000000, 0x3FF14800,
+/**/                   0xB34EDA32, 0x3F17C382,
+/**/                   0xA7D20000, 0xBFB3BDF5,
+/**/                   0xAD125895, 0x3D319BD0,
+/**/                   0x00000000, 0x3FF14400,
+/**/                   0xBAF129D0, 0xBF129CFF,
+/**/                   0x7F748000, 0xBFB378DD,
+/**/                   0x28F1FACA, 0xBD371411,
+/**/                   0x00000000, 0x3FF14000,
+/**/                   0x771B7C7F, 0xBF2E2E59,
+/**/                   0xF8184000, 0xBFB333D7,
+/**/                   0xA81B8848, 0x3CE692B6,
+/**/                   0x00000000, 0x3FF13C00,
+/**/                   0x30FE1D9C, 0xBF395F06,
+/**/                   0x07B40000, 0xBFB2EEE5,
+/**/                   0xDD77C860, 0xBD08081E,
+/**/                   0x00000000, 0x3FF13400,
+/**/                   0x5C81135D, 0x3F3C8113,
+/**/                   0xA4470000, 0xBFB2AA04,
+/**/                   0xA8B1CB41, 0xBD37A48B,
+/**/                   0x00000000, 0x3FF13000,
+/**/                   0xBB3B5DC0, 0x3F3288FF,
+/**/                   0xC3D8C000, 0xBFB26536,
+/**/                   0x097C5BA3, 0xBD0B4BAC,
+/**/                   0x00000000, 0x3FF12C00,
+/**/                   0xB81577AE, 0x3F21713D,
+/**/                   0x5C784000, 0xBFB2207B,
+/**/                   0xFC10C7BF, 0xBD349D8C,
+/**/                   0x00000000, 0x3FF12800,
+/**/                   0xBAD6FC84, 0xBEEE05E5,
+/**/                   0x643D0000, 0xBFB1DBD2,
+/**/                   0xD977C494, 0xBD390B24,
+/**/                   0x00000000, 0x3FF12400,
+/**/                   0x59F992BF, 0xBF24E314,
+/**/                   0xD1464000, 0xBFB1973B,
+/**/                   0x54F930B3, 0xBD3566D1,
+/**/                   0x00000000, 0x3FF12000,
+/**/                   0xC9F6E7A8, 0xBF33CB91,
+/**/                   0x99BB4000, 0xBFB152B7,
+/**/                   0x07030829, 0x3D09BB29,
+/**/                   0x00000000, 0x3FF11C00,
+/**/                   0x8B7D9851, 0xBF3CFE65,
+/**/                   0xB3CB0000, 0xBFB10E45,
+/**/                   0x284A3465, 0x3D37CF69,
+/**/                   0x00000000, 0x3FF11400,
+/**/                   0x29605DF7, 0x3F39F5DB,
+/**/                   0x15AC4000, 0xBFB0C9E6,
+/**/                   0x0974D976, 0xBD2C2DA8,
+/**/                   0x00000000, 0x3FF11000,
+/**/                   0x11111111, 0x3F311111,
+/**/                   0xB59E4000, 0xBFB08598,
+/**/                   0x7009902C, 0x3D17E5DD,
+/**/                   0x00000000, 0x3FF10C00,
+/**/                   0x12A5B1AE, 0x3F20A63A,
+/**/                   0x89E74000, 0xBFB0415D,
+/**/                   0x5CF1D753, 0xBD1111C0,
+/**/                   0x00000000, 0x3FF10800,
+/**/                   0xBE011080, 0xBED107FB,
+/**/                   0x11AB8000, 0xBFAFFA69,
+/**/                   0x98381A8F, 0xBD23008C,
+/**/                   0x00000000, 0x3FF10400,
+/**/                   0x6FEABBAE, 0xBF216989,
+/**/                   0x51800000, 0xBFAF723B,
+/**/                   0xDD5610D3, 0x3D3D6EB0,
+/**/                   0x00000000, 0x3FF10000,
+/**/                   0x10FEF011, 0xBF30FEF0,
+/**/                   0xC0068000, 0xBFAEEA31,
+/**/                   0x3606D891, 0xBD3C3DD8,
+/**/                   0x00000000, 0x3FF0FC00,
+/**/                   0x98CDDC74, 0xBF3922C0,
+/**/                   0x4A0B8000, 0xBFAE624C,
+/**/                   0x74676689, 0x3D30F25C,
+/**/                   0x00000000, 0x3FF0F400,
+/**/                   0x325A1A80, 0x3F3EDFAB,
+/**/                   0xDC680000, 0xBFADDA8A,
+/**/                   0x64D9E42F, 0x3D21B1AC,
+/**/                   0x00000000, 0x3FF0F000,
+/**/                   0xF27F9A57, 0x3F370834,
+/**/                   0x64060000, 0xBFAD52ED,
+/**/                   0x2A29BBD6, 0x3D33C85D,
+/**/                   0x00000000, 0x3FF0EC00,
+/**/                   0xD391FBC5, 0x3F2EAD7C,
+/**/                   0xCDDD8000, 0xBFACCB73,
+/**/                   0x6E09F5FE, 0xBD3965C3,
+/**/                   0x00000000, 0x3FF0E800,
+/**/                   0xE9479870, 0x3F1F2CA5,
+/**/                   0x06F70000, 0xBFAC441E,
+/**/                   0x49850D15, 0xBD354F1F,
+/**/                   0x00000000, 0x3FF0E400,
+/**/                   0x80439019, 0x3ED95609,
+/**/                   0xFC690000, 0xBFABBCEB,
+/**/                   0x8C317C2A, 0x3D17BF86,
+/**/                   0x00000000, 0x3FF0E000,
+/**/                   0xC6867596, 0xBF1B6B4D,
+/**/                   0x9B588000, 0xBFAB35DD,
+/**/                   0xD6CF558E, 0xBD3D5674,
+/**/                   0x00000000, 0x3FF0DC00,
+/**/                   0x172D4CE8, 0xBF2BEAEE,
+/**/                   0xD0FB0000, 0xBFAAAEF2,
+/**/                   0x353BB42E, 0xBD20FC1A,
+/**/                   0x00000000, 0x3FF0D800,
+/**/                   0x479071A9, 0xBF34EAB0,
+/**/                   0x8A938000, 0xBFAA282B,
+/**/                   0x80EFC8E3, 0x3D2E8F59,
+/**/                   0x00000000, 0x3FF0D400,
+/**/                   0xA61C62D3, 0xBF3BBA9C,
+/**/                   0xB5740000, 0xBFA9A187,
+/**/                   0x4EC4D90D, 0x3D30C22E,
+/**/                   0x00000000, 0x3FF0CC00,
+/**/                   0x77344011, 0x3F3D9AA6,
+/**/                   0x3EFD8000, 0xBFA91B07,
+/**/                   0x3F76CA96, 0x3D19D7C5,
+/**/                   0x00000000, 0x3FF0C800,
+/**/                   0xCDA3AC11, 0x3F3714FB,
+/**/                   0x149F8000, 0xBFA894AA,
+/**/                   0x8BE97661, 0xBD39A19A,
+/**/                   0x00000000, 0x3FF0C400,
+/**/                   0x391F2E61, 0x3F30B446,
+/**/                   0x23D90000, 0xBFA80E70,
+/**/                   0x6F28BF45, 0x3D399DC1,
+/**/                   0x00000000, 0x3FF0C000,
+/**/                   0x682E11CD, 0x3F24F0D1,
+/**/                   0x5A358000, 0xBFA78859,
+/**/                   0x083B3A4C, 0x3D108B0D,
+/**/                   0x00000000, 0x3FF0BC00,
+/**/                   0x5D5A36EA, 0x3F118519,
+/**/                   0xA5510000, 0xBFA70265,
+/**/                   0x11FD5CE7, 0x3D2888DF,
+/**/                   0x00000000, 0x3FF0B800,
+/**/                   0x62386CAB, 0xBEF913DA,
+/**/                   0xF2D48000, 0xBFA67C94,
+/**/                   0x827CCA0C, 0xBD3DAC20,
+/**/                   0x00000000, 0x3FF0B400,
+/**/                   0xBD31D7D0, 0xBF1D7CFF,
+/**/                   0x30790000, 0xBFA5F6E7,
+/**/                   0x8012494C, 0x3D20485A,
+/**/                   0x00000000, 0x3FF0B000,
+/**/                   0x226951DC, 0xBF2A11BA,
+/**/                   0x4C040000, 0xBFA5715C,
+/**/                   0xDFC47628, 0x3D38888D,
+/**/                   0x00000000, 0x3FF0AC00,
+/**/                   0x7B2E9DD2, 0xBF328E31,
+/**/                   0x334A0000, 0xBFA4EBF4,
+/**/                   0xF73BE773, 0x3D2D9150,
+/**/                   0x00000000, 0x3FF0A800,
+/**/                   0x7EF597EF, 0xBF37EF59,
+/**/                   0xD42E0000, 0xBFA466AE,
+/**/                   0x75BDFD28, 0x3D2C1673,
+/**/                   0x00000000, 0x3FF0A400,
+/**/                   0x50D413C1, 0xBF3D2C71,
+/**/                   0x1CA08000, 0xBFA3E18C,
+/**/                   0x3F6E378E, 0xBD3748ED,
+/**/                   0x00000000, 0x3FF09C00,
+/**/                   0xF836010A, 0x3F3DBA6A,
+/**/                   0xFAA10000, 0xBFA35C8B,
+/**/                   0x5EF9EB35, 0xBD38357D,
+/**/                   0x00000000, 0x3FF09800,
+/**/                   0x624D4AF5, 0x3F38C51F,
+/**/                   0x5C3C8000, 0xBFA2D7AE,
+/**/                   0x459DA66D, 0x3D322939,
+/**/                   0x00000000, 0x3FF09400,
+/**/                   0x10953F39, 0x3F33F390,
+/**/                   0x2F8D0000, 0xBFA252F3,
+/**/                   0xE021B67B, 0xBD283E9A,
+/**/                   0x00000000, 0x3FF09000,
+/**/                   0x861539B9, 0x3F2E8B42,
+/**/                   0x62BC0000, 0xBFA1CE5A,
+/**/                   0x8D8DF999, 0xBD3A9CC7,
+/**/                   0x00000000, 0x3FF08C00,
+/**/                   0xACBC4021, 0x3F25766E,
+/**/                   0xE4008000, 0xBFA149E3,
+/**/                   0x9A4168FD, 0x3D32B98A,
+/**/                   0x00000000, 0x3FF08800,
+/**/                   0x0F3DBD5A, 0x3F1950DB,
+/**/                   0xA19E0000, 0xBFA0C58F,
+/**/                   0x58B17913, 0x3D0559D1,
+/**/                   0x00000000, 0x3FF08400,
+/**/                   0x08421084, 0x3F008421,
+/**/                   0x89E78000, 0xBFA0415D,
+/**/                   0xF461C516, 0x3D3DDDC7,
+/**/                   0x00000000, 0x3FF08000,
+/**/                   0x0041FF7C, 0xBF007FDF,
+/**/                   0x16780000, 0xBF9F7A9B,
+/**/                   0x271BE7D7, 0xBD242AD9,
+/**/                   0x00000000, 0x3FF07C00,
+/**/                   0xC54798FB, 0xBF183591,
+/**/                   0x28140000, 0xBF9E72BF,
+/**/                   0x49774D47, 0x3D28D751,
+/**/                   0x00000000, 0x3FF07800,
+/**/                   0x518F4EFD, 0xBF23CFA1,
+/**/                   0x25980000, 0xBF9D6B27,
+/**/                   0x50D1B838, 0x3D39FF7B,
+/**/                   0x00000000, 0x3FF07400,
+/**/                   0x01073261, 0xBF2B3EB7,
+/**/                   0xEC150000, 0xBF9C63D2,
+/**/                   0xE030A687, 0x3D35439C,
+/**/                   0x00000000, 0x3FF07000,
+/**/                   0xD6EAB025, 0xBF31341F,
+/**/                   0x58B70000, 0xBF9B5CC2,
+/**/                   0xB8AFBFE8, 0xBD18E611,
+/**/                   0x00000000, 0x3FF06C00,
+/**/                   0x6ED049E0, 0xBF34A638,
+/**/                   0x48C60000, 0xBF9A55F5,
+/**/                   0x9F2D03C9, 0x3D2DE070,
+/**/                   0x00000000, 0x3FF06800,
+/**/                   0xEF997F5C, 0xBF37F5BF,
+/**/                   0x99A20000, 0xBF994F6B,
+/**/                   0xF96CF7F5, 0xBD311D5E,
+/**/                   0x00000000, 0x3FF06400,
+/**/                   0xE5604189, 0xBF3B22D0,
+/**/                   0x28C90000, 0xBF984925,
+/**/                   0x325A0C34, 0x3D2AA0BA,
+/**/                   0x00000000, 0x3FF06000,
+/**/                   0xC1163FF0, 0xBF3E2D85,
+/**/                   0xD3D00000, 0xBF974321,
+/**/                   0x0FE94778, 0xBCFB4A69,
+/**/                   0x00000000, 0x3FF05800,
+/**/                   0x27586632, 0x3F3EEA07,
+/**/                   0x78690000, 0xBF963D61,
+/**/                   0x89596542, 0xBD07ABF3,
+/**/                   0x00000000, 0x3FF05400,
+/**/                   0x98E2A5E7, 0x3F3C23BB,
+/**/                   0xF45F0000, 0xBF9537E3,
+/**/                   0xD2D7F253, 0xBD2AB259,
+/**/                   0x00000000, 0x3FF05000,
+/**/                   0x73404146, 0x3F397F7D,
+/**/                   0x25980000, 0xBF9432A9,
+/**/                   0x928637FE, 0xBD098139,
+/**/                   0x00000000, 0x3FF04C00,
+/**/                   0xB0C7B49A, 0x3F36FD32,
+/**/                   0xEA130000, 0xBF932DB0,
+/**/                   0x130895FC, 0xBD2710CB,
+/**/                   0x00000000, 0x3FF04800,
+/**/                   0x664C578A, 0x3F349CC1,
+/**/                   0x1FEA0000, 0xBF9228FB,
+/**/                   0x284991FE, 0xBD2713E3,
+/**/                   0x00000000, 0x3FF04400,
+/**/                   0xC2FCB1F4, 0x3F325E0F,
+/**/                   0xA5500000, 0xBF912487,
+/**/                   0xFED4B393, 0xBD3FDBE5,
+/**/                   0x00000000, 0x3FF04000,
+/**/                   0x10410410, 0x3F304104,
+/**/                   0x58930000, 0xBF902056,
+/**/                   0x7C8E8417, 0xBD3611D2,
+/**/                   0x00000000, 0x3FF03C00,
+/**/                   0x6334030B, 0x3F2C8B09,
+/**/                   0x30340000, 0xBF8E38CE,
+/**/                   0xA3DA281A, 0x3D39DE88,
+/**/                   0x00000000, 0x3FF03800,
+/**/                   0x48FF7E3A, 0x3F28D6F0,
+/**/                   0x84C80000, 0xBF8C3173,
+/**/                   0xFCEFB9FE, 0x3D341F33,
+/**/                   0x00000000, 0x3FF03400,
+/**/                   0x0081A559, 0x3F25658A,
+/**/                   0x6C180000, 0xBF8A2A9C,
+/**/                   0x4D6D3472, 0x3D3F73BC,
+/**/                   0x00000000, 0x3FF03000,
+/**/                   0xEBC349DE, 0x3F2236A3,
+/**/                   0xA3880000, 0xBF882448,
+/**/                   0x12C584E0, 0xBD345544,
+/**/                   0x00000000, 0x3FF02C00,
+/**/                   0x3FEFD386, 0x3F1E9417,
+/**/                   0xE8B60000, 0xBF861E77,
+/**/                   0xEAF8EAF3, 0x3D38073E,
+/**/                   0x00000000, 0x3FF02800,
+/**/                   0xCA7A317C, 0x3F193F1D,
+/**/                   0xF9680000, 0xBF841929,
+/**/                   0x55D01368, 0xBD1977C7,
+/**/                   0x00000000, 0x3FF02400,
+/**/                   0x6CB49652, 0x3F146DF7,
+/**/                   0x939E0000, 0xBF82145E,
+/**/                   0x38C4EA00, 0xBD3E3D12,
+/**/                   0x00000000, 0x3FF02000,
+/**/                   0x81020408, 0x3F102040,
+/**/                   0x75880000, 0xBF801015,
+/**/                   0x1998B506, 0xBD3BCE25,
+/**/                   0x00000000, 0x3FF01C00,
+/**/                   0x8C355D63, 0x3F08AB2B,
+/**/                   0xBB100000, 0xBF7C189C,
+/**/                   0x12588560, 0x3D3D8055,
+/**/                   0x00000000, 0x3FF01800,
+/**/                   0xBD1BA97E, 0x3F021B28,
+/**/                   0x14580000, 0xBF781212,
+/**/                   0x82973F27, 0xBD1AD503,
+/**/                   0x00000000, 0x3FF01400,
+/**/                   0x411155AB, 0x3EF91F67,
+/**/                   0x74780000, 0xBF740C8A,
+/**/                   0xDF070002, 0xBD1E3871,
+/**/                   0x00000000, 0x3FF01000,
+/**/                   0x10101010, 0x3EF01010,
+/**/                   0x59580000, 0xBF700805,
+/**/                   0xCB31C67B, 0xBD2166AF,
+/**/                   0x00000000, 0x3FF00C00,
+/**/                   0x279DB649, 0x3EE20D8A,
+/**/                   0x82880000, 0xBF680904,
+/**/                   0x96A70C0C, 0xBD285C06,
+/**/                   0x00000000, 0x3FF00800,
+/**/                   0x02010080, 0x3ED00804,
+/**/                   0x55D80000, 0xBF600401,
+/**/                   0xC7CC7089, 0x3D33BB10,
+/**/                   0x00000000, 0x3FF00400,
+/**/                   0x00401004, 0x3EB00401,
+/**/                   0x55600000, 0xBF500200,
+/**/                   0xCD5F35F8, 0xBD356224,
+/**/                   0x00000000, 0x3FF00000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x3FEFF800,
+/**/                   0xFF801FF8, 0x3EAFF801,
+/**/                   0xAA800000, 0x3F4FFC00,
+/**/                   0x7809A0A3, 0x3D35621F,
+/**/                   0x00000000, 0x3FEFF000,
+/**/                   0xFC01FF00, 0x3ECFF007,
+/**/                   0xA9B00000, 0x3F5FF802,
+/**/                   0x1D61C5EB, 0xBD33BC66,
+/**/                   0x00000000, 0x3FEFE800,
+/**/                   0x186DADBE, 0x3EE1F28A,
+/**/                   0x7D780000, 0x3F67F704,
+/**/                   0x89D68648, 0x3D283DA6,
+/**/                   0x00000000, 0x3FEFE000,
+/**/                   0xE01FE020, 0x3EEFE01F,
+/**/                   0xA2B00000, 0x3F6FF00A,
+/**/                   0xA086B56A, 0x3D20BC04,
+/**/                   0x00000000, 0x3FEFD800,
+/**/                   0xDF68BD14, 0x3EF8E0E6,
+/**/                   0x60F00000, 0x3F73F38A,
+/**/                   0x93C93749, 0x3D192256,
+/**/                   0x00000000, 0x3FEFD000,
+/**/                   0x439A981C, 0x3F01E528,
+/**/                   0xEBD80000, 0x3F77EE11,
+/**/                   0xC2D23A07, 0x3D0749D3,
+/**/                   0x00000000, 0x3FEFC800,
+/**/                   0x8596391C, 0x3F08556A,
+/**/                   0x70040000, 0x3F7BE79C,
+/**/                   0x9A6C0404, 0x3D38EC8F,
+/**/                   0x00000000, 0x3FEFC000,
+/**/                   0x01FC07F0, 0x3F0FC07F,
+/**/                   0x6B100000, 0x3F7FE02A,
+/**/                   0x0DDA40E4, 0x3D19E23F,
+/**/                   0x00000000, 0x3FEFB800,
+/**/                   0x9F5976B5, 0x3F1412D5,
+/**/                   0x2D1A0000, 0x3F81EBDE,
+/**/                   0xFF48DC36, 0xBD2A0683,
+/**/                   0x00000000, 0x3FEFB000,
+/**/                   0xBD271E34, 0x3F18C21A,
+/**/                   0x5D260000, 0x3F83E729,
+/**/                   0xFF29A114, 0xBD2609C1,
+/**/                   0x00000000, 0x3FEFA800,
+/**/                   0x5594A734, 0x3F1DEDB2,
+/**/                   0x03EC0000, 0x3F85E1F7,
+/**/                   0xF585DA1B, 0x3D37CA09,
+/**/                   0x00000000, 0x3FEFA000,
+/**/                   0x1FA11CAA, 0x3F21CAA0,
+/**/                   0x5F820000, 0x3F87DC47,
+/**/                   0x5B5DA1F5, 0xBD3EB124,
+/**/                   0x00000000, 0x3FEF9800,
+/**/                   0x55E8CB6B, 0x3F24DC34,
+/**/                   0xADC60000, 0x3F89D61A,
+/**/                   0x327B4257, 0x3D37B196,
+/**/                   0x00000000, 0x3FEF9000,
+/**/                   0x13BAF1B2, 0x3F282B68,
+/**/                   0x2C740000, 0x3F8BCF71,
+/**/                   0x97BD9771, 0x3D1C25E0,
+/**/                   0x00000000, 0x3FEF8800,
+/**/                   0xCC420861, 0x3F2BB80D,
+/**/                   0x19120000, 0x3F8DC84B,
+/**/                   0x1E3A5B30, 0x3D1C0A54,
+/**/                   0x00000000, 0x3FEF8000,
+/**/                   0x1F81F820, 0x3F2F81F8,
+/**/                   0xB0FC0000, 0x3F8FC0A8,
+/**/                   0xF6D3A69C, 0x3CDF1E7C,
+/**/                   0x00000000, 0x3FEF7800,
+/**/                   0xED1079FA, 0x3F31C47C,
+/**/                   0x18B00000, 0x3F90DC45,
+/**/                   0x380313FC, 0xBD29BC2F,
+/**/                   0x00000000, 0x3FEF7000,
+/**/                   0xFA98528D, 0x3F33E672,
+/**/                   0xEB9F0000, 0x3F91D7F7,
+/**/                   0x83FCC7A6, 0xBD14193A,
+/**/                   0x00000000, 0x3FEF6800,
+/**/                   0xCAFBD3D2, 0x3F3626C7,
+/**/                   0xEFB50000, 0x3F92D36C,
+/**/                   0x341706C3, 0x3D35F0BB,
+/**/                   0x00000000, 0x3FEF6000,
+/**/                   0x06DDABA6, 0x3F388565,
+/**/                   0x43470000, 0x3F93CEA4,
+/**/                   0x32D6A40B, 0xBD36A2C4,
+/**/                   0x00000000, 0x3FEF5800,
+/**/                   0x6CC4F5F5, 0x3F3B0234,
+/**/                   0x04900000, 0x3F94C99E,
+/**/                   0x5DF5F4A5, 0x3D1DECC6,
+/**/                   0x00000000, 0x3FEF5000,
+/**/                   0xD102728A, 0x3F3D9D1F,
+/**/                   0x51B90000, 0x3F95C45A,
+/**/                   0x216D87D8, 0xBD263BB6,
+/**/                   0x00000000, 0x3FEF5000,
+/**/                   0xE26A1DD4, 0xBF3FA9EE,
+/**/                   0x48D20000, 0x3F96BED9,
+/**/                   0x160A43F8, 0xBD320BC4,
+/**/                   0x00000000, 0x3FEF4800,
+/**/                   0xADEC7540, 0xBF3CD30D,
+/**/                   0x07D60000, 0x3F97B91B,
+/**/                   0xB602ACE4, 0xBD33B955,
+/**/                   0x00000000, 0x3FEF4000,
+/**/                   0x7C761DC6, 0xBF39DE52,
+/**/                   0xACAA0000, 0x3F98B31F,
+/**/                   0xA96E4964, 0xBD33FC78,
+/**/                   0x00000000, 0x3FEF3800,
+/**/                   0x23989FF0, 0xBF36CBD3,
+/**/                   0x551D0000, 0x3F99ACE7,
+/**/                   0x7EC7C410, 0xBD2D75D9,
+/**/                   0x00000000, 0x3FEF3000,
+/**/                   0x639F8B15, 0xBF339BA5,
+/**/                   0x1EE80000, 0x3F9AA672,
+/**/                   0x5C5AF494, 0x3D2AD4EB,
+/**/                   0x00000000, 0x3FEF2800,
+/**/                   0xE7AA579B, 0xBF304DDE,
+/**/                   0x27B00000, 0x3F9B9FC0,
+/**/                   0x0AE6922A, 0xBD3B9A01,
+/**/                   0x00000000, 0x3FEF2000,
+/**/                   0x8B8C46FD, 0xBF29C52A,
+/**/                   0x8D010000, 0x3F9C98D1,
+/**/                   0x0589DF0F, 0xBD2BF615,
+/**/                   0x00000000, 0x3FEF1800,
+/**/                   0xFE0E92B4, 0xBF22B3BB,
+/**/                   0x6C540000, 0x3F9D91A6,
+/**/                   0x658CFB9A, 0x3D2E61F1,
+/**/                   0x00000000, 0x3FEF1000,
+/**/                   0xFE8B488E, 0xBF16CF39,
+/**/                   0xE30D0000, 0x3F9E8A3E,
+/**/                   0x3DE53900, 0xBD21A9FA,
+/**/                   0x00000000, 0x3FEF0800,
+/**/                   0xF07C1F08, 0xBEFF07C1,
+/**/                   0x0E780000, 0x3F9F829B,
+/**/                   0x7C7E09E4, 0x3D298026,
+/**/                   0x00000000, 0x3FEF0000,
+/**/                   0x007C00F8, 0x3EFF003E,
+/**/                   0x85E70000, 0x3FA03D5D,
+/**/                   0x60ED29CF, 0x3D3F7789,
+/**/                   0x00000000, 0x3FEEF800,
+/**/                   0x3D759870, 0x3F17B671,
+/**/                   0x7C198000, 0x3FA0B94F,
+/**/                   0x6F022783, 0xBD2E8989,
+/**/                   0x00000000, 0x3FEEF000,
+/**/                   0x2A8BB96A, 0x3F241070,
+/**/                   0x78598000, 0x3FA13523,
+/**/                   0xB71FA59B, 0xBD1C1AC3,
+/**/                   0x00000000, 0x3FEEE800,
+/**/                   0x58E01EEA, 0x3F2C7F84,
+/**/                   0x89240000, 0x3FA1B0D9,
+/**/                   0x9AE889BB, 0xBD33401E,
+/**/                   0x00000000, 0x3FEEE000,
+/**/                   0xA3D491BC, 0x3F329425,
+/**/                   0xBCEA8000, 0x3FA22C71,
+/**/                   0xF87F888F, 0x3CFD2818,
+/**/                   0x00000000, 0x3FEED800,
+/**/                   0x9E9D2AE8, 0x3F37054D,
+/**/                   0x22150000, 0x3FA2A7EC,
+/**/                   0x7A9163FE, 0xBD278CE7,
+/**/                   0x00000000, 0x3FEED000,
+/**/                   0x540C85E6, 0x3F3B9325,
+/**/                   0xC7000000, 0x3FA32348,
+/**/                   0x90B1E49F, 0x3D2696DB,
+/**/                   0x00000000, 0x3FEED000,
+/**/                   0xF099FC26, 0xBF3FC267,
+/**/                   0xB9FE8000, 0x3FA39E87,
+/**/                   0x80AD9015, 0x3D3EAFD4,
+/**/                   0x00000000, 0x3FEEC800,
+/**/                   0xD02A4E5D, 0xBF3AFB6E,
+/**/                   0x09590000, 0x3FA419A9,
+/**/                   0x67D48EA7, 0x3D3B5CDC,
+/**/                   0x00000000, 0x3FEEC000,
+/**/                   0xD7A79FF1, 0xBF361803,
+/**/                   0xC34D8000, 0x3FA494AC,
+/**/                   0xA56FD247, 0x3D211C78,
+/**/                   0x00000000, 0x3FEEB800,
+/**/                   0x805C2197, 0xBF31183B,
+/**/                   0xF60F8000, 0x3FA50F92,
+/**/                   0x0A91FFE3, 0x3D296CFB,
+/**/                   0x00000000, 0x3FEEB000,
+/**/                   0x5FE15180, 0xBF27F854,
+/**/                   0xAFC90000, 0x3FA58A5B,
+/**/                   0x9570AD39, 0xBD2B2B73,
+/**/                   0x00000000, 0x3FEEA800,
+/**/                   0xE210C36A, 0xBF1B0F90,
+/**/                   0xFE990000, 0x3FA60506,
+/**/                   0x8194E036, 0xBD32BA40,
+/**/                   0x00000000, 0x3FEEA000,
+/**/                   0x8C33ADB2, 0xBEF6F7DD,
+/**/                   0xF0948000, 0x3FA67F94,
+/**/                   0x3E7E4ED7, 0x3D3ECC1F,
+/**/                   0x00000000, 0x3FEE9800,
+/**/                   0x1003D310, 0x3F1003D3,
+/**/                   0x93C78000, 0x3FA6FA05,
+/**/                   0x41D634A1, 0x3D3B415E,
+/**/                   0x00000000, 0x3FEE9000,
+/**/                   0x0B7672A0, 0x3F231ABF,
+/**/                   0xF6330000, 0x3FA77458,
+/**/                   0xE586AF09, 0xBD3181DC,
+/**/                   0x00000000, 0x3FEE8800,
+/**/                   0xCF172481, 0x3F2E6B5C,
+/**/                   0x25CD8000, 0x3FA7EE8F,
+/**/                   0x11A5C1E9, 0xBD3F4216,
+/**/                   0x00000000, 0x3FEE8000,
+/**/                   0x77A84876, 0x3F34F9CD,
+/**/                   0x30840000, 0x3FA868A8,
+/**/                   0x134AC693, 0xBD12623A,
+/**/                   0x00000000, 0x3FEE7800,
+/**/                   0xD7473427, 0x3F3AD9A8,
+/**/                   0x243A0000, 0x3FA8E2A4,
+/**/                   0x01426490, 0x3D2B9EEB,
+/**/                   0x00000000, 0x3FEE7800,
+/**/                   0x4578DCCA, 0xBF3F2AD3,
+/**/                   0x0EC90000, 0x3FA95C83,
+/**/                   0x97C5FEB8, 0xBD2C1482,
+/**/                   0x00000000, 0x3FEE7000,
+/**/                   0x97A6A035, 0xBF3913BA,
+/**/                   0xFDFF8000, 0x3FA9D644,
+/**/                   0x539A473B, 0x3D313C90,
+/**/                   0x00000000, 0x3FEE6800,
+/**/                   0xC594A915, 0xBF32E120,
+/**/                   0xFFA40000, 0x3FAA4FE9,
+/**/                   0xA0402925, 0xBD36E584,
+/**/                   0x00000000, 0x3FEE6000,
+/**/                   0xC5DF4232, 0xBF292632,
+/**/                   0x21710000, 0x3FAAC972,
+/**/                   0xF013222C, 0x3D2F8D3E,
+/**/                   0x00000000, 0x3FEE5800,
+/**/                   0xC3518A6E, 0xBF18A6DF,
+/**/                   0x71198000, 0x3FAB42DD,
+/**/                   0xE5D6704C, 0xBD1C827A,
+/**/                   0x00000000, 0x3FEE5000,
+/**/                   0x86833271, 0x3ED6BC08,
+/**/                   0xFC450000, 0x3FABBC2B,
+/**/                   0x91417DAF, 0xBD17D186,
+/**/                   0x00000000, 0x3FEE4800,
+/**/                   0xE672838D, 0x3F1BEB2D,
+/**/                   0xD0920000, 0x3FAC355D,
+/**/                   0x9ABF8388, 0x3D2F2CCC,
+/**/                   0x00000000, 0x3FEE4000,
+/**/                   0x9785150A, 0x3F2B6B8D,
+/**/                   0xFB960000, 0x3FACAE72,
+/**/                   0x2025B1BE, 0xBD3EFABF,
+/**/                   0x00000000, 0x3FEE3800,
+/**/                   0xE0D399FA, 0x3F348BCE,
+/**/                   0x8ADB0000, 0x3FAD276B,
+/**/                   0xC78A64B0, 0x3D16A423,
+/**/                   0x00000000, 0x3FEE3000,
+/**/                   0x933AC00F, 0x3F3B7CD0,
+/**/                   0x8BE38000, 0x3FADA047,
+/**/                   0xB1F6FE05, 0x3D2252C7,
+/**/                   0x00000000, 0x3FEE3000,
+/**/                   0x308F5281, 0xBF3D7747,
+/**/                   0x0C278000, 0x3FAE1907,
+/**/                   0x64629E86, 0xBD2FEA46,
+/**/                   0x00000000, 0x3FEE2800,
+/**/                   0x6C196F66, 0xBF36508B,
+/**/                   0x19150000, 0x3FAE91AA,
+/**/                   0x1DCC6A76, 0xBD0E82A0,
+/**/                   0x00000000, 0x3FEE2000,
+/**/                   0x1E1E1E1E, 0xBF2E1E1E,
+/**/                   0xC0118000, 0x3FAF0A30,
+/**/                   0x83368E91, 0xBD2D599E,
+/**/                   0x00000000, 0x3FEE1800,
+/**/                   0xDD355CDB, 0xBF1ECB93,
+/**/                   0x0E780000, 0x3FAF829B,
+/**/                   0x7C7E09E4, 0x3D398026,
+/**/                   0x00000000, 0x3FEE1000,
+/**/                   0x7C01E100, 0xBECE0FF8,
+/**/                   0x119B8000, 0x3FAFFAE9,
+/**/                   0x4262C554, 0x3D230337,
+/**/                   0x00000000, 0x3FEE0800,
+/**/                   0x25C73724, 0x3F1D54B5,
+/**/                   0x6B624000, 0x3FB0398D,
+/**/                   0xFCBFCD00, 0xBD3AB14D,
+/**/                   0x00000000, 0x3FEE0000,
+/**/                   0x1E01E01E, 0x3F2E01E0,
+/**/                   0x35990000, 0x3FB07598,
+/**/                   0xE4B59987, 0xBD3B8ECF,
+/**/                   0x00000000, 0x3FEDF800,
+/**/                   0xC84194BA, 0x3F36C715,
+/**/                   0xEE0D0000, 0x3FB0B194,
+/**/                   0x4F69EDCC, 0x3D3666EA,
+/**/                   0x00000000, 0x3FEDF000,
+/**/                   0xEF26D838, 0x3F3EA78B,
+/**/                   0x9B554000, 0x3FB0ED83,
+/**/                   0x6D48ABB4, 0xBD3901F4,
+/**/                   0x00000000, 0x3FEDF000,
+/**/                   0xF10995DC, 0xBF395DBF,
+/**/                   0x44030000, 0x3FB12964,
+/**/                   0x751AA773, 0xBD3D53BB,
+/**/                   0x00000000, 0x3FEDE800,
+/**/                   0x3BCBADC8, 0xBF3148E0,
+/**/                   0xEEA38000, 0x3FB16536,
+/**/                   0x768FA309, 0xBD147C5E,
+/**/                   0x00000000, 0x3FEDE000,
+/**/                   0x86E25CE1, 0xBF2233CE,
+/**/                   0xA1BF8000, 0x3FB1A0FB,
+/**/                   0xC319D6DC, 0x3D24A3FC,
+/**/                   0x00000000, 0x3FEDD800,
+/**/                   0x26B3FE23, 0xBEEA1CE9,
+/**/                   0x63DB0000, 0x3FB1DCB2,
+/**/                   0x5E9E8981, 0x3D39444F,
+/**/                   0x00000000, 0x3FEDD000,
+/**/                   0x0AB71710, 0x3F1E4836,
+/**/                   0x3B75C000, 0x3FB2185B,
+/**/                   0xF8F32304, 0xBD3E3189,
+/**/                   0x00000000, 0x3FEDC800,
+/**/                   0x00EE500F, 0x3F300EE5,
+/**/                   0x2F0A0000, 0x3FB253F6,
+/**/                   0xFB69A701, 0x3D3416F8,
+/**/                   0x00000000, 0x3FEDC000,
+/**/                   0x231C226A, 0x3F38A58D,
+/**/                   0x450EC000, 0x3FB28F83,
+/**/                   0xAA119769, 0x3D3A8D75,
+/**/                   0x00000000, 0x3FEDC000,
+/**/                   0x14715D63, 0xBF3EAA0C,
+/**/                   0x83F5C000, 0x3FB2CB02,
+/**/                   0xCA657021, 0x3D3E1EE2,
+/**/                   0x00000000, 0x3FEDB800,
+/**/                   0x92AEFFC5, 0xBF35DFF8,
+/**/                   0xF22C8000, 0x3FB30673,
+/**/                   0x9DCF0BA5, 0x3D24C9E2,
+/**/                   0x00000000, 0x3FEDB000,
+/**/                   0x67E251A0, 0xBF29F894,
+/**/                   0x961BC000, 0x3FB341D7,
+/**/                   0x99837610, 0x3D31D092,
+/**/                   0x00000000, 0x3FEDA800,
+/**/                   0x1FF89620, 0xBF0FF896,
+/**/                   0x76284000, 0x3FB37D2D,
+/**/                   0x9B7FF15C, 0xBD2C60AA,
+/**/                   0x00000000, 0x3FEDA000,
+/**/                   0x076828BD, 0x3F145E70,
+/**/                   0x98B1C000, 0x3FB3B875,
+/**/                   0x94ACA313, 0xBD222415,
+/**/                   0x00000000, 0x3FED9800,
+/**/                   0xE567D573, 0x3F2C8F60,
+/**/                   0x04140000, 0x3FB3F3B0,
+/**/                   0xACDFCEC5, 0x3CEE2474,
+/**/                   0x00000000, 0x3FED9000,
+/**/                   0xF3FC4DA2, 0x3F379118,
+/**/                   0xBEA64000, 0x3FB42EDC,
+/**/                   0xEA7C9ACD, 0x3D1BC0EE,
+/**/                   0x00000000, 0x3FED9000,
+/**/                   0x049DE4C3, 0xBF3F0C3C,
+/**/                   0xCEBB4000, 0x3FB469FB,
+/**/                   0x4F257194, 0x3D3B663C,
+/**/                   0x00000000, 0x3FED8800,
+/**/                   0xF13D5906, 0xBF35905F,
+/**/                   0x3AA1C000, 0x3FB4A50D,
+/**/                   0x308973E2, 0xBD2F7FE1,
+/**/                   0x00000000, 0x3FED8000,
+/**/                   0x77D1EA57, 0xBF27F6C8,
+/**/                   0x08A34000, 0x3FB4E011,
+/**/                   0xDF2C5AE5, 0x3D3AE5CF,
+/**/                   0x00000000, 0x3FED7800,
+/**/                   0xF4F31BA0, 0xBF026AD1,
+/**/                   0x3F060000, 0x3FB51B07,
+/**/                   0x278E686A, 0x3D383F69,
+/**/                   0x00000000, 0x3FED7000,
+/**/                   0xF26DF1BD, 0x3F1DE6B2,
+/**/                   0xE40B4000, 0x3FB555EF,
+/**/                   0x8C868E23, 0x3D30B497,
+/**/                   0x00000000, 0x3FED6800,
+/**/                   0x7BA23D96, 0x3F31599F,
+/**/                   0xFDF00000, 0x3FB590CA,
+/**/                   0x5722ABAA, 0x3D3C284F,
+/**/                   0x00000000, 0x3FED6000,
+/**/                   0xD425A760, 0x3F3B526C,
+/**/                   0x92ED4000, 0x3FB5CB98,
+/**/                   0xA64FC52F, 0x3D17BE44,
+/**/                   0x00000000, 0x3FED6000,
+/**/                   0x546A6FF1, 0xBF3A9BFC,
+/**/                   0xA9374000, 0x3FB60658,
+/**/                   0xDEE9C4F8, 0x3D30C3B1,
+/**/                   0x00000000, 0x3FED5800,
+/**/                   0x08F02FAC, 0xBF3071AD,
+/**/                   0x46FE8000, 0x3FB6410B,
+/**/                   0x3CBD8D14, 0xBD153F8F,
+/**/                   0x00000000, 0x3FED5000,
+/**/                   0x12C6C142, 0xBF18BAD9,
+/**/                   0x726EC000, 0x3FB67BB0,
+/**/                   0x69EF5912, 0x3CEF724B,
+/**/                   0x00000000, 0x3FED4800,
+/**/                   0x3254A5A2, 0x3F10B35C,
+/**/                   0x31B00000, 0x3FB6B648,
+/**/                   0x1377DE92, 0xBD3BF30A,
+/**/                   0x00000000, 0x3FED4000,
+/**/                   0x1D41D41D, 0x3F2D41D4,
+/**/                   0x8AE58000, 0x3FB6F0D2,
+/**/                   0x1B664613, 0xBD34B464,
+/**/                   0x00000000, 0x3FED3800,
+/**/                   0xF494E548, 0x3F392D71,
+/**/                   0x842EC000, 0x3FB72B4F,
+/**/                   0xC00C9DD3, 0xBD3704CC,
+/**/                   0x00000000, 0x3FED3800,
+/**/                   0xFF165C2E, 0xBF3C2DA1,
+/**/                   0x23A6C000, 0x3FB765BF,
+/**/                   0x35C4256A, 0xBCFECBC0,
+/**/                   0x00000000, 0x3FED3000,
+/**/                   0x7AA49674, 0xBF317062,
+/**/                   0x6F648000, 0x3FB7A021,
+/**/                   0xA18418FF, 0x3D3E124C,
+/**/                   0x00000000, 0x3FED2800,
+/**/                   0x749CB290, 0xBF1A6B80,
+/**/                   0x6D7B0000, 0x3FB7DA76,
+/**/                   0x4480C89B, 0x3D32CC84,
+/**/                   0x00000000, 0x3FED2000,
+/**/                   0x25C6336D, 0x3F114B52,
+/**/                   0x23F8C000, 0x3FB814BE,
+/**/                   0xDA82FDFD, 0x3CCB2381,
+/**/                   0x00000000, 0x3FED1800,
+/**/                   0xF08A3B1D, 0x3F2EB155,
+/**/                   0x98E84000, 0x3FB84EF8,
+/**/                   0x246977C9, 0xBD37D5CD,
+/**/                   0x00000000, 0x3FED1000,
+/**/                   0xBD71CD93, 0x3F3A7692,
+/**/                   0xD24FC000, 0x3FB88925,
+/**/                   0x44FBB806, 0xBD31D505,
+/**/                   0x00000000, 0x3FED1000,
+/**/                   0x89FC5E69, 0xBF3A5384,
+/**/                   0xD6318000, 0x3FB8C345,
+/**/                   0xACB42A66, 0x3D3B20F5,
+/**/                   0x00000000, 0x3FED0800,
+/**/                   0x6439240E, 0xBF2E0B56,
+/**/                   0xAA8C4000, 0x3FB8FD58,
+/**/                   0x1BCB725B, 0xBD3EEC90,
+/**/                   0x00000000, 0x3FED0000,
+/**/                   0x01CFF8C0, 0xBF0CFF8C,
+/**/                   0x55594000, 0x3FB9375E,
+/**/                   0x7380C364, 0x3D3EDDC3,
+/**/                   0x00000000, 0x3FECF800,
+/**/                   0x546D8D78, 0x3F1F7661,
+/**/                   0xDC8F8000, 0x3FB97156,
+/**/                   0x9AFDB97B, 0xBD3C1FC1,
+/**/                   0x00000000, 0x3FECF000,
+/**/                   0x25FE30D9, 0x3F3372E2,
+/**/                   0x46204000, 0x3FB9AB42,
+/**/                   0x26787061, 0xBD28A648,
+/**/                   0x00000000, 0x3FECE800,
+/**/                   0xD92305A6, 0x3F3F1FDB,
+/**/                   0x97F9C000, 0x3FB9E520,
+/**/                   0xB52DD050, 0x3D235FAC,
+/**/                   0x00000000, 0x3FECE800,
+/**/                   0x9C37FC63, 0xBF351B8A,
+/**/                   0xD8060000, 0x3FBA1EF1,
+/**/                   0x6DF97BCB, 0x3D3CD417,
+/**/                   0x00000000, 0x3FECE000,
+/**/                   0x6CB725AB, 0xBF227EC2,
+/**/                   0x0C2B4000, 0x3FBA58B6,
+/**/                   0x5C5C9F2A, 0xBD3CDC73,
+/**/                   0x00000000, 0x3FECD800,
+/**/                   0xE6C2B448, 0x3F05A240,
+/**/                   0x3A4AC000, 0x3FBA926D,
+/**/                   0x0BD22A9C, 0x3D356365,
+/**/                   0x00000000, 0x3FECD000,
+/**/                   0xFBB8D9F3, 0x3F2D7EC2,
+/**/                   0x68434000, 0x3FBACC17,
+/**/                   0xA0B7FA4C, 0xBD2AA783,
+/**/                   0x00000000, 0x3FECC800,
+/**/                   0x1B71D3E9, 0x3F3AE1DB,
+/**/                   0x9BEE4000, 0x3FBB05B4,
+/**/                   0x18F84A5E, 0x3D0FF22C,
+/**/                   0x00000000, 0x3FECC800,
+/**/                   0xCD6DE82D, 0xBF38E45A,
+/**/                   0xDB220000, 0x3FBB3F44,
+/**/                   0xD8DE09AF, 0x3D3FD153,
+/**/                   0x00000000, 0x3FECC000,
+/**/                   0xE341926A, 0xBF29269F,
+/**/                   0x2BB10000, 0x3FBB78C8,
+/**/                   0xBC3987E7, 0xBD325EF7,
+/**/                   0x00000000, 0x3FECB800,
+/**/                   0xF620C1DA, 0xBEC589FB,
+/**/                   0x93690000, 0x3FBBB23E,
+/**/                   0x3559DB8B, 0xBD368B18,
+/**/                   0x00000000, 0x3FECB000,
+/**/                   0x0DE5FF1A, 0x3F28A893,
+/**/                   0x18148000, 0x3FBBEBA8,
+/**/                   0xB6DF1F57, 0xBD389B78,
+/**/                   0x00000000, 0x3FECA800,
+/**/                   0x0039563B, 0x3F38EAB9,
+/**/                   0xBF79C000, 0x3FBC2504,
+/**/                   0xD0EF4ADC, 0x3D3717C4,
+/**/                   0x00000000, 0x3FECA800,
+/**/                   0x08F377F2, 0xBF3A67D5,
+/**/                   0x8F5BC000, 0x3FBC5E54,
+/**/                   0x585FBE06, 0x3D1D0C57,
+/**/                   0x00000000, 0x3FECA000,
+/**/                   0x072792E4, 0xBF2B46E0,
+/**/                   0x8D790000, 0x3FBC9797,
+/**/                   0x977D1884, 0xBD36E010,
+/**/                   0x00000000, 0x3FEC9800,
+/**/                   0x1BB327C3, 0xBEE904EA,
+/**/                   0xBF8C0000, 0x3FBCD0CD,
+/**/                   0xB50DD743, 0x3D33E14D,
+/**/                   0x00000000, 0x3FEC9000,
+/**/                   0x77683AEC, 0x3F2853EB,
+/**/                   0x2B4C4000, 0x3FBD09F7,
+/**/                   0x00354E33, 0x3D2048C0,
+/**/                   0x00000000, 0x3FEC8800,
+/**/                   0xDC52100E, 0x3F3932D7,
+/**/                   0xD66CC000, 0x3FBD4313,
+/**/                   0x79135713, 0xBD294543,
+/**/                   0x00000000, 0x3FEC8800,
+/**/                   0x2736962B, 0xBF39AD90,
+/**/                   0xC69CC000, 0x3FBD7C23,
+/**/                   0xDD328771, 0xBD297EE4,
+/**/                   0x00000000, 0x3FEC8000,
+/**/                   0xF316B4C2, 0xBF28EEA2,
+/**/                   0x0187C000, 0x3FBDB527,
+/**/                   0x56AE181F, 0x3D392778,
+/**/                   0x00000000, 0x3FEC7800,
+/**/                   0x058F7536, 0x3EEAB099,
+/**/                   0x8CD60000, 0x3FBDEE1D,
+/**/                   0x729EFF89, 0xBD328DA0,
+/**/                   0x00000000, 0x3FEC7000,
+/**/                   0x1C71C71C, 0x3F2C71C7,
+/**/                   0x6E2B0000, 0x3FBE2707,
+/**/                   0x2AF0003C, 0xBD2A342C,
+/**/                   0x00000000, 0x3FEC6800,
+/**/                   0xD6422A30, 0x3F3BB2BB,
+/**/                   0xAB274000, 0x3FBE5FE4,
+/**/                   0xF74FFE4D, 0xBD35FAE9,
+/**/                   0x00000000, 0x3FEC6800,
+/**/                   0x54BDE47E, 0xBF36BD01,
+/**/                   0x49670000, 0x3FBE98B5,
+/**/                   0x89C50E97, 0x3D346774,
+/**/                   0x00000000, 0x3FEC6000,
+/**/                   0xB5157FE4, 0xBF222CC5,
+/**/                   0x4E838000, 0x3FBED179,
+/**/                   0x749D0484, 0xBD1FD143,
+/**/                   0x00000000, 0x3FEC5800,
+/**/                   0xA930B840, 0x3F129A21,
+/**/                   0xC0118000, 0x3FBF0A30,
+/**/                   0x83368E91, 0xBD3D599E,
+/**/                   0x00000000, 0x3FEC5000,
+/**/                   0xAC5CEE14, 0x3F3279B1,
+/**/                   0xA3A24000, 0x3FBF42DB,
+/**/                   0x32DF6C0D, 0xBD3312B7,
+/**/                   0x00000000, 0x3FEC5000,
+/**/                   0xD4AB8D0B, 0xBF3F9CF5,
+/**/                   0xFEC38000, 0x3FBF7B79,
+/**/                   0xE897ED01, 0xBD010987,
+/**/                   0x00000000, 0x3FEC4800,
+/**/                   0xCC17DAE4, 0xBF319D7C,
+/**/                   0xD6FF4000, 0x3FBFB40B,
+/**/                   0xB7B53B5B, 0x3D2C0BEC,
+/**/                   0x00000000, 0x3FEC4000,
+/**/                   0x01C3F8F0, 0xBF0C3F8F,
+/**/                   0x31DC0000, 0x3FBFEC91,
+/**/                   0xD1AE6607, 0xBD354555,
+/**/                   0x00000000, 0x3FEC3800,
+/**/                   0xAB1B8FFC, 0x3F254738,
+/**/                   0x0A6E0000, 0x3FC01285,
+/**/                   0x4805BF94, 0xBD1A8619,
+/**/                   0x00000000, 0x3FEC3000,
+/**/                   0x48B3C5D7, 0x3F38E51F,
+/**/                   0x42BF4000, 0x3FC02EBB,
+/**/                   0x5CE00E5D, 0xBD15A8FA,
+/**/                   0x00000000, 0x3FEC3000,
+/**/                   0x867E595E, 0xBF38C377,
+/**/                   0x449F6000, 0x3FC04AEB,
+/**/                   0x65CCD35C, 0x3D2AFA90,
+/**/                   0x00000000, 0x3FEC2800,
+/**/                   0x15FE3D95, 0xBF24AC6D,
+/**/                   0x12CA6000, 0x3FC06715,
+/**/                   0x9CDC0A3D, 0xBD2A4757,
+/**/                   0x00000000, 0x3FEC2000,
+/**/                   0x53B8CDAE, 0x3F10B34F,
+/**/                   0xAFFA2000, 0x3FC08338,
+/**/                   0xAC823E27, 0x3D30533C,
+/**/                   0x00000000, 0x3FEC1800,
+/**/                   0x3FABB0F6, 0x3F32C599,
+/**/                   0x1EE72000, 0x3FC09F56,
+/**/                   0x7157D1A8, 0xBD28F305,
+/**/                   0x00000000, 0x3FEC1800,
+/**/                   0x97CD1B6C, 0xBF3E8BF4,
+/**/                   0x6247A000, 0x3FC0BB6D,
+/**/                   0x3CCD04B3, 0x3D35464F,
+/**/                   0x00000000, 0x3FEC1000,
+/**/                   0xE3F1F8FC, 0xBF2F8FC7,
+/**/                   0x7CD08000, 0x3FC0D77E,
+/**/                   0x2EE2F482, 0x3D3CB2CD,
+/**/                   0x00000000, 0x3FEC0800,
+/**/                   0x5B199F35, 0xBEEDC860,
+/**/                   0x7134C000, 0x3FC0F389,
+/**/                   0xE893D6C6, 0xBD3DA359,
+/**/                   0x00000000, 0x3FEC0000,
+/**/                   0x1C01C01C, 0x3F2C01C0,
+/**/                   0x42254000, 0x3FC10F8E,
+/**/                   0x43396307, 0xBD293B38,
+/**/                   0x00000000, 0x3FEBF800,
+/**/                   0x256228AA, 0x3F3D0577,
+/**/                   0xF2518000, 0x3FC12B8C,
+/**/                   0x13C0A0FC, 0x3D348A4A,
+/**/                   0x00000000, 0x3FEBF800,
+/**/                   0xCB93A8A1, 0xBF33E08B,
+/**/                   0x84674000, 0x3FC14785,
+/**/                   0x1027C750, 0x3D156345,
+/**/                   0x00000000, 0x3FEBF000,
+/**/                   0x1DE63F4A, 0xBF12C4DB,
+/**/                   0xFB124000, 0x3FC16377,
+/**/                   0xBF41763E, 0x3D091E1A,
+/**/                   0x00000000, 0x3FEBE800,
+/**/                   0x769F9E4F, 0x3F2526D0,
+/**/                   0x58FCA000, 0x3FC17F64,
+/**/                   0xD093C8DC, 0x3D2843FA,
+/**/                   0x00000000, 0x3FEBE000,
+/**/                   0x5292D891, 0x3F39ED43,
+/**/                   0xA0CEE000, 0x3FC19B4A,
+/**/                   0x9621338B, 0xBD3D8824,
+/**/                   0x00000000, 0x3FEBE000,
+/**/                   0x5FC845A9, 0xBF36A3B3,
+/**/                   0xD52F6000, 0x3FC1B72A,
+/**/                   0x1811A396, 0x3D2E80A4,
+/**/                   0x00000000, 0x3FEBD800,
+/**/                   0xB7230491, 0xBF1C7E26,
+/**/                   0xF8C36000, 0x3FC1D304,
+/**/                   0xDF451042, 0xBD3A6D44,
+/**/                   0x00000000, 0x3FEBD000,
+/**/                   0x451B61CB, 0x3F20F365,
+/**/                   0x0E2DC000, 0x3FC1EED9,
+/**/                   0x7097648F, 0x3D161563,
+/**/                   0x00000000, 0x3FEBC800,
+/**/                   0xD72DD0AA, 0x3F3827F3,
+/**/                   0x18102000, 0x3FC20AA7,
+/**/                   0x348552FE, 0x3D3F2C94,
+/**/                   0x00000000, 0x3FEBC800,
+/**/                   0xBE0C262F, 0xBF3814D3,
+/**/                   0x190A6000, 0x3FC2266F,
+/**/                   0xB840E7F6, 0xBD24D20A,
+/**/                   0x00000000, 0x3FEBC000,
+/**/                   0x7ECECB53, 0xBF207963,
+/**/                   0x13BA6000, 0x3FC24231,
+/**/                   0x78EE9D9C, 0xBD3E3A00,
+/**/                   0x00000000, 0x3FEBB800,
+/**/                   0xF29268D3, 0x3F1EC130,
+/**/                   0x0ABC6000, 0x3FC25DED,
+/**/                   0x4F176449, 0x3D35A385,
+/**/                   0x00000000, 0x3FEBB000,
+/**/                   0xAB6353BF, 0x3F37B218,
+/**/                   0x00AB4000, 0x3FC279A3,
+/**/                   0xB3235108, 0x3D3EF432,
+/**/                   0x00000000, 0x3FEBB000,
+/**/                   0xF2298376, 0xBF383759,
+/**/                   0xF8200000, 0x3FC29552,
+/**/                   0xF4471DFC, 0xBD35B967,
+/**/                   0x00000000, 0x3FEBA800,
+/**/                   0x1EAD4253, 0xBF201832,
+/**/                   0xF3B1A000, 0x3FC2B0FC,
+/**/                   0xE30A59EA, 0x3D177CA3,
+/**/                   0x00000000, 0x3FEBA000,
+/**/                   0xD84886B1, 0x3F20679B,
+/**/                   0xF5F60000, 0x3FC2CCA0,
+/**/                   0x91AFF120, 0xBD3B5EF1,
+/**/                   0x00000000, 0x3FEB9800,
+/**/                   0xA41FEB4C, 0x3F38884D,
+/**/                   0x0180E000, 0x3FC2E83F,
+/**/                   0xC284E1CE, 0xBD3F0C2A,
+/**/                   0x00000000, 0x3FEB9800,
+/**/                   0x3806E548, 0xBF370EA7,
+/**/                   0x18E48000, 0x3FC303D7,
+/**/                   0xCE3ECB05, 0xBCD680B5,
+/**/                   0x00000000, 0x3FEB9000,
+/**/                   0xB5EF34C0, 0xBF1A4477,
+/**/                   0x3EB1A000, 0x3FC31F69,
+/**/                   0xE5A396FB, 0xBD2A6726,
+/**/                   0x00000000, 0x3FEB8800,
+/**/                   0x9401B894, 0x3F2401B8,
+/**/                   0x75770000, 0x3FC33AF5,
+/**/                   0xA2FE72A5, 0x3D3C9ECC,
+/**/                   0x00000000, 0x3FEB8000,
+/**/                   0x400DC1AA, 0x3F3AA73A,
+/**/                   0xBFC22000, 0x3FC3567B,
+/**/                   0x53991A1F, 0x3D3250D2,
+/**/                   0x00000000, 0x3FEB8000,
+/**/                   0x2E63A6A8, 0xBF349E11,
+/**/                   0x201E8000, 0x3FC371FC,
+/**/                   0x9B2D8ABC, 0x3D3EE877,
+/**/                   0x00000000, 0x3FEB7800,
+/**/                   0xC8DA04B9, 0xBF0E7898,
+/**/                   0x99164000, 0x3FC38D76,
+/**/                   0x9E39BB70, 0x3D1844A5,
+/**/                   0x00000000, 0x3FEB7000,
+/**/                   0xE6B33E2D, 0x3F2A284E,
+/**/                   0x2D31A000, 0x3FC3A8EB,
+/**/                   0x7D5D503E, 0x3D1BAFB7,
+/**/                   0x00000000, 0x3FEB6800,
+/**/                   0x759C2BB4, 0x3F3E0B91,
+/**/                   0xDEF76000, 0x3FC3C459,
+/**/                   0xF6B70D33, 0x3D3EDC86,
+/**/                   0x00000000, 0x3FEB6800,
+/**/                   0x088FD6E7, 0xBF30E8E2,
+/**/                   0xB0ECC000, 0x3FC3DFC2,
+/**/                   0x62B8C13F, 0x3D28A72A,
+/**/                   0x00000000, 0x3FEB6000,
+/**/                   0xD801B600, 0x3ECB6006,
+/**/                   0xA5952000, 0x3FC3FB25,
+/**/                   0x6B358FF7, 0x3D3195BE,
+/**/                   0x00000000, 0x3FEB5800,
+/**/                   0xD840F62C, 0x3F316A6A,
+/**/                   0xBF728000, 0x3FC41682,
+/**/                   0x081F849D, 0xBD210047,
+/**/                   0x00000000, 0x3FEB5800,
+/**/                   0x7DF8BD99, 0xBF3D4DEE,
+/**/                   0x01050000, 0x3FC431DA,
+/**/                   0x836E0391, 0x3D304837,
+/**/                   0x00000000, 0x3FEB5000,
+/**/                   0x7E4B17E5, 0xBF27E4B1,
+/**/                   0x6CCB8000, 0x3FC44D2B,
+/**/                   0x6135783C, 0xBD170CC1,
+/**/                   0x00000000, 0x3FEB4800,
+/**/                   0x55E6D8FE, 0x3F15F47D,
+/**/                   0x05430000, 0x3FC46877,
+/**/                   0xF8D5087E, 0xBD3D8145,
+/**/                   0x00000000, 0x3FEB4000,
+/**/                   0x0B803686, 0x3F37006D,
+/**/                   0xCCE6E000, 0x3FC483BC,
+/**/                   0x723F6369, 0x3D1EEA52,
+/**/                   0x00000000, 0x3FEB4000,
+/**/                   0x46A66920, 0xBF37687C,
+/**/                   0xC6314000, 0x3FC49EFC,
+/**/                   0x9F55572B, 0xBD090F59,
+/**/                   0x00000000, 0x3FEB3800,
+/**/                   0xFF2645BE, 0xBF16F6A4,
+/**/                   0xF39A6000, 0x3FC4BA36,
+/**/                   0xB3F219E5, 0xBD34354B,
+/**/                   0x00000000, 0x3FEB3000,
+/**/                   0x1801B318, 0x3F2801B3,
+/**/                   0x5798E000, 0x3FC4D56B,
+/**/                   0x15A96555, 0x3D380580,
+/**/                   0x00000000, 0x3FEB2800,
+/**/                   0x93511680, 0x3F3DD2FF,
+/**/                   0xF4A24000, 0x3FC4F099,
+/**/                   0xFAFEAF27, 0xBD3E9BF2,
+/**/                   0x00000000, 0x3FEB2800,
+/**/                   0xA89DCCAC, 0xBF304743,
+/**/                   0xCD29C000, 0x3FC50BC2,
+/**/                   0x28DB8D4F, 0x3D1ADA57,
+/**/                   0x00000000, 0x3FEB2000,
+/**/                   0x406C80D9, 0x3EFB2036,
+/**/                   0xE3A1C000, 0x3FC526E5,
+/**/                   0x37FC5238, 0xBD3790BA,
+/**/                   0x00000000, 0x3FEB1800,
+/**/                   0x4F9DC00E, 0x3F33BEC8,
+/**/                   0x3A7A8000, 0x3FC54203,
+/**/                   0xED855F0E, 0x3D268D68,
+/**/                   0x00000000, 0x3FEB1800,
+/**/                   0x44F8CE7E, 0xBF3A2101,
+/**/                   0xD4232000, 0x3FC55D1A,
+/**/                   0xDDA647E8, 0x3D3ADD94,
+/**/                   0x00000000, 0x3FEB1000,
+/**/                   0xB99AF3F3, 0xBF1FB596,
+/**/                   0xB3092000, 0x3FC5782C,
+/**/                   0x51794442, 0xBD33A463,
+/**/                   0x00000000, 0x3FEB0800,
+/**/                   0x922A3E85, 0x3F24B31D,
+/**/                   0xD9982000, 0x3FC59338,
+/**/                   0xB7555D4A, 0x3CF0BA68,
+/**/                   0x00000000, 0x3FEB0000,
+/**/                   0xE19BF6B7, 0x3F3CB3CF,
+/**/                   0x4A3AA000, 0x3FC5AE3F,
+/**/                   0xF012A8B9, 0x3D21EA25,
+/**/                   0x00000000, 0x3FEB0000,
+/**/                   0x9A5BF0D1, 0xBF30DEAE,
+/**/                   0x07598000, 0x3FC5C940,
+/**/                   0x8CD23322, 0xBD3A8D94,
+/**/                   0x00000000, 0x3FEAF800,
+/**/                   0x9EDE13CE, 0x3EFA2072,
+/**/                   0x135BE000, 0x3FC5E43B,
+/**/                   0xCEED9C31, 0xBD343AB4,
+/**/                   0x00000000, 0x3FEAF000,
+/**/                   0x0D79435E, 0x3F3435E5,
+/**/                   0x70A7A000, 0x3FC5FF30,
+/**/                   0x183BEBF2, 0xBD38586F,
+/**/                   0x00000000, 0x3FEAF000,
+/**/                   0x06855D30, 0xBF392321,
+/**/                   0x21A0E000, 0x3FC61A20,
+/**/                   0x1BDF3CDD, 0x3D3DD9DD,
+/**/                   0x00000000, 0x3FEAE800,
+/**/                   0x7ABED811, 0xBF19A45C,
+/**/                   0x28AAA000, 0x3FC6350A,
+/**/                   0xAB8163AF, 0x3D2D5EC0,
+/**/                   0x00000000, 0x3FEAE000,
+/**/                   0x84EF68CB, 0x3F28C7ED,
+/**/                   0x88260000, 0x3FC64FEE,
+/**/                   0x759DDED6, 0xBD1DA40D,
+/**/                   0x00000000, 0x3FEAD800,
+/**/                   0xA482F00D, 0x3F3F43FC,
+/**/                   0x4272A000, 0x3FC66ACD,
+/**/                   0xBFC6C785, 0x3D3AA1BD,
+/**/                   0x00000000, 0x3FEAD800,
+/**/                   0xCDE3E7AE, 0xBF2B9222,
+/**/                   0x59EF0000, 0x3FC685A6,
+/**/                   0x6C103214, 0xBD21F2A9,
+/**/                   0x00000000, 0x3FEAD000,
+/**/                   0xEED254A3, 0x3F14F302,
+/**/                   0xD0F7A000, 0x3FC6A079,
+/**/                   0x448D14F5, 0x3D35A3F8,
+/**/                   0x00000000, 0x3FEAC800,
+/**/                   0x32071DEF, 0x3F385567,
+/**/                   0xA9E80000, 0x3FC6BB47,
+/**/                   0x23EA3296, 0x3D19F64D,
+/**/                   0x00000000, 0x3FEAC800,
+/**/                   0xD47F29D4, 0xBF347F29,
+/**/                   0xE719E000, 0x3FC6D60F,
+/**/                   0x57134767, 0xBD3BC6E5,
+/**/                   0x00000000, 0x3FEAC000,
+/**/                   0xE82D23BC, 0xBEF40FE1,
+/**/                   0x8AE56000, 0x3FC6F0D2,
+/**/                   0xC93373DA, 0x3D369737,
+/**/                   0x00000000, 0x3FEAB800,
+/**/                   0x972D8538, 0x3F320FDE,
+/**/                   0x97A1A000, 0x3FC70B8F,
+/**/                   0xF6A95BEF, 0x3D34EA64,
+/**/                   0x00000000, 0x3FEAB800,
+/**/                   0x66711513, 0xBF3A8C9F,
+/**/                   0x0FA40000, 0x3FC72647,
+/**/                   0x0E743A45, 0xBD3774DF,
+/**/                   0x00000000, 0x3FEAB000,
+/**/                   0x02806ABC, 0xBF1C5A0F,
+/**/                   0xF5404000, 0x3FC740F8,
+/**/                   0x99018AA1, 0xBD30B66C,
+/**/                   0x00000000, 0x3FEAA800,
+/**/                   0xD22C937A, 0x3F28E44B,
+/**/                   0x4AC8E000, 0x3FC75BA5,
+/**/                   0x8BC4A7C0, 0x3D3DDCA5,
+/**/                   0x00000000, 0x3FEAA800,
+/**/                   0xFF2ADFF3, 0xBF3FF2AD,
+/**/                   0x128F2000, 0x3FC7764C,
+/**/                   0x3479E3D1, 0x3D027490,
+/**/                   0x00000000, 0x3FEAA000,
+/**/                   0x0B3ADA5C, 0xBF288A16,
+/**/                   0x4EE26000, 0x3FC790ED,
+/**/                   0x4E7746F6, 0x3D199BBD,
+/**/                   0x00000000, 0x3FEA9800,
+/**/                   0x4C77B035, 0x3F1DEC0D,
+/**/                   0x0210E000, 0x3FC7AB89,
+/**/                   0x72534A58, 0xBD2BDB90,
+/**/                   0x00000000, 0x3FEA9000,
+/**/                   0x91F59E6B, 0x3F3B4D71,
+/**/                   0x2E674000, 0x3FC7C61F,
+/**/                   0xB31BE8E0, 0xBD32392D,
+/**/                   0x00000000, 0x3FEA9000,
+/**/                   0xB8A2A522, 0xBF30CDCB,
+/**/                   0xD630C000, 0x3FC7E0AF,
+/**/                   0x1D8F1034, 0x3D139E7C,
+/**/                   0x00000000, 0x3FEA8800,
+/**/                   0x6A2194A0, 0x3F094A00,
+/**/                   0xFBB76000, 0x3FC7FB3A,
+/**/                   0x24609D57, 0xBD37DBF5,
+/**/                   0x00000000, 0x3FEA8000,
+/**/                   0x870AC52E, 0x3F373289,
+/**/                   0xA1436000, 0x3FC815C0,
+/**/                   0xF9201CE8, 0xBD302A52,
+/**/                   0x00000000, 0x3FEA8000,
+/**/                   0x9E8684DD, 0xBF34B1FA,
+/**/                   0xC91BC000, 0x3FC83040,
+/**/                   0xC6E66F32, 0x3D3E5B71,
+/**/                   0x00000000, 0x3FEA7800,
+/**/                   0xA9267648, 0xBEE08AF5,
+/**/                   0x75866000, 0x3FC84ABB,
+/**/                   0xDF4E2BD2, 0xBD3D8DAA,
+/**/                   0x00000000, 0x3FEA7000,
+/**/                   0x1A3D927E, 0x3F33BB67,
+/**/                   0xA8C70000, 0x3FC86530,
+/**/                   0xCB4EA3E3, 0x3D398BB0,
+/**/                   0x00000000, 0x3FEA7000,
+/**/                   0x7F2C97F3, 0xBF37F2C9,
+/**/                   0x6520C000, 0x3FC87FA0,
+/**/                   0x401202FC, 0x3D322120,
+/**/                   0x00000000, 0x3FEA6800,
+/**/                   0x3C076D20, 0xBF0C77A5,
+/**/                   0xACD4E000, 0x3FC89A0A,
+/**/                   0xDA8F5A72, 0x3D2C0BFB,
+/**/                   0x00000000, 0x3FEA6000,
+/**/                   0x7C7EF82B, 0x3F30E6DA,
+/**/                   0x82236000, 0x3FC8B46F,
+/**/                   0x102DD7C9, 0x3D12D9F2,
+/**/                   0x00000000, 0x3FEA6000,
+/**/                   0x2EC05C44, 0xBF3A9167,
+/**/                   0xE74AE000, 0x3FC8CECE,
+/**/                   0xAA429BB5, 0xBD3A5BA0,
+/**/                   0x00000000, 0x3FEA5800,
+/**/                   0xEEB6BD53, 0xBF17DF12,
+/**/                   0xDE886000, 0x3FC8E928,
+/**/                   0xB13D72D5, 0x3D3A8154,
+/**/                   0x00000000, 0x3FEA5000,
+/**/                   0x98C70AE6, 0x3F2D676D,
+/**/                   0x6A180000, 0x3FC9037D,
+/**/                   0x57C1C8D9, 0x3D230DEA,
+/**/                   0x00000000, 0x3FEA5000,
+/**/                   0x96CE4780, 0xBF3C8EFF,
+/**/                   0x8C340000, 0x3FC91DCC,
+/**/                   0xBDDEFF46, 0x3D37BC6A,
+/**/                   0x00000000, 0x3FEA4800,
+/**/                   0x71EFFCB7, 0xBF1EFFCB,
+/**/                   0x4715A000, 0x3FC93816,
+/**/                   0x6A3A39D9, 0xBD34C63D,
+/**/                   0x00000000, 0x3FEA4000,
+/**/                   0x1A41A41A, 0x3F2A41A4,
+/**/                   0x9CF46000, 0x3FC9525A,
+/**/                   0x7D9F158F, 0xBD329713,
+/**/                   0x00000000, 0x3FEA4000,
+/**/                   0xBF3B3C0E, 0xBF3DECBB,
+/**/                   0x9006A000, 0x3FC96C99,
+/**/                   0x9CBB452C, 0x3D2A88D5,
+/**/                   0x00000000, 0x3FEA3800,
+/**/                   0x3BCD35A8, 0xBF21D14E,
+/**/                   0x22818000, 0x3FC986D3,
+/**/                   0x4DD44000, 0x3CF93B56,
+/**/                   0x00000000, 0x3FEA3000,
+/**/                   0x3B5832C0, 0x3F285A0A,
+/**/                   0x56988000, 0x3FC9A107,
+/**/                   0x242CD098, 0x3D264AA6,
+/**/                   0x00000000, 0x3FEA3000,
+/**/                   0xD71AFD8C, 0xBF3EABC1,
+/**/                   0x2E7E0000, 0x3FC9BB36,
+/**/                   0xA1CE0FFC, 0xBD21F2A8,
+/**/                   0x00000000, 0x3FEA2800,
+/**/                   0x7C041611, 0xBF22E60D,
+/**/                   0xAC62E000, 0x3FC9D55F,
+/**/                   0xFC3B5BC3, 0xBD3F4669,
+/**/                   0x00000000, 0x3FEA2000,
+/**/                   0x5FF2EF43, 0x3F27AE57,
+/**/                   0xD276A000, 0x3FC9EF83,
+/**/                   0xB3F9CE00, 0xBD2730B7,
+/**/                   0x00000000, 0x3FEA2000,
+/**/                   0x3D66322E, 0xBF3ECD35,
+/**/                   0xA2E7A000, 0x3FCA09A2,
+/**/                   0xCD411233, 0xBD2DD99D,
+/**/                   0x00000000, 0x3FEA1800,
+/**/                   0x5B4FE5E9, 0xBF22C068,
+/**/                   0x1FE2C000, 0x3FCA23BC,
+/**/                   0x91DC9F0B, 0xBD3539CD,
+/**/                   0x00000000, 0x3FEA1000,
+/**/                   0x80B67A9A, 0x3F283C48,
+/**/                   0x4B938000, 0x3FCA3DD0,
+/**/                   0x366E2C5A, 0x3D297DA1,
+/**/                   0x00000000, 0x3FEA1000,
+/**/                   0x89907BBA, 0xBF3E5236,
+/**/                   0x28244000, 0x3FCA57DF,
+/**/                   0xCA1D9ABB, 0x3D3B99C8,
+/**/                   0x00000000, 0x3FEA0800,
+/**/                   0x32054967, 0xBF21629E,
+/**/                   0xB7BE0000, 0x3FCA71E8,
+/**/                   0x6EF05323, 0xBD210ACA,
+/**/                   0x00000000, 0x3FEA0000,
+/**/                   0x1A01A01A, 0x3F2A01A0,
+/**/                   0xFC882000, 0x3FCA8BEC,
+/**/                   0xCF21B9CF, 0x3D3E3185,
+/**/                   0x00000000, 0x3FEA0000,
+/**/                   0x93FF301D, 0xBF3D3BE3,
+/**/                   0xF8A94000, 0x3FCAA5EB,
+/**/                   0x36951A8F, 0xBD32A0A9,
+/**/                   0x00000000, 0x3FE9F800,
+/**/                   0xBFE608ED, 0xBF1D9DD1,
+/**/                   0xAE462000, 0x3FCABFE5,
+/**/                   0x395F139D, 0xBD3B68F5,
+/**/                   0x00000000, 0x3FE9F000,
+/**/                   0x1B29257F, 0x3F2CFC26,
+/**/                   0x1F828000, 0x3FCAD9DA,
+/**/                   0xC803F050, 0xBD3882B7,
+/**/                   0x00000000, 0x3FE9F000,
+/**/                   0x7E613717, 0xBF3B8B57,
+/**/                   0x4E80C000, 0x3FCAF3C9,
+/**/                   0x3FCD9066, 0xBCBA4E63,
+/**/                   0x00000000, 0x3FE9E800,
+/**/                   0xB9FABD04, 0xBF160EF9,
+/**/                   0x3D620000, 0x3FCB0DB3,
+/**/                   0x38EAB906, 0x3D3FEE14,
+/**/                   0x00000000, 0x3FE9E000,
+/**/                   0xEAF850E2, 0x3F3094D3,
+/**/                   0xEE464000, 0x3FCB2797,
+/**/                   0x906D00A9, 0xBD3BE88A,
+/**/                   0x00000000, 0x3FE9E000,
+/**/                   0xBBE88FDC, 0xBF3941AA,
+/**/                   0x634BA000, 0x3FCB4177,
+/**/                   0x5666069F, 0x3D355D01,
+/**/                   0x00000000, 0x3FE9D800,
+/**/                   0x25F4B1AA, 0xBF083A25,
+/**/                   0x9E8FC000, 0x3FCB5B51,
+/**/                   0xEC011F31, 0xBD34B722,
+/**/                   0x00000000, 0x3FE9D000,
+/**/                   0xF71FAC14, 0x3F3343FB,
+/**/                   0xA22E4000, 0x3FCB7526,
+/**/                   0x2E785490, 0x3D2C0DBF,
+/**/                   0x00000000, 0x3FE9D000,
+/**/                   0x1965FF32, 0xBF365FF3,
+/**/                   0x70420000, 0x3FCB8EF6,
+/**/                   0x321788E0, 0x3D387533,
+/**/                   0x00000000, 0x3FE9C800,
+/**/                   0x9C8019C8, 0x3EA9C801,
+/**/                   0x0AE46000, 0x3FCBA8C1,
+/**/                   0x9EEE9D85, 0x3D3A32E2,
+/**/                   0x00000000, 0x3FE9C000,
+/**/                   0x25080CE1, 0x3F368A77,
+/**/                   0x742D8000, 0x3FCBC286,
+/**/                   0xF39D121C, 0x3D39AC53,
+/**/                   0x00000000, 0x3FE9C000,
+/**/                   0xC54763F2, 0xBF32E743,
+/**/                   0xAE344000, 0x3FCBDC46,
+/**/                   0x023D6505, 0x3D3625B4,
+/**/                   0x00000000, 0x3FE9B800,
+/**/                   0x8B7424F9, 0x3F0DBD49,
+/**/                   0xBB0E4000, 0x3FCBF601,
+/**/                   0x47C378B5, 0x3D2386A9,
+/**/                   0x00000000, 0x3FE9B000,
+/**/                   0x00CD9A67, 0x3F3A6734,
+/**/                   0x9CCFE000, 0x3FCC0FB7,
+/**/                   0x99E8A558, 0xBD346FFF,
+/**/                   0x00000000, 0x3FE9B000,
+/**/                   0xAEF25B7C, 0xBF2DB15A,
+/**/                   0x558C2000, 0x3FCC2968,
+/**/                   0xDEE38A40, 0xBD2CFD73,
+/**/                   0x00000000, 0x3FE9A800,
+/**/                   0xC140C073, 0x3F1FDFEC,
+/**/                   0xE754E000, 0x3FCC4313,
+/**/                   0x74CAD7D6, 0x3D3279BE,
+/**/                   0x00000000, 0x3FE9A000,
+/**/                   0xA7DCBEB3, 0x3F3ED923,
+/**/                   0x543AE000, 0x3FCC5CBA,
+/**/                   0xECB454FC, 0x3D20929D,
+/**/                   0x00000000, 0x3FE9A000,
+/**/                   0xB256DE2C, 0xBF246A7B,
+/**/                   0x9E4D6000, 0x3FCC765B,
+/**/                   0x36976F6C, 0x3D31AB6B,
+/**/                   0x00000000, 0x3FE99800,
+/**/                   0x9999999A, 0x3F299999,
+/**/                   0xC79AA000, 0x3FCC8FF7,
+/**/                   0x689F8434, 0xBD27794F,
+/**/                   0x00000000, 0x3FE99800,
+/**/                   0x3EC03FF3, 0xBF3C20C6,
+/**/                   0xD22F6000, 0x3FCCA98E,
+/**/                   0x8CA209C8, 0xBCF698C1,
+/**/                   0x00000000, 0x3FE99000,
+/**/                   0x31EC07FD, 0xBF13F803,
+/**/                   0xC0176000, 0x3FCCC320,
+/**/                   0x9A653794, 0x3D240903,
+/**/                   0x00000000, 0x3FE98800,
+/**/                   0x5AC98715, 0x3F323513,
+/**/                   0x935D2000, 0x3FCCDCAD,
+/**/                   0x34C9A447, 0xBD0A0FF0,
+/**/                   0x00000000, 0x3FE98800,
+/**/                   0x89F80661, 0xBF368793,
+/**/                   0x4E09C000, 0x3FCCF635,
+/**/                   0x9A07D55B, 0x3D277123,
+/**/                   0x00000000, 0x3FE98000,
+/**/                   0x8019801A, 0x3EE98019,
+/**/                   0xF2256000, 0x3FCD0FB7,
+/**/                   0x20633B29, 0xBD0AF52B,
+/**/                   0x00000000, 0x3FE97800,
+/**/                   0xAB329020, 0x3F382FC6,
+/**/                   0x81B6C000, 0x3FCD2935,
+/**/                   0x128AAA5F, 0xBD383270,
+/**/                   0x00000000, 0x3FE97800,
+/**/                   0x962DBFF3, 0xBF305C4B,
+/**/                   0xFEC36000, 0x3FCD42AD,
+/**/                   0xFD804272, 0xBD175C00,
+/**/                   0x00000000, 0x3FE97000,
+/**/                   0x970E4F81, 0x3F1C9F01,
+/**/                   0x6B4FC000, 0x3FCD5C21,
+/**/                   0xBBCA681B, 0xBD21BA91,
+/**/                   0x00000000, 0x3FE96800,
+/**/                   0x049160B8, 0x3F3EBBE1,
+/**/                   0xC95F0000, 0x3FCD758F,
+/**/                   0x8B4162AA, 0xBD15A10A,
+/**/                   0x00000000, 0x3FE96800,
+/**/                   0x9933FE6A, 0xBF233FE6,
+/**/                   0x1AF32000, 0x3FCD8EF9,
+/**/                   0xC364C784, 0xBD15105F,
+/**/                   0x00000000, 0x3FE96000,
+/**/                   0xCE078906, 0x3F2C2873,
+/**/                   0x620CE000, 0x3FCDA85D,
+/**/                   0xC16CC7EC, 0x3D240194,
+/**/                   0x00000000, 0x3FE96000,
+/**/                   0xE442936B, 0xBF3A27A0,
+/**/                   0xA0ABE000, 0x3FCDC1BC,
+/**/                   0xA628CCC6, 0x3D38FAC1,
+/**/                   0x00000000, 0x3FE95800,
+/**/                   0x548A97A9, 0xBF029C69,
+/**/                   0xD8CEA000, 0x3FCDDB16,
+/**/                   0x7104B8BC, 0xBD1EEF79,
+/**/                   0x00000000, 0x3FE95000,
+/**/                   0x9F74B92D, 0x3F35906B,
+/**/                   0x0C722000, 0x3FCDF46C,
+/**/                   0xB0B79039, 0x3D3A5E82,
+/**/                   0x00000000, 0x3FE95000,
+/**/                   0xF35927BC, 0xBF327BBF,
+/**/                   0x3D92A000, 0x3FCE0DBC,
+/**/                   0xF0529BF1, 0x3D359233,
+/**/                   0x00000000, 0x3FE94800,
+/**/                   0xDD3C0CA4, 0x3F161F9A,
+/**/                   0x6E2B0000, 0x3FCE2707,
+/**/                   0x2AF0003C, 0xBD3A342C,
+/**/                   0x00000000, 0x3FE94000,
+/**/                   0x41228A8F, 0x3F3D9B56,
+/**/                   0xA034C000, 0x3FCE404D,
+/**/                   0xE09A2799, 0xBD3187EE,
+/**/                   0x00000000, 0x3FE94000,
+/**/                   0x598A73F8, 0xBF2482F5,
+/**/                   0xD5A88000, 0x3FCE598E,
+/**/                   0xCF1E98A1, 0xBD0D134B,
+/**/                   0x00000000, 0x3FE93800,
+/**/                   0x3C1B9728, 0x3F2BE2D5,
+/**/                   0x107DA000, 0x3FCE72CB,
+/**/                   0xCDF5471C, 0x3D1DD48C,
+/**/                   0x00000000, 0x3FE93800,
+/**/                   0x2698CFF3, 0xBF39CC03,
+/**/                   0x52AA6000, 0x3FCE8C02,
+/**/                   0x80E8E6FF, 0xBD26805B,
+/**/                   0x00000000, 0x3FE93000,
+/**/                   0xB9F30358, 0xBEF79CD3,
+/**/                   0x9E23A000, 0x3FCEA534,
+/**/                   0x4C73CCB5, 0x3D381B93,
+/**/                   0x00000000, 0x3FE92800,
+/**/                   0x255BA00D, 0x3F36E803,
+/**/                   0xF4DD8000, 0x3FCEBE61,
+/**/                   0x30FDCA4D, 0xBD23D453,
+/**/                   0x00000000, 0x3FE92800,
+/**/                   0x36077742, 0xBF30A69B,
+/**/                   0x58CA8000, 0x3FCED78A,
+/**/                   0x3793387E, 0x3D16F1B5,
+/**/                   0x00000000, 0x3FE92000,
+/**/                   0x1C451AB3, 0x3F1F693A,
+/**/                   0xCBDC6000, 0x3FCEF0AD,
+/**/                   0x9C86AF24, 0xBD2B26B7,
+/**/                   0x00000000, 0x3FE92000,
+/**/                   0xC74EA9E2, 0xBF3F9548,
+/**/                   0x50036000, 0x3FCF09CC,
+/**/                   0x18D999DB, 0x3D3DA094,
+/**/                   0x00000000, 0x3FE91800,
+/**/                   0xF7C46911, 0xBF1BD5A8,
+/**/                   0xE72F2000, 0x3FCF22E5,
+/**/                   0x1417E41F, 0xBD3F454F,
+/**/                   0x00000000, 0x3FE91000,
+/**/                   0x0D83D1C6, 0x3F31B9E1,
+/**/                   0x934D6000, 0x3FCF3BFA,
+/**/                   0x937B903B, 0x3D2D9F2A,
+/**/                   0x00000000, 0x3FE91000,
+/**/                   0xF3795877, 0xBF35876F,
+/**/                   0x564B8000, 0x3FCF550A,
+/**/                   0xA09202FE, 0xBD2323E3,
+/**/                   0x00000000, 0x3FE90800,
+/**/                   0xBD1D87EC, 0x3F0A34CD,
+/**/                   0x32154000, 0x3FCF6E15,
+/**/                   0x7AC4EC74, 0xBD3C9A97,
+/**/                   0x00000000, 0x3FE90000,
+/**/                   0x0E760899, 0x3F3C23F5,
+/**/                   0x28956000, 0x3FCF871B,
+/**/                   0x6A526EFE, 0xBD3F75FD,
+/**/                   0x00000000, 0x3FE90000,
+/**/                   0xD0BE9594, 0xBF25DECD,
+/**/                   0x3BB58000, 0x3FCFA01C,
+/**/                   0xFAE1D786, 0xBD1A1F71,
+/**/                   0x00000000, 0x3FE8F800,
+/**/                   0xC18F9C19, 0x3F2C18F9,
+/**/                   0x6D5E4000, 0x3FCFB918,
+/**/                   0xAB993C87, 0xBD0D572A,
+/**/                   0x00000000, 0x3FE8F800,
+/**/                   0x8176594C, 0xBF38E868,
+/**/                   0xBF770000, 0x3FCFD20F,
+/**/                   0x72C6FE70, 0xBD11C55B,
+/**/                   0x00000000, 0x3FE8F000,
+/**/                   0x3C018F00, 0x3EC8F006,
+/**/                   0x33E60000, 0x3FCFEB02,
+/**/                   0x32D5E8C7, 0x3D2F316E,
+/**/                   0x00000000, 0x3FE8E800,
+/**/                   0xAD115384, 0x3F395B4D,
+/**/                   0xE6484000, 0x3FD001F7,
+/**/                   0x40C9ABBC, 0x3D38A957,
+/**/                   0x00000000, 0x3FE8E800,
+/**/                   0xEC8C0F90, 0xBF2AD850,
+/**/                   0x45AD5000, 0x3FD00E6C,
+/**/                   0x52E01203, 0x3CDCC68D,
+/**/                   0x00000000, 0x3FE8E000,
+/**/                   0xA56B1AA1, 0x3F27B6E9,
+/**/                   0x3913A000, 0x3FD01ADE,
+/**/                   0xCCDC1521, 0xBD108930,
+/**/                   0x00000000, 0x3FE8E000,
+/**/                   0x40DFC1D8, 0xBF3ACDE3,
+/**/                   0xC16C2000, 0x3FD0274D,
+/**/                   0x9CF835C2, 0x3D2979E8,
+/**/                   0x00000000, 0x3FE8D800,
+/**/                   0x317DF64C, 0xBEF68397,
+/**/                   0xDFA74000, 0x3FD033BA,
+/**/                   0x1485BDFF, 0x3D0C30BC,
+/**/                   0x00000000, 0x3FE8D000,
+/**/                   0x80C6980C, 0x3F380C69,
+/**/                   0x94B4D000, 0x3FD04025,
+/**/                   0x9EF42D7F, 0x3CF036B8,
+/**/                   0x00000000, 0x3FE8D000,
+/**/                   0x338C7FE7, 0xBF2CE006,
+/**/                   0xE1842000, 0x3FD04C8D,
+/**/                   0x512CEB86, 0xBD1FE6BA,
+/**/                   0x00000000, 0x3FE8C800,
+/**/                   0x1EFBBD63, 0x3F2644F0,
+/**/                   0xC703F000, 0x3FD058F3,
+/**/                   0xBCD236AD, 0xBD30E866,
+/**/                   0x00000000, 0x3FE8C800,
+/**/                   0xAA79217A, 0xBF3B3C2D,
+/**/                   0x46227000, 0x3FD06557,
+/**/                   0xB4868D6A, 0x3D0131DF,
+/**/                   0x00000000, 0x3FE8C000,
+/**/                   0x8062FF3A, 0xBEF8BFCE,
+/**/                   0x5FCD6000, 0x3FD071B8,
+/**/                   0xA3E01A11, 0xBD3BCB8B,
+/**/                   0x00000000, 0x3FE8B800,
+/**/                   0xBD2672C4, 0x3F383301,
+/**/                   0x14F1D000, 0x3FD07E17,
+/**/                   0x4F384BD5, 0xBD3EFCC6,
+/**/                   0x00000000, 0x3FE8B800,
+/**/                   0x9BFE749C, 0xBF2BFE74,
+/**/                   0x667C5000, 0x3FD08A73,
+/**/                   0x40C5A329, 0x3D3EBC1D,
+/**/                   0x00000000, 0x3FE8B000,
+/**/                   0xD4353EB3, 0x3F27BA8C,
+/**/                   0x55591000, 0x3FD096CD,
+/**/                   0x20550A31, 0x3D3F998D,
+/**/                   0x00000000, 0x3FE8B000,
+/**/                   0xA062B2E4, 0xBF3A3784,
+/**/                   0xE2739000, 0x3FD0A324,
+/**/                   0x7EF4030E, 0x3D0C6BEE,
+/**/                   0x00000000, 0x3FE8A800,
+/**/                   0x5E630281, 0xBECED1F6,
+/**/                   0x0EB6C000, 0x3FD0AF7A,
+/**/                   0x4945ADAD, 0x3D23CCF9,
+/**/                   0x00000000, 0x3FE8A000,
+/**/                   0x0C519CAE, 0x3F39CAE0,
+/**/                   0xDB0D2000, 0x3FD0BBCC,
+/**/                   0xCC5DCDFB, 0x3D32F32C,
+/**/                   0x00000000, 0x3FE8A000,
+/**/                   0x4EDBA5FD, 0xBF283C02,
+/**/                   0x4860B000, 0x3FD0C81D,
+/**/                   0x401D1731, 0xBD3E5BCF,
+/**/                   0x00000000, 0x3FE89800,
+/**/                   0x1899C0F6, 0x3F2C0F60,
+/**/                   0x579AB000, 0x3FD0D46B,
+/**/                   0xF640E1E6, 0x3D3D2C81,
+/**/                   0x00000000, 0x3FE89800,
+/**/                   0xBDBE51D0, 0xBF37C414,
+/**/                   0x09A43000, 0x3FD0E0B7,
+/**/                   0xA7862F2A, 0x3D32A038,
+/**/                   0x00000000, 0x3FE89000,
+/**/                   0xDD12CE7D, 0x3F03F540,
+/**/                   0x5F658000, 0x3FD0ED00,
+/**/                   0x285AA803, 0xBD22DC75,
+/**/                   0x00000000, 0x3FE88800,
+/**/                   0x400C45CD, 0x3F3CCFDE,
+/**/                   0x59C67000, 0x3FD0F947,
+/**/                   0x7F0818B6, 0xBD395261,
+/**/                   0x00000000, 0x3FE88800,
+/**/                   0x44FB66B5, 0xBF21A0F5,
+/**/                   0xF9AE5000, 0x3FD1058B,
+/**/                   0x817D52CD, 0xBD34AB9D,
+/**/                   0x00000000, 0x3FE88000,
+/**/                   0x2866A138, 0x3F319D95,
+/**/                   0x4003F000, 0x3FD111CE,
+/**/                   0x096B4B6B, 0xBD1B3237,
+/**/                   0x00000000, 0x3FE88000,
+/**/                   0xA48B49DA, 0xBF33E5FA,
+/**/                   0x2DADA000, 0x3FD11E0E,
+/**/                   0x8FCCE5BA, 0xBD2A47F8,
+/**/                   0x00000000, 0x3FE87800,
+/**/                   0xDEECB0A8, 0x3F1A9336,
+/**/                   0xC3912000, 0x3FD12A4B,
+/**/                   0x61473259, 0xBD35A750,
+/**/                   0x00000000, 0x3FE87800,
+/**/                   0xFB6A388D, 0xBF3EC219,
+/**/                   0x0293B000, 0x3FD13687,
+/**/                   0x99D67123, 0xBD3D3E84,
+/**/                   0x00000000, 0x3FE87000,
+/**/                   0xC1625090, 0xBF106AE7,
+/**/                   0xEB9A0000, 0x3FD142BF,
+/**/                   0x85B58A9E, 0x3D31CE61,
+/**/                   0x00000000, 0x3FE86800,
+/**/                   0xACD4200C, 0x3F369AE5,
+/**/                   0x7F887000, 0x3FD14EF6,
+/**/                   0x5DFC9794, 0xBD3E97A6,
+/**/                   0x00000000, 0x3FE86800,
+/**/                   0x9389D11C, 0xBF2D4286,
+/**/                   0xBF429000, 0x3FD15B2A,
+/**/                   0x49B629B2, 0xBD2D8E3B,
+/**/                   0x00000000, 0x3FE86000,
+/**/                   0x18618618, 0x3F286186,
+/**/                   0xABABA000, 0x3FD1675C,
+/**/                   0x731F55C4, 0x3D38380E,
+/**/                   0x00000000, 0x3FE86000,
+/**/                   0x6AC71708, 0xBF38EF0F,
+/**/                   0x45A67000, 0x3FD1738C,
+/**/                   0x0032C176, 0xBD39C6E9,
+/**/                   0x00000000, 0x3FE85800,
+/**/                   0xE00C2C20, 0x3EFFF3D3,
+/**/                   0x8E151000, 0x3FD17FB9,
+/**/                   0xA74A2684, 0xBD3A8A8B,
+/**/                   0x00000000, 0x3FE85000,
+/**/                   0xF9592266, 0x3F3CFBA0,
+/**/                   0x85D93000, 0x3FD18BE4,
+/**/                   0x6F3604AB, 0x3D3C167F,
+/**/                   0x00000000, 0x3FE85000,
+/**/                   0xFF3D87FA, 0xBF1FE7B0,
+/**/                   0x2DD42000, 0x3FD1980D,
+/**/                   0x7A361C9A, 0x3D2B7B3A,
+/**/                   0x00000000, 0x3FE84800,
+/**/                   0x918DC223, 0x3F331E8D,
+/**/                   0x86E68000, 0x3FD1A433,
+/**/                   0x634E0AAC, 0xBD07A850,
+/**/                   0x00000000, 0x3FE84800,
+/**/                   0x8D76B549, 0xBF31BAF9,
+/**/                   0x91F08000, 0x3FD1B057,
+/**/                   0x6DC55E2D, 0xBD32DD46,
+/**/                   0x00000000, 0x3FE84000,
+/**/                   0xDC90C512, 0x3F22F2EC,
+/**/                   0x4FD1D000, 0x3FD1BC79,
+/**/                   0x747BA7BE, 0xBD3CCF0C,
+/**/                   0x00000000, 0x3FE84000,
+/**/                   0x6A0916B9, 0xBF3B442A,
+/**/                   0xC169A000, 0x3FD1C898,
+/**/                   0xE5C62AFF, 0xBD381410,
+/**/                   0x00000000, 0x3FE83800,
+/**/                   0x83801838, 0x3EA83801,
+/**/                   0xE796A000, 0x3FD1D4B5,
+/**/                   0xD197BAC2, 0x3D222A5B,
+/**/                   0x00000000, 0x3FE83000,
+/**/                   0xCBD11C5C, 0x3F3B6A41,
+/**/                   0xC3371000, 0x3FD1E0D0,
+/**/                   0xA9B0D4A0, 0x3D3AF8F2,
+/**/                   0x00000000, 0x3FE83000,
+/**/                   0xCB7A3CD6, 0xBF225381,
+/**/                   0x5528B000, 0x3FD1ECE9,
+/**/                   0x09B4A3B8, 0xBD184E7B,
+/**/                   0x00000000, 0x3FE82800,
+/**/                   0x152500C1, 0x3F32500C,
+/**/                   0x9E48A000, 0x3FD1F8FF,
+/**/                   0x040CBE77, 0x3D27946C,
+/**/                   0x00000000, 0x3FE82800,
+/**/                   0x14902134, 0xBF32285F,
+/**/                   0x9F73B000, 0x3FD20513,
+/**/                   0x1609E0A4, 0x3CF6E15E,
+/**/                   0x00000000, 0x3FE82000,
+/**/                   0xA4018213, 0x3F22D9EB,
+/**/                   0x59861000, 0x3FD21125,
+/**/                   0xBA2950C4, 0x3D382E78,
+/**/                   0x00000000, 0x3FE82000,
+/**/                   0xFC6BBFF4, 0xBF3AEFFC,
+/**/                   0xCD5B9000, 0x3FD21D34,
+/**/                   0xB28BADAA, 0x3D3B552F,
+/**/                   0x00000000, 0x3FE81800,
+/**/                   0x18181818, 0x3EE81818,
+/**/                   0xFBCF8000, 0x3FD22941,
+/**/                   0xF5EB0963, 0xBD3A6976,
+/**/                   0x00000000, 0x3FE81000,
+/**/                   0x4FF0F3C6, 0x3F3C7F27,
+/**/                   0xE5BC9000, 0x3FD2354C,
+/**/                   0x0602A663, 0xBD3D78ED,
+/**/                   0x00000000, 0x3FE81000,
+/**/                   0x0A86941D, 0xBF1ED344,
+/**/                   0x8BFD1000, 0x3FD24155,
+/**/                   0x3228FCAD, 0x3D300FFF,
+/**/                   0x00000000, 0x3FE80800,
+/**/                   0x1B0BD52D, 0x3F3424D0,
+/**/                   0xEF6AF000, 0x3FD24D5B,
+/**/                   0xFC9FABDD, 0xBCBDD780,
+/**/                   0x00000000, 0x3FE80800,
+/**/                   0xFE7F9FE8, 0xBF2FE7F9,
+/**/                   0x10DF7000, 0x3FD25960,
+/**/                   0x224EA3E3, 0x3D38E7BC,
+/**/                   0x00000000, 0x3FE80000,
+/**/                   0x18018018, 0x3F280180,
+/**/                   0xF1338000, 0x3FD26561,
+/**/                   0x66FAA45F, 0x3D38B488,
+/**/                   0x00000000, 0x3FE80000,
+/**/                   0x5FF40180, 0xBF37FD00,
+/**/                   0x913F8000, 0x3FD27161,
+/**/                   0xF61564B4, 0x3D34F4F1,
+/**/                   0x00000000, 0x3FE7F800,
+/**/                   0x9750B6C7, 0x3F104AE8,
+/**/                   0xF1DB6000, 0x3FD27D5E,
+/**/                   0x78CAC9F4, 0xBD092374,
+/**/                   0x00000000, 0x3FE7F800,
+/**/                   0xF405FD01, 0xBF3FD017,
+/**/                   0x13DE8000, 0x3FD2895A,
+/**/                   0xD24C13F0, 0x3D3A8D7A,
+/**/                   0x00000000, 0x3FE7F000,
+/**/                   0xC9C5485E, 0xBF0D2BF1,
+/**/                   0xF81FF000, 0x3FD29552,
+/**/                   0x1771C408, 0x3D348D30,
+/**/                   0x00000000, 0x3FE7E800,
+/**/                   0xD029DB60, 0x3F38927F,
+/**/                   0x9F763000, 0x3FD2A149,
+/**/                   0x51F3AADC, 0xBD30DBBF,
+/**/                   0x00000000, 0x3FE7E800,
+/**/                   0xB0A45169, 0xBF26504A,
+/**/                   0x0AB73000, 0x3FD2AD3E,
+/**/                   0x488C359F, 0x3D2B972E,
+/**/                   0x00000000, 0x3FE7E000,
+/**/                   0xD278E8DD, 0x3F312A8A,
+/**/                   0x3AB8A000, 0x3FD2B930,
+/**/                   0xD6BFB0A5, 0xBD26DB12,
+/**/                   0x00000000, 0x3FE7E000,
+/**/                   0x24BB32E7, 0xBF327577,
+/**/                   0x304F8000, 0x3FD2C520,
+/**/                   0x8C342F39, 0x3D230852,
+/**/                   0x00000000, 0x3FE7D800,
+/**/                   0xA4B45AEC, 0x3F23EF9A,
+/**/                   0xEC508000, 0x3FD2D10D,
+/**/                   0xF7088353, 0x3D360C61,
+/**/                   0x00000000, 0x3FE7D800,
+/**/                   0x32748CC1, 0xBF398DAF,
+/**/                   0x6F8FD000, 0x3FD2DCF9,
+/**/                   0x8E33C9CE, 0x3D20B4A2,
+/**/                   0x00000000, 0x3FE7D000,
+/**/                   0x417D05F4, 0x3F07D05F,
+/**/                   0xBAE12000, 0x3FD2E8E2,
+/**/                   0x99B72BD8, 0xBD267B1E,
+/**/                   0x00000000, 0x3FE7C800,
+/**/                   0x431D3027, 0x3F3F8EF7,
+/**/                   0xCF17A000, 0x3FD2F4C9,
+/**/                   0x9374B87B, 0x3D371F04,
+/**/                   0x00000000, 0x3FE7C800,
+/**/                   0xDAD83E6C, 0xBF0E77A3,
+/**/                   0xAD063000, 0x3FD300AE,
+/**/                   0x8B75FCAC, 0x3D342F56,
+/**/                   0x00000000, 0x3FE7C000,
+/**/                   0x588D1676, 0x3F38E041,
+/**/                   0x557F2000, 0x3FD30C91,
+/**/                   0xA1451755, 0xBD142958,
+/**/                   0x00000000, 0x3FE7C000,
+/**/                   0x1FE8414C, 0xBF24C6DD,
+/**/                   0xC9544000, 0x3FD31871,
+/**/                   0x94CECFD9, 0x3D184FAB,
+/**/                   0x00000000, 0x3FE7B800,
+/**/                   0x81C2D3B2, 0x3F3265F4,
+/**/                   0x09570000, 0x3FD32450,
+/**/                   0x9BDAE59D, 0x3D3D271B,
+/**/                   0x00000000, 0x3FE7B800,
+/**/                   0xB6466407, 0xBF30C39C,
+/**/                   0x16586000, 0x3FD3302C,
+/**/                   0xC2A3E08B, 0x3D36217D,
+/**/                   0x00000000, 0x3FE7B000,
+/**/                   0x12B21224, 0x3F283FAD,
+/**/                   0xF128E000, 0x3FD33C05,
+/**/                   0x380E1A7D, 0xBD22B906,
+/**/                   0x00000000, 0x3FE7B000,
+/**/                   0xF899E55D, 0xBF36EFB8,
+/**/                   0x9A988000, 0x3FD347DD,
+/**/                   0xD4C58092, 0xBD25594D,
+/**/                   0x00000000, 0x3FE7A800,
+/**/                   0x3FF42B9F, 0x3F1836B6,
+/**/                   0x1376E000, 0x3FD353B3,
+/**/                   0xE6C26D9B, 0xBD1331AF,
+/**/                   0x00000000, 0x3FE7A800,
+/**/                   0x0B739FF4, 0xBF3CE7FD,
+/**/                   0x5C933000, 0x3FD35F86,
+/**/                   0x4EA1A54A, 0xBD3B07DE,
+/**/                   0x00000000, 0x3FE7A000,
+/**/                   0xE8017A00, 0x3EC7A005,
+/**/                   0x76BC1000, 0x3FD36B57,
+/**/                   0x5A9C223F, 0x3D116978,
+/**/                   0x00000000, 0x3FE79800,
+/**/                   0xB1CC5B7B, 0x3F3D535D,
+/**/                   0x62BFE000, 0x3FD37726,
+/**/                   0xAC53B023, 0xBD3E9436,
+/**/                   0x00000000, 0x3FE79800,
+/**/                   0xE0DA37A9, 0xBF15EEAC,
+/**/                   0x216C5000, 0x3FD382F3,
+/**/                   0x1D1A7F6D, 0xBD1061D2,
+/**/                   0x00000000, 0x3FE79000,
+/**/                   0x344E16D6, 0x3F37C21E,
+/**/                   0xB38ED000, 0x3FD38EBD,
+/**/                   0xE67D4CA0, 0x3D290582,
+/**/                   0x00000000, 0x3FE79000,
+/**/                   0x39C9E465, 0xBF25E69A,
+/**/                   0x19F45000, 0x3FD39A86,
+/**/                   0x937354F5, 0x3D18EE51,
+/**/                   0x00000000, 0x3FE78800,
+/**/                   0xC52640BC, 0x3F32640B,
+/**/                   0x55694000, 0x3FD3A64C,
+/**/                   0xBCD735D0, 0x3D37A71C,
+/**/                   0x00000000, 0x3FE78800,
+/**/                   0x2F6A09ED, 0xBF3037DE,
+/**/                   0x66B9C000, 0x3FD3B210,
+/**/                   0x9811560E, 0xBD33C1ED,
+/**/                   0x00000000, 0x3FE78000,
+/**/                   0x01781A72, 0x3F2A71DC,
+/**/                   0x4EB15000, 0x3FD3BDD2,
+/**/                   0x970E6ED9, 0xBD3257B4,
+/**/                   0x00000000, 0x3FE78000,
+/**/                   0xA9EEBFF4, 0xBF354996,
+/**/                   0x0E1B2000, 0x3FD3C992,
+/**/                   0xAA680B76, 0x3D141C28,
+/**/                   0x00000000, 0x3FE77800,
+/**/                   0xAC60D341, 0x3F208119,
+/**/                   0xA5C1F000, 0x3FD3D54F,
+/**/                   0xD9A395E3, 0x3D3C3E1C,
+/**/                   0x00000000, 0x3FE77800,
+/**/                   0x742E2DD0, 0xBF3A28AE,
+/**/                   0x16701000, 0x3FD3E10B,
+/**/                   0x145429C7, 0x3D3F3BCF,
+/**/                   0x00000000, 0x3FE77000,
+/**/                   0x36340177, 0x3F0BD584,
+/**/                   0x60EF6000, 0x3FD3ECC4,
+/**/                   0x27C1300F, 0xBD060286,
+/**/                   0x00000000, 0x3FE77000,
+/**/                   0x240C7174, 0xBF3ED55D,
+/**/                   0x86094000, 0x3FD3F87B,
+/**/                   0x54589889, 0xBD35DFD7,
+/**/                   0x00000000, 0x3FE76800,
+/**/                   0xAB277F45, 0xBEF18DE5,
+/**/                   0x8686A000, 0x3FD40430,
+/**/                   0x3049F7D3, 0x3D3F8EF4,
+/**/                   0x00000000, 0x3FE76000,
+/**/                   0x01D3C7B8, 0x3F3CB026,
+/**/                   0x63303000, 0x3FD40FE3,
+/**/                   0xE79F05C6, 0x3D3E5C5F,
+/**/                   0x00000000, 0x3FE76000,
+/**/                   0xA9D08664, 0xBF15E95B,
+/**/                   0x1CCE1000, 0x3FD41B94,
+/**/                   0x13E43FC9, 0xBD304690,
+/**/                   0x00000000, 0x3FE75800,
+/**/                   0x097CFD43, 0x3F3867A4,
+/**/                   0xB427E000, 0x3FD42742,
+/**/                   0x02B82675, 0xBD398727,
+/**/                   0x00000000, 0x3FE75800,
+/**/                   0xE8A9353E, 0xBF2353DF,
+/**/                   0x2A04F000, 0x3FD432EF,
+/**/                   0x931715AD, 0xBD3FB129,
+/**/                   0x00000000, 0x3FE75000,
+/**/                   0x4F13DC4A, 0x3F3450E6,
+/**/                   0x7F2C1000, 0x3FD43E99,
+/**/                   0x40C41A04, 0x3D1C3F72,
+/**/                   0x00000000, 0x3FE75000,
+/**/                   0xE8B1B4FC, 0xBF2B4FBF,
+/**/                   0xB463C000, 0x3FD44A41,
+/**/                   0xF37CF612, 0x3D31EE28,
+/**/                   0x00000000, 0x3FE74800,
+/**/                   0x7E458100, 0x3F306BB6,
+/**/                   0xCA720000, 0x3FD455E7,
+/**/                   0x36629AED, 0x3D1AD8C6,
+/**/                   0x00000000, 0x3FE74800,
+/**/                   0x1745D174, 0xBF31745D,
+/**/                   0xC21C6000, 0x3FD4618B,
+/**/                   0x484C84CC, 0xBD13D82F,
+/**/                   0x00000000, 0x3FE74000,
+/**/                   0x236DEC04, 0x3F296FBD,
+/**/                   0x9C280000, 0x3FD46D2D,
+/**/                   0x5F67F75A, 0x3D359B27,
+/**/                   0x00000000, 0x3FE74000,
+/**/                   0x3B304B87, 0xBF350F9D,
+/**/                   0x5959B000, 0x3FD478CD,
+/**/                   0xF0C8D098, 0x3D2EC89B,
+/**/                   0x00000000, 0x3FE73800,
+/**/                   0xA4EBDC70, 0x3F226A51,
+/**/                   0xFA75C000, 0x3FD4846A,
+/**/                   0xE3798DCE, 0xBD263EA2,
+/**/                   0x00000000, 0x3FE73800,
+/**/                   0xF00B9A78, 0xBF3879D5,
+/**/                   0x80401000, 0x3FD49006,
+/**/                   0xFE1A0F8C, 0xBD38BCCF,
+/**/                   0x00000000, 0x3FE73000,
+/**/                   0x5DAAD90C, 0x3F178D7F,
+/**/                   0xEB7C1000, 0x3FD49B9F,
+/**/                   0x58AB60D7, 0x3D3DAC1C,
+/**/                   0x00000000, 0x3FE73000,
+/**/                   0x783709C7, 0xBF3BB33C,
+/**/                   0x3CED0000, 0x3FD4A737,
+/**/                   0xEBF35449, 0xBD39A234,
+/**/                   0x00000000, 0x3FE72800,
+/**/                   0x265AD23A, 0x3F061274,
+/**/                   0x75556000, 0x3FD4B2CC,
+/**/                   0xC78BFA4B, 0xBD380FCB,
+/**/                   0x00000000, 0x3FE72800,
+/**/                   0xC90A1FD2, 0xBF3EBC05,
+/**/                   0x95778000, 0x3FD4BE5F,
+/**/                   0xCD9AD824, 0xBD3D7C92,
+/**/                   0x00000000, 0x3FE72000,
+/**/                   0x38017200, 0xBEC71FFA,
+/**/                   0x9E153000, 0x3FD4C9F0,
+/**/                   0x70E02DE0, 0xBD2E1DDE,
+/**/                   0x00000000, 0x3FE71800,
+/**/                   0x74A050E1, 0x3F3E6B99,
+/**/                   0x8FEFE000, 0x3FD4D57F,
+/**/                   0x7FD06868, 0x3D23F926,
+/**/                   0x00000000, 0x3FE71800,
+/**/                   0xB8BD1180, 0xBF077400,
+/**/                   0x6BC8A000, 0x3FD4E10C,
+/**/                   0x1636F061, 0x3CF8283F,
+/**/                   0x00000000, 0x3FE71000,
+/**/                   0xE3E0453A, 0x3F3BC36C,
+/**/                   0x32600000, 0x3FD4EC97,
+/**/                   0xAF04D104, 0x3D234D7A,
+/**/                   0x00000000, 0x3FE71000,
+/**/                   0x6935DDC5, 0xBF15FA98,
+/**/                   0xE4764000, 0x3FD4F81F,
+/**/                   0x434FF08D, 0xBD27FCF6,
+/**/                   0x00000000, 0x3FE70800,
+/**/                   0x7337CF08, 0x3F394B40,
+/**/                   0x82CB2000, 0x3FD503A6,
+/**/                   0xF16F9B5D, 0xBD2A68C8,
+/**/                   0x00000000, 0x3FE70800,
+/**/                   0xA835403A, 0xBF1F7B97,
+/**/                   0x0E1E0000, 0x3FD50F2B,
+/**/                   0x8C47B8D8, 0x3D3A0940,
+/**/                   0x00000000, 0x3FE70000,
+/**/                   0x5C0B8170, 0x3F3702E0,
+/**/                   0x872E0000, 0x3FD51AAD,
+/**/                   0xDB0A7CC1, 0xBD3F4BD8,
+/**/                   0x00000000, 0x3FE70000,
+/**/                   0x4F67A855, 0xBF241EE6,
+/**/                   0xEEB99000, 0x3FD5262D,
+/**/                   0x70894A01, 0xBD3E1B9F,
+/**/                   0x00000000, 0x3FE6F800,
+/**/                   0x221C0170, 0x3F34EA19,
+/**/                   0x457EE000, 0x3FD531AC,
+/**/                   0x7D931501, 0x3D3DF83B,
+/**/                   0x00000000, 0x3FE6F800,
+/**/                   0x5508CA5C, 0xBF282102,
+/**/                   0x8C3BE000, 0x3FD53D28,
+/**/                   0xEB6DFAC5, 0xBD111397,
+/**/                   0x00000000, 0x3FE6F000,
+/**/                   0x9300B793, 0x3F3300B7,
+/**/                   0xC3ADD000, 0x3FD548A2,
+/**/                   0x63081CF7, 0x3D23167E,
+/**/                   0x00000000, 0x3FE6F000,
+/**/                   0x005BB90F, 0xBF2BC486,
+/**/                   0xEC91C000, 0x3FD5541A,
+/**/                   0xDC72EEBA, 0xBCF816AA,
+/**/                   0x00000000, 0x3FE6E800,
+/**/                   0xC5A3A00B, 0x3F314688,
+/**/                   0x07A44000, 0x3FD55F91,
+/**/                   0x78DF4A62, 0xBD11E647,
+/**/                   0x00000000, 0x3FE6E800,
+/**/                   0xDA9C5AE1, 0xBF2F09D6,
+/**/                   0x15A18000, 0x3FD56B05,
+/**/                   0xBC4A23FC, 0x3D29247B,
+/**/                   0x00000000, 0x3FE6E000,
+/**/                   0x337C6CB1, 0x3F2F76B4,
+/**/                   0x17456000, 0x3FD57677,
+/**/                   0x9524D7CA, 0xBD364EAD,
+/**/                   0x00000000, 0x3FE6E000,
+/**/                   0xEDF4EC87, 0xBF30F8AC,
+/**/                   0x0D4B3000, 0x3FD581E7,
+/**/                   0xB12D8F1D, 0xBD1F31E1,
+/**/                   0x00000000, 0x3FE6D800,
+/**/                   0x6EAEF381, 0x3F2CBDF2,
+/**/                   0xF86E0000, 0x3FD58D54,
+/**/                   0x0A795215, 0x3D2791F3,
+/**/                   0x00000000, 0x3FE6D800,
+/**/                   0xB624BFF5, 0xBF323DB9,
+/**/                   0xD9688000, 0x3FD598C0,
+/**/                   0x70D96DA4, 0xBD385F49,
+/**/                   0x00000000, 0x3FE6D000,
+/**/                   0x1C860FB0, 0x3F2A6268,
+/**/                   0xB0F4D000, 0x3FD5A42A,
+/**/                   0x2DF7BA69, 0xBCDE63AF,
+/**/                   0x00000000, 0x3FE6D000,
+/**/                   0xB253BAE1, 0xBF335443,
+/**/                   0x7FCCE000, 0x3FD5AF92,
+/**/                   0xF5FFC77A, 0xBD1C032F,
+/**/                   0x00000000, 0x3FE6C800,
+/**/                   0xAB4294D4, 0x3F2863B1,
+/**/                   0x46AA2000, 0x3FD5BAF8,
+/**/                   0xF873FA41, 0xBD339AE8,
+/**/                   0x00000000, 0x3FE6C800,
+/**/                   0x87EAA6DF, 0xBF343C7C,
+/**/                   0x0645A000, 0x3FD5C65C,
+/**/                   0x0180EE65, 0xBD39FE06,
+/**/                   0x00000000, 0x3FE6C000,
+/**/                   0x16C16C17, 0x3F26C16C,
+/**/                   0xBF581000, 0x3FD5D1BD,
+/**/                   0xC9C7C238, 0xBD38D6BD,
+/**/                   0x00000000, 0x3FE6C000,
+/**/                   0x95C33E00, 0xBF34F695,
+/**/                   0x7299C000, 0x3FD5DD1D,
+/**/                   0x8815CE17, 0xBD38AF61,
+/**/                   0x00000000, 0x3FE6B800,
+/**/                   0xE7802D73, 0x3F257B34,
+/**/                   0x20C29000, 0x3FD5E87B,
+/**/                   0x8F7738FA, 0x3D3527D1,
+/**/                   0x00000000, 0x3FE6B800,
+/**/                   0xF4A5582C, 0xBF3582BF,
+/**/                   0xCA8A2000, 0x3FD5F3D6,
+/**/                   0x8E19CC75, 0x3D37AF84,
+/**/                   0x00000000, 0x3FE6B000,
+/**/                   0x31A3CFC7, 0x3F2490AA,
+/**/                   0x70A79000, 0x3FD5FF30,
+/**/                   0x9F105039, 0x3D2E9E43,
+/**/                   0x00000000, 0x3FE6B000,
+/**/                   0x77C30E5A, 0xBF35E12C,
+/**/                   0x13D1A000, 0x3FD60A88,
+/**/                   0xC879AF55, 0x3D36E9B9,
+/**/                   0x00000000, 0x3FE6A800,
+/**/                   0x94016A94, 0x3F24016A,
+/**/                   0xB4BEC000, 0x3FD615DD,
+/**/                   0x90BC04B2, 0x3D13C7CA,
+/**/                   0x00000000, 0x3FE6A800,
+/**/                   0xAD33D63F, 0xBF36120B,
+/**/                   0x5424F000, 0x3FD62131,
+/**/                   0x4AA68669, 0xBD3382FC,
+/**/                   0x00000000, 0x3FE6A000,
+/**/                   0x3729043E, 0x3F23CD15,
+/**/                   0xF2B9C000, 0x3FD62C82,
+/**/                   0xBD7C8A98, 0x3D3E54BD } };
+
+static const union {int4 i[4350]; double x[2175]; } vj = { .i = {
+/**/                   0x7D161C28, 0x3F46A400,
+/**/                   0x20600000, 0xBF46A200,
+/**/                   0xAA7623D9, 0x3D27DC4E,
+/**/                   0xD596E639, 0x3F4693FA,
+/**/                   0x4CE00000, 0xBF4691FD,
+/**/                   0x29C3F0AD, 0x3D26B0CF,
+/**/                   0x3219CE89, 0x3F4683F5,
+/**/                   0x7B600000, 0xBF4681FA,
+/**/                   0x95B9FDCC, 0x3D22B290,
+/**/                   0x929ED397, 0x3F4673EF,
+/**/                   0xABE00000, 0xBF4671F7,
+/**/                   0xFA2F2D87, 0x3D17C727,
+/**/                   0xF725F3E2, 0x3F4663E9,
+/**/                   0xDE600000, 0xBF4661F4,
+/**/                   0x6EDBFF1C, 0x3CF22ED3,
+/**/                   0x5FAF2DE9, 0x3F4653E4,
+/**/                   0x12E00000, 0xBF4651F2,
+/**/                   0x157812BB, 0xBD144936,
+/**/                   0xCC3A802B, 0x3F4643DE,
+/**/                   0x49600000, 0xBF4641EF,
+/**/                   0x60314E05, 0xBD2959CB,
+/**/                   0x3CC7E927, 0x3F4633D9,
+/**/                   0x81E00000, 0xBF4631EC,
+/**/                   0xC3638E99, 0xBD35ABDA,
+/**/                   0xB157675C, 0x3F4623D3,
+/**/                   0xBC800000, 0xBF4621E9,
+/**/                   0xC63F9A21, 0x3D3FF1D3,
+/**/                   0x29E8F948, 0x3F4613CE,
+/**/                   0xF9000000, 0xBF4611E6,
+/**/                   0x71EEE611, 0x3D342D26,
+/**/                   0xA67C9D6B, 0x3F4603C8,
+/**/                   0x37800000, 0xBF4601E4,
+/**/                   0x11A09689, 0x3D1C1C77,
+/**/                   0x27125244, 0x3F45F3C3,
+/**/                   0x78000000, 0xBF45F1E1,
+/**/                   0xF7DC643C, 0xBD1DFD16,
+/**/                   0xABAA1651, 0x3F45E3BD,
+/**/                   0xBA800000, 0xBF45E1DE,
+/**/                   0x91318A02, 0xBD376503,
+/**/                   0x3443E812, 0x3F45D3B8,
+/**/                   0xFF200000, 0xBF45D1DB,
+/**/                   0xCE55DCDD, 0x3D3756E4,
+/**/                   0xC0DFC606, 0x3F45C3B2,
+/**/                   0x45A00000, 0xBF45C1D9,
+/**/                   0x8F6F8FA0, 0x3D12D5CF,
+/**/                   0x517DAEAB, 0x3F45B3AD,
+/**/                   0x8E200000, 0xBF45B1D6,
+/**/                   0x9B85DC2C, 0xBD2E90AB,
+/**/                   0xE61DA081, 0x3F45A3A7,
+/**/                   0xD8C00000, 0xBF45A1D3,
+/**/                   0x3BF5AC54, 0x3D3B5E88,
+/**/                   0x7EBF9A07, 0x3F4593A2,
+/**/                   0x25400000, 0xBF4591D1,
+/**/                   0x0C86DDB1, 0x3D12AC3A,
+/**/                   0x1B6399BB, 0x3F45839D,
+/**/                   0x73C00000, 0xBF4581CE,
+/**/                   0x76830985, 0xBD3361C2,
+/**/                   0xBC099E1C, 0x3F457397,
+/**/                   0xC4600000, 0xBF4571CB,
+/**/                   0xD062EBFF, 0x3D333915,
+/**/                   0x60B1A5AA, 0x3F456392,
+/**/                   0x16E00000, 0xBF4561C9,
+/**/                   0x9CC4988F, 0xBD1E0DA0,
+/**/                   0x095BAEE4, 0x3F45538D,
+/**/                   0x6B800000, 0xBF4551C6,
+/**/                   0x235BC18A, 0x3D3C69C4,
+/**/                   0xB607B848, 0x3F454387,
+/**/                   0xC2000000, 0xBF4541C3,
+/**/                   0xF7737723, 0xBCEFCC99,
+/**/                   0x66B5C056, 0x3F453382,
+/**/                   0x1A800000, 0xBF4531C1,
+/**/                   0x809CBCBB, 0xBD3FBAE2,
+/**/                   0x1B65C58C, 0x3F45237D,
+/**/                   0x75200000, 0xBF4521BE,
+/**/                   0x194FEE63, 0x3CCAA5C8,
+/**/                   0xD417C66A, 0x3F451377,
+/**/                   0xD1C00000, 0xBF4511BB,
+/**/                   0xE1CC7BBC, 0x3D3ED325,
+/**/                   0x90CBC16E, 0x3F450372,
+/**/                   0x30400000, 0xBF4501B9,
+/**/                   0x68AB3742, 0xBD0F0298,
+/**/                   0x5181B517, 0x3F44F36D,
+/**/                   0x90E00000, 0xBF44F1B6,
+/**/                   0x41E67AD9, 0x3D381BE1,
+/**/                   0x16399FE6, 0x3F44E368,
+/**/                   0xF3600000, 0xBF44E1B3,
+/**/                   0x668D3662, 0xBD2A6E79,
+/**/                   0xDEF38058, 0x3F44D362,
+/**/                   0x58000000, 0xBF44D1B1,
+/**/                   0x21F8B7C2, 0x3D284EA7,
+/**/                   0xABAF54EC, 0x3F44C35D,
+/**/                   0xBE800000, 0xBF44C1AE,
+/**/                   0x7417D9C5, 0xBD3BC76D,
+/**/                   0x7C6D1C22, 0x3F44B358,
+/**/                   0x27200000, 0xBF44B1AC,
+/**/                   0x16AAD1FC, 0xBD1409FD,
+/**/                   0x512CD479, 0x3F44A353,
+/**/                   0x91C00000, 0xBF44A1A9,
+/**/                   0x98BC14FD, 0x3D30771E,
+/**/                   0x29EE7C70, 0x3F44934E,
+/**/                   0xFE400000, 0xBF4491A6,
+/**/                   0x5CCB7232, 0xBD3B5993,
+/**/                   0x06B21285, 0x3F448349,
+/**/                   0x6CE00000, 0xBF4481A4,
+/**/                   0x5512F9C2, 0xBD20E729,
+/**/                   0xE7779538, 0x3F447343,
+/**/                   0xDD800000, 0xBF4471A1,
+/**/                   0x55B30899, 0x3D225436,
+/**/                   0xCC3F0308, 0x3F44633E,
+/**/                   0x50200000, 0xBF44619F,
+/**/                   0x9E54E31F, 0x3D39807C,
+/**/                   0xB5085A73, 0x3F445339,
+/**/                   0xC4A00000, 0xBF44519C,
+/**/                   0xD5804C0E, 0xBD376F6F,
+/**/                   0xA1D399FA, 0x3F444334,
+/**/                   0x3B400000, 0xBF44419A,
+/**/                   0x6CDE6425, 0xBD234953,
+/**/                   0x92A0C01A, 0x3F44332F,
+/**/                   0xB3E00000, 0xBF443197,
+/**/                   0xAAF6596F, 0x3D070E7B,
+/**/                   0x876FCB54, 0x3F44232A,
+/**/                   0x2E800000, 0xBF442195,
+/**/                   0x4EC011F1, 0x3D2C49F8,
+/**/                   0x8040BA25, 0x3F441325,
+/**/                   0xAB200000, 0xBF441192,
+/**/                   0xD8AAA7EB, 0x3D3825DC,
+/**/                   0x7D138B0E, 0x3F440320,
+/**/                   0x29A00000, 0xBF440190,
+/**/                   0xFE0B73D6, 0xBD3F1A8D,
+/**/                   0x7DE83C8C, 0x3F43F31B,
+/**/                   0xAA400000, 0xBF43F18D,
+/**/                   0xE46CA26B, 0xBD379B43,
+/**/                   0x82BECD20, 0x3F43E316,
+/**/                   0x2CE00000, 0xBF43E18B,
+/**/                   0x6283780D, 0xBD315B44,
+/**/                   0x8B973B49, 0x3F43D311,
+/**/                   0xB1800000, 0xBF43D188,
+/**/                   0x017589BE, 0xBD28B31E,
+/**/                   0x98718584, 0x3F43C30C,
+/**/                   0x38200000, 0xBF43C186,
+/**/                   0x8FBB296E, 0xBD212A46,
+/**/                   0xA94DAA52, 0x3F43B307,
+/**/                   0xC0C00000, 0xBF43B183,
+/**/                   0x045CBBD2, 0xBD183403,
+/**/                   0xBE2BA832, 0x3F43A302,
+/**/                   0x4B600000, 0xBF43A181,
+/**/                   0xD7CC5936, 0xBD13009B,
+/**/                   0xD70B7DA2, 0x3F4392FD,
+/**/                   0xD8000000, 0xBF43917E,
+/**/                   0xC1742279, 0xBD12B655,
+/**/                   0xF3ED2921, 0x3F4382F8,
+/**/                   0x66A00000, 0xBF43817C,
+/**/                   0xEA83FAE8, 0xBD17512E,
+/**/                   0x14D0A930, 0x3F4372F4,
+/**/                   0xF7400000, 0xBF437179,
+/**/                   0xBED65875, 0xBD206692,
+/**/                   0x39B5FC4C, 0x3F4362EF,
+/**/                   0x89E00000, 0xBF436177,
+/**/                   0xD38FFE9E, 0xBD27931B,
+/**/                   0x629D20F5, 0x3F4352EA,
+/**/                   0x1E800000, 0xBF435175,
+/**/                   0xE524208F, 0xBD309618,
+/**/                   0x8F8615AA, 0x3F4342E5,
+/**/                   0xB5200000, 0xBF434172,
+/**/                   0xDD4C72C5, 0xBD3697E9,
+/**/                   0xC070D8EB, 0x3F4332E0,
+/**/                   0x4DC00000, 0xBF433170,
+/**/                   0x5E6E12C3, 0xBD3DCE00,
+/**/                   0xF55D6935, 0x3F4322DB,
+/**/                   0xE8800000, 0xBF43216D,
+/**/                   0x0AE9A8CE, 0x3D39C8A4,
+/**/                   0x2E4BC509, 0x3F4312D7,
+/**/                   0x85200000, 0xBF43116B,
+/**/                   0xD1CD2FA1, 0x3D302D03,
+/**/                   0x6B3BEAE5, 0x3F4302D2,
+/**/                   0x23C00000, 0xBF430169,
+/**/                   0xA3BADFD1, 0x3D15807D,
+/**/                   0xAC2DD949, 0x3F42F2CD,
+/**/                   0xC4600000, 0xBF42F166,
+/**/                   0xF57F0504, 0xBD1A7422,
+/**/                   0xF1218EB3, 0x3F42E2C8,
+/**/                   0x67000000, 0xBF42E164,
+/**/                   0x2F2C781C, 0xBD33C974,
+/**/                   0x3A1709A3, 0x3F42D2C4,
+/**/                   0x0BC00000, 0xBF42D162,
+/**/                   0x851A1E61, 0x3D3DDBDD,
+/**/                   0x870E4898, 0x3F42C2BF,
+/**/                   0xB2600000, 0xBF42C15F,
+/**/                   0xA14AA8FD, 0x3D2CA7D9,
+/**/                   0xD8074A10, 0x3F42B2BA,
+/**/                   0x5B000000, 0xBF42B15D,
+/**/                   0xDDCDDFF5, 0xBD03022E,
+/**/                   0x2D020C8C, 0x3F42A2B6,
+/**/                   0x05A00000, 0xBF42A15B,
+/**/                   0x0F9231A8, 0xBD343FBA,
+/**/                   0x85FE8E8A, 0x3F4292B1,
+/**/                   0xB2600000, 0xBF429158,
+/**/                   0xA52C9CCF, 0x3D38B690,
+/**/                   0xE2FCCE8A, 0x3F4282AC,
+/**/                   0x61000000, 0xBF428156,
+/**/                   0xC8CC82EB, 0x3D120E6A,
+/**/                   0x43FCCB0A, 0x3F4272A8,
+/**/                   0x11A00000, 0xBF427154,
+/**/                   0x792E6C51, 0xBD30D79B,
+/**/                   0xA8FE8289, 0x3F4262A3,
+/**/                   0xC4600000, 0xBF426151,
+/**/                   0x91F7F7AA, 0x3D38A5EE,
+/**/                   0x1201F387, 0x3F42529F,
+/**/                   0x79000000, 0xBF42514F,
+/**/                   0x46C2E8BA, 0x3CEFA728,
+/**/                   0x7F071C84, 0x3F42429A,
+/**/                   0x2FA00000, 0xBF42414D,
+/**/                   0xFA447A17, 0xBD37D0BA,
+/**/                   0xF00DFBFD, 0x3F423295,
+/**/                   0xE8600000, 0xBF42314A,
+/**/                   0x94AF3FED, 0x3D2C7A24,
+/**/                   0x65169072, 0x3F422291,
+/**/                   0xA3000000, 0xBF422148,
+/**/                   0x050CEA04, 0xBD29B0BD,
+/**/                   0xDE20D863, 0x3F42128C,
+/**/                   0x5FC00000, 0xBF421146,
+/**/                   0x0C3035EB, 0x3D36EFF3,
+/**/                   0x5B2CD24E, 0x3F420288,
+/**/                   0x1E600000, 0xBF420144,
+/**/                   0x73569B27, 0xBD19A3E2,
+/**/                   0xDC3A7CB2, 0x3F41F283,
+/**/                   0xDF200000, 0xBF41F141,
+/**/                   0xEEB67715, 0x3D3B1DDE,
+/**/                   0x6149D610, 0x3F41E27F,
+/**/                   0xA1C00000, 0xBF41E13F,
+/**/                   0x94F49154, 0xBD11EA17,
+/**/                   0xEA5ADCE5, 0x3F41D27A,
+/**/                   0x66800000, 0xBF41D13D,
+/**/                   0x52DD9D37, 0x3D3ACED9,
+/**/                   0x776D8FB1, 0x3F41C276,
+/**/                   0x2D200000, 0xBF41C13B,
+/**/                   0xF72D8EEB, 0xBD1C140B,
+/**/                   0x0881ECF4, 0x3F41B272,
+/**/                   0xF5E00000, 0xBF41B138,
+/**/                   0x939583E1, 0x3D360AE5,
+/**/                   0x9D97F32C, 0x3F41A26D,
+/**/                   0xC0800000, 0xBF41A136,
+/**/                   0x1D246C7C, 0xBD2C00D9,
+/**/                   0x36AFA0D9, 0x3F419269,
+/**/                   0x8D400000, 0xBF419134,
+/**/                   0x0B955CFB, 0x3D29B40E,
+/**/                   0xD3C8F479, 0x3F418264,
+/**/                   0x5BE00000, 0xBF418132,
+/**/                   0x45A6C249, 0xBD3964BF,
+/**/                   0x74E3EC8D, 0x3F417260,
+/**/                   0x2CA00000, 0xBF417130,
+/**/                   0xF3363612, 0xBCE777E0,
+/**/                   0x1A008792, 0x3F41625C,
+/**/                   0xFF600000, 0xBF41612D,
+/**/                   0x28DE8296, 0x3D36D608,
+/**/                   0xC31EC409, 0x3F415257,
+/**/                   0xD4000000, 0xBF41512B,
+/**/                   0x4BB1B788, 0xBD32AE69,
+/**/                   0x703EA071, 0x3F414253,
+/**/                   0xAAC00000, 0xBF414129,
+/**/                   0x170ECD8C, 0x3D05BF68,
+/**/                   0x21601B48, 0x3F41324F,
+/**/                   0x83800000, 0xBF413127,
+/**/                   0x7C653BFC, 0x3D370A0B,
+/**/                   0xD683330E, 0x3F41224A,
+/**/                   0x5E200000, 0xBF412125,
+/**/                   0x77BBBEBF, 0xBD35B70D,
+/**/                   0x8FA7E642, 0x3F411246,
+/**/                   0x3AE00000, 0xBF411123,
+/**/                   0x93ABC1CD, 0xBD0C52EB,
+/**/                   0x4CCE3363, 0x3F410242,
+/**/                   0x19A00000, 0xBF410121,
+/**/                   0xE5C6F4C7, 0x3D2B2237,
+/**/                   0x0DF618F1, 0x3F40F23E,
+/**/                   0xFA600000, 0xBF40F11E,
+/**/                   0x1E9A50AD, 0x3D3D9C5F,
+/**/                   0xD31F956A, 0x3F40E239,
+/**/                   0xDD000000, 0xBF40E11C,
+/**/                   0x8965F0DA, 0xBD336793,
+/**/                   0x9C4AA74E, 0x3F40D235,
+/**/                   0xC1C00000, 0xBF40D11A,
+/**/                   0x7E49E231, 0xBD15E6EE,
+/**/                   0x69774D1D, 0x3F40C231,
+/**/                   0xA8800000, 0xBF40C118,
+/**/                   0x04FD621C, 0x3D1D9B9D,
+/**/                   0x3AA58554, 0x3F40B22D,
+/**/                   0x91400000, 0xBF40B116,
+/**/                   0x7DD9EED3, 0x3D333B55,
+/**/                   0x0FD54E74, 0x3F40A229,
+/**/                   0x7C000000, 0xBF40A114,
+/**/                   0x7AA78478, 0x3D3E048F,
+/**/                   0xE906A6FC, 0x3F409224,
+/**/                   0x68A00000, 0xBF409112,
+/**/                   0x644DDE88, 0xBD383C6A,
+/**/                   0xC6398D6B, 0x3F408220,
+/**/                   0x57600000, 0xBF408110,
+/**/                   0x76B8C83A, 0xBD2F0D2F,
+/**/                   0xA76E0040, 0x3F40721C,
+/**/                   0x48200000, 0xBF40710E,
+/**/                   0x9CE99FD3, 0xBD1F63E0,
+/**/                   0x8CA3FDFB, 0x3F406218,
+/**/                   0x3AE00000, 0xBF40610C,
+/**/                   0x4FE774F2, 0xBCF328B4,
+/**/                   0x75DB851A, 0x3F405214,
+/**/                   0x2FA00000, 0xBF40510A,
+/**/                   0x3782BCD4, 0x3D11B6BD,
+/**/                   0x6314941D, 0x3F404210,
+/**/                   0x26600000, 0xBF404108,
+/**/                   0xE7183792, 0x3D22116F,
+/**/                   0x544F2983, 0x3F40320C,
+/**/                   0x1F200000, 0xBF403106,
+/**/                   0x1B995B3D, 0x3D293F1E,
+/**/                   0x498B43CB, 0x3F402208,
+/**/                   0x19E00000, 0xBF402104,
+/**/                   0xFC162630, 0x3D2E6669,
+/**/                   0x42C8E175, 0x3F401204,
+/**/                   0x16A00000, 0xBF401102,
+/**/                   0x254FC9F8, 0x3D30C4AA,
+/**/                   0x40080100, 0x3F400200,
+/**/                   0x15600000, 0xBF400100,
+/**/                   0xE4431F92, 0x3D3154EE,
+/**/                   0x829141D6, 0x3F3FE3F8,
+/**/                   0x2C400000, 0xBF3FE1FC,
+/**/                   0x9B2D30FB, 0x3D30E503,
+/**/                   0x8D157F6B, 0x3F3FC3F0,
+/**/                   0x31C00000, 0xBF3FC1F8,
+/**/                   0x53EBD670, 0x3D2EEBD1,
+/**/                   0x9F9CB7BC, 0x3F3FA3E8,
+/**/                   0x3B400000, 0xBF3FA1F4,
+/**/                   0xE04A16E0, 0x3D2A113C,
+/**/                   0xBA26E7CA, 0x3F3F83E0,
+/**/                   0x48C00000, 0xBF3F81F0,
+/**/                   0x99C43E34, 0x3D233C4A,
+/**/                   0xDCB40C91, 0x3F3F63D8,
+/**/                   0x5A400000, 0xBF3F61EC,
+/**/                   0x7BD210C1, 0x3D14DDF6,
+/**/                   0x07442311, 0x3F3F43D1,
+/**/                   0x6FC00000, 0xBF3F41E8,
+/**/                   0x9E4B51C8, 0xBCC52C1D,
+/**/                   0x39D72849, 0x3F3F23C9,
+/**/                   0x89400000, 0xBF3F21E4,
+/**/                   0x8EA8C754, 0xBD1A196F,
+/**/                   0x746D1936, 0x3F3F03C1,
+/**/                   0xA6C00000, 0xBF3F01E0,
+/**/                   0xF95AF98D, 0xBD2BB719,
+/**/                   0xB705F2D8, 0x3F3EE3B9,
+/**/                   0xC8400000, 0xBF3EE1DC,
+/**/                   0x28FFD598, 0xBD3628EB,
+/**/                   0x01A1B22C, 0x3F3EC3B2,
+/**/                   0xEDC00000, 0xBF3EC1D8,
+/**/                   0x0BBAC8F8, 0xBD3F6D76,
+/**/                   0x54405432, 0x3F3EA3AA,
+/**/                   0x17800000, 0xBF3EA1D5,
+/**/                   0xB7A7EE0D, 0x3D3657D2,
+/**/                   0xAEE1D5E8, 0x3F3E83A2,
+/**/                   0x45000000, 0xBF3E81D1,
+/**/                   0xFA9CCC78, 0x3D264FDE,
+/**/                   0x1186344C, 0x3F3E639B,
+/**/                   0x76800000, 0xBF3E61CD,
+/**/                   0xE02EF455, 0xBCEF83EB,
+/**/                   0x7C2D6C5E, 0x3F3E4393,
+/**/                   0xAC000000, 0xBF3E41C9,
+/**/                   0x03C3E129, 0xBD2C26B3,
+/**/                   0xEED77B1B, 0x3F3E238B,
+/**/                   0xE5800000, 0xBF3E21C5,
+/**/                   0x904D773D, 0xBD3C1CBE,
+/**/                   0x69845D83, 0x3F3E0384,
+/**/                   0x23400000, 0xBF3E01C2,
+/**/                   0xD0615454, 0x3D34E8B1,
+/**/                   0xEC341093, 0x3F3DE37C,
+/**/                   0x64C00000, 0xBF3DE1BE,
+/**/                   0xE9BE933E, 0x3D13F7DF,
+/**/                   0x76E6914B, 0x3F3DC375,
+/**/                   0xAA400000, 0xBF3DC1BA,
+/**/                   0x707B004A, 0xBD27B7D7,
+/**/                   0x099BDCA9, 0x3F3DA36E,
+/**/                   0xF3C00000, 0xBF3DA1B6,
+/**/                   0xEE2141C3, 0xBD3DA3F8,
+/**/                   0xA453EFAC, 0x3F3D8366,
+/**/                   0x41800000, 0xBF3D81B3,
+/**/                   0x63D21825, 0x3D2F4DA1,
+/**/                   0x470EC752, 0x3F3D635F,
+/**/                   0x93000000, 0xBF3D61AF,
+/**/                   0xFAD0B844, 0xBD0FD473,
+/**/                   0xF1CC609A, 0x3F3D4357,
+/**/                   0xE8800000, 0xBF3D41AB,
+/**/                   0x298657C2, 0xBD388716,
+/**/                   0xA48CB882, 0x3F3D2350,
+/**/                   0x42400000, 0xBF3D21A8,
+/**/                   0x0B68711A, 0x3D32023A,
+/**/                   0x5F4FCC0A, 0x3F3D0349,
+/**/                   0x9FC00000, 0xBF3D01A4,
+/**/                   0x23A704B0, 0xBD117676,
+/**/                   0x22159830, 0x3F3CE342,
+/**/                   0x01400000, 0xBF3CE1A1,
+/**/                   0x8F391F09, 0xBD3BA59C,
+/**/                   0xECDE19F1, 0x3F3CC33A,
+/**/                   0x67000000, 0xBF3CC19D,
+/**/                   0x9EBBF706, 0x3D28567A,
+/**/                   0xBFA94E4E, 0x3F3CA333,
+/**/                   0xD0800000, 0xBF3CA199,
+/**/                   0x2D41F1CC, 0xBD29D41F,
+/**/                   0x9A773245, 0x3F3C832C,
+/**/                   0x3E400000, 0xBF3C8196,
+/**/                   0x14ED5134, 0x3D391B7D,
+/**/                   0x7D47C2D4, 0x3F3C6325,
+/**/                   0xAFC00000, 0xBF3C6192,
+/**/                   0x83403B5B, 0xBCFC31C5,
+/**/                   0x681AFCFA, 0x3F3C431E,
+/**/                   0x25400000, 0xBF3C418F,
+/**/                   0x88A1FFF3, 0xBD3D84DB,
+/**/                   0x5AF0DDB6, 0x3F3C2317,
+/**/                   0x9F000000, 0xBF3C218B,
+/**/                   0x6298A63B, 0x3D175CFF,
+/**/                   0x55C96207, 0x3F3C0310,
+/**/                   0x1C800000, 0xBF3C0188,
+/**/                   0xDFB8E489, 0xBD37ADC9,
+/**/                   0x58A486EA, 0x3F3BE309,
+/**/                   0x9E400000, 0xBF3BE184,
+/**/                   0x45069C64, 0x3D23DA0F,
+/**/                   0x6382495F, 0x3F3BC302,
+/**/                   0x23C00000, 0xBF3BC181,
+/**/                   0x4CC2EFE0, 0xBD35574B,
+/**/                   0x7662A665, 0x3F3BA2FB,
+/**/                   0xAD800000, 0xBF3BA17D,
+/**/                   0x4BED0B89, 0x3D250C7B,
+/**/                   0x91459AFA, 0x3F3B82F4,
+/**/                   0x3B000000, 0xBF3B817A,
+/**/                   0x322E5605, 0xBD36795D,
+/**/                   0xB42B241D, 0x3F3B62ED,
+/**/                   0xCCC00000, 0xBF3B6176,
+/**/                   0xF6413886, 0x3D1EAB91,
+/**/                   0xDF133ECC, 0x3F3B42E6,
+/**/                   0x62400000, 0xBF3B4173,
+/**/                   0xF86BE5B5, 0xBD3B0BFC,
+/**/                   0x11FDE807, 0x3F3B22E0,
+/**/                   0xFC000000, 0xBF3B216F,
+/**/                   0xDDE8D701, 0x3CF62FEB,
+/**/                   0x4CEB1CCC, 0x3F3B02D9,
+/**/                   0x99C00000, 0xBF3B016C,
+/**/                   0xF210FD9E, 0x3D3CF8D7,
+/**/                   0x8FDADA1A, 0x3F3AE2D2,
+/**/                   0x3B400000, 0xBF3AE169,
+/**/                   0x1526CFB0, 0xBD2092E2,
+/**/                   0xDACD1CEF, 0x3F3AC2CB,
+/**/                   0xE1000000, 0xBF3AC165,
+/**/                   0x18D261D5, 0x3D319D24,
+/**/                   0x2DC1E24A, 0x3F3AA2C5,
+/**/                   0x8A800000, 0xBF3AA162,
+/**/                   0x533CC8EC, 0xBD355268,
+/**/                   0x88B9272B, 0x3F3A82BE,
+/**/                   0x38400000, 0xBF3A815F,
+/**/                   0x0AFE6139, 0x3D074750,
+/**/                   0xEBB2E88F, 0x3F3A62B7,
+/**/                   0xEA000000, 0xBF3A615B,
+/**/                   0x6668AD57, 0x3D3A501B,
+/**/                   0x56AF2375, 0x3F3A42B1,
+/**/                   0x9F800000, 0xBF3A4158,
+/**/                   0xA98381BD, 0xBD2E37A7,
+/**/                   0xC9ADD4DD, 0x3F3A22AA,
+/**/                   0x59400000, 0xBF3A2155,
+/**/                   0x7B82F9AC, 0x3D1A9872,
+/**/                   0x44AEF9C5, 0x3F3A02A4,
+/**/                   0x17000000, 0xBF3A0152,
+/**/                   0x0FF040AD, 0x3D3B96ED,
+/**/                   0xC7B28F2C, 0x3F39E29D,
+/**/                   0xD8800000, 0xBF39E14E,
+/**/                   0x33534BD7, 0xBD304862,
+/**/                   0x52B89211, 0x3F39C297,
+/**/                   0x9E400000, 0xBF39C14B,
+/**/                   0x17AF009B, 0x3D084979,
+/**/                   0xE5C0FF72, 0x3F39A290,
+/**/                   0x68000000, 0xBF39A148,
+/**/                   0x604B64C9, 0x3D358CA1,
+/**/                   0x80CBD44E, 0x3F39828A,
+/**/                   0x35800000, 0xBF398145,
+/**/                   0x2E334404, 0xBD38BD0B,
+/**/                   0x23D90DA4, 0x3F396284,
+/**/                   0x07400000, 0xBF396142,
+/**/                   0xEF1B1C68, 0xBD1F4B58,
+/**/                   0xCEE8A873, 0x3F39427D,
+/**/                   0xDD000000, 0xBF39413E,
+/**/                   0x07E010EC, 0x3D209881,
+/**/                   0x81FAA1B9, 0x3F392277,
+/**/                   0xB6C00000, 0xBF39213B,
+/**/                   0x5CF03181, 0x3D37A139,
+/**/                   0x3D0EF676, 0x3F390271,
+/**/                   0x94400000, 0xBF390138,
+/**/                   0x65276B0B, 0xBD39D2EB,
+/**/                   0x0025A3A8, 0x3F38E26B,
+/**/                   0x76000000, 0xBF38E135,
+/**/                   0xEE3023F6, 0xBD281E5A,
+/**/                   0xCB3EA64F, 0x3F38C264,
+/**/                   0x5BC00000, 0xBF38C132,
+/**/                   0x3F9A4B53, 0x3CEDAE6E,
+/**/                   0x9E59FB68, 0x3F38A25E,
+/**/                   0x45800000, 0xBF38A12F,
+/**/                   0x412B648E, 0x3D2A47EF,
+/**/                   0x79779FF3, 0x3F388258,
+/**/                   0x33400000, 0xBF38812C,
+/**/                   0x5ED0D8F2, 0x3D38955F,
+/**/                   0x5C9790EE, 0x3F386252,
+/**/                   0x24C00000, 0xBF386129,
+/**/                   0x09939374, 0xBD3CBD55,
+/**/                   0x47B9CB5A, 0x3F38424C,
+/**/                   0x1A800000, 0xBF384126,
+/**/                   0x4F399186, 0xBD32D325,
+/**/                   0x3ADE4C33, 0x3F382246,
+/**/                   0x14400000, 0xBF382123,
+/**/                   0x524688EB, 0xBD235622,
+/**/                   0x3605107A, 0x3F380240,
+/**/                   0x12000000, 0xBF380120,
+/**/                   0xEB2F3DDC, 0xBCF44184,
+/**/                   0x392E152C, 0x3F37E23A,
+/**/                   0x13C00000, 0xBF37E11D,
+/**/                   0x2153D1B8, 0x3D198B16,
+/**/                   0x4459574A, 0x3F37C234,
+/**/                   0x19800000, 0xBF37C11A,
+/**/                   0x47A3C923, 0x3D2A9511,
+/**/                   0x5786D3D1, 0x3F37A22E,
+/**/                   0x23400000, 0xBF37A117,
+/**/                   0x4B4128D9, 0x3D337431,
+/**/                   0x72B687C1, 0x3F378228,
+/**/                   0x31000000, 0xBF378114,
+/**/                   0xC5BFE9E8, 0x3D38E0BF,
+/**/                   0x95E87019, 0x3F376222,
+/**/                   0x42C00000, 0xBF376111,
+/**/                   0x5A0B2CE9, 0x3D3D9134,
+/**/                   0xC11C89D8, 0x3F37421C,
+/**/                   0x58400000, 0xBF37410E,
+/**/                   0xB1802C40, 0xBD3E7970,
+/**/                   0xF452D1FB, 0x3F372216,
+/**/                   0x72000000, 0xBF37210B,
+/**/                   0x16E562C9, 0xBD3B3E2F,
+/**/                   0x2F8B4583, 0x3F370211,
+/**/                   0x8FC00000, 0xBF370108,
+/**/                   0x9087DACD, 0xBD38BC06,
+/**/                   0x72C5E16F, 0x3F36E20B,
+/**/                   0xB1800000, 0xBF36E105,
+/**/                   0xD92B1B21, 0xBD36F1F6,
+/**/                   0xBE02A2BC, 0x3F36C205,
+/**/                   0xD7400000, 0xBF36C102,
+/**/                   0xABF2CD23, 0xBD35DEFF,
+/**/                   0x1141866B, 0x3F36A200,
+/**/                   0x01000000, 0xBF36A100,
+/**/                   0xC462BC85, 0xBD358220,
+/**/                   0x6C828979, 0x3F3681FA,
+/**/                   0x2EC00000, 0xBF3680FD,
+/**/                   0xDE5ED723, 0xBD35DA59,
+/**/                   0xCFC5A8E7, 0x3F3661F4,
+/**/                   0x60800000, 0xBF3660FA,
+/**/                   0xB62B2CD1, 0xBD36E6AA,
+/**/                   0x3B0AE1B2, 0x3F3641EF,
+/**/                   0x96400000, 0xBF3640F7,
+/**/                   0x086BEF29, 0xBD38A613,
+/**/                   0xAE5230DA, 0x3F3621E9,
+/**/                   0xD0000000, 0xBF3620F4,
+/**/                   0x9225715D, 0xBD3B1792,
+/**/                   0x299B935F, 0x3F3601E4,
+/**/                   0x0DC00000, 0xBF3600F2,
+/**/                   0x10BC2805, 0xBD3E3A29,
+/**/                   0xACE7063E, 0x3F35E1DE,
+/**/                   0x4FC00000, 0xBF35E0EF,
+/**/                   0xBE0B570D, 0x3D3DF329,
+/**/                   0x38348676, 0x3F35C1D9,
+/**/                   0x95800000, 0xBF35C0EC,
+/**/                   0x1C0C5502, 0x3D397166,
+/**/                   0xCB841108, 0x3F35A1D3,
+/**/                   0xDF400000, 0xBF35A0E9,
+/**/                   0x4AC1FA2D, 0x3D34418C,
+/**/                   0x66D5A2F1, 0x3F3581CE,
+/**/                   0x2D000000, 0xBF3580E7,
+/**/                   0x168E9C6E, 0x3D2CC939,
+/**/                   0x0A293931, 0x3F3561C9,
+/**/                   0x7EC00000, 0xBF3560E4,
+/**/                   0x795CE154, 0x3D1F6E5C,
+/**/                   0xB57ED0C7, 0x3F3541C3,
+/**/                   0xD4800000, 0xBF3540E1,
+/**/                   0x898FEE67, 0x3CE4EF88,
+/**/                   0x68D666B1, 0x3F3521BE,
+/**/                   0x2E400000, 0xBF3520DF,
+/**/                   0x0B78D65E, 0xBD1CDACF,
+/**/                   0x242FF7EF, 0x3F3501B9,
+/**/                   0x8C000000, 0xBF3500DC,
+/**/                   0x6F1CBFB8, 0xBD2F7BF1,
+/**/                   0xE78B8180, 0x3F34E1B3,
+/**/                   0xEDC00000, 0xBF34E0D9,
+/**/                   0x5A899820, 0xBD38ED52,
+/**/                   0xB2E90063, 0x3F34C1AE,
+/**/                   0x53C00000, 0xBF34C0D7,
+/**/                   0x930A694E, 0x3D3D3C3F,
+/**/                   0x86487196, 0x3F34A1A9,
+/**/                   0xBD800000, 0xBF34A0D4,
+/**/                   0x4FA7CCCB, 0x3D32BFBD,
+/**/                   0x61A9D219, 0x3F3481A4,
+/**/                   0x2B400000, 0xBF3480D2,
+/**/                   0x65A26E32, 0x3D1E789C,
+/**/                   0x450D1EEB, 0x3F34619F,
+/**/                   0x9D000000, 0xBF3460CF,
+/**/                   0x47E500B5, 0xBD109E0B,
+/**/                   0x3072550B, 0x3F34419A,
+/**/                   0x12C00000, 0xBF3440CD,
+/**/                   0x3523FAE9, 0xBD309040,
+/**/                   0x23D97178, 0x3F342195,
+/**/                   0x8C800000, 0xBF3420CA,
+/**/                   0xD31DE7C2, 0xBD3D9B10,
+/**/                   0x1F427131, 0x3F340190,
+/**/                   0x0A800000, 0xBF3400C8,
+/**/                   0x90B287C4, 0x3D34B90B,
+/**/                   0x22AD5135, 0x3F33E18B,
+/**/                   0x8C400000, 0xBF33E0C5,
+/**/                   0xCA1B0FC2, 0x3D19B454,
+/**/                   0x2E1A0E83, 0x3F33C186,
+/**/                   0x12000000, 0xBF33C0C3,
+/**/                   0x638FC1F4, 0xBD20FBE7,
+/**/                   0x4188A61A, 0x3F33A181,
+/**/                   0x9BC00000, 0xBF33A0C0,
+/**/                   0xE0C03290, 0xBD38070E,
+/**/                   0x5CF914F9, 0x3F33817C,
+/**/                   0x29C00000, 0xBF3380BE,
+/**/                   0xE0B6E5F5, 0x3D37D2C3,
+/**/                   0x806B5820, 0x3F336177,
+/**/                   0xBB800000, 0xBF3360BB,
+/**/                   0x35598794, 0x3D1C4213,
+/**/                   0xABDF6C8D, 0x3F334172,
+/**/                   0x51400000, 0xBF3340B9,
+/**/                   0xC111C569, 0xBD249997,
+/**/                   0xDF554F40, 0x3F33216D,
+/**/                   0xEB000000, 0xBF3320B6,
+/**/                   0xEEEE28E2, 0xBD3C442D,
+/**/                   0x1ACCFD37, 0x3F330169,
+/**/                   0x89000000, 0xBF3300B4,
+/**/                   0xDBBF316D, 0x3D312B5E,
+/**/                   0x5E467372, 0x3F32E164,
+/**/                   0x2AC00000, 0xBF32E0B2,
+/**/                   0x7484E6E1, 0xBCFFD254,
+/**/                   0xA9C1AEF0, 0x3F32C15F,
+/**/                   0xD0800000, 0xBF32C0AF,
+/**/                   0x1F2C3F9D, 0xBD35BCBA,
+/**/                   0xFD3EACAF, 0x3F32A15A,
+/**/                   0x7A800000, 0xBF32A0AD,
+/**/                   0x8C8BAA61, 0x3D35EDA0,
+/**/                   0x58BD69B0, 0x3F328156,
+/**/                   0x28400000, 0xBF3280AB,
+/**/                   0x3F79FE5E, 0x3CF02EAF,
+/**/                   0xBC3DE2F1, 0x3F326151,
+/**/                   0xDA000000, 0xBF3260A8,
+/**/                   0xB1304AA8, 0xBD347BDA,
+/**/                   0x27C01572, 0x3F32414D,
+/**/                   0x90000000, 0xBF3240A6,
+/**/                   0xD46BE359, 0x3D35724F,
+/**/                   0x9B43FE30, 0x3F322148,
+/**/                   0x49C00000, 0xBF3220A4,
+/**/                   0x43BF90C9, 0xBCF31954,
+/**/                   0x16C99A2D, 0x3F320144,
+/**/                   0x07800000, 0xBF3200A2,
+/**/                   0xC4901E30, 0xBD386689,
+/**/                   0x9A50E666, 0x3F31E13F,
+/**/                   0xC9800000, 0xBF31E09F,
+/**/                   0x134E34BF, 0x3D2FA8E5,
+/**/                   0x25D9DFDB, 0x3F31C13B,
+/**/                   0x8F400000, 0xBF31C09D,
+/**/                   0x477D87DF, 0xBD20FF40,
+/**/                   0xB964838C, 0x3F31A136,
+/**/                   0x59400000, 0xBF31A09B,
+/**/                   0x68B5B77B, 0x3D3E9E3E,
+/**/                   0x54F0CE76, 0x3F318132,
+/**/                   0x27000000, 0xBF318099,
+/**/                   0x906F8A53, 0x3D14BC39,
+/**/                   0xF87EBD9A, 0x3F31612D,
+/**/                   0xF8C00000, 0xBF316096,
+/**/                   0xFCD50724, 0xBD34CC2F,
+/**/                   0xA40E4DF7, 0x3F314129,
+/**/                   0xCEC00000, 0xBF314094,
+/**/                   0x7A3A1B8D, 0x3D30AD83,
+/**/                   0x579F7C8B, 0x3F312125,
+/**/                   0xA8800000, 0xBF312092,
+/**/                   0x057F5C66, 0xBD24C5AE,
+/**/                   0x13324657, 0x3F310121,
+/**/                   0x86800000, 0xBF310090,
+/**/                   0xBFD488E0, 0x3D3A03C0,
+/**/                   0xD6C6A858, 0x3F30E11C,
+/**/                   0x68400000, 0xBF30E08E,
+/**/                   0x56935D63, 0xBD00EDA8,
+/**/                   0xA25C9F8F, 0x3F30C118,
+/**/                   0x4E000000, 0xBF30C08C,
+/**/                   0x2FDDD1CE, 0xBD3EC638,
+/**/                   0x75F428FB, 0x3F30A114,
+/**/                   0x38000000, 0xBF30A08A,
+/**/                   0x0CA3DCBE, 0x3D102CDE,
+/**/                   0x518D419B, 0x3F308110,
+/**/                   0x25C00000, 0xBF308088,
+/**/                   0xBFA78921, 0xBD39A865,
+/**/                   0x3527E66D, 0x3F30610C,
+/**/                   0x17C00000, 0xBF306086,
+/**/                   0x72CE37BD, 0x3D203FE0,
+/**/                   0x20C41472, 0x3F304108,
+/**/                   0x0D800000, 0xBF304084,
+/**/                   0x6054C3FA, 0xBD369AC6,
+/**/                   0x1461C8A9, 0x3F302104,
+/**/                   0x07800000, 0xBF302082,
+/**/                   0x4836293A, 0x3D2450ED,
+/**/                   0x10010010, 0x3F300100,
+/**/                   0x05400000, 0xBF300080,
+/**/                   0x88B3357C, 0xBD359558,
+/**/                   0x27436F4F, 0x3F2FC1F8,
+/**/                   0x0E800000, 0xBF2FC0FC,
+/**/                   0x92ECD4D1, 0x3D245998,
+/**/                   0x3E87D8DC, 0x3F2F81F0,
+/**/                   0x1A000000, 0xBF2F80F8,
+/**/                   0xB592170A, 0xBD36901A,
+/**/                   0x65CF36C6, 0x3F2F41E8,
+/**/                   0x2E000000, 0xBF2F40F4,
+/**/                   0x53524603, 0x3D2069E5,
+/**/                   0x9D19830B, 0x3F2F01E0,
+/**/                   0x49800000, 0xBF2F00F0,
+/**/                   0x69C22240, 0xBD39830B,
+/**/                   0xE466B7AB, 0x3F2EC1D8,
+/**/                   0x6D800000, 0xBF2EC0EC,
+/**/                   0xFB871BBA, 0x3D1123AC,
+/**/                   0x3BB6CEA4, 0x3F2E81D1,
+/**/                   0x99000000, 0xBF2E80E8,
+/**/                   0x2E158AF6, 0xBD3E6629,
+/**/                   0xA309C1F4, 0x3F2E41C9,
+/**/                   0xCD000000, 0xBF2E40E4,
+/**/                   0x2B29884E, 0xBCF8F488,
+/**/                   0x1A5F8B99, 0x3F2E01C2,
+/**/                   0x09000000, 0xBF2E00E1,
+/**/                   0x6EA006C6, 0x3D3ACE8D,
+/**/                   0xA1B82593, 0x3F2DC1BA,
+/**/                   0x4C800000, 0xBF2DC0DD,
+/**/                   0x59D0B687, 0xBD22974E,
+/**/                   0x391389E0, 0x3F2D81B3,
+/**/                   0x98800000, 0xBF2D80D9,
+/**/                   0xD7897CAD, 0x3D322319,
+/**/                   0xE071B27F, 0x3F2D41AB,
+/**/                   0xEC000000, 0xBF2D40D5,
+/**/                   0x57954C6E, 0xBD32E42F,
+/**/                   0x97D2996E, 0x3F2D01A4,
+/**/                   0x48000000, 0xBF2D00D2,
+/**/                   0xC741610E, 0x3D1E7DF5,
+/**/                   0x5F3638AB, 0x3F2CC19D,
+/**/                   0xAB800000, 0xBF2CC0CE,
+/**/                   0xA0909C5A, 0xBD3E50DF,
+/**/                   0x369C8A37, 0x3F2C8196,
+/**/                   0x17800000, 0xBF2C80CB,
+/**/                   0x8D8D1C8F, 0xBD12D119,
+/**/                   0x1E05880E, 0x3F2C418F,
+/**/                   0x8B800000, 0xBF2C40C7,
+/**/                   0x544D2574, 0x3D347649,
+/**/                   0x15712C30, 0x3F2C0188,
+/**/                   0x07000000, 0xBF2C00C4,
+/**/                   0x4EEA9E68, 0xBD32D030,
+/**/                   0x1CDF709C, 0x3F2BC181,
+/**/                   0x8B000000, 0xBF2BC0C0,
+/**/                   0x74A84109, 0x3D15E533,
+/**/                   0x34504F50, 0x3F2B817A,
+/**/                   0x17000000, 0xBF2B80BD,
+/**/                   0x025FBF68, 0x3D3D53C1,
+/**/                   0x5BC3C24B, 0x3F2B4173,
+/**/                   0xAA800000, 0xBF2B40B9,
+/**/                   0x6BAA2FA8, 0xBD267FA7,
+/**/                   0x9339C38C, 0x3F2B016C,
+/**/                   0x46800000, 0xBF2B00B6,
+/**/                   0xBB3FDE1E, 0x3D277F1D,
+/**/                   0xDAB24D11, 0x3F2AC165,
+/**/                   0xEA000000, 0xBF2AC0B2,
+/**/                   0x1A8CDBE2, 0xBD3DAD17,
+/**/                   0x322D58D9, 0x3F2A815F,
+/**/                   0x96000000, 0xBF2A80AF,
+/**/                   0xD81CF36E, 0xBD1E1315,
+/**/                   0x99AAE0E3, 0x3F2A4158,
+/**/                   0x4A000000, 0xBF2A40AC,
+/**/                   0xE649E7B4, 0x3D2C7307,
+/**/                   0x112ADF2D, 0x3F2A0152,
+/**/                   0x05800000, 0xBF2A00A9,
+/**/                   0xB77435EC, 0xBD3C713A,
+/**/                   0x98AD4DB7, 0x3F29C14B,
+/**/                   0xC9800000, 0xBF29C0A5,
+/**/                   0x3A7AE827, 0xBD1E1005,
+/**/                   0x3032267F, 0x3F298145,
+/**/                   0x95800000, 0xBF2980A2,
+/**/                   0xA8F2A842, 0x3D2A0460,
+/**/                   0xD7B96385, 0x3F29413E,
+/**/                   0x69000000, 0xBF29409F,
+/**/                   0xA7B8321E, 0xBD3EDDA5,
+/**/                   0x8F42FEC5, 0x3F290138,
+/**/                   0x45000000, 0xBF29009C,
+/**/                   0x3A3F0D33, 0xBD264506,
+/**/                   0x56CEF241, 0x3F28C132,
+/**/                   0x29000000, 0xBF28C099,
+/**/                   0x33EE13CD, 0x3D206930,
+/**/                   0x2E5D37F6, 0x3F28812C,
+/**/                   0x15000000, 0xBF288096,
+/**/                   0x22DF1FDA, 0x3D3B28AC,
+/**/                   0x15EDC9E3, 0x3F284126,
+/**/                   0x08800000, 0xBF284093,
+/**/                   0xDD73B6DB, 0xBD324546,
+/**/                   0x0D80A208, 0x3F280120,
+/**/                   0x04800000, 0xBF280090,
+/**/                   0x6DFEB485, 0xBCB440C2,
+/**/                   0x1515BA62, 0x3F27C11A,
+/**/                   0x08800000, 0xBF27C08D,
+/**/                   0x9823B19D, 0x3D31BCBE,
+/**/                   0x2CAD0CF1, 0x3F278114,
+/**/                   0x14000000, 0xBF27808A,
+/**/                   0xA9EB4E97, 0xBD3CD148,
+/**/                   0x544693B4, 0x3F27410E,
+/**/                   0x28000000, 0xBF274087,
+/**/                   0xCA4F73AA, 0xBD277AAC,
+/**/                   0x8BE248AA, 0x3F270108,
+/**/                   0x44000000, 0xBF270084,
+/**/                   0x26068EF7, 0x3D13E656,
+/**/                   0xD38025D2, 0x3F26C102,
+/**/                   0x68000000, 0xBF26C081,
+/**/                   0x44C3EC8A, 0x3D35547B,
+/**/                   0x2B20252A, 0x3F2680FD,
+/**/                   0x93800000, 0xBF26807E,
+/**/                   0x110DCE4B, 0xBD3AABA5,
+/**/                   0x92C240B1, 0x3F2640F7,
+/**/                   0xC7800000, 0xBF26407B,
+/**/                   0xAC011956, 0xBD260B96,
+/**/                   0x0A667267, 0x3F2600F2,
+/**/                   0x03800000, 0xBF260079,
+/**/                   0x5DFA826E, 0x3D111C22,
+/**/                   0x920CB44A, 0x3F25C0EC,
+/**/                   0x47800000, 0xBF25C076,
+/**/                   0xD8A2980A, 0x3D333BD6,
+/**/                   0x29B5005A, 0x3F2580E7,
+/**/                   0x93000000, 0xBF258073,
+/**/                   0x71C1D861, 0xBD3E2660,
+/**/                   0xD15F5095, 0x3F2540E1,
+/**/                   0xE7000000, 0xBF254070,
+/**/                   0x4E77E5EE, 0xBD2FBD3A,
+/**/                   0x890B9EFA, 0x3F2500DC,
+/**/                   0x43000000, 0xBF25006E,
+/**/                   0x7B90A2D9, 0xBCFEBDF2,
+/**/                   0x50B9E589, 0x3F24C0D7,
+/**/                   0xA7000000, 0xBF24C06B,
+/**/                   0x58F2FF2C, 0x3D2765B3,
+/**/                   0x286A1E40, 0x3F2480D2,
+/**/                   0x13000000, 0xBF248069,
+/**/                   0x74AE382C, 0x3D38FE8D,
+/**/                   0x101C431E, 0x3F2440CD,
+/**/                   0x86800000, 0xBF244066,
+/**/                   0xB0286224, 0xBD3A07C3,
+/**/                   0x07D04E23, 0x3F2400C8,
+/**/                   0x02800000, 0xBF240064,
+/**/                   0x46EFC0EC, 0xBD2ABE33,
+/**/                   0x0F86394D, 0x3F23C0C3,
+/**/                   0x86800000, 0xBF23C061,
+/**/                   0x70DE3151, 0xBCF06744,
+/**/                   0x273DFE9C, 0x3F2380BE,
+/**/                   0x12800000, 0xBF23805F,
+/**/                   0x05CFCD61, 0x3D260659,
+/**/                   0x4EF7980F, 0x3F2340B9,
+/**/                   0xA6800000, 0xBF23405C,
+/**/                   0xD7DBBEBC, 0x3D36BEC8,
+/**/                   0x86B2FFA4, 0x3F2300B4,
+/**/                   0x42000000, 0xBF23005A,
+/**/                   0x2B2027B4, 0xBD3DD29F,
+/**/                   0xCE702F5C, 0x3F22C0AF,
+/**/                   0xE6000000, 0xBF22C057,
+/**/                   0x6959A7D0, 0xBD32B00B,
+/**/                   0x262F2134, 0x3F2280AB,
+/**/                   0x92000000, 0xBF228055,
+/**/                   0x19FAAC2D, 0xBD1F61EF,
+/**/                   0x8DEFCF2C, 0x3F2240A6,
+/**/                   0x46000000, 0xBF224053,
+/**/                   0xCB16B8A8, 0x3D05A87E,
+/**/                   0x05B23344, 0x3F2200A2,
+/**/                   0x02000000, 0xBF220051,
+/**/                   0x23B9B257, 0x3D29F32F,
+/**/                   0x8D76477A, 0x3F21C09D,
+/**/                   0xC6000000, 0xBF21C04E,
+/**/                   0x7E214821, 0x3D36F61B,
+/**/                   0x253C05CD, 0x3F218099,
+/**/                   0x91800000, 0xBF21804C,
+/**/                   0x46FDFCA2, 0xBD3F5464,
+/**/                   0xCD03683D, 0x3F214094,
+/**/                   0x65800000, 0xBF21404A,
+/**/                   0xA30F2308, 0xBD35E4E7,
+/**/                   0x84CC68C9, 0x3F210090,
+/**/                   0x41800000, 0xBF210048,
+/**/                   0xF800CC34, 0xBD2974DC,
+/**/                   0x4C970171, 0x3F20C08C,
+/**/                   0x25800000, 0xBF20C046,
+/**/                   0xC1006E9D, 0xBD0E9FC5,
+/**/                   0x24632C32, 0x3F208088,
+/**/                   0x11800000, 0xBF208044,
+/**/                   0x078E4438, 0x3D133DE7,
+/**/                   0x0C30E30D, 0x3F204084,
+/**/                   0x05800000, 0xBF204042,
+/**/                   0x15F82A7B, 0x3D2A61D2,
+/**/                   0x04002001, 0x3F200080,
+/**/                   0x01800000, 0xBF200040,
+/**/                   0x3BBB110C, 0x3D355155,
+/**/                   0x17A1BA1A, 0x3F1F80F8,
+/**/                   0x0B000000, 0xBF1F807C,
+/**/                   0x6C520A9B, 0x3D3D31BE,
+/**/                   0x47462860, 0x3F1F00F0,
+/**/                   0x22000000, 0xBF1F0078,
+/**/                   0x4B6D83F6, 0xBD3B2CDB,
+/**/                   0x96ED7ED3, 0x3F1E80E8,
+/**/                   0x4A000000, 0xBF1E8074,
+/**/                   0xD4122C5A, 0xBD33C977,
+/**/                   0x0697B172, 0x3F1E00E1,
+/**/                   0x82000000, 0xBF1E0070,
+/**/                   0x2D1517C4, 0xBD29462E,
+/**/                   0x9644B43B, 0x3F1D80D9,
+/**/                   0xCA000000, 0xBF1D806C,
+/**/                   0xF0952D45, 0xBD16E2E3,
+/**/                   0x45F47B2C, 0x3F1D00D2,
+/**/                   0x22000000, 0xBF1D0069,
+/**/                   0x2DDC2A8D, 0x3CEED452,
+/**/                   0x15A6FA46, 0x3F1C80CB,
+/**/                   0x8A000000, 0xBF1C8065,
+/**/                   0xA08CEBE8, 0x3D1DAFEE,
+/**/                   0x055C2585, 0x3F1C00C4,
+/**/                   0x02000000, 0xBF1C0062,
+/**/                   0xBB11EF55, 0x3D2B50A4,
+/**/                   0x1513F0E9, 0x3F1B80BD,
+/**/                   0x8A000000, 0xBF1B805E,
+/**/                   0xC6D142BF, 0x3D33ACA6,
+/**/                   0x44CE5071, 0x3F1B00B6,
+/**/                   0x22000000, 0xBF1B005B,
+/**/                   0xF8CD3D11, 0x3D3979F8,
+/**/                   0x948B381A, 0x3F1A80AF,
+/**/                   0xCA000000, 0xBF1A8057,
+/**/                   0x07EDFD29, 0x3D3F1149,
+/**/                   0x044A9BE5, 0x3F1A00A9,
+/**/                   0x81000000, 0xBF1A0054,
+/**/                   0xF7BB7092, 0xBD3B8C68,
+/**/                   0x940C6FCF, 0x3F1980A2,
+/**/                   0x49000000, 0xBF198051,
+/**/                   0xF27E09A9, 0xBD365E1C,
+/**/                   0x43D0A7D8, 0x3F19009C,
+/**/                   0x21000000, 0xBF19004E,
+/**/                   0xD508D564, 0xBD3162D2,
+/**/                   0x139737FE, 0x3F188096,
+/**/                   0x09000000, 0xBF18804B,
+/**/                   0x18D5C93E, 0xBD293315,
+/**/                   0x03601440, 0x3F180090,
+/**/                   0x01000000, 0xBF180048,
+/**/                   0x0C26A328, 0xBD200288,
+/**/                   0x132B309E, 0x3F17808A,
+/**/                   0x09000000, 0xBF178045,
+/**/                   0x7E89FD6F, 0xBD0CC7F9,
+/**/                   0x42F88115, 0x3F170084,
+/**/                   0x21000000, 0xBF170042,
+/**/                   0x058494DC, 0x3CE40881,
+/**/                   0x92C7F9A5, 0x3F16807E,
+/**/                   0x49000000, 0xBF16803F,
+/**/                   0xCD5698B9, 0x3D12AE16,
+/**/                   0x02998E4D, 0x3F160079,
+/**/                   0x81000000, 0xBF16003C,
+/**/                   0xC5780E17, 0x3D21138B,
+/**/                   0x926D330B, 0x3F158073,
+/**/                   0xC9000000, 0xBF158039,
+/**/                   0x4E2001E2, 0x3D287809,
+/**/                   0x4242DBDF, 0x3F15006E,
+/**/                   0x21000000, 0xBF150037,
+/**/                   0x21448AA2, 0x3D2F8684,
+/**/                   0x121A7CC8, 0x3F148069,
+/**/                   0x89000000, 0xBF148034,
+/**/                   0x2F637D8E, 0x3D33207E,
+/**/                   0x01F409C4, 0x3F140064,
+/**/                   0x01000000, 0xBF140032,
+/**/                   0x12E44B29, 0x3D3654B9,
+/**/                   0x11CF76D3, 0x3F13805F,
+/**/                   0x89000000, 0xBF13802F,
+/**/                   0xCA5547F3, 0x3D3960F2,
+/**/                   0x41ACB7F4, 0x3F13005A,
+/**/                   0x21000000, 0xBF13002D,
+/**/                   0x6487063D, 0x3D3C462B,
+/**/                   0x918BC126, 0x3F128055,
+/**/                   0xC9000000, 0xBF12802A,
+/**/                   0xEFEA1107, 0x3D3F0562,
+/**/                   0x016C8668, 0x3F120051,
+/**/                   0x80000000, 0xBF120028,
+/**/                   0x857113CE, 0xBD3E6066,
+/**/                   0x914EFBBA, 0x3F11804C,
+/**/                   0x48000000, 0xBF118026,
+/**/                   0xEDD9EB54, 0xBD3BEA30,
+/**/                   0x41331519, 0x3F110048,
+/**/                   0x20000000, 0xBF110024,
+/**/                   0x3BFFFF5A, 0xBD3996FC,
+/**/                   0x1118C686, 0x3F108044,
+/**/                   0x08000000, 0xBF108022,
+/**/                   0x62F2E042, 0xBD3765C8,
+/**/                   0x01000400, 0x3F100040,
+/**/                   0x00000000, 0xBF100020,
+/**/                   0x562224CD, 0xBD355595,
+/**/                   0x21D1830C, 0x3F0F0078,
+/**/                   0x10000000, 0xBF0F003C,
+/**/                   0x095D69EB, 0xBD336563,
+/**/                   0x81A5E62E, 0x3F0E0070,
+/**/                   0x40000000, 0xBF0E0038,
+/**/                   0x70D45290, 0xBD319431,
+/**/                   0x217D1965, 0x3F0D0069,
+/**/                   0x90000000, 0xBF0D0034,
+/**/                   0x022D0EF6, 0xBD2FC201,
+/**/                   0x015704B1, 0x3F0C0062,
+/**/                   0x00000000, 0xBF0C0031,
+/**/                   0x5E276E21, 0xBD2C95A0,
+/**/                   0x2133900E, 0x3F0B005B,
+/**/                   0x90000000, 0xBF0B002D,
+/**/                   0xE0372A42, 0xBD29A140,
+/**/                   0x8112A37D, 0x3F0A0054,
+/**/                   0x40000000, 0xBF0A002A,
+/**/                   0x73BBB580, 0xBD26E2E2,
+/**/                   0x20F426FB, 0x3F09004E,
+/**/                   0x10000000, 0xBF090027,
+/**/                   0x04D48C20, 0xBD245885,
+/**/                   0x00D80288, 0x3F080048,
+/**/                   0x00000000, 0xBF080024,
+/**/                   0x80613426, 0xBD220028,
+/**/                   0x20BE1E23, 0x3F070042,
+/**/                   0x10000000, 0xBF070021,
+/**/                   0xA80279F3, 0xBD1FAF99,
+/**/                   0x80A661CA, 0x3F06003C,
+/**/                   0x40000000, 0xBF06001E,
+/**/                   0xDC287DFE, 0xBD1BBAE3,
+/**/                   0x2090B57C, 0x3F050037,
+/**/                   0x90000000, 0xBF05001B,
+/**/                   0x7B73B67C, 0xBD181E2F,
+/**/                   0x007D0139, 0x3F040032,
+/**/                   0x00000000, 0xBF040019,
+/**/                   0x65A375F8, 0xBD14D57C,
+/**/                   0x206B2CFF, 0x3F03002D,
+/**/                   0x90000000, 0xBF030016,
+/**/                   0x7BF71EC1, 0xBD11DCCA,
+/**/                   0x805B20CD, 0x3F020028,
+/**/                   0x40000000, 0xBF020014,
+/**/                   0x425C4447, 0xBD0E6033,
+/**/                   0x204CC4A3, 0x3F010024,
+/**/                   0x10000000, 0xBF010012,
+/**/                   0x730FFF5C, 0xBD0996D3,
+/**/                   0x00400080, 0x3F000020,
+/**/                   0x00000000, 0xBF000010,
+/**/                   0x558888DE, 0xBD055575,
+/**/                   0x406978C6, 0x3EFE0038,
+/**/                   0x20000000, 0xBEFE001C,
+/**/                   0xB845146A, 0xBD019418,
+/**/                   0x0055C096, 0x3EFC0031,
+/**/                   0x80000000, 0xBEFC0018,
+/**/                   0xD989DB3C, 0xBCFC957A,
+/**/                   0x4044A870, 0x3EFA002A,
+/**/                   0x20000000, 0xBEFA0015,
+/**/                   0x8F0EED2F, 0xBCF6E2C6,
+/**/                   0x00360051, 0x3EF80024,
+/**/                   0x00000000, 0xBEF80012,
+/**/                   0x40184CEB, 0xBCF20014,
+/**/                   0x40299839, 0x3EF6001E,
+/**/                   0x20000000, 0xBEF6000F,
+/**/                   0x434A1F5C, 0xBCEBBAC7,
+/**/                   0x001F4027, 0x3EF40019,
+/**/                   0x80000000, 0xBEF4000C,
+/**/                   0xDD68DD6A, 0xBCE4D568,
+/**/                   0x4016C81A, 0x3EF20014,
+/**/                   0x20000000, 0xBEF2000A,
+/**/                   0xA11710FC, 0xBCDE6019,
+/**/                   0x00100010, 0x3EF00010,
+/**/                   0x00000000, 0xBEF00008,
+/**/                   0x5562222D, 0xBCD55565,
+/**/                   0x80157013, 0x3EEC0018,
+/**/                   0x40000000, 0xBEEC000C,
+/**/                   0x176276C5, 0xBCCC9568,
+/**/                   0x000D800A, 0x3EE80012,
+/**/                   0x00000000, 0xBEE80009,
+/**/                   0x20061337, 0xBCC2000A,
+/**/                   0x8007D005, 0x3EE4000C,
+/**/                   0x40000000, 0xBEE40006,
+/**/                   0x195A3758, 0xBCB4D55F,
+/**/                   0x00040002, 0x3EE00008,
+/**/                   0x00000000, 0xBEE00004,
+/**/                   0x5558888A, 0xBCA5555D,
+/**/                   0x00036001, 0x3ED80009,
+/**/                   0x80000000, 0xBED80004,
+/**/                   0x100184CD, 0xBC920005,
+/**/                   0x00010000, 0x3ED00004,
+/**/                   0x00000000, 0xBED00002,
+/**/                   0x55562222, 0xBC755559,
+/**/                   0x00004000, 0x3EC00002,
+/**/                   0x00000000, 0xBEC00001,
+/**/                   0x55558889, 0xBC455557,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00000000, 0x00000000,
+/**/                   0x00008000, 0xBEBFFFFC,
+/**/                   0x00000000, 0x3EBFFFFE,
+/**/                   0x55558889, 0x3C455553,
+/**/                   0x00020000, 0xBECFFFF8,
+/**/                   0x00000000, 0x3ECFFFFC,
+/**/                   0x55562222, 0x3C755551,
+/**/                   0x00035FFF, 0xBED7FFF7,
+/**/                   0x80000000, 0x3ED7FFFB,
+/**/                   0xF00184CC, 0x3C91FFFA,
+/**/                   0x0007FFFC, 0xBEDFFFF0,
+/**/                   0x00000000, 0x3EDFFFF8,
+/**/                   0x55588887, 0x3CA5554D,
+/**/                   0x8007CFFB, 0xBEE3FFF3,
+/**/                   0xC0000000, 0x3EE3FFF9,
+/**/                   0x915A3753, 0x3CB4D54B,
+/**/                   0x000D7FF6, 0xBEE7FFEE,
+/**/                   0x00000000, 0x3EE7FFF7,
+/**/                   0xE006132F, 0x3CC1FFF5,
+/**/                   0x80156FED, 0xBEEBFFE7,
+/**/                   0xC0000000, 0x3EEBFFF3,
+/**/                   0x936276B2, 0x3CCC9542,
+/**/                   0x001FFFE0, 0xBEEFFFE0,
+/**/                   0x00000000, 0x3EEFFFF0,
+/**/                   0x55622217, 0x3CD55545,
+/**/                   0xC016C7E6, 0xBEF1FFEB,
+/**/                   0xE0000000, 0x3EF1FFF5,
+/**/                   0x5F1710D1, 0x3CDE5FE6,
+/**/                   0x001F3FD9, 0xBEF3FFE7,
+/**/                   0x80000000, 0x3EF3FFF3,
+/**/                   0xCD68DD41, 0x3CE4D541,
+/**/                   0xC02997C7, 0xBEF5FFE1,
+/**/                   0xE0000000, 0x3EF5FFF0,
+/**/                   0x124A1F13, 0x3CEBBA8E,
+/**/                   0x0035FFAF, 0xBEF7FFDC,
+/**/                   0x00000000, 0x3EF7FFEE,
+/**/                   0xC0184CAE, 0x3CF1FFEB,
+/**/                   0xC044A790, 0xBEF9FFD5,
+/**/                   0xE0000000, 0x3EF9FFEA,
+/**/                   0xC68EECCD, 0x3CF6E28E,
+/**/                   0x0055BF6A, 0xBEFBFFCF,
+/**/                   0x80000000, 0x3EFBFFE7,
+/**/                   0xD189DAA2, 0x3CFC952F,
+/**/                   0xC069773A, 0xBEFDFFC7,
+/**/                   0xE0000000, 0x3EFDFFE3,
+/**/                   0x480513F6, 0x3D0193E7,
+/**/                   0x007FFF00, 0xBEFFFFC0,
+/**/                   0x00000000, 0x3EFFFFE0,
+/**/                   0x55888833, 0x3D055535,
+/**/                   0xE04CC35D, 0xBF00FFDB,
+/**/                   0xF0000000, 0x3F00FFED,
+/**/                   0xE2CFFE66, 0x3D099681,
+/**/                   0x805B1F33, 0xBF01FFD7,
+/**/                   0xC0000000, 0x3F01FFEB,
+/**/                   0xBE5C42ED, 0x3D0E5FCC,
+/**/                   0xE06B2B01, 0xBF02FFD2,
+/**/                   0x70000000, 0x3F02FFE9,
+/**/                   0xD9D71DD1, 0x3D11DC8A,
+/**/                   0x007CFEC8, 0xBF03FFCE,
+/**/                   0x00000000, 0x3F03FFE7,
+/**/                   0x45A374B3, 0x3D14D52E,
+/**/                   0xE090B284, 0xBF04FFC8,
+/**/                   0x70000000, 0x3F04FFE4,
+/**/                   0x8553B4C7, 0x3D181DD0,
+/**/                   0x80A65E36, 0xBF05FFC3,
+/**/                   0xC0000000, 0x3F05FFE1,
+/**/                   0x7A287BBE, 0x3D1BBA71,
+/**/                   0xE0BE19DD, 0xBF06FFBD,
+/**/                   0xF0000000, 0x3F06FFDE,
+/**/                   0x03E27702, 0x3D1FAF11,
+/**/                   0x00D7FD78, 0xBF07FFB8,
+/**/                   0x00000000, 0x3F07FFDC,
+/**/                   0x80613240, 0x3D21FFD7,
+/**/                   0xE0F42105, 0xBF08FFB1,
+/**/                   0xF0000000, 0x3F08FFD8,
+/**/                   0xA6C489B3, 0x3D245825,
+/**/                   0x81129C84, 0xBF09FFAB,
+/**/                   0xC0000000, 0x3F09FFD5,
+/**/                   0xE2BBB26F, 0x3D26E272,
+/**/                   0xE13387F2, 0xBF0AFFA4,
+/**/                   0x70000000, 0x3F0AFFD2,
+/**/                   0x21272669, 0x3D29A0BF,
+/**/                   0x0156FB50, 0xBF0BFF9E,
+/**/                   0x00000000, 0x3F0BFFCF,
+/**/                   0x4E276957, 0x3D2C950A,
+/**/                   0xE17D0E9B, 0xBF0CFF96,
+/**/                   0x70000000, 0x3F0CFFCB,
+/**/                   0x551D090E, 0x3D2FC154,
+/**/                   0x81A5D9D2, 0xBF0DFF8F,
+/**/                   0xC0000000, 0x3F0DFFC7,
+/**/                   0x90544EF1, 0x3D3193CE,
+/**/                   0xE1D174F4, 0xBF0EFF87,
+/**/                   0xF0000000, 0x3F0EFFC3,
+/**/                   0x4D556583, 0x3D3364F2,
+/**/                   0x01FFF800, 0xBF0FFF80,
+/**/                   0x00000000, 0x3F0FFFC0,
+/**/                   0x56221F78, 0x3D355515,
+/**/                   0xF118BD7A, 0xBF107FBB,
+/**/                   0xF8000000, 0x3F107FDD,
+/**/                   0x9EEAD9D8, 0x3D376537,
+/**/                   0xC1330AE7, 0xBF10FFB7,
+/**/                   0xE0000000, 0x3F10FFDB,
+/**/                   0x1B7FF7AE, 0x3D399659,
+/**/                   0x714EF047, 0xBF117FB3,
+/**/                   0xB8000000, 0x3F117FD9,
+/**/                   0xBF51E233, 0x3D3BE979,
+/**/                   0x016C7998, 0xBF11FFAF,
+/**/                   0x80000000, 0x3F11FFD7,
+/**/                   0x7D7108FF, 0x3D3E5F99,
+/**/                   0x718BB2DA, 0xBF127FAA,
+/**/                   0x39000000, 0x3F127FD5,
+/**/                   0xB7721DC6, 0xBD3F0647,
+/**/                   0xC1ACA80C, 0xBF12FFA5,
+/**/                   0xE1000000, 0x3F12FFD2,
+/**/                   0xED071532, 0xBD3C4729,
+/**/                   0xF1CF652D, 0xBF137FA0,
+/**/                   0x79000000, 0x3F137FD0,
+/**/                   0x315D596D, 0xBD39620D,
+/**/                   0x01F3F63C, 0xBF13FF9C,
+/**/                   0x01000000, 0x3F13FFCE,
+/**/                   0x92E45F81, 0xBD3655F1,
+/**/                   0xF21A6739, 0xBF147F96,
+/**/                   0x79000000, 0x3F147FCB,
+/**/                   0x206B9526, 0xBD3321D7,
+/**/                   0xC242C421, 0xBF14FF91,
+/**/                   0xE1000000, 0x3F14FFC8,
+/**/                   0xD244C12A, 0xBD2F897B,
+/**/                   0x726D18F6, 0xBF157F8C,
+/**/                   0x39000000, 0x3F157FC6,
+/**/                   0xF93040AE, 0xBD287B4B,
+/**/                   0x029971B4, 0xBF15FF87,
+/**/                   0x81000000, 0x3F15FFC3,
+/**/                   0xD578562C, 0xBD21171E,
+/**/                   0x72C7DA5C, 0xBF167F81,
+/**/                   0xB9000000, 0x3F167FC0,
+/**/                   0x0F773DB4, 0xBD12B5E9,
+/**/                   0xC2F85EEC, 0xBF16FF7B,
+/**/                   0xE1000000, 0x3F16FFBD,
+/**/                   0x158A76C2, 0xBCE44CD3,
+/**/                   0xF32B0B63, 0xBF177F75,
+/**/                   0xF9000000, 0x3F177FBA,
+/**/                   0x2E48511B, 0x3D0CB55C,
+/**/                   0x035FEBC0, 0xBF17FF70,
+/**/                   0x01000000, 0x3F17FFB8,
+/**/                   0x184C534F, 0x3D1FFAF0,
+/**/                   0xF3970C03, 0xBF187F69,
+/**/                   0xF9000000, 0x3F187FB4,
+/**/                   0xACC53FBE, 0x3D292D95,
+/**/                   0xC3D07829, 0xBF18FF63,
+/**/                   0xE1000000, 0x3F18FFB1,
+/**/                   0xE48887C8, 0x3D315FD7,
+/**/                   0x740C3C32, 0xBF197F5D,
+/**/                   0xB9000000, 0x3F197FAE,
+/**/                   0x1DF5B242, 0x3D365AE3,
+/**/                   0x044A641C, 0xBF19FF57,
+/**/                   0x81000000, 0x3F19FFAB,
+/**/                   0x6FBB0E5F, 0x3D3B88EC,
+/**/                   0x748AFBE7, 0xBF1A7F50,
+/**/                   0x3A000000, 0x3F1A7FA8,
+/**/                   0x39766B40, 0xBD3F150C,
+/**/                   0xC4CE0F91, 0xBF1AFF49,
+/**/                   0xE2000000, 0x3F1AFFA4,
+/**/                   0xF14DB839, 0xBD397E06,
+/**/                   0xF513AB19, 0xBF1B7F42,
+/**/                   0x7A000000, 0x3F1B7FA1,
+/**/                   0xCBD9CC3D, 0xBD33B103,
+/**/                   0x055BDA7D, 0xBF1BFF3C,
+/**/                   0x02000000, 0x3F1BFF9E,
+/**/                   0xBB1321B5, 0xBD2B5A05,
+/**/                   0xF5A6A9BD, 0xBF1C7F34,
+/**/                   0x7A000000, 0x3F1C7F9A,
+/**/                   0xECAF9551, 0xBD1DC410,
+/**/                   0xC5F424D6, 0xBF1CFF2D,
+/**/                   0xE2000000, 0x3F1CFF96,
+/**/                   0x3DF3CD68, 0xBCEF80FF,
+/**/                   0x764457C8, 0xBF1D7F26,
+/**/                   0x3A000000, 0x3F1D7F93,
+/**/                   0x4271E737, 0x3D16CBC7,
+/**/                   0x06974E91, 0xBF1DFF1F,
+/**/                   0x82000000, 0x3F1DFF8F,
+/**/                   0x1D134848, 0x3D2939D2,
+/**/                   0x76ED1530, 0xBF1E7F17,
+/**/                   0xBA000000, 0x3F1E7F8B,
+/**/                   0xA9892C73, 0x3D33C2DD,
+/**/                   0xC745B7A4, 0xBF1EFF0F,
+/**/                   0xE2000000, 0x3F1EFF87,
+/**/                   0x8AEC69D5, 0x3D3B25CF,
+/**/                   0xF7A141EA, 0xBF1F7F07,
+/**/                   0xFB000000, 0x3F1F7F83,
+/**/                   0x645B412A, 0xBD3D3941,
+/**/                   0x07FFC002, 0xBF1FFF00,
+/**/                   0x03000000, 0x3F1FFF80,
+/**/                   0x3BBC6662, 0xBD355955,
+/**/                   0xFC309EF5, 0xBF203F7B,
+/**/                   0xFD800000, 0x3F203FBD,
+/**/                   0x260B17B3, 0xBD2A72D8,
+/**/                   0xE462E3D0, 0xBF207F77,
+/**/                   0xF1800000, 0x3F207FBB,
+/**/                   0x0994AE68, 0xBD136218,
+/**/                   0xBC96B492, 0xBF20BF73,
+/**/                   0xDD800000, 0x3F20BFB9,
+/**/                   0xECB2641F, 0x3D0E52E6,
+/**/                   0x84CC1739, 0xBF20FF6F,
+/**/                   0xC1800000, 0x3F20FFB7,
+/**/                   0xE7FCF60B, 0x3D296078,
+/**/                   0x3D0311C6, 0xBF213F6B,
+/**/                   0x9D800000, 0x3F213FB5,
+/**/                   0xA7850AFF, 0x3D35DA18,
+/**/                   0xE53BAA36, 0xBF217F66,
+/**/                   0x71800000, 0x3F217FB3,
+/**/                   0x5E7BB444, 0x3D3F48F1,
+/**/                   0x7D75E68A, 0xBF21BF62,
+/**/                   0x3E000000, 0x3F21BFB1,
+/**/                   0x812BC469, 0xBD370239,
+/**/                   0x05B1CCC0, 0xBF21FF5E,
+/**/                   0x02000000, 0x3F21FFAF,
+/**/                   0x23BF1A4D, 0xBD2A0CD0,
+/**/                   0x7DEF62D8, 0xBF223F59,
+/**/                   0xBE000000, 0x3F223FAC,
+/**/                   0x736E3623, 0xBD0614D3,
+/**/                   0xE62EAED0, 0xBF227F54,
+/**/                   0x72000000, 0x3F227FAA,
+/**/                   0x37EDEDB0, 0x3D1F28BD,
+/**/                   0x3E6FB6A9, 0xBF22BF50,
+/**/                   0x1E000000, 0x3F22BFA8,
+/**/                   0x07CE33C8, 0x3D32A0F5,
+/**/                   0x86B28060, 0xBF22FF4B,
+/**/                   0xC2000000, 0x3F22FFA5,
+/**/                   0xA31C6A8D, 0x3D3DC2B6,
+/**/                   0xBEF711F6, 0xBF233F46,
+/**/                   0x5E800000, 0x3F233FA3,
+/**/                   0xFC67C9FB, 0xBD36CF8B,
+/**/                   0xE73D7169, 0xBF237F41,
+/**/                   0xF2800000, 0x3F237FA0,
+/**/                   0xE6D88A89, 0xBD2629A5,
+/**/                   0xFF85A4B8, 0xBF23BF3C,
+/**/                   0x7E800000, 0x3F23BF9E,
+/**/                   0x202574EC, 0x3CEE7C34,
+/**/                   0x07CFB1E3, 0xBF23FF38,
+/**/                   0x02800000, 0x3F23FF9C,
+/**/                   0x46E594C1, 0x3D2A9723,
+/**/                   0x001B9EE8, 0xBF243F33,
+/**/                   0x7E800000, 0x3F243F99,
+/**/                   0xF61AE74C, 0x3D39F33C,
+/**/                   0xE86971C7, 0xBF247F2D,
+/**/                   0xF3000000, 0x3F247F96,
+/**/                   0x85341E31, 0xBD39141C,
+/**/                   0xC0B9307F, 0xBF24BF28,
+/**/                   0x5F000000, 0x3F24BF94,
+/**/                   0xDA0FAF09, 0xBD2792F5,
+/**/                   0x890AE10E, 0xBF24FF23,
+/**/                   0xC3000000, 0x3F24FF91,
+/**/                   0xFB239430, 0x3CFD4219,
+/**/                   0x415E8974, 0xBF253F1E,
+/**/                   0x1F000000, 0x3F253F8F,
+/**/                   0x0359434A, 0x3D2F8B72,
+/**/                   0xE9B42FAF, 0xBF257F18,
+/**/                   0x73000000, 0x3F257F8C,
+/**/                   0x1939FEDF, 0x3D3E0C4B,
+/**/                   0x820BD9BF, 0xBF25BF13,
+/**/                   0xBF800000, 0x3F25BF89,
+/**/                   0x39B301E2, 0xBD335728,
+/**/                   0x0A658DA3, 0xBF25FF0E,
+/**/                   0x03800000, 0x3F25FF87,
+/**/                   0x5E1E8D4F, 0xBD118E84,
+/**/                   0x82C15159, 0xBF263F08,
+/**/                   0x3F800000, 0x3F263F84,
+/**/                   0xBDDDD045, 0x3D25CFC0,
+/**/                   0xEB1F2AE1, 0xBF267F02,
+/**/                   0x73800000, 0x3F267F81,
+/**/                   0x08837E99, 0x3D3A8C5C,
+/**/                   0x437F203A, 0xBF26BEFD,
+/**/                   0xA0000000, 0x3F26BF7E,
+/**/                   0x3C56F12D, 0xBD35752E,
+/**/                   0x8BE13762, 0xBF26FEF7,
+/**/                   0xC4000000, 0x3F26FF7B,
+/**/                   0x46359E28, 0xBD146EFA,
+/**/                   0xC4457659, 0xBF273EF1,
+/**/                   0xE0000000, 0x3F273F78,
+/**/                   0xCD265865, 0x3D273355,
+/**/                   0xECABE31C, 0xBF277EEB,
+/**/                   0xF4000000, 0x3F277F75,
+/**/                   0x095DEBF8, 0x3D3CAC0E,
+/**/                   0x051483AC, 0xBF27BEE6,
+/**/                   0x00800000, 0x3F27BF73,
+/**/                   0x4C39F4DB, 0xBD31E395,
+/**/                   0x0D7F5E08, 0xBF27FEE0,
+/**/                   0x04800000, 0x3F27FF70,
+/**/                   0xA1314B81, 0xBCB43F3D,
+/**/                   0x05EC782D, 0xBF283EDA,
+/**/                   0x00800000, 0x3F283F6D,
+/**/                   0x115B8D70, 0x3D321B10,
+/**/                   0xEE5BD81B, 0xBF287ED3,
+/**/                   0xF5000000, 0x3F287F69,
+/**/                   0x83704FE1, 0xBD3B54A7,
+/**/                   0xC6CD83D1, 0xBF28BECD,
+/**/                   0xE1000000, 0x3F28BF66,
+/**/                   0x41229C91, 0xBD20C4CC,
+/**/                   0x8F41814D, 0xBF28FEC7,
+/**/                   0xC5000000, 0x3F28FF63,
+/**/                   0x2A183F17, 0x3D25E5A8,
+/**/                   0x47B7D68F, 0xBF293EC1,
+/**/                   0xA1000000, 0x3F293F60,
+/**/                   0xF81B997D, 0x3D3EAC06,
+/**/                   0xF0308995, 0xBF297EBA,
+/**/                   0x75800000, 0x3F297F5D,
+/**/                   0x3A1E5BAD, 0xBD2A6B9B,
+/**/                   0x88ABA05E, 0xBF29BEB4,
+/**/                   0x41800000, 0x3F29BF5A,
+/**/                   0xBDFE3C77, 0x3D1D3958,
+/**/                   0x112920E9, 0xBF29FEAE,
+/**/                   0x05800000, 0x3F29FF57,
+/**/                   0x375BA904, 0x3D3C3972,
+/**/                   0x89A91135, 0xBF2A3EA7,
+/**/                   0xC2000000, 0x3F2A3F53,
+/**/                   0x588DE85B, 0xBD2CE6F3,
+/**/                   0xF22B7740, 0xBF2A7EA0,
+/**/                   0x76000000, 0x3F2A7F50,
+/**/                   0x75AEDBFD, 0x3D1D2249,
+/**/                   0x4AB05909, 0xBF2ABE9A,
+/**/                   0x22000000, 0x3F2ABF4D,
+/**/                   0x2CE7BDAC, 0x3D3D6E96,
+/**/                   0x9337BC90, 0xBF2AFE93,
+/**/                   0xC6800000, 0x3F2AFF49,
+/**/                   0xCB7D724C, 0xBD2800DC,
+/**/                   0xCBC1A7D1, 0xBF2B3E8C,
+/**/                   0x62800000, 0x3F2B3F46,
+/**/                   0xFA591B29, 0x3D25F908,
+/**/                   0xF44E20CE, 0xBF2B7E85,
+/**/                   0xF7000000, 0x3F2B7F42,
+/**/                   0x53021ED8, 0xBD3D9991,
+/**/                   0x0CDD2D83, 0xBF2BBE7F,
+/**/                   0x83000000, 0x3F2BBF3F,
+/**/                   0xFD596AD6, 0xBD1706BF,
+/**/                   0x156ED3F0, 0xBF2BFE78,
+/**/                   0x07000000, 0x3F2BFF3C,
+/**/                   0x4EC45253, 0x3D328528,
+/**/                   0x0E031A14, 0xBF2C3E71,
+/**/                   0x83800000, 0x3F2C3F38,
+/**/                   0x927D8A9E, 0xBD34C408,
+/**/                   0xF69A05ED, 0xBF2C7E69,
+/**/                   0xF7800000, 0x3F2C7F34,
+/**/                   0xCAE2C25F, 0x3D118EF4,
+/**/                   0xCF339D7A, 0xBF2CBE62,
+/**/                   0x63800000, 0x3F2CBF31,
+/**/                   0x73DBBB41, 0x3D3DFD79,
+/**/                   0x97CFE6B9, 0xBF2CFE5B,
+/**/                   0xC8000000, 0x3F2CFF2D,
+/**/                   0xE7FE77E6, 0xBD1FD74F,
+/**/                   0x506EE7AA, 0xBF2D3E54,
+/**/                   0x24000000, 0x3F2D3F2A,
+/**/                   0xBDDB871F, 0x3D328AD4,
+/**/                   0xF910A64A, 0xBF2D7E4C,
+/**/                   0x78800000, 0x3F2D7F26,
+/**/                   0x903DDD81, 0xBD327F8C,
+/**/                   0x91B52899, 0xBF2DBE45,
+/**/                   0xC4800000, 0x3F2DBF22,
+/**/                   0xDF52840A, 0x3D21D80F,
+/**/                   0x1A5C7495, 0xBF2DFE3E,
+/**/                   0x09000000, 0x3F2DFF1F,
+/**/                   0xEED9F651, 0xBD3B316D,
+/**/                   0x9306903D, 0xBF2E3E36,
+/**/                   0x45000000, 0x3F2E3F1B,
+/**/                   0x76DB3C6B, 0x3CF2911A,
+/**/                   0xFBB3818F, 0xBF2E7E2E,
+/**/                   0x79000000, 0x3F2E7F17,
+/**/                   0x85559113, 0x3D3DFC86,
+/**/                   0x54634E89, 0xBF2EBE27,
+/**/                   0xA5800000, 0x3F2EBF13,
+/**/                   0x0AB3DBE7, 0xBD12D83E,
+/**/                   0x9D15FD2B, 0xBF2EFE1F,
+/**/                   0xC9800000, 0x3F2EFF0F,
+/**/                   0x617B99F1, 0x3D39124F,
+/**/                   0xD5CB9373, 0xBF2F3E17,
+/**/                   0xE6000000, 0x3F2F3F0B,
+/**/                   0xF8F64DA1, 0xBD2152B9,
+/**/                   0xFE841760, 0xBF2F7E0F,
+/**/                   0xFA000000, 0x3F2F7F07,
+/**/                   0x34C4735B, 0x3D3617EB,
+/**/                   0x173F8EEF, 0xBF2FBE08,
+/**/                   0x06800000, 0x3F2FBF04,
+/**/                   0x739FA712, 0xBD2551B0,
+/**/                   0x1FFE0020, 0xBF2FFE00,
+/**/                   0x0A800000, 0x3F2FFF00,
+/**/                   0x885DE027, 0x3D351558,
+/**/                   0x0C5FB879, 0xBF301EFC,
+/**/                   0x03800000, 0x3F301F7E,
+/**/                   0x68F8FC50, 0xBD255905,
+/**/                   0x00C1F3B0, 0xBF303EF8,
+/**/                   0xFD800000, 0x3F303F7B,
+/**/                   0xDF771CF4, 0x3D361295,
+/**/                   0xED25B4B7, 0xBF305EF3,
+/**/                   0xF3C00000, 0x3F305F79,
+/**/                   0xD8A255DB, 0xBD2158BB,
+/**/                   0xD18AFE8B, 0xBF307EEF,
+/**/                   0xE5C00000, 0x3F307F77,
+/**/                   0xB740E625, 0x3D3917A1,
+/**/                   0xADF1D42C, 0xBF309EEB,
+/**/                   0xD4000000, 0x3F309F75,
+/**/                   0x9C716D59, 0xBD1281AD,
+/**/                   0x825A3899, 0xBF30BEE7,
+/**/                   0xBE000000, 0x3F30BF73,
+/**/                   0x86ED7DDC, 0x3D3E2C7A,
+/**/                   0x4EC42ED1, 0xBF30DEE3,
+/**/                   0xA4400000, 0x3F30DF71,
+/**/                   0xF54F7E28, 0x3CF7F534,
+/**/                   0x132FB9D5, 0xBF30FEDF,
+/**/                   0x86800000, 0x3F30FF6F,
+/**/                   0x404F4E01, 0xBD3AA6E1,
+/**/                   0xCF9CDCA2, 0xBF311EDA,
+/**/                   0x64800000, 0x3F311F6D,
+/**/                   0x4A6EC981, 0x3D2375B9,
+/**/                   0x840B9A38, 0xBF313ED6,
+/**/                   0x3EC00000, 0x3F313F6B,
+/**/                   0x33401DD0, 0xBD315A73,
+/**/                   0x307BF596, 0xBF315ED2,
+/**/                   0x14C00000, 0x3F315F69,
+/**/                   0x02C11605, 0x3D341A2F,
+/**/                   0xD4EDF1BC, 0xBF317ECD,
+/**/                   0xE7000000, 0x3F317F66,
+/**/                   0xB2B7E8C5, 0xBD1798F3,
+/**/                   0x716191A8, 0xBF319EC9,
+/**/                   0xB5400000, 0x3F319F64,
+/**/                   0x35D62ED5, 0xBD3F5AB7,
+/**/                   0x05D6D85A, 0xBF31BEC5,
+/**/                   0x7F400000, 0x3F31BF62,
+/**/                   0xCA7EC7CD, 0x3D1EF6FF,
+/**/                   0x924DC8D2, 0xBF31DEC0,
+/**/                   0x45800000, 0x3F31DF60,
+/**/                   0xA8550396, 0xBD309BD7,
+/**/                   0x16C6660D, 0xBF31FEBC,
+/**/                   0x07800000, 0x3F31FF5E,
+/**/                   0xC3E31F70, 0x3D379981,
+/**/                   0x9340B30B, 0xBF321EB7,
+/**/                   0xC5C00000, 0x3F321F5B,
+/**/                   0x5FE92B94, 0x3CD7B300,
+/**/                   0x07BCB2CC, 0xBF323EB3,
+/**/                   0x80000000, 0x3F323F59,
+/**/                   0x25A7CF34, 0xBD364AF9,
+/**/                   0x743A684F, 0xBF325EAE,
+/**/                   0x36000000, 0x3F325F57,
+/**/                   0x17E48399, 0x3D339D32,
+/**/                   0xD8B9D692, 0xBF327EA9,
+/**/                   0xE8400000, 0x3F327F54,
+/**/                   0xCC387BD1, 0xBCFE7B27,
+/**/                   0x353B0095, 0xBF329EA5,
+/**/                   0x96800000, 0x3F329F52,
+/**/                   0x1AE7FA80, 0xBD36D8A7,
+/**/                   0x89BDE957, 0xBF32BEA0,
+/**/                   0x40800000, 0x3F32BF50,
+/**/                   0x05CF3DC3, 0x3D34CB54,
+/**/                   0xD64293D7, 0xBF32DE9B,
+/**/                   0xE6C00000, 0x3F32DF4D,
+/**/                   0xD5A4F691, 0x3CF053EA,
+/**/                   0x1AC90315, 0xBF32FE97,
+/**/                   0x89000000, 0x3F32FF4B,
+/**/                   0x5CAE7B16, 0xBD3229E7,
+/**/                   0x57513A0F, 0xBF331E92,
+/**/                   0x27000000, 0x3F331F49,
+/**/                   0xAEED4509, 0x3D3B3EE1,
+/**/                   0x8BDB3BC4, 0xBF333E8D,
+/**/                   0xC1400000, 0x3F333F46,
+/**/                   0x2E0C2605, 0x3D228133,
+/**/                   0xB8670B34, 0xBF335E88,
+/**/                   0x57800000, 0x3F335F44,
+/**/                   0xBBD6E280, 0xBD20477F,
+/**/                   0xDCF4AB5D, 0xBF337E83,
+/**/                   0xE9C00000, 0x3F337F41,
+/**/                   0xE9CE8AFC, 0xBD38ED2A,
+/**/                   0xF9841F3F, 0xBF339E7E,
+/**/                   0x77C00000, 0x3F339F3F,
+/**/                   0x39159F9B, 0x3D36E558,
+/**/                   0x0E1569D9, 0xBF33BE7A,
+/**/                   0x02000000, 0x3F33BF3D,
+/**/                   0x40681634, 0x3D1D5325,
+/**/                   0x1AA88E2A, 0xBF33DE75,
+/**/                   0x88400000, 0x3F33DF3A,
+/**/                   0x7F2112CE, 0xBD1E775F,
+/**/                   0x1F3D8F31, 0xBF33FE70,
+/**/                   0x0A800000, 0x3F33FF38,
+/**/                   0x91F80D1B, 0xBD35F18B,
+/**/                   0x1BD46FED, 0xBF341E6B,
+/**/                   0x88800000, 0x3F341F35,
+/**/                   0xFDC3FC2F, 0x3D3C5AAD,
+/**/                   0x106D335D, 0xBF343E66,
+/**/                   0x02C00000, 0x3F343F33,
+/**/                   0x268A89F1, 0x3D2E8FA9,
+/**/                   0xFD07DC80, 0xBF345E60,
+/**/                   0x79000000, 0x3F345F30,
+/**/                   0x902AC9EE, 0x3D06B73F,
+/**/                   0xE1A46E55, 0xBF347E5B,
+/**/                   0xEB400000, 0x3F347F2D,
+/**/                   0x45C43959, 0xBD21EE30,
+/**/                   0xBE42EBDC, 0xBF349E56,
+/**/                   0x59800000, 0x3F349F2B,
+/**/                   0xE8B753E8, 0xBD34212B,
+/**/                   0x92E35813, 0xBF34BE51,
+/**/                   0xC3C00000, 0x3F34BF28,
+/**/                   0x9D2064DB, 0xBD3EA653,
+/**/                   0x5F85B5F9, 0xBF34DE4C,
+/**/                   0x29C00000, 0x3F34DF26,
+/**/                   0x81DCB6FB, 0x3D377A70,
+/**/                   0x242A088D, 0xBF34FE47,
+/**/                   0x8C000000, 0x3F34FF23,
+/**/                   0x6BB44A6D, 0x3D2C8440,
+/**/                   0xE0D052CF, 0xBF351E41,
+/**/                   0xEA400000, 0x3F351F20,
+/**/                   0x0048AAF8, 0x3D16C6ED,
+/**/                   0x957897BD, 0xBF353E3C,
+/**/                   0x44800000, 0x3F353F1E,
+/**/                   0xF506A07E, 0xBD01ADF4,
+/**/                   0x4222DA57, 0xBF355E37,
+/**/                   0x9AC00000, 0x3F355F1B,
+/**/                   0x4B88A655, 0xBD22E69B,
+/**/                   0xE6CF1D9B, 0xBF357E31,
+/**/                   0xED000000, 0x3F357F18,
+/**/                   0x153DAEB0, 0xBD3005F2,
+/**/                   0x837D6488, 0xBF359E2C,
+/**/                   0x3B400000, 0x3F359F16,
+/**/                   0x2D5222B4, 0xBD35ECAC,
+/**/                   0x182DB21E, 0xBF35BE27,
+/**/                   0x85800000, 0x3F35BF13,
+/**/                   0x2EA6CB14, 0xBD3B267C,
+/**/                   0xA4E0095B, 0xBF35DE21,
+/**/                   0xCBC00000, 0x3F35DF10,
+/**/                   0x5A40A340, 0xBD3FB262,
+/**/                   0x29946D3F, 0xBF35FE1C,
+/**/                   0x0DC00000, 0x3F35FF0E,
+/**/                   0x0E7B79ED, 0x3D3C70A1,
+/**/                   0xA64AE0C7, 0xBF361E16,
+/**/                   0x4C000000, 0x3F361F0B,
+/**/                   0xC9C8D263, 0x3D39438D,
+/**/                   0x1B0366F4, 0xBF363E11,
+/**/                   0x86400000, 0x3F363F08,
+/**/                   0x9582CD0C, 0x3D36C763,
+/**/                   0x87BE02C5, 0xBF365E0B,
+/**/                   0xBC800000, 0x3F365F05,
+/**/                   0x2F24F1F9, 0x3D34FD22,
+/**/                   0xEC7AB737, 0xBF367E05,
+/**/                   0xEEC00000, 0x3F367F02,
+/**/                   0x53CAEA94, 0x3D33E5C9,
+/**/                   0x4939874A, 0xBF369E00,
+/**/                   0x1D000000, 0x3F369F00,
+/**/                   0xC03081D0, 0x3D338258,
+/**/                   0x9DFA75FE, 0xBF36BDFA,
+/**/                   0x47400000, 0x3F36BEFD,
+/**/                   0x30B1A458, 0x3D33D3D0,
+/**/                   0xEABD8651, 0xBF36DDF4,
+/**/                   0x6D800000, 0x3F36DEFA,
+/**/                   0x614A60C1, 0x3D34DB2F,
+/**/                   0x2F82BB41, 0xBF36FDEF,
+/**/                   0x8FC00000, 0x3F36FEF7,
+/**/                   0x0D96E7B8, 0x3D369976,
+/**/                   0x6C4A17CF, 0xBF371DE9,
+/**/                   0xAE000000, 0x3F371EF4,
+/**/                   0xF0D38C30, 0x3D390FA3,
+/**/                   0xA1139EF8, 0xBF373DE3,
+/**/                   0xC8400000, 0x3F373EF1,
+/**/                   0xC5DCC397, 0x3D3C3EB8,
+/**/                   0xCDDF53BC, 0xBF375DDD,
+/**/                   0xDEC00000, 0x3F375EEE,
+/**/                   0xB8D0D9FD, 0xBD3FD84B,
+/**/                   0xF2AD3919, 0xBF377DD7,
+/**/                   0xF1000000, 0x3F377EEB,
+/**/                   0xD11891A0, 0xBD3B3469,
+/**/                   0x0F7D520F, 0xBF379DD2,
+/**/                   0xFF400000, 0x3F379EE8,
+/**/                   0xC93D855B, 0xBD35D4A1,
+/**/                   0x244FA19D, 0xBF37BDCC,
+/**/                   0x09800000, 0x3F37BEE6,
+/**/                   0xCFC56806, 0xBD2F6FE7,
+/**/                   0x31242AC1, 0xBF37DDC6,
+/**/                   0x0FC00000, 0x3F37DEE3,
+/**/                   0xE815F202, 0xBD21BAC0,
+/**/                   0x35FAF079, 0xBF37FDC0,
+/**/                   0x12000000, 0x3F37FEE0,
+/**/                   0x5190C28B, 0xBCF43E7B,
+/**/                   0x32D3F5C6, 0xBF381DBA,
+/**/                   0x10400000, 0x3F381EDD,
+/**/                   0x34C1F9E9, 0x3D1C55D8,
+/**/                   0x27AF3DA6, 0xBF383DB4,
+/**/                   0x0A800000, 0x3F383EDA,
+/**/                   0x8AAF36D4, 0x3D302FB8,
+/**/                   0x148CCB18, 0xBF385DAE,
+/**/                   0x00C00000, 0x3F385ED7,
+/**/                   0x7AE0D0F8, 0x3D3A0BDF,
+/**/                   0xF96CA11B, 0xBF387DA7,
+/**/                   0xF3400000, 0x3F387ED3,
+/**/                   0x6B1CDAAF, 0xBD3B5515,
+/**/                   0xD64EC2AD, 0xBF389DA1,
+/**/                   0xE1800000, 0x3F389ED0,
+/**/                   0xE1179E5E, 0xBD2FE44C,
+/**/                   0xAB3332CD, 0xBF38BD9B,
+/**/                   0xCBC00000, 0x3F38BECD,
+/**/                   0xF86F56EC, 0xBD0E529E,
+/**/                   0x7819F47A, 0xBF38DD95,
+/**/                   0xB2000000, 0x3F38DECA,
+/**/                   0xFEB631AB, 0x3D2246C3,
+/**/                   0x3D030AB4, 0xBF38FD8F,
+/**/                   0x94400000, 0x3F38FEC7,
+/**/                   0xE04DA791, 0x3D36D7FA,
+/**/                   0xF9EE7878, 0xBF391D88,
+/**/                   0x72C00000, 0x3F391EC4,
+/**/                   0x86F7ADBB, 0xBD3AAB89,
+/**/                   0xAEDC40C7, 0xBF393D82,
+/**/                   0x4D000000, 0x3F393EC1,
+/**/                   0x032C6155, 0xBD26CC57,
+/**/                   0x5BCC669D, 0xBF395D7C,
+/**/                   0x23400000, 0x3F395EBE,
+/**/                   0x93C3EB3D, 0x3D12A452,
+/**/                   0x00BEECFB, 0xBF397D76,
+/**/                   0xF5800000, 0x3F397EBA,
+/**/                   0xA0BCD695, 0x3D358336,
+/**/                   0x9DB3D6E0, 0xBF399D6F,
+/**/                   0xC4000000, 0x3F399EB7,
+/**/                   0xDA737570, 0xBD38D6C5,
+/**/                   0x32AB2749, 0xBF39BD69,
+/**/                   0x8E400000, 0x3F39BEB4,
+/**/                   0x65026C7D, 0xBD198F84,
+/**/                   0xBFA4E136, 0xBF39DD62,
+/**/                   0x54800000, 0x3F39DEB1,
+/**/                   0x2EA9B41A, 0x3D29B9C9,
+/**/                   0x44A107A5, 0xBF39FD5C,
+/**/                   0x17000000, 0x3F39FEAE,
+/**/                   0x16137ACF, 0xBD3F1375,
+/**/                   0xC19F9D96, 0xBF3A1D55,
+/**/                   0xD5400000, 0x3F3A1EAA,
+/**/                   0xDE73AFA0, 0xBD2467DC,
+/**/                   0x36A0A607, 0xBF3A3D4F,
+/**/                   0x8F800000, 0x3F3A3EA7,
+/**/                   0x7B8357C6, 0x3D26F8F0,
+/**/                   0xA3A423F7, 0xBF3A5D48,
+/**/                   0x46000000, 0x3F3A5EA4,
+/**/                   0x5DA0DFB7, 0xBD3E0141,
+/**/                   0x08AA1A64, 0xBF3A7D42,
+/**/                   0xF8400000, 0x3F3A7EA0,
+/**/                   0x41050D29, 0xBD1AB06E,
+/**/                   0x65B28C4E, 0xBF3A9D3B,
+/**/                   0xA6800000, 0x3F3A9E9D,
+/**/                   0x56A0E005, 0x3D317CE9,
+/**/                   0xBABD7CB3, 0xBF3ABD34,
+/**/                   0x51000000, 0x3F3ABE9A,
+/**/                   0xF899EF39, 0xBD358532,
+/**/                   0x07CAEE92, 0xBF3ADD2E,
+/**/                   0xF7400000, 0x3F3ADE96,
+/**/                   0xC83BF5C2, 0x3D113A3C,
+/**/                   0x4CDAE4EA, 0xBF3AFD27,
+/**/                   0x99800000, 0x3F3AFE93,
+/**/                   0x863C7C8E, 0x3D3EF92F,
+/**/                   0x89ED62B9, 0xBF3B1D20,
+/**/                   0x38000000, 0x3F3B1E90,
+/**/                   0x3341CC3C, 0xBD161149,
+/**/                   0xBF026AFE, 0xBF3B3D19,
+/**/                   0xD2400000, 0x3F3B3E8C,
+/**/                   0x67C955DF, 0x3D36D709,
+/**/                   0xEC1A00B8, 0xBF3B5D12,
+/**/                   0x68C00000, 0x3F3B5E89,
+/**/                   0x5AE9B17A, 0xBD27E77B,
+/**/                   0x113426E6, 0xBF3B7D0C,
+/**/                   0xFB000000, 0x3F3B7E85,
+/**/                   0x219679DE, 0x3D321C58,
+/**/                   0x2E50E086, 0xBF3B9D05,
+/**/                   0x89800000, 0x3F3B9E82,
+/**/                   0xFAA62113, 0xBD2DEF6A,
+/**/                   0x43703097, 0xBF3BBCFE,
+/**/                   0x13C00000, 0x3F3BBE7F,
+/**/                   0x23305306, 0x3D30D119,
+/**/                   0x50921A17, 0xBF3BDCF7,
+/**/                   0x9A400000, 0x3F3BDE7B,
+/**/                   0x9FBACE27, 0xBD2D1078,
+/**/                   0x55B6A006, 0xBF3BFCF0,
+/**/                   0x1C800000, 0x3F3BFE78,
+/**/                   0xD625DF1E, 0x3D32FD49,
+/**/                   0x52DDC563, 0xBF3C1CE9,
+/**/                   0x9B000000, 0x3F3C1E74,
+/**/                   0x7D07255B, 0xBD253AA9,
+/**/                   0x48078D2B, 0xBF3C3CE2,
+/**/                   0x15400000, 0x3F3C3E71,
+/**/                   0x9E08B538, 0x3D38A8E7,
+/**/                   0x3533FA5D, 0xBF3C5CDB,
+/**/                   0x8BC00000, 0x3F3C5E6D,
+/**/                   0x45956AFC, 0xBD09780B,
+/**/                   0x1A630FF9, 0xBF3C7CD4,
+/**/                   0xFE400000, 0x3F3C7E69,
+/**/                   0x2792F44E, 0xBD3E2410,
+/**/                   0xF794D0FC, 0xBF3C9CCC,
+/**/                   0x6C800000, 0x3F3C9E66,
+/**/                   0x30AB4456, 0x3D1F2AEC,
+/**/                   0xCCC94066, 0xBF3CBCC5,
+/**/                   0xD7000000, 0x3F3CBE62,
+/**/                   0x231641D5, 0xBD3161A0,
+/**/                   0x9A006135, 0xBF3CDCBE,
+/**/                   0x3D400000, 0x3F3CDE5F,
+/**/                   0xF4AD1934, 0x3D3657DD,
+/**/                   0x5F3A3668, 0xBF3CFCB7,
+/**/                   0x9FC00000, 0x3F3CFE5B,
+/**/                   0x2E7AC798, 0xBCF07CB0,
+/**/                   0x1C76C2FD, 0xBF3D1CB0,
+/**/                   0xFE400000, 0x3F3D1E57,
+/**/                   0x6090F643, 0xBD377F9B,
+/**/                   0xD1B609F3, 0xBF3D3CA8,
+/**/                   0x58800000, 0x3F3D3E54,
+/**/                   0x849503E6, 0x3D32F16C,
+/**/                   0x7EF80E49, 0xBF3D5CA1,
+/**/                   0xAF000000, 0x3F3D5E50,
+/**/                   0xAF1CA4EA, 0xBCFB3B3A,
+/**/                   0x243CD2FE, 0xBF3D7C9A,
+/**/                   0x01800000, 0x3F3D7E4D,
+/**/                   0x4701415B, 0xBD356DFC,
+/**/                   0xC1845B0F, 0xBF3D9C92,
+/**/                   0x4FC00000, 0x3F3D9E49,
+/**/                   0x582AEA48, 0x3D37C392,
+/**/                   0x56CEA97C, 0xBF3DBC8B,
+/**/                   0x9A400000, 0x3F3DBE45,
+/**/                   0x67DCC15E, 0x3D1787DF,
+/**/                   0xE41BC143, 0xBF3DDC83,
+/**/                   0xE0C00000, 0x3F3DDE41,
+/**/                   0x352F961F, 0xBD262398,
+/**/                   0x696BA563, 0xBF3DFC7C,
+/**/                   0x23400000, 0x3F3DFE3E,
+/**/                   0xDEDD373A, 0xBD3B16B9,
+/**/                   0xE6BE58DA, 0xBF3E1C74,
+/**/                   0x61800000, 0x3F3E1E3A,
+/**/                   0x336BE94B, 0x3D35D42E,
+/**/                   0x5C13DEA7, 0xBF3E3C6D,
+/**/                   0x9C000000, 0x3F3E3E36,
+/**/                   0x08A303A2, 0x3D1EBFAF,
+/**/                   0xC96C39C9, 0xBF3E5C65,
+/**/                   0xD2800000, 0x3F3E5E32,
+/**/                   0x34856362, 0xBD160A06,
+/**/                   0x2EC76D3D, 0xBF3E7C5E,
+/**/                   0x05000000, 0x3F3E7E2F,
+/**/                   0x154CDF1A, 0xBD31C21A,
+/**/                   0x8C257C04, 0xBF3E9C56,
+/**/                   0x33800000, 0x3F3E9E2B,
+/**/                   0x31941F7F, 0xBD3D0DDE,
+/**/                   0xE186691B, 0xBF3EBC4E,
+/**/                   0x5DC00000, 0x3F3EBE27,
+/**/                   0xC26EC60D, 0x3D389B31,
+/**/                   0x2EEA3781, 0xBF3EDC47,
+/**/                   0x84400000, 0x3F3EDE23,
+/**/                   0xD583BEF8, 0x3D2E742A,
+/**/                   0x7450EA34, 0xBF3EFC3F,
+/**/                   0xA6C00000, 0x3F3EFE1F,
+/**/                   0xAC2DA351, 0x3D1B3F31,
+/**/                   0xB1BA8433, 0xBF3F1C37,
+/**/                   0xC5400000, 0x3F3F1E1B,
+/**/                   0x2DC67430, 0xBCE45533,
+/**/                   0xE727087C, 0xBF3F3C2F,
+/**/                   0xDFC00000, 0x3F3F3E17,
+/**/                   0xFF1174AE, 0xBD1C7133,
+/**/                   0x14967A0F, 0xBF3F5C28,
+/**/                   0xF6400000, 0x3F3F5E13,
+/**/                   0x4AE098DC, 0xBD29383C,
+/**/                   0x3A08DBE9, 0xBF3F7C20,
+/**/                   0x08C00000, 0x3F3F7E10,
+/**/                   0x684B0B3B, 0xBD31211D,
+/**/                   0x577E3109, 0xBF3F9C18,
+/**/                   0x17400000, 0x3F3F9E0C,
+/**/                   0x268D7464, 0xBD34AA4B,
+/**/                   0x6CF67C6E, 0xBF3FBC10,
+/**/                   0x21C00000, 0x3F3FBE08,
+/**/                   0xBED03388, 0xBD3736A7,
+/**/                   0x7A71C116, 0xBF3FDC08,
+/**/                   0x28400000, 0x3F3FDE04,
+/**/                   0x900BC4E5, 0xBD38C533,
+/**/                   0x7FF00200, 0xBF3FFC00,
+/**/                   0x2AC00000, 0x3F3FFE00,
+/**/                   0xF9987527, 0xBD3954EE,
+/**/                   0x3EB8A115, 0xBF400DFC,
+/**/                   0x14A00000, 0x3F400EFE,
+/**/                   0x5B2E613B, 0xBD38E4DA,
+/**/                   0x397AC249, 0xBF401DF8,
+/**/                   0x11E00000, 0x3F401EFC,
+/**/                   0x14E5761B, 0xBD3773F6,
+/**/                   0x303E661C, 0xBF402DF4,
+/**/                   0x0D200000, 0x3F402EFA,
+/**/                   0x873570A0, 0xBD350142,
+/**/                   0x23038E0C, 0xBF403DF0,
+/**/                   0x06600000, 0x3F403EF8,
+/**/                   0x12F5DD53, 0xBD318BC0,
+/**/                   0x11CA3B9A, 0xBF404DEC,
+/**/                   0xFDA00000, 0x3F404EF5,
+/**/                   0x32BC307C, 0xBD2A24DE,
+/**/                   0xFC927044, 0xBF405DE7,
+/**/                   0xF2E00000, 0x3F405EF3,
+/**/                   0xF01532DA, 0xBD1E513F,
+/**/                   0xE35C2D8A, 0xBF406DE3,
+/**/                   0xE6200000, 0x3F406EF1,
+/**/                   0xCE27534E, 0xBCF10631,
+/**/                   0xC62774EA, 0xBF407DDF,
+/**/                   0xD7600000, 0x3F407EEF,
+/**/                   0x86CE9380, 0x3D19E95C,
+/**/                   0xA4F447E4, 0xBF408DDB,
+/**/                   0xC6A00000, 0x3F408EED,
+/**/                   0xBA0CD2C3, 0x3D2E19BC,
+/**/                   0x7FC2A7F8, 0xBF409DD7,
+/**/                   0xB3E00000, 0x3F409EEB,
+/**/                   0x31FF7199, 0x3D38A832,
+/**/                   0x569296A4, 0xBF40ADD3,
+/**/                   0x9F400000, 0x3F40AEE9,
+/**/                   0xC2D77791, 0xBD3CB2AD,
+/**/                   0x29641567, 0xBF40BDCF,
+/**/                   0x88800000, 0x3F40BEE7,
+/**/                   0xE5545563, 0xBD3102C1,
+/**/                   0xF83725C2, 0xBF40CDCA,
+/**/                   0x6FC00000, 0x3F40CEE5,
+/**/                   0x66B3E48D, 0xBD111C2A,
+/**/                   0xC30BC932, 0xBF40DDC6,
+/**/                   0x55000000, 0x3F40DEE3,
+/**/                   0x7711FC2A, 0x3D2302EF,
+/**/                   0x89E20138, 0xBF40EDC2,
+/**/                   0x38400000, 0x3F40EEE1,
+/**/                   0xB558238E, 0x3D3857C4,
+/**/                   0x4CB9CF52, 0xBF40FDBE,
+/**/                   0x19A00000, 0x3F40FEDF,
+/**/                   0x1194C2E1, 0xBD37C324,
+/**/                   0x0B933501, 0xBF410DBA,
+/**/                   0xF8E00000, 0x3F410EDC,
+/**/                   0xFBCAF285, 0xBD1B390B,
+/**/                   0xC66E33C2, 0xBF411DB5,
+/**/                   0xD6200000, 0x3F411EDA,
+/**/                   0x0E52C3A4, 0x3D266ECF,
+/**/                   0x7D4ACD15, 0xBF412DB1,
+/**/                   0xB1600000, 0x3F412ED8,
+/**/                   0x1A4AF71D, 0x3D3E4EDB,
+/**/                   0x30290279, 0xBF413DAD,
+/**/                   0x8AC00000, 0x3F413ED6,
+/**/                   0x58C4D599, 0xBD2B0DD1,
+/**/                   0xDF08D56E, 0xBF414DA8,
+/**/                   0x62000000, 0x3F414ED4,
+/**/                   0x2FB4061D, 0x3D1EDC6F,
+/**/                   0x89EA4773, 0xBF415DA4,
+/**/                   0x37400000, 0x3F415ED2,
+/**/                   0x1BA53538, 0x3D3E09E8,
+/**/                   0x30CD5A06, 0xBF416DA0,
+/**/                   0x0AA00000, 0x3F416ED0,
+/**/                   0x4A5B4574, 0xBD251B08,
+/**/                   0xD3B20EA8, 0xBF417D9B,
+/**/                   0xDBE00000, 0x3F417ECD,
+/**/                   0x4241B57B, 0x3D2BE3AD,
+/**/                   0x729866D7, 0xBF418D97,
+/**/                   0xAB400000, 0x3F418ECB,
+/**/                   0xFA22BD16, 0xBD387707,
+/**/                   0x0D806412, 0xBF419D93,
+/**/                   0x78800000, 0x3F419EC9,
+/**/                   0xFFA2FC2F, 0x3D01C6FC,
+/**/                   0xA46A07D9, 0xBF41AD8E,
+/**/                   0x43C00000, 0x3F41AEC7,
+/**/                   0x05F32EE8, 0x3D3E028D,
+/**/                   0x375553AB, 0xBF41BD8A,
+/**/                   0x0D200000, 0x3F41BEC5,
+/**/                   0xC7E46F2B, 0xBD146400,
+/**/                   0xC6424907, 0xBF41CD85,
+/**/                   0xD4600000, 0x3F41CEC2,
+/**/                   0x8DFCE791, 0x3D38E737,
+/**/                   0x5130E96B, 0xBF41DD81,
+/**/                   0x99C00000, 0x3F41DEC0,
+/**/                   0x92F4A6CE, 0xBD1FEF30,
+/**/                   0xD8213659, 0xBF41ED7C,
+/**/                   0x5D000000, 0x3F41EEBE,
+/**/                   0x4AE68315, 0x3D383EF4,
+/**/                   0x5B13314D, 0xBF41FD78,
+/**/                   0x1E600000, 0x3F41FEBC,
+/**/                   0x39A8276A, 0xBD199E1E,
+/**/                   0xDA06DBC8, 0xBF420D73,
+/**/                   0xDDA00000, 0x3F420EB9,
+/**/                   0xE39F6D77, 0x3D3C11BF,
+/**/                   0x54FC3749, 0xBF421D6F,
+/**/                   0x9B000000, 0x3F421EB7,
+/**/                   0xC3A8C440, 0xBCD50D72,
+/**/                   0xCBF3454F, 0xBF422D6A,
+/**/                   0x56600000, 0x3F422EB5,
+/**/                   0x06E59170, 0xBD3B9869,
+/**/                   0x3EEC0759, 0xBF423D66,
+/**/                   0x0FA00000, 0x3F423EB3,
+/**/                   0x86930551, 0x3D248C4B,
+/**/                   0xADE67EE6, 0xBF424D61,
+/**/                   0xC7000000, 0x3F424EB0,
+/**/                   0xB3649FF7, 0xBD2D6F13,
+/**/                   0x18E2AD76, 0xBF425D5D,
+/**/                   0x7C400000, 0x3F425EAE,
+/**/                   0xB496441D, 0x3D396F87,
+/**/                   0x7FE09487, 0xBF426D58,
+/**/                   0x2FA00000, 0x3F426EAC,
+/**/                   0x01961A2F, 0x3D05E2D0,
+/**/                   0xE2E03598, 0xBF427D53,
+/**/                   0xE1000000, 0x3F427EA9,
+/**/                   0x652D1720, 0xBD32D013,
+/**/                   0x41E1922A, 0xBF428D4F,
+/**/                   0x90400000, 0x3F428EA7,
+/**/                   0x15C6A78A, 0x3D38CB3F,
+/**/                   0x9CE4ABBA, 0xBF429D4A,
+/**/                   0x3DA00000, 0x3F429EA5,
+/**/                   0x07F8A52A, 0x3D163D44,
+/**/                   0xF3E983C8, 0xBF42AD45,
+/**/                   0xE9000000, 0x3F42AEA2,
+/**/                   0x1FEC6070, 0xBD2905BC,
+/**/                   0x46F01BD4, 0xBF42BD41,
+/**/                   0x92600000, 0x3F42BEA0,
+/**/                   0x8FE5CB8E, 0xBD3D6A4E,
+/**/                   0x95F8755C, 0xBF42CD3C,
+/**/                   0x39A00000, 0x3F42CE9E,
+/**/                   0x120028B6, 0x3D32D9FF,
+/**/                   0xE10291DF, 0xBF42DD37,
+/**/                   0xDF000000, 0x3F42DE9B,
+/**/                   0x94B2D8A6, 0x3D112C29,
+/**/                   0x280E72DD, 0xBF42ED33,
+/**/                   0x82600000, 0x3F42EE99,
+/**/                   0x0E9DC27F, 0xBD222C5A,
+/**/                   0x6B1C19D4, 0xBF42FD2E,
+/**/                   0x23C00000, 0x3F42FE97,
+/**/                   0xA4C12307, 0xBD3548A7,
+/**/                   0xAA2B8844, 0xBF430D29,
+/**/                   0xC3000000, 0x3F430E94,
+/**/                   0x1B27A40C, 0x3D3FB49A,
+/**/                   0xE53CBFAC, 0xBF431D24,
+/**/                   0x60600000, 0x3F431E92,
+/**/                   0xC65D601D, 0x3D35E297,
+/**/                   0x1C4FC18B, 0xBF432D20,
+/**/                   0xFBC00000, 0x3F432E8F,
+/**/                   0xD4E46CD5, 0x3D2A84A1,
+/**/                   0x4F648F60, 0xBF433D1B,
+/**/                   0x95200000, 0x3F433E8D,
+/**/                   0x526215F8, 0x3D175314,
+/**/                   0x7E7B2AAB, 0xBF434D16,
+/**/                   0x2C800000, 0x3F434E8B,
+/**/                   0x9746A94C, 0xBCD9430B,
+/**/                   0xA99394E9, 0xBF435D11,
+/**/                   0xC1E00000, 0x3F435E88,
+/**/                   0x47EF6144, 0xBD15A88D,
+/**/                   0xD0ADCF9B, 0xBF436D0C,
+/**/                   0x55400000, 0x3F436E86,
+/**/                   0x94614FFB, 0xBD227301,
+/**/                   0xF3C9DC3F, 0xBF437D07,
+/**/                   0xE6A00000, 0x3F437E83,
+/**/                   0x16908831, 0xBD27A44A,
+/**/                   0x12E7BC55, 0xBF438D03,
+/**/                   0x76000000, 0x3F438E81,
+/**/                   0x13DE59AC, 0xBD2A6621,
+/**/                   0x2E07715C, 0xBF439CFE,
+/**/                   0x03600000, 0x3F439E7F,
+/**/                   0x76635000, 0xBD2AB687,
+/**/                   0x4528FCD2, 0xBF43ACF9,
+/**/                   0x8EC00000, 0x3F43AE7C,
+/**/                   0x28F7818F, 0xBD28937E,
+/**/                   0x584C6037, 0xBF43BCF4,
+/**/                   0x18200000, 0x3F43BE7A,
+/**/                   0x17328F27, 0xBD23FB06,
+/**/                   0x67719D0A, 0xBF43CCEF,
+/**/                   0x9F800000, 0x3F43CE77,
+/**/                   0x5AD74747, 0xBD19D640,
+/**/                   0x7298B4CA, 0xBF43DCEA,
+/**/                   0x24E00000, 0x3F43DE75,
+/**/                   0xC5CB9C74, 0xBCFB0E6A,
+/**/                   0x79C1A8F6, 0xBF43ECE5,
+/**/                   0xA8400000, 0x3F43EE72,
+/**/                   0xF21B8682, 0x3D1145E2,
+/**/                   0x7CEC7B0D, 0xBF43FCE0,
+/**/                   0x29A00000, 0x3F43FE70,
+/**/                   0x59543A06, 0x3D27251B,
+/**/                   0x7C192C8E, 0xBF440CDB,
+/**/                   0xA9000000, 0x3F440E6D,
+/**/                   0xAC6250B6, 0x3D341357,
+/**/                   0x7747BEF8, 0xBF441CD6,
+/**/                   0x26600000, 0x3F441E6B,
+/**/                   0x43A510F7, 0x3D3DD4D6,
+/**/                   0x6E7833CB, 0xBF442CD1,
+/**/                   0xA1E00000, 0x3F442E68,
+/**/                   0x05F7D1E1, 0xBD3727F7,
+/**/                   0x61AA8C85, 0xBF443CCC,
+/**/                   0x1B400000, 0x3F443E66,
+/**/                   0x527C9668, 0xBD25C421,
+/**/                   0x50DECAA5, 0xBF444CC7,
+/**/                   0x92A00000, 0x3F444E63,
+/**/                   0x053F70AC, 0x3D053C47,
+/**/                   0x3C14EFAB, 0xBF445CC2,
+/**/                   0x08000000, 0x3F445E61,
+/**/                   0x1E315FBB, 0x3D3175D5,
+/**/                   0x234CFD15, 0xBF446CBD,
+/**/                   0x7B800000, 0x3F446E5E,
+/**/                   0x6A8B33AC, 0xBD3E762C,
+/**/                   0x0686F463, 0xBF447CB8,
+/**/                   0xECE00000, 0x3F447E5B,
+/**/                   0x67AD9900, 0xBD2A36F8,
+/**/                   0xE5C2D713, 0xBF448CB2,
+/**/                   0x5C400000, 0x3F448E59,
+/**/                   0x1E974853, 0x3D161B95,
+/**/                   0xC100A6A5, 0xBF449CAD,
+/**/                   0xC9A00000, 0x3F449E56,
+/**/                   0x8CE22250, 0x3D3971F7,
+/**/                   0x98406498, 0xBF44ACA8,
+/**/                   0x35200000, 0x3F44AE54,
+/**/                   0xDF8A23F8, 0xBD315945,
+/**/                   0x6B82126A, 0xBF44BCA3,
+/**/                   0x9E800000, 0x3F44BE51,
+/**/                   0x1A63D360, 0x3D1498B2,
+/**/                   0x3AC5B19B, 0xBF44CC9E,
+/**/                   0x05E00000, 0x3F44CE4F,
+/**/                   0x4323A054, 0x3D3CF14E,
+/**/                   0x060B43AA, 0xBF44DC99,
+/**/                   0x6B600000, 0x3F44DE4C,
+/**/                   0x4CE35F94, 0xBD23EDC2,
+/**/                   0xCD52CA15, 0xBF44EC93,
+/**/                   0xCEC00000, 0x3F44EE49,
+/**/                   0xCCF1B48E, 0x3D306E9D,
+/**/                   0x909C465C, 0xBF44FC8E,
+/**/                   0x30400000, 0x3F44FE47,
+/**/                   0x5FF9440B, 0xBD33DD35,
+/**/                   0x4FE7B9FF, 0xBF450C89,
+/**/                   0x8FA00000, 0x3F450E44,
+/**/                   0xAA4D276D, 0x3D224D49,
+/**/                   0x0B35267A, 0xBF451C84,
+/**/                   0xED200000, 0x3F451E41,
+/**/                   0x11B557F9, 0xBD3884D4,
+/**/                   0xC2848D4F, 0xBF452C7E,
+/**/                   0x48800000, 0x3F452E3F,
+/**/                   0xB43290C4, 0x3D1C857D,
+/**/                   0x75D5EFFC, 0xBF453C79,
+/**/                   0xA2000000, 0x3F453E3C,
+/**/                   0x2D598D3C, 0xBD37E5C1,
+/**/                   0x25294FFF, 0xBF454C74,
+/**/                   0xF9600000, 0x3F454E39,
+/**/                   0x3FE47B89, 0x3D24CD93,
+/**/                   0xD07EAED8, 0xBF455C6E,
+/**/                   0x4EE00000, 0x3F455E37,
+/**/                   0xAA959122, 0xBD31F800,
+/**/                   0x77D60E06, 0xBF456C69,
+/**/                   0xA2400000, 0x3F456E34,
+/**/                   0x7329AF92, 0x3D32FEDF,
+/**/                   0x1B2F6F08, 0xBF457C64,
+/**/                   0xF3C00000, 0x3F457E31,
+/**/                   0x1C545A6F, 0xBD1ACE5A,
+/**/                   0xBA8AD35D, 0xBF458C5E,
+/**/                   0x43400000, 0x3F458E2F,
+/**/                   0x19F6B9EF, 0xBD3F0E63,
+/**/                   0x55E83C84, 0xBF459C59,
+/**/                   0x90A00000, 0x3F459E2C,
+/**/                   0x73005F6F, 0x3D23DEF2,
+/**/                   0xED47ABFB, 0xBF45AC53,
+/**/                   0xDC200000, 0x3F45AE29,
+/**/                   0x1C295DE7, 0xBD277204,
+/**/                   0x80A92343, 0xBF45BC4E,
+/**/                   0x25800000, 0x3F45BE27,
+/**/                   0x8D869589, 0x3D3FF92A,
+/**/                   0x100CA3D9, 0xBF45CC49,
+/**/                   0x6D000000, 0x3F45CE24,
+/**/                   0x145C5335, 0x3D2A0DFD,
+/**/                   0x9B722F3C, 0xBF45DC43,
+/**/                   0xB2800000, 0x3F45DE21,
+/**/                   0x6A8614B3, 0xBD123A1A,
+/**/                   0x22D9C6ED, 0xBF45EC3E,
+/**/                   0xF6000000, 0x3F45EE1E,
+/**/                   0x63CBC7E7, 0xBD34C665,
+/**/                   0xA6436C69, 0xBF45FC38,
+/**/                   0x37600000, 0x3F45FE1C,
+/**/                   0xAB6C51D7, 0x3D3C6061,
+/**/                   0x25AF2130, 0xBF460C33,
+/**/                   0x76E00000, 0x3F460E19,
+/**/                   0x1EC7F453, 0x3D2DCD9C,
+/**/                   0xA11CE6C1, 0xBF461C2D,
+/**/                   0xB4600000, 0x3F461E16,
+/**/                   0x20C52899, 0x3D066EFA,
+/**/                   0x188CBE9A, 0xBF462C28,
+/**/                   0xEFE00000, 0x3F462E13,
+/**/                   0xEB5FDD5C, 0xBD1FA5AC,
+/**/                   0x8BFEAA3B, 0xBF463C22,
+/**/                   0x29600000, 0x3F463E11,
+/**/                   0xF22FE2BC, 0xBD313E11,
+/**/                   0xFB72AB23, 0xBF464C1C,
+/**/                   0x60E00000, 0x3F464E0E,
+/**/                   0x6710E251, 0xBD392F15,
+/**/                   0x66E8C2D0, 0xBF465C17,
+/**/                   0x96600000, 0x3F465E0B,
+/**/                   0x1EFC78A7, 0xBD3FBB76,
+/**/                   0xCE60F2C1, 0xBF466C11,
+/**/                   0xC9C00000, 0x3F466E08,
+/**/                   0x602C1A84, 0x3D3B1DCB,
+/**/                   0x31DB3C76, 0xBF467C0C,
+/**/                   0xFB400000, 0x3F467E05,
+/**/                   0x9027DA74, 0x3D375DAE,
+/**/                   0x9157A16E, 0xBF468C06,
+/**/                   0x2AC00000, 0x3F468E03,
+/**/                   0xEA560DA0, 0x3D350532,
+/**/                   0xECD62326, 0xBF469C00,
+/**/                   0x58400000, 0x3F469E00,
+/**/                   0xE7B63DE2, 0x3D341557 } };
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/urem.h b/REORG.TODO/sysdeps/ieee754/dbl-64/urem.h
new file mode 100644
index 0000000000..d9e5696fdd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/urem.h
@@ -0,0 +1,46 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/************************************************************************/
+/*  MODULE_NAME: urem.h                                                 */
+/*                                                                      */
+/*                                                                      */
+/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
+/************************************************************************/
+
+#ifndef UREM_H
+#define UREM_H
+
+#ifdef BIG_ENDI
+static const mynumber big = {{0x43380000, 0}},  /* 6755399441055744 */
+                     t128 = {{0x47f00000, 0}},  /*  2^ 128          */
+                    tm128 = {{0x37f00000, 0}},  /*  2^-128          */
+                      ZERO = {{0, 0}},          /*  0.0             */
+                     nZERO = {{0x80000000, 0}}; /* -0.0             */
+#else
+#ifdef LITTLE_ENDI
+static const mynumber big = {{0, 0x43380000}},  /* 6755399441055744 */
+                     t128 = {{0, 0x47f00000}},  /*  2^ 128          */
+                    tm128 = {{0, 0x37f00000}},  /*  2^-128          */
+                      ZERO = {{0, 0}},          /*  0.0             */
+                     nZERO = {{0, 0x80000000}}; /* -0.0             */
+#endif
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/usncs.h b/REORG.TODO/sysdeps/ieee754/dbl-64/usncs.h
new file mode 100644
index 0000000000..09f76ae8ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/usncs.h
@@ -0,0 +1,48 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/************************************************************************/
+/*  MODULE_NAME: dosincos.h                                             */
+/*                                                                      */
+/*                                                                      */
+/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
+/************************************************************************/
+
+#ifndef USNCS_H
+#define USNCS_H
+
+static const double s1 = -0x1.5555555555555p-3;   /* -0.16666666666666666     */
+static const double s2 = 0x1.1111111110ECEp-7;    /*  0.0083333333333323288   */
+static const double s3 = -0x1.A01A019DB08B8p-13;  /* -0.00019841269834414642  */
+static const double s4 = 0x1.71DE27B9A7ED9p-19;   /*  2.755729806860771e-06   */
+static const double s5 = -0x1.ADDFFC2FCDF59p-26;  /* -2.5022014848318398e-08  */
+static const double aa = -0x1.5558000000000p-3;   /* -0.1666717529296875      */
+static const double bb = 0x1.5555555556E24p-18;   /*  5.0862630208387126e-06  */
+static const double big = 0x1.8000000000000p45;   /*  52776558133248          */
+static const double hp0 = 0x1.921FB54442D18p0;    /*  1.5707963267948966      */
+static const double hp1 = 0x1.1A62633145C07p-54;  /*  6.123233995736766e-17   */
+static const double mp1 = 0x1.921FB58000000p0;    /*  1.5707963407039642      */
+static const double mp2 = -0x1.DDE973C000000p-27; /* -1.3909067564377153e-08  */
+static const double mp3 = -0x1.CB3B399D747F2p-55; /* -4.9789962505147994e-17  */
+static const double pp3 = -0x1.CB3B398000000p-55; /* -4.9789962314799099e-17  */
+static const double pp4 = -0x1.d747f23e32ed7p-83; /* -1.9034889620193266e-25  */
+static const double hpinv = 0x1.45F306DC9C883p-1; /*  0.63661977236758138     */
+static const double toint = 0x1.8000000000000p52; /*  6755399441055744        */
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/utan.h b/REORG.TODO/sysdeps/ieee754/dbl-64/utan.h
new file mode 100644
index 0000000000..b34e52f1fb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/utan.h
@@ -0,0 +1,265 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/******************************************************************/
+/*                                                                */
+/* MODULE_NAME:utan.h                                             */
+/*                                                                */
+/* common data and variables prototype and definition             */
+/******************************************************************/
+
+#ifndef UTAN_H
+#define UTAN_H
+
+#ifdef BIG_ENDI
+  static const number
+  /* polynomial I */
+/**/ d3             = {{0x3FD55555, 0x55555555} }, /*  0.333... */
+/**/ d5             = {{0x3FC11111, 0x111107C6} }, /*  0.133... */
+/**/ d7             = {{0x3FABA1BA, 0x1CDB8745} }, /*    .      */
+/**/ d9             = {{0x3F9664ED, 0x49CFC666} }, /*    .      */
+/**/ d11            = {{0x3F82385A, 0x3CF2E4EA} }, /*    .      */
+  /* polynomial II */
+/**/ a3             = {{0x3fd55555, 0x55555555} }, /*  1/3      */
+/**/ aa3            = {{0x3c755555, 0x55555555} }, /*  1/3-a3   */
+/**/ a5             = {{0x3fc11111, 0x11111111} }, /*  2/15     */
+/**/ aa5            = {{0x3c411111, 0x11111111} }, /*  2/15-a5  */
+/**/ a7             = {{0x3faba1ba, 0x1ba1ba1c} }, /*  17/315   */
+/**/ aa7            = {{0xbc479179, 0x17917918} }, /*   ()-a7   */
+/**/ a9             = {{0x3f9664f4, 0x882c10fa} }, /*  62/2835  */
+/**/ aa9            = {{0xbc09a528, 0x8b6c44fd} }, /*   ()-a9   */
+/**/ a11            = {{0x3f8226e3, 0x55e6c23d} }, /*    .      */
+/**/ aa11           = {{0xbc2c292b, 0x8f1a2c13} }, /*    .      */
+/**/ a13            = {{0x3f6d6d3d, 0x0e157de0} }, /*    .      */
+/**/ aa13           = {{0xbc0280cf, 0xc968d971} }, /*    .      */
+/**/ a15            = {{0x3f57da36, 0x452b75e3} }, /*    .      */
+#if 0
+/**/ aa15           = {{0xbbf25789, 0xb285d2ed} }, /*    .      */
+#endif
+/**/ a17            = {{0x3f435582, 0x48036744} }, /*    .      */
+#if 0
+/**/ aa17           = {{0x3be488d9, 0x563f1f23} }, /*    .      */
+#endif
+/**/ a19            = {{0x3f2f57d7, 0x734d1664} }, /*    .      */
+#if 0
+/**/ aa19           = {{0x3bb0d55a, 0x913ccb50} }, /*    .      */
+#endif
+/**/ a21            = {{0x3f1967e1, 0x8afcafad} }, /*    .      */
+#if 0
+/**/ aa21           = {{0xbbbd7614, 0xa42d44e6} }, /*    .      */
+#endif
+/**/ a23            = {{0x3f0497d8, 0xeea25259} }, /*    .      */
+#if 0
+/**/ aa23           = {{0x3b99f2d0, 0x2e4d2863} }, /*    .      */
+#endif
+/**/ a25            = {{0x3ef0b132, 0xd39a6050} }, /*    .      */
+#if 0
+/**/ aa25           = {{0x3b93b274, 0xc2c19614} }, /*    .      */
+#endif
+/**/ a27            = {{0x3edb0f72, 0xd3ee24e9} }, /*    .      */
+#if 0
+/**/ aa27           = {{0x3b61688d, 0xdd595609} }, /*    .      */
+#endif
+  /* polynomial III */
+/**/ e0             = {{0x3FD55555, 0x55554DBD} }, /*    .      */
+/**/ e1             = {{0x3FC11112, 0xE0A6B45F} }, /*    .      */
+
+  /* constants    */
+/**/ mfftnhf        = {{0xc02f0000, 0x00000000} }, /*-15.5      */
+
+/**/ g1             = {{0x3e4b096c, 0x00000000} }, /* 1.259e-8  */
+/**/ g2             = {{0x3faf212d, 0x00000000} }, /* 0.0608    */
+/**/ g3             = {{0x3fe92f1a, 0x00000000} }, /* 0.787     */
+/**/ g4             = {{0x40390000, 0x00000000} }, /* 25.0      */
+/**/ g5             = {{0x4197d784, 0x00000000} }, /* 1e8       */
+/**/ gy1            = {{0x3e7ad7f2, 0x9abcaf48} }, /* 1e-7      */
+/**/ gy2            = {{0x3faf212d, 0x00000000} }, /* 0.0608    */
+
+/**/ u1             = {{0x3cc8c33a, 0x00000000} }, /* 6.873e-16 */
+/**/ u2             = {{0x3983dc4d, 0x00000000} }, /* 1.224e-31 */
+/**/ u3             = {{0x3c78e14b, 0x00000000} }, /* 2.158e-17 */
+/**/ ua3            = {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
+/**/ ub3            = {{0x3cc81898, 0x00000000} }, /* 6.688e-16 */
+/**/ u4             = {{0x399856c2, 0x00000000} }, /* 3e-31     */
+/**/ u5             = {{0x3c39d80a, 0x00000000} }, /* 1.401e-18 */
+/**/ u6             = {{0x3c374c5a, 0x00000000} }, /* 1.263e-18 */
+/**/ u7             = {{0x39903beb, 0x00000000} }, /* 2.001e-31 */
+/**/ u8             = {{0x399c56ae, 0x00000000} }, /* 3.493e-31 */
+/**/ u9             = {{0x3c7d0ac7, 0x00000000} }, /* 2.519e-17 */
+/**/ ua9            = {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
+/**/ ub9            = {{0x3ccc2375, 0x00000000} }, /* 7.810e-16 */
+/**/ u10            = {{0x3c7e40af, 0x00000000} }, /* 2.624e-17 */
+/**/ ua10           = {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
+/**/ ub10           = {{0x3ccc6405, 0x00000000} }, /* 7.880e-16 */
+/**/ u11            = {{0x39e509b6, 0x00000000} }, /* 8.298e-30 */
+/**/ u12            = {{0x39e509b6, 0x00000000} }, /* 8.298e-30 */
+/**/ u13            = {{0x3c39d80a, 0x00000000} }, /* 1.401e-18 */
+/**/ u14            = {{0x3c374c5a, 0x00000000} }, /* 1.263e-18 */
+/**/ u15            = {{0x3ab5767a, 0x00000000} }, /* 6.935e-26 */
+/**/ u16            = {{0x3ab57744, 0x00000000} }, /* 6.936e-26 */
+/**/ u17            = {{0x3c7d0ac7, 0x00000000} }, /* 2.519e-17 */
+/**/ ua17           = {{0x3bfdb11f, 0x00000000} }, /* 1.006e-19 */
+/**/ ub17           = {{0x3ccc2375, 0x00000000} }, /* 7.810e-16 */
+/**/ u18            = {{0x3c7e40af, 0x00000000} }, /* 2.624e-17 */
+/**/ ua18           = {{0x3bfdb11f, 0x00000000} }, /* 1.006e-19 */
+/**/ ub18           = {{0x3ccc6405, 0x00000000} }, /* 7.880e-16 */
+/**/ u19            = {{0x39a13b61, 0x00000000} }, /* 4.248e-31 */
+/**/ u20            = {{0x39a13b61, 0x00000000} }, /* 4.248e-31 */
+/**/ u21            = {{0x3c3bb9b8, 0x00000000} }, /* 1.503e-18 */
+/**/ u22            = {{0x3c392e08, 0x00000000} }, /* 1.365e-18 */
+/**/ u23            = {{0x3a0ce706, 0x00000000} }, /* 4.560e-29 */
+/**/ u24            = {{0x3a0cff5d, 0x00000000} }, /* 4.575e-29 */
+/**/ u25            = {{0x3c7d0ac7, 0x00000000} }, /* 2.519e-17 */
+/**/ ua25           = {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
+/**/ ub25           = {{0x3ccc2375, 0x00000000} }, /* 7.810e-16 */
+/**/ u26            = {{0x3c7e40af, 0x00000000} }, /* 2.624e-17 */
+/**/ ua26           = {{0x3bfd8b58, 0x00000000} }, /* 1.001e-19 */
+/**/ ub26           = {{0x3ccc6405, 0x00000000} }, /* 7.880e-16 */
+/**/ u27            = {{0x3ad421cb, 0x00000000} }, /* 2.602e-25 */
+/**/ u28            = {{0x3ad421cb, 0x00000000} }, /* 2.602e-25 */
+
+/**/            mp1 = {{0x3FF921FB, 0x58000000} },
+/**/            mp2 = {{0xBE4DDE97, 0x3C000000} },
+/**/            mp3 = {{0xBC8CB3B3, 0x99D747F2} },
+/**/            pp3 = {{0xBC8CB3B3, 0x98000000} },
+/**/            pp4 = {{0xbacd747f, 0x23e32ed7} },
+/**/          hpinv = {{0x3FE45F30, 0x6DC9C883} },
+/**/          toint = {{0x43380000, 0x00000000} };
+
+#else
+#ifdef LITTLE_ENDI
+
+  static const number
+  /* polynomial I */
+/**/ d3             = {{0x55555555, 0x3FD55555} }, /*  0.333... */
+/**/ d5             = {{0x111107C6, 0x3FC11111} }, /*  0.133... */
+/**/ d7             = {{0x1CDB8745, 0x3FABA1BA} }, /*    .      */
+/**/ d9             = {{0x49CFC666, 0x3F9664ED} }, /*    .      */
+/**/ d11            = {{0x3CF2E4EA, 0x3F82385A} }, /*    .      */
+  /* polynomial II */
+/**/ a3             = {{0x55555555, 0x3fd55555} }, /*  1/3      */
+/**/ aa3            = {{0x55555555, 0x3c755555} }, /*  1/3-a3   */
+/**/ a5             = {{0x11111111, 0x3fc11111} }, /*  2/15     */
+/**/ aa5            = {{0x11111111, 0x3c411111} }, /*  2/15-a5  */
+/**/ a7             = {{0x1ba1ba1c, 0x3faba1ba} }, /*  17/315   */
+/**/ aa7            = {{0x17917918, 0xbc479179} }, /*   ()-a7   */
+/**/ a9             = {{0x882c10fa, 0x3f9664f4} }, /*  62/2835  */
+/**/ aa9            = {{0x8b6c44fd, 0xbc09a528} }, /*   ()-a9   */
+/**/ a11            = {{0x55e6c23d, 0x3f8226e3} }, /*    .      */
+/**/ aa11           = {{0x8f1a2c13, 0xbc2c292b} }, /*    .      */
+/**/ a13            = {{0x0e157de0, 0x3f6d6d3d} }, /*    .      */
+/**/ aa13           = {{0xc968d971, 0xbc0280cf} }, /*    .      */
+/**/ a15            = {{0x452b75e3, 0x3f57da36} }, /*    .      */
+#if 0
+/**/ aa15           = {{0xb285d2ed, 0xbbf25789} }, /*    .      */
+#endif
+/**/ a17            = {{0x48036744, 0x3f435582} }, /*    .      */
+#if 0
+/**/ aa17           = {{0x563f1f23, 0x3be488d9} }, /*    .      */
+#endif
+/**/ a19            = {{0x734d1664, 0x3f2f57d7} }, /*    .      */
+#if 0
+/**/ aa19           = {{0x913ccb50, 0x3bb0d55a} }, /*    .      */
+#endif
+/**/ a21            = {{0x8afcafad, 0x3f1967e1} }, /*    .      */
+#if 0
+/**/ aa21           = {{0xa42d44e6, 0xbbbd7614} }, /*    .      */
+#endif
+/**/ a23            = {{0xeea25259, 0x3f0497d8} }, /*    .      */
+#if 0
+/**/ aa23           = {{0x2e4d2863, 0x3b99f2d0} }, /*    .      */
+#endif
+/**/ a25            = {{0xd39a6050, 0x3ef0b132} }, /*    .      */
+#if 0
+/**/ aa25           = {{0xc2c19614, 0x3b93b274} }, /*    .      */
+#endif
+/**/ a27            = {{0xd3ee24e9, 0x3edb0f72} }, /*    .      */
+#if 0
+/**/ aa27           = {{0xdd595609, 0x3b61688d} }, /*    .      */
+#endif
+  /* polynomial III */
+/**/ e0             = {{0x55554DBD, 0x3FD55555} }, /*    .      */
+/**/ e1             = {{0xE0A6B45F, 0x3FC11112} }, /*    .      */
+
+  /* constants    */
+/**/ mfftnhf        = {{0x00000000, 0xc02f0000} }, /*-15.5      */
+
+/**/ g1             = {{0x00000000, 0x3e4b096c} }, /* 1.259e-8  */
+/**/ g2             = {{0x00000000, 0x3faf212d} }, /* 0.0608    */
+/**/ g3             = {{0x00000000, 0x3fe92f1a} }, /* 0.787     */
+/**/ g4             = {{0x00000000, 0x40390000} }, /* 25.0      */
+/**/ g5             = {{0x00000000, 0x4197d784} }, /* 1e8       */
+/**/ gy1            = {{0x9abcaf48, 0x3e7ad7f2} }, /* 1e-7      */
+/**/ gy2            = {{0x00000000, 0x3faf212d} }, /* 0.0608    */
+
+/**/ u1             = {{0x00000000, 0x3cc8c33a} }, /* 6.873e-16 */
+/**/ u2             = {{0x00000000, 0x3983dc4d} }, /* 1.224e-31 */
+/**/ u3             = {{0x00000000, 0x3c78e14b} }, /* 2.158e-17 */
+/**/ ua3            = {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
+/**/ ub3            = {{0x00000000, 0x3cc81898} }, /* 6.688e-16 */
+/**/ u4             = {{0x00000000, 0x399856c2} }, /* 3e-31     */
+/**/ u5             = {{0x00000000, 0x3c39d80a} }, /* 1.401e-18 */
+/**/ u6             = {{0x00000000, 0x3c374c5a} }, /* 1.263e-18 */
+/**/ u7             = {{0x00000000, 0x39903beb} }, /* 2.001e-31 */
+/**/ u8             = {{0x00000000, 0x399c56ae} }, /* 3.493e-31 */
+/**/ u9             = {{0x00000000, 0x3c7d0ac7} }, /* 2.519e-17 */
+/**/ ua9            = {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
+/**/ ub9            = {{0x00000000, 0x3ccc2375} }, /* 7.810e-16 */
+/**/ u10            = {{0x00000000, 0x3c7e40af} }, /* 2.624e-17 */
+/**/ ua10           = {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
+/**/ ub10           = {{0x00000000, 0x3ccc6405} }, /* 7.880e-16 */
+/**/ u11            = {{0x00000000, 0x39e509b6} }, /* 8.298e-30 */
+/**/ u12            = {{0x00000000, 0x39e509b6} }, /* 8.298e-30 */
+/**/ u13            = {{0x00000000, 0x3c39d80a} }, /* 1.401e-18 */
+/**/ u14            = {{0x00000000, 0x3c374c5a} }, /* 1.263e-18 */
+/**/ u15            = {{0x00000000, 0x3ab5767a} }, /* 6.935e-26 */
+/**/ u16            = {{0x00000000, 0x3ab57744} }, /* 6.936e-26 */
+/**/ u17            = {{0x00000000, 0x3c7d0ac7} }, /* 2.519e-17 */
+/**/ ua17           = {{0x00000000, 0x3bfdb11f} }, /* 1.006e-19 */
+/**/ ub17           = {{0x00000000, 0x3ccc2375} }, /* 7.810e-16 */
+/**/ u18            = {{0x00000000, 0x3c7e40af} }, /* 2.624e-17 */
+/**/ ua18           = {{0x00000000, 0x3bfdb11f} }, /* 1.006e-19 */
+/**/ ub18           = {{0x00000000, 0x3ccc6405} }, /* 7.880e-16 */
+/**/ u19            = {{0x00000000, 0x39a13b61} }, /* 4.248e-31 */
+/**/ u20            = {{0x00000000, 0x39a13b61} }, /* 4.248e-31 */
+/**/ u21            = {{0x00000000, 0x3c3bb9b8} }, /* 1.503e-18 */
+/**/ u22            = {{0x00000000, 0x3c392e08} }, /* 1.365e-18 */
+/**/ u23            = {{0x00000000, 0x3a0ce706} }, /* 4.560e-29 */
+/**/ u24            = {{0x00000000, 0x3a0cff5d} }, /* 4.575e-29 */
+/**/ u25            = {{0x00000000, 0x3c7d0ac7} }, /* 2.519e-17 */
+/**/ ua25           = {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
+/**/ ub25           = {{0x00000000, 0x3ccc2375} }, /* 7.810e-16 */
+/**/ u26            = {{0x00000000, 0x3c7e40af} }, /* 2.624e-17 */
+/**/ ua26           = {{0x00000000, 0x3bfd8b58} }, /* 1.001e-19 */
+/**/ ub26           = {{0x00000000, 0x3ccc6405} }, /* 7.880e-16 */
+/**/ u27            = {{0x00000000, 0x3ad421cb} }, /* 2.602e-25 */
+/**/ u28            = {{0x00000000, 0x3ad421cb} }, /* 2.602e-25 */
+
+/**/            mp1 = {{0x58000000, 0x3FF921FB} },
+/**/            mp2 = {{0x3C000000, 0xBE4DDE97} },
+/**/            mp3 = {{0x99D747F2, 0xBC8CB3B3} },
+/**/            pp3 = {{0x98000000, 0xBC8CB3B3} },
+/**/            pp4 = {{0x23e32ed7, 0xbacd747f} },
+/**/          hpinv = {{0x6DC9C883, 0x3FE45F30} },
+/**/          toint = {{0x00000000, 0x43380000} };
+
+#endif
+#endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/utan.tbl b/REORG.TODO/sysdeps/ieee754/dbl-64/utan.tbl
new file mode 100644
index 0000000000..8b536e9235
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/utan.tbl
@@ -0,0 +1,1525 @@
+/*
+ * IBM Accurate Mathematical Library
+ * Written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+/****************************************************************/
+/* TABLES FOR THE utan() FUNCTION                               */
+/****************************************************************/
+
+
+#ifdef BIG_ENDI
+static const number
+      xfg[186][4] = {                             /* xi,Fi,Gi,FFi, i=16..201 */
+/**/                 {{{0x3fb00000, 0x1e519d60} },
+/**/                  {{0x3fb00557, 0x96c4e240} },
+/**/                  {{0x402ff554, 0x628127b7} },
+/**/                  {{0xbb9a1dee, 0x9e355b06} },},
+/**/                 {{{0x3fb10000, 0x1b1a7010} },
+/**/                  {{0x3fb10668, 0xaab892b7} },
+/**/                  {{0x402e12c7, 0xbe3fdf74} },
+/**/                  {{0x3ba89234, 0x037da741} },},
+/**/                 {{{0x3fb20000, 0x2505e350} },
+/**/                  {{0x3fb2079b, 0xff547824} },
+/**/                  {{0x402c65c5, 0xde853633} },
+/**/                  {{0x3bb7486e, 0xe9614250} },},
+/**/                 {{{0x3fb2ffff, 0xfcdc4252} },
+/**/                  {{0x3fb308f3, 0x5eb16c68} },
+/**/                  {{0x402ae5da, 0xe56be74f} },
+/**/                  {{0xbb82c726, 0x91a23034} },},
+/**/                 {{{0x3fb3ffff, 0xe3ff849f} },
+/**/                  {{0x3fb40a71, 0x154999cc} },
+/**/                  {{0x40298c43, 0x046b7352} },
+/**/                  {{0x3b9aceaf, 0x3843738f} },},
+/**/                 {{{0x3fb4ffff, 0xedc9590f} },
+/**/                  {{0x3fb50c17, 0x429bdd80} },
+/**/                  {{0x40285384, 0x91b5d674} },
+/**/                  {{0xbbc1d02d, 0xb4403d22} },},
+/**/                 {{{0x3fb60000, 0x00ee83f7} },
+/**/                  {{0x3fb60de7, 0xda80cc21} },
+/**/                  {{0x40273724, 0xef21a2a7} },
+/**/                  {{0xbb95e53c, 0x72523ffd} },},
+/**/                 {{{0x3fb6ffff, 0xeb05ea41} },
+/**/                  {{0x3fb70fe4, 0xb8c51bea} },
+/**/                  {{0x40263370, 0xfae562ff} },
+/**/                  {{0xbb99ad0e, 0x8ffe0626} },},
+/**/                 {{{0x3fb7ffff, 0xdc0515f7} },
+/**/                  {{0x3fb81210, 0x1db54498} },
+/**/                  {{0x40254553, 0x0e7eab5c} },
+/**/                  {{0xbb914c87, 0xd62ed686} },},
+/**/                 {{{0x3fb8ffff, 0xe384d7ab} },
+/**/                  {{0x3fb9146c, 0x2a8d3727} },
+/**/                  {{0x40246a33, 0xfd57f3fd} },
+/**/                  {{0xbbbbda8d, 0x5381e06d} },},
+/**/                 {{{0x3fb9ffff, 0xe4832347} },
+/**/                  {{0x3fba16fa, 0xd50e1050} },
+/**/                  {{0x40239fe2, 0xc5537a96} },
+/**/                  {{0x3bc7f695, 0xc111eabb} },},
+/**/                 {{{0x3fbb0000, 0x274540e3} },
+/**/                  {{0x3fbb19be, 0x7ae68517} },
+/**/                  {{0x4022e481, 0x3637e946} },
+/**/                  {{0x3bc307f8, 0x8dbd9d93} },},
+/**/                 {{{0x3fbbffff, 0xfebf2e9b} },
+/**/                  {{0x3fbc1cb8, 0x8369cd19} },
+/**/                  {{0x40223676, 0x17aef223} },
+/**/                  {{0x3bc50038, 0x424a9cf3} },},
+/**/                 {{{0x3fbd0000, 0x23529045} },
+/**/                  {{0x3fbd1feb, 0xc11d7ef7} },
+/**/                  {{0x4021945f, 0xb8e43d4e} },
+/**/                  {{0x3b812007, 0x52a6f224} },},
+/**/                 {{{0x3fbdffff, 0xd872a829} },
+/**/                  {{0x3fbe2359, 0x8ee4d6b7} },
+/**/                  {{0x4020fd0c, 0x76195d5f} },
+/**/                  {{0xbbb4d9ab, 0x85fdca85} },},
+/**/                 {{{0x3fbeffff, 0xff323b84} },
+/**/                  {{0x3fbf2704, 0xec9073e5} },
+/**/                  {{0x40206f71, 0x3020200f} },
+/**/                  {{0x3bb77aa2, 0x12836992} },},
+/**/                 {{{0x3fc00000, 0x0ce79195} },
+/**/                  {{0x3fc01577, 0xbc30cc61} },
+/**/                  {{0x401fd549, 0xd6564a88} },
+/**/                  {{0xbbc8926f, 0x965c0ad0} },},
+/**/                 {{{0x3fc07fff, 0xee40e918} },
+/**/                  {{0x3fc0978d, 0x8279ac01} },
+/**/                  {{0x401edbb5, 0x9294bc03} },
+/**/                  {{0xbb80a533, 0x4aae45d6} },},
+/**/                 {{{0x3fc10000, 0x0cc091fd} },
+/**/                  {{0x3fc119c5, 0x44dfb2f7} },
+/**/                  {{0x401df0bb, 0x067d8e18} },
+/**/                  {{0xbbcc2c18, 0x4ff642a4} },},
+/**/                 {{{0x3fc18000, 0x0d9936a1} },
+/**/                  {{0x3fc19c1f, 0xb9085a4b} },
+/**/                  {{0x401d131a, 0x71ce3629} },
+/**/                  {{0xbbc36553, 0x0669355b} },},
+/**/                 {{{0x3fc1ffff, 0xed5f3188} },
+/**/                  {{0x3fc21e9d, 0xee74bf2d} },
+/**/                  {{0x401c41b6, 0xff0cd655} },
+/**/                  {{0x3b8867f5, 0x478ecfc5} },},
+/**/                 {{{0x3fc28000, 0x05f06a51} },
+/**/                  {{0x3fc2a141, 0x550b313f} },
+/**/                  {{0x401b7b92, 0x1702e6d2} },
+/**/                  {{0xbbadab51, 0x380131fe} },},
+/**/                 {{{0x3fc2ffff, 0xfe3d339e} },
+/**/                  {{0x3fc3240a, 0xa75f76df} },
+/**/                  {{0x401abfc8, 0xfcb6409d} },
+/**/                  {{0x3bc60bcf, 0x0d291d83} },},
+/**/                 {{{0x3fc37fff, 0xed888d6f} },
+/**/                  {{0x3fc3a6fb, 0x13cc5db7} },
+/**/                  {{0x401a0d8f, 0x8ed5320d} },
+/**/                  {{0x3bb8a48e, 0x4eef03ab} },},
+/**/                 {{{0x3fc40000, 0x02ca050d} },
+/**/                  {{0x3fc42a13, 0xe25776bb} },
+/**/                  {{0x4019642d, 0xfa84c2bc} },
+/**/                  {{0xbbd0bd5d, 0xcc56516f} },},
+/**/                 {{{0x3fc47fff, 0xf2531f5c} },
+/**/                  {{0x3fc4ad55, 0xdeb73404} },
+/**/                  {{0x4018c2fe, 0xf86e9035} },
+/**/                  {{0x3b9cffe7, 0x5aa287c8} },},
+/**/                 {{{0x3fc50000, 0x13774992} },
+/**/                  {{0x3fc530c2, 0x7d0ee307} },
+/**/                  {{0x4018296c, 0x370caf35} },
+/**/                  {{0xbbcf75d1, 0xf91d6532} },},
+/**/                 {{{0x3fc57fff, 0xedddcb2d} },
+/**/                  {{0x3fc5b45a, 0x5db4347d} },
+/**/                  {{0x401796ee, 0x52190c0e} },
+/**/                  {{0x3b88a25f, 0x17d5d076} },},
+/**/                 {{{0x3fc5ffff, 0xf41949a0} },
+/**/                  {{0x3fc6381f, 0x13bf986a} },
+/**/                  {{0x40170b09, 0x2d2255fd} },
+/**/                  {{0xbb9bfb23, 0xb1bcd5e7} },},
+/**/                 {{{0x3fc67fff, 0xf834d3a1} },
+/**/                  {{0x3fc6bc11, 0x8ec85952} },
+/**/                  {{0x4016854c, 0x62cf2268} },
+/**/                  {{0x3b9ee53b, 0x82e39e04} },},
+/**/                 {{{0x3fc6ffff, 0xfd9106ea} },
+/**/                  {{0x3fc74032, 0xf298f6f7} },
+/**/                  {{0x40160551, 0x1f4f84a9} },
+/**/                  {{0xbbb59c4a, 0x112634b8} },},
+/**/                 {{{0x3fc78000, 0x0f649a4f} },
+/**/                  {{0x3fc7c484, 0x6ca53abc} },
+/**/                  {{0x40158ab9, 0x4809d175} },
+/**/                  {{0x3bc91c75, 0x73d3cd2e} },},
+/**/                 {{{0x3fc7ffff, 0xef06bbd8} },
+/**/                  {{0x3fc84906, 0xdf7d76ad} },
+/**/                  {{0x4015152e, 0xdd2b30a6} },
+/**/                  {{0xbbbfa2da, 0x084c3eef} },},
+/**/                 {{{0x3fc88000, 0x021c6334} },
+/**/                  {{0x3fc8cdbb, 0xd965f986} },
+/**/                  {{0x4014a462, 0x51b74296} },
+/**/                  {{0xbb9ec02e, 0x74dcfe0b} },},
+/**/                 {{{0x3fc8ffff, 0xf38d0756} },
+/**/                  {{0x3fc952a4, 0x28e173c7} },
+/**/                  {{0x4014380b, 0x17b59ebd} },
+/**/                  {{0xbbcd0f1c, 0xb77589f0} },},
+/**/                 {{{0x3fc98000, 0x104efca1} },
+/**/                  {{0x3fc9d7c1, 0x4644d23c} },
+/**/                  {{0x4013cfe5, 0xcb1eabd5} },
+/**/                  {{0xbbd5d6f7, 0xea188d9e} },},
+/**/                 {{{0x3fca0000, 0x09417b30} },
+/**/                  {{0x3fca5d14, 0x096d76aa} },
+/**/                  {{0x40136bb4, 0xb3723db0} },
+/**/                  {{0x3bbe3e0d, 0xfbf3979c} },},
+/**/                 {{{0x3fca7fff, 0xeb1c23ec} },
+/**/                  {{0x3fcae29d, 0xab60288d} },
+/**/                  {{0x40130b3e, 0x783071d7} },
+/**/                  {{0xbbc7dd82, 0x3d5384bf} },},
+/**/                 {{{0x3fcaffff, 0xfb171c13} },
+/**/                  {{0x3fcb685f, 0xa221a96b} },
+/**/                  {{0x4012ae4d, 0xd8c0747d} },
+/**/                  {{0x3bd4644b, 0xd5554972} },},
+/**/                 {{{0x3fcb8000, 0x0aba44be} },
+/**/                  {{0x3fcbee5a, 0xecdf241f} },
+/**/                  {{0x401254b1, 0xc6fad63b} },
+/**/                  {{0x3ba41916, 0xd092b85a} },},
+/**/                 {{{0x3fcc0000, 0x113d2a3e} },
+/**/                  {{0x3fcc7490, 0xb3e92543} },
+/**/                  {{0x4011fe3c, 0x9a62c035} },
+/**/                  {{0xbba3cc39, 0x41a03739} },},
+/**/                 {{{0x3fcc7fff, 0xf49e00ce} },
+/**/                  {{0x3fccfb02, 0x0f59eab0} },
+/**/                  {{0x4011aac3, 0xe956a631} },
+/**/                  {{0xbbb7a383, 0xbfa8cb5b} },},
+/**/                 {{{0x3fcd0000, 0x05f611ab} },
+/**/                  {{0x3fcd81b0, 0x89e6844e} },
+/**/                  {{0x40115a1f, 0xf391268d} },
+/**/                  {{0x3bd39b5c, 0xb2dc91f3} },},
+/**/                 {{{0x3fcd8000, 0x14764ceb} },
+/**/                  {{0x3fce089d, 0x27debf0d} },
+/**/                  {{0x40110c2b, 0xfbc84740} },
+/**/                  {{0x3bc14d4d, 0x84712510} },},
+/**/                 {{{0x3fce0000, 0x14bcea76} },
+/**/                  {{0x3fce8fc9, 0x16dbc820} },
+/**/                  {{0x4010c0c5, 0xa00ca48e} },
+/**/                  {{0xbbd33788, 0x640f1b9e} },},
+/**/                 {{{0x3fce7fff, 0xfd7995bd} },
+/**/                  {{0x3fcf1735, 0x88b50424} },
+/**/                  {{0x401077cc, 0xbe02169a} },
+/**/                  {{0xbbb61fee, 0x221fdf77} },},
+/**/                 {{{0x3fcf0000, 0x0cc35436} },
+/**/                  {{0x3fcf9ee3, 0xfd21a40b} },
+/**/                  {{0x40103123, 0x1ee7ffe8} },
+/**/                  {{0x3bd427e3, 0xc79ff5c1} },},
+/**/                 {{{0x3fcf8000, 0x01d1da33} },
+/**/                  {{0x3fd0136a, 0xb7dbe15c} },
+/**/                  {{0x400fd959, 0x77d559e5} },
+/**/                  {{0x3bb0c6a1, 0xd67948d7} },},
+/**/                 {{{0x3fd00000, 0x060c13b2} },
+/**/                  {{0x3fd05785, 0xaaad4f18} },
+/**/                  {{0x400f549e, 0x2675d182} },
+/**/                  {{0xbbc15208, 0x18f0dd10} },},
+/**/                 {{{0x3fd04000, 0x03885492} },
+/**/                  {{0x3fd09bc3, 0x660542d7} },
+/**/                  {{0x400ed3e2, 0xdf3f5fec} },
+/**/                  {{0xbbd95657, 0xb883ae62} },},
+/**/                 {{{0x3fd08000, 0x052f5a13} },
+/**/                  {{0x3fd0e024, 0x9a195045} },
+/**/                  {{0x400e56f8, 0xfa68f2c8} },
+/**/                  {{0x3bded7ba, 0x5a543e8e} },},
+/**/                 {{{0x3fd0c000, 0x02ba1af5} },
+/**/                  {{0x3fd124a9, 0xe2e7f24b} },
+/**/                  {{0x400dddb4, 0xbffe633f} },
+/**/                  {{0xbbdcba86, 0x0c60278f} },},
+/**/                 {{{0x3fd0ffff, 0xf76642c1} },
+/**/                  {{0x3fd16953, 0xe162ffe6} },
+/**/                  {{0x400d67ed, 0x0311d5d5} },
+/**/                  {{0x3b7b1f4a, 0xe40c5f9e} },},
+/**/                 {{{0x3fd14000, 0x033602f0} },
+/**/                  {{0x3fd1ae23, 0x5f49508e} },
+/**/                  {{0x400cf57a, 0xb8708266} },
+/**/                  {{0xbbd6a6c2, 0x8620f301} },},
+/**/                 {{{0x3fd17fff, 0xfefd1a13} },
+/**/                  {{0x3fd1f318, 0xdb2a9ba1} },
+/**/                  {{0x400c8639, 0x8d11009e} },
+/**/                  {{0x3bd3a9c6, 0x69b21d3b} },},
+/**/                 {{{0x3fd1bfff, 0xf718365d} },
+/**/                  {{0x3fd23835, 0x0c41e3ac} },
+/**/                  {{0x400c1a06, 0xe02be47c} },
+/**/                  {{0x3bdb961a, 0x129e8cd1} },},
+/**/                 {{{0x3fd1ffff, 0xff001e00} },
+/**/                  {{0x3fd27d78, 0xb2f6395e} },
+/**/                  {{0x400bb0c1, 0xf2fe9a85} },
+/**/                  {{0x3be074a9, 0xe68fd7d8} },},
+/**/                 {{{0x3fd23fff, 0xfe425a6a} },
+/**/                  {{0x3fd2c2e4, 0x618faabe} },
+/**/                  {{0x400b4a4c, 0x190b18df} },
+/**/                  {{0xbbdf0d1f, 0xf615aad1} },},
+/**/                 {{{0x3fd28000, 0x059ec1db} },
+/**/                  {{0x3fd30878, 0xd8583884} },
+/**/                  {{0x400ae688, 0x0cd82bc2} },
+/**/                  {{0xbbd563c3, 0x141c1f8d} },},
+/**/                 {{{0x3fd2c000, 0x000dd081} },
+/**/                  {{0x3fd34e36, 0xaffdb6d8} },
+/**/                  {{0x400a855a, 0x5270fc15} },
+/**/                  {{0xbbc6d88d, 0x9f2cdafd} },},
+/**/                 {{{0x3fd2ffff, 0xfc1dcd2b} },
+/**/                  {{0x3fd3941e, 0xa95875bc} },
+/**/                  {{0x400a26a8, 0xaa9502b6} },
+/**/                  {{0xbbe13cad, 0x8389b15c} },},
+/**/                 {{{0x3fd33fff, 0xf6c0d4a0} },
+/**/                  {{0x3fd3da31, 0x739845f5} },
+/**/                  {{0x4009ca5a, 0x4d2573a0} },
+/**/                  {{0xbbc71636, 0xacaee379} },},
+/**/                 {{{0x3fd38000, 0x06b16793} },
+/**/                  {{0x3fd4206f, 0xdbc088f0} },
+/**/                  {{0x40097057, 0x9344e33a} },
+/**/                  {{0xbbc2c052, 0x1d7a4f81} },},
+/**/                 {{{0x3fd3c000, 0x07358fa3} },
+/**/                  {{0x3fd466da, 0x6f23311d} },
+/**/                  {{0x4009188a, 0x5aa612ea} },
+/**/                  {{0x3b8653a5, 0x685e8edc} },},
+/**/                 {{{0x3fd3ffff, 0xfc3b18cf} },
+/**/                  {{0x3fd4ad71, 0xe9282e6b} },
+/**/                  {{0x4008c2dd, 0x641e643d} },
+/**/                  {{0x3b95f0ef, 0x3f567c64} },},
+/**/                 {{{0x3fd44000, 0x000dd2a8} },
+/**/                  {{0x3fd4f437, 0x1fa3f2d1} },
+/**/                  {{0x40086f3c, 0x6072f821} },
+/**/                  {{0x3bb68efa, 0x95ff68b5} },},
+/**/                 {{{0x3fd47fff, 0xfbb43713} },
+/**/                  {{0x3fd53b2a, 0xb3ac333c} },
+/**/                  {{0x40081d94, 0x3da56692} },
+/**/                  {{0xbbbf4d7f, 0x2985fd3f} },},
+/**/                 {{{0x3fd4bfff, 0xfb113bf4} },
+/**/                  {{0x3fd5824d, 0x6e8ed9c2} },
+/**/                  {{0x4007cdd2, 0xa8add00f} },
+/**/                  {{0x3bcf478a, 0x1c9b3657} },},
+/**/                 {{{0x3fd4ffff, 0xf7f087c9} },
+/**/                  {{0x3fd5c9a0, 0x07446496} },
+/**/                  {{0x40077fe6, 0x444588eb} },
+/**/                  {{0xbbc177dc, 0xa4eabb0c} },},
+/**/                 {{{0x3fd54000, 0x088b3814} },
+/**/                  {{0x3fd61123, 0x564125f9} },
+/**/                  {{0x400733be, 0x6281a765} },
+/**/                  {{0xbbc2c52c, 0xf57051c4} },},
+/**/                 {{{0x3fd57fff, 0xf7d55966} },
+/**/                  {{0x3fd658d7, 0xe194a5d5} },
+/**/                  {{0x4006e94b, 0x73b47d1f} },
+/**/                  {{0x3bda2fcf, 0xf9996dc6} },},
+/**/                 {{{0x3fd5c000, 0x08bf2490} },
+/**/                  {{0x3fd6a0be, 0xb775b28d} },
+/**/                  {{0x4006a07e, 0x15b6ec28} },
+/**/                  {{0xbbe0ca90, 0xaa5285b8} },},
+/**/                 {{{0x3fd60000, 0x09fa853f} },
+/**/                  {{0x3fd6e8d8, 0x65a66cfd} },
+/**/                  {{0x40065948, 0x1c701269} },
+/**/                  {{0x3bd9ea95, 0x8591e13a} },},
+/**/                 {{{0x3fd64000, 0x07595fca} },
+/**/                  {{0x3fd73125, 0xc0556a7c} },
+/**/                  {{0x4006139b, 0xbaae9d02} },
+/**/                  {{0x3bd88aff, 0x40152b83} },},
+/**/                 {{{0x3fd68000, 0x031687da} },
+/**/                  {{0x3fd779a7, 0x92e2cfd0} },
+/**/                  {{0x4005cf6b, 0xcae0882b} },
+/**/                  {{0xbbd8a4a2, 0x9f439451} },},
+/**/                 {{{0x3fd6bfff, 0xf5c8cfe2} },
+/**/                  {{0x3fd7c25e, 0x9fb452ed} },
+/**/                  {{0x40058cab, 0xc561f1cd} },
+/**/                  {{0xbbe371a6, 0xf6a37d74} },},
+/**/                 {{{0x3fd6ffff, 0xf81df231} },
+/**/                  {{0x3fd80b4b, 0xcfb4dab5} },
+/**/                  {{0x40054b4f, 0x8d3ca5d3} },
+/**/                  {{0x3bcb4686, 0x679dc99f} },},
+/**/                 {{{0x3fd73fff, 0xfa71385e} },
+/**/                  {{0x3fd8546f, 0xe007a9b6} },
+/**/                  {{0x40050b4b, 0xb3b22176} },
+/**/                  {{0xbbcd1540, 0xa5c73477} },},
+/**/                 {{{0x3fd78000, 0x024a9c2b} },
+/**/                  {{0x3fd89dcb, 0xa7fcf5cf} },
+/**/                  {{0x4004cc95, 0x3159cbe1} },
+/**/                  {{0xbbdc25ea, 0xd58a6ad0} },},
+/**/                 {{{0x3fd7c000, 0x02eb62b8} },
+/**/                  {{0x3fd8e75f, 0xec0ba5cf} },
+/**/                  {{0x40048f21, 0x8731eeea} },
+/**/                  {{0xbbc1cb73, 0xcc1adafb} },},
+/**/                 {{{0x3fd80000, 0x054a52d1} },
+/**/                  {{0x3fd9312d, 0x8bb822e9} },
+/**/                  {{0x400452e6, 0x9170a729} },
+/**/                  {{0xbbd8bb17, 0xeac002ee} },},
+/**/                 {{{0x3fd83fff, 0xf93a00a3} },
+/**/                  {{0x3fd97b35, 0x4bb9ad2a} },
+/**/                  {{0x400417da, 0xae924e7f} },
+/**/                  {{0x3bd4b800, 0x9a378cc7} },},
+/**/                 {{{0x3fd87fff, 0xfbdc91c1} },
+/**/                  {{0x3fd9c578, 0x2771b601} },
+/**/                  {{0x4003ddf4, 0x78855799} },
+/**/                  {{0x3bd9077d, 0xa00445d9} },},
+/**/                 {{{0x3fd8bfff, 0xf6d215e6} },
+/**/                  {{0x3fda0ff6, 0xe0ea4a0b} },
+/**/                  {{0x4003a52b, 0x189a0989} },
+/**/                  {{0xbbda6831, 0x89c0613d} },},
+/**/                 {{{0x3fd90000, 0x02f734ef} },
+/**/                  {{0x3fda5ab2, 0x736bf579} },
+/**/                  {{0x40036d75, 0xe9244ca6} },
+/**/                  {{0x3be3a6d8, 0x4b722377} },},
+/**/                 {{{0x3fd94000, 0x04eef8b4} },
+/**/                  {{0x3fdaa5ab, 0x9fb6e3d0} },
+/**/                  {{0x400336cc, 0xc9089cb7} },
+/**/                  {{0x3b9f6963, 0x22cc00bb} },},
+/**/                 {{{0x3fd98000, 0x041ec76a} },
+/**/                  {{0x3fdaf0e3, 0x5176c7e4} },
+/**/                  {{0x40030127, 0xcb0b9506} },
+/**/                  {{0x3bb1ffdb, 0x5385a849} },},
+/**/                 {{{0x3fd9c000, 0x08044e47} },
+/**/                  {{0x3fdb3c5a, 0x77071224} },
+/**/                  {{0x4002cc7f, 0x50d75ec7} },
+/**/                  {{0xbbb0fade, 0x78effc8a} },},
+/**/                 {{{0x3fda0000, 0x01f8235b} },
+/**/                  {{0x3fdb8811, 0xe725782e} },
+/**/                  {{0x400298cc, 0x18fbfb37} },
+/**/                  {{0xbbe55ed3, 0x3b50e71b} },},
+/**/                 {{{0x3fda3fff, 0xfb8c6f08} },
+/**/                  {{0x3fdbd40a, 0x97b086f3} },
+/**/                  {{0x40026607, 0x154de04b} },
+/**/                  {{0xbbdec65e, 0x455faae3} },},
+/**/                 {{{0x3fda7fff, 0xfb3d63e1} },
+/**/                  {{0x3fdc2045, 0x7d9a3b8a} },
+/**/                  {{0x40023429, 0x7e60bfbb} },
+/**/                  {{0x3be3001c, 0x154ebd33} },},
+/**/                 {{{0x3fdabfff, 0xf5f45c48} },
+/**/                  {{0x3fdc6cc3, 0x7b8d45e6} },
+/**/                  {{0x4002032c, 0xdb1ace69} },
+/**/                  {{0xbbe5ebf8, 0x3ed33616} },},
+/**/                 {{{0x3fdb0000, 0x0508b34c} },
+/**/                  {{0x3fdcb985, 0xa27e8d37} },
+/**/                  {{0x4001d30a, 0xd4459a2b} },
+/**/                  {{0xbbd01432, 0xae61e2d1} },},
+/**/                 {{{0x3fdb4000, 0x0a84710c} },
+/**/                  {{0x3fdd068c, 0xc3e50155} },
+/**/                  {{0x4001a3bd, 0x775034dd} },
+/**/                  {{0xbbe80b1e, 0x58e0e228} },},
+/**/                 {{{0x3fdb7fff, 0xf692e9d8} },
+/**/                  {{0x3fdd53d9, 0xc49d6627} },
+/**/                  {{0x4001753e, 0xfe18066a} },
+/**/                  {{0xbbb004c8, 0xf760d33e} },},
+/**/                 {{{0x3fdbc000, 0x0280f14d} },
+/**/                  {{0x3fdda16d, 0xe4e81013} },
+/**/                  {{0x40014789, 0xa38ea052} },
+/**/                  {{0x3be848bc, 0x27c9c4ea} },},
+/**/                 {{{0x3fdc0000, 0x001121d1} },
+/**/                  {{0x3fddef49, 0xeac018f0} },
+/**/                  {{0x40011a98, 0x20b8be0c} },
+/**/                  {{0xbbe1527e, 0xd0d6010e} },},
+/**/                 {{{0x3fdc3fff, 0xfef662aa} },
+/**/                  {{0x3fde3d6e, 0xea0c7070} },
+/**/                  {{0x4000ee65, 0x32f46ccd} },
+/**/                  {{0x3be8d241, 0x189a000d} },},
+/**/                 {{{0x3fdc8000, 0x09845818} },
+/**/                  {{0x3fde8bdd, 0xf36a8b1b} },
+/**/                  {{0x4000c2eb, 0xcac73476} },
+/**/                  {{0x3bd221f7, 0x12bed284} },},
+/**/                 {{{0x3fdcbfff, 0xfb0493bf} },
+/**/                  {{0x3fdeda97, 0xe0c60d10} },
+/**/                  {{0x40009827, 0x251c7836} },
+/**/                  {{0xbbe0bd54, 0x6eec41b7} },},
+/**/                 {{{0x3fdcffff, 0xfd52961f} },
+/**/                  {{0x3fdf299d, 0xefb3e44b} },
+/**/                  {{0x40006e12, 0x74e459f5} },
+/**/                  {{0xbbd93f77, 0xe969c82f} },},
+/**/                 {{{0x3fdd3fff, 0xfe2319a4} },
+/**/                  {{0x3fdf78f1, 0x17139490} },
+/**/                  {{0x400044a9, 0x3e737e94} },
+/**/                  {{0xbb91e7cc, 0x49594b7a} },},
+/**/                 {{{0x3fdd7fff, 0xfa4de596} },
+/**/                  {{0x3fdfc892, 0x638f49e8} },
+/**/                  {{0x40001be7, 0x231057a5} },
+/**/                  {{0x3bd482b0, 0xf5af9f5f} },},
+/**/                 {{{0x3fddbfff, 0xfe729a69} },
+/**/                  {{0x3fe00c41, 0x7c6ab019} },
+/**/                  {{0x3fffe78f, 0xbf612660} },
+/**/                  {{0x3bea5cda, 0x00da681e} },},
+/**/                 {{{0x3fde0000, 0x09d66802} },
+/**/                  {{0x3fe03461, 0xf6b883cf} },
+/**/                  {{0x3fff988e, 0xbc05a87c} },
+/**/                  {{0xbbe06c33, 0xf2372669} },},
+/**/                 {{{0x3fde3fff, 0xfb211657} },
+/**/                  {{0x3fe05cab, 0x191db8e8} },
+/**/                  {{0x3fff4ac3, 0x7bcfe6be} },
+/**/                  {{0xbbd5d51f, 0x5ed8d35b} },},
+/**/                 {{{0x3fde8000, 0x0a3f068a} },
+/**/                  {{0x3fe0851d, 0x95fb54f0} },
+/**/                  {{0x3ffefe26, 0x144ca408} },
+/**/                  {{0xbbc7c894, 0xa2c169c5} },},
+/**/                 {{{0x3fdec000, 0x01adb060} },
+/**/                  {{0x3fe0adb9, 0xdc7b54f9} },
+/**/                  {{0x3ffeb2af, 0x5ebe52a7} },
+/**/                  {{0x3bd4e740, 0x312c5ffd} },},
+/**/                 {{{0x3fdeffff, 0xff5c0d01} },
+/**/                  {{0x3fe0d680, 0x92550a8d} },
+/**/                  {{0x3ffe6858, 0x0d71fdf0} },
+/**/                  {{0x3bddd8a6, 0x96b35499} },},
+/**/                 {{{0x3fdf3fff, 0xf93d5fcc} },
+/**/                  {{0x3fe0ff72, 0x45cb4374} },
+/**/                  {{0x3ffe1f19, 0x3cce5040} },
+/**/                  {{0xbbc9f0ec, 0x7c1efab4} },},
+/**/                 {{{0x3fdf7fff, 0xfa0dd18f} },
+/**/                  {{0x3fe1288f, 0x944dd508} },
+/**/                  {{0x3ffdd6ec, 0x298b874d} },
+/**/                  {{0x3bea6ebd, 0x9642a0a6} },},
+/**/                 {{{0x3fdfbfff, 0xfd3a9f1a} },
+/**/                  {{0x3fe151d9, 0x13750f3e} },
+/**/                  {{0x3ffd8fca, 0x5806a27e} },
+/**/                  {{0x3bda2a03, 0xfc65ac7a} },},
+/**/                 {{{0x3fdfffff, 0xfc481400} },
+/**/                  {{0x3fe17b4f, 0x598944ca} },
+/**/                  {{0x3ffd49ad, 0x82532170} },
+/**/                  {{0x3bc4412e, 0x3d236dc3} },},
+/**/                 {{{0x3fe01fff, 0xff53786c} },
+/**/                  {{0x3fe1a4f3, 0x07d83d47} },
+/**/                  {{0x3ffd048f, 0x851bffeb} },
+/**/                  {{0x3bd1589d, 0x29f81b14} },},
+/**/                 {{{0x3fe03fff, 0xfee301b7} },
+/**/                  {{0x3fe1cec4, 0xb8a6a382} },
+/**/                  {{0x3ffcc06a, 0x7c519db6} },
+/**/                  {{0x3bd370e6, 0x5b24d6b2} },},
+/**/                 {{{0x3fe06000, 0x006e36bf} },
+/**/                  {{0x3fe1f8c5, 0x114eb8be} },
+/**/                  {{0x3ffc7d38, 0xa34d6786} },
+/**/                  {{0xbbea92de, 0x4b98c1d4} },},
+/**/                 {{{0x3fe07fff, 0xfd60aa43} },
+/**/                  {{0x3fe222f4, 0xabeccecb} },
+/**/                  {{0x3ffc3af4, 0x77342ac4} },
+/**/                  {{0xbbdd47f6, 0x03a5c2c2} },},
+/**/                 {{{0x3fe0a000, 0x037762e8} },
+/**/                  {{0x3fe24d54, 0x3f99efe8} },
+/**/                  {{0x3ffbf998, 0x75f54fab} },
+/**/                  {{0x3bedf7f4, 0x15771a46} },},
+/**/                 {{{0x3fe0bfff, 0xff1c6921} },
+/**/                  {{0x3fe277e4, 0x598e35d0} },
+/**/                  {{0x3ffbb91f, 0x8addd186} },
+/**/                  {{0x3be0f16c, 0x5e0e5a73} },},
+/**/                 {{{0x3fe0dfff, 0xff07154b} },
+/**/                  {{0x3fe2a2a5, 0xb6bc3986} },
+/**/                  {{0x3ffb7984, 0x8301646d} },
+/**/                  {{0xbbf02dd0, 0xbbaa5310} },},
+/**/                 {{{0x3fe10000, 0x02fcdda4} },
+/**/                  {{0x3fe2cd99, 0x02a59f1e} },
+/**/                  {{0x3ffb3ac2, 0x705219bf} },
+/**/                  {{0xbbe59357, 0x112fa616} },},
+/**/                 {{{0x3fe12000, 0x01ce1140} },
+/**/                  {{0x3fe2f8be, 0xdf0a67c2} },
+/**/                  {{0x3ffafcd4, 0x9ab8ae2a} },
+/**/                  {{0x3be2c542, 0x9303f346} },},
+/**/                 {{{0x3fe14000, 0x04d0f355} },
+/**/                  {{0x3fe32418, 0x08fcc7bf} },
+/**/                  {{0x3ffabfb6, 0x497b9a36} },
+/**/                  {{0x3bebc044, 0xb5a59234} },},
+/**/                 {{{0x3fe16000, 0x00fb0c8a} },
+/**/                  {{0x3fe34fa5, 0x2471618b} },
+/**/                  {{0x3ffa8363, 0x0d26d117} },
+/**/                  {{0xbbdbfbb2, 0x3f7bb7c9} },},
+/**/                 {{{0x3fe18000, 0x026f10b3} },
+/**/                  {{0x3fe37b66, 0xf7579056} },
+/**/                  {{0x3ffa47d6, 0x6b4cf4b1} },
+/**/                  {{0x3bf0f6b4, 0xaf0b5de9} },},
+/**/                 {{{0x3fe19fff, 0xfd0978f8} },
+/**/                  {{0x3fe3a75e, 0x290cc78c} },
+/**/                  {{0x3ffa0d0c, 0x36c21315} },
+/**/                  {{0x3beb2129, 0xa296b262} },},
+/**/                 {{{0x3fe1bfff, 0xfd94840b} },
+/**/                  {{0x3fe3d38b, 0x85b4e4a4} },
+/**/                  {{0x3ff9d300, 0x32f2ecef} },
+/**/                  {{0xbbdbab1a, 0xb9bb7d74} },},
+/**/                 {{{0x3fe1dfff, 0xfbda1ea1} },
+/**/                  {{0x3fe3ffef, 0xbf3cee2f} },
+/**/                  {{0x3ff999ae, 0x6770fed8} },
+/**/                  {{0x3bda0bdc, 0xb4ace9a4} },},
+/**/                 {{{0x3fe1ffff, 0xfc989533} },
+/**/                  {{0x3fe42c8b, 0x9c27900c} },
+/**/                  {{0x3ff96112, 0xe0d9f1ac} },
+/**/                  {{0xbbee19eb, 0x2fa2d81a} },},
+/**/                 {{{0x3fe22000, 0x012b8d26} },
+/**/                  {{0x3fe4595f, 0xe11975ca} },
+/**/                  {{0x3ff92929, 0xcdaa4e80} },
+/**/                  {{0x3bf23382, 0xacc82d4b} },},
+/**/                 {{{0x3fe24000, 0x04f4d6af} },
+/**/                  {{0x3fe4866d, 0x4d224131} },
+/**/                  {{0x3ff8f1ef, 0x815c34e8} },
+/**/                  {{0xbbd0c6ff, 0x3b740a99} },},
+/**/                 {{{0x3fe25fff, 0xfcc07bda} },
+/**/                  {{0x3fe4b3b4, 0x98b7d010} },
+/**/                  {{0x3ff8bb60, 0x73e7ffa1} },
+/**/                  {{0x3bebc31b, 0x1ad7a9c2} },},
+/**/                 {{{0x3fe28000, 0x042d9639} },
+/**/                  {{0x3fe4e136, 0xb64540d1} },
+/**/                  {{0x3ff88578, 0xf4374938} },
+/**/                  {{0x3be36de9, 0x1b85e901} },},
+/**/                 {{{0x3fe2a000, 0x03be29a0} },
+/**/                  {{0x3fe50ef4, 0x52bffd96} },
+/**/                  {{0x3ff85035, 0xc0042c06} },
+/**/                  {{0x3be15d01, 0x76f5efbd} },},
+/**/                 {{{0x3fe2bfff, 0xfaa91f12} },
+/**/                  {{0x3fe53cee, 0x3e2f4e0d} },
+/**/                  {{0x3ff81b93, 0x8542df07} },
+/**/                  {{0x3be555cd, 0x17662a2b} },},
+/**/                 {{{0x3fe2dfff, 0xfe884891} },
+/**/                  {{0x3fe56b25, 0x6c1a2470} },
+/**/                  {{0x3ff7e78e, 0xe422ea70} },
+/**/                  {{0x3bf03504, 0xbd030c11} },},
+/**/                 {{{0x3fe2ffff, 0xfe87152b} },
+/**/                  {{0x3fe5999a, 0x9beaaaa1} },
+/**/                  {{0x3ff7b424, 0xd18fe9b3} },
+/**/                  {{0xbb649a5f, 0x773e0e64} },},
+/**/                 {{{0x3fe31fff, 0xffc1a721} },
+/**/                  {{0x3fe5c84e, 0xafe0e564} },
+/**/                  {{0x3ff78152, 0x338db8d4} },
+/**/                  {{0x3beaf428, 0x5da8e935} },},
+/**/                 {{{0x3fe33fff, 0xff70a372} },
+/**/                  {{0x3fe5f742, 0x82191d64} },
+/**/                  {{0x3ff74f14, 0x1122bcae} },
+/**/                  {{0x3bdb1c4b, 0xdee4bfaf} },},
+/**/                 {{{0x3fe36000, 0x0436e836} },
+/**/                  {{0x3fe62676, 0xfde6ccff} },
+/**/                  {{0x3ff71d67, 0x7644252c} },
+/**/                  {{0xbbec3d10, 0xe08c3afb} },},
+/**/                 {{{0x3fe37fff, 0xfcbe9641} },
+/**/                  {{0x3fe655ec, 0xee9ffdaf} },
+/**/                  {{0x3ff6ec49, 0xa6fc0515} },
+/**/                  {{0x3bdda453, 0x2ed29567} },},
+/**/                 {{{0x3fe39fff, 0xffb6d6ca} },
+/**/                  {{0x3fe685a5, 0x5e67a1e1} },
+/**/                  {{0x3ff6bbb7, 0xbc2ae969} },
+/**/                  {{0x3becbf7b, 0x2ef43882} },},
+/**/                 {{{0x3fe3c000, 0x04934fec} },
+/**/                  {{0x3fe6b5a1, 0x2cc07d75} },
+/**/                  {{0x3ff68baf, 0x10b02ef8} },
+/**/                  {{0xbbe7c8fb, 0xfeb7cabd} },},
+/**/                 {{{0x3fe3e000, 0x03f5cf7f} },
+/**/                  {{0x3fe6e5e1, 0x3e59def6} },
+/**/                  {{0x3ff65c2d, 0x0e61500f} },
+/**/                  {{0xbbe30ba4, 0x035f7845} },},
+/**/                 {{{0x3fe40000, 0x05280ad9} },
+/**/                  {{0x3fe71666, 0x91ab4c3e} },
+/**/                  {{0x3ff62d2f, 0x19f01c90} },
+/**/                  {{0xbbf1e9f5, 0xffe95f6a} },},
+/**/                 {{{0x3fe42000, 0x049efb65} },
+/**/                  {{0x3fe74732, 0x18af3b9d} },
+/**/                  {{0x3ff5feb2, 0xb86465e4} },
+/**/                  {{0x3bc4cad7, 0x280d591e} },},
+/**/                 {{{0x3fe44000, 0x0035ccb6} },
+/**/                  {{0x3fe77844, 0xcb4ff1e5} },
+/**/                  {{0x3ff5d0b5, 0x7c455428} },
+/**/                  {{0x3bed8c18, 0x7ba5617c} },},
+/**/                 {{{0x3fe46000, 0x03346717} },
+/**/                  {{0x3fe7a99f, 0xba258778} },
+/**/                  {{0x3ff5a334, 0xf4392254} },
+/**/                  {{0xbbefd14a, 0xfc84a570} },},
+/**/                 {{{0x3fe48000, 0x03002575} },
+/**/                  {{0x3fe7db43, 0xd836768f} },
+/**/                  {{0x3ff5762e, 0xdcf97e0c} },
+/**/                  {{0xbbdd7eba, 0x5f5df49e} },},
+/**/                 {{{0x3fe4a000, 0x055bf381} },
+/**/                  {{0x3fe80d32, 0x35edeefa} },
+/**/                  {{0x3ff549a0, 0xea46e31f} },
+/**/                  {{0xbbdba522, 0x76823eac} },},
+/**/                 {{{0x3fe4c000, 0x04ce10e3} },
+/**/                  {{0x3fe83f6b, 0xd67dc1a8} },
+/**/                  {{0x3ff51d88, 0xed82bcc4} },
+/**/                  {{0xbbeae92d, 0x077d29ea} },},
+/**/                 {{{0x3fe4e000, 0x016c60e1} },
+/**/                  {{0x3fe871f1, 0xca0aaf31} },
+/**/                  {{0x3ff4f1e4, 0xbdacbf16} },
+/**/                  {{0x3be82958, 0x46ee425e} },},
+/**/                 {{{0x3fe4ffff, 0xff966f0a} },
+/**/                  {{0x3fe8a4c5, 0x2bff2dae} },
+/**/                  {{0x3ff4c6b2, 0x3917657e} },
+/**/                  {{0xbbf127c2, 0x5c86c705} },},
+/**/                 {{{0x3fe52000, 0x0076e6eb} },
+/**/                  {{0x3fe8d7e7, 0x175651e8} },
+/**/                  {{0x3ff49bef, 0x4f459b05} },
+/**/                  {{0xbbb1e9d1, 0x4181bbfc} },},
+/**/                 {{{0x3fe54000, 0x03d12d3b} },
+/**/                  {{0x3fe90b58, 0xa976ed56} },
+/**/                  {{0x3ff47199, 0xfdf24af4} },
+/**/                  {{0x3be38c17, 0xc30decaf} },},
+/**/                 {{{0x3fe55fff, 0xfce7fa8d} },
+/**/                  {{0x3fe93f1a, 0xf03a3a09} },
+/**/                  {{0x3ff447b0, 0x5f13234b} },
+/**/                  {{0x3bf1b8b2, 0x70df7e20} },},
+/**/                 {{{0x3fe58000, 0x0331b46a} },
+/**/                  {{0x3fe9732f, 0x38e83134} },
+/**/                  {{0x3ff41e30, 0x68d8b41b} },
+/**/                  {{0xbbee24d8, 0xb90bc28b} },},
+/**/                 {{{0x3fe59fff, 0xfc14848e} },
+/**/                  {{0x3fe9a796, 0x8471b489} },
+/**/                  {{0x3ff3f518, 0x5de3aa73} },
+/**/                  {{0xbbecacd9, 0xe0761536} },},
+/**/                 {{{0x3fe5bfff, 0xfb7cd395} },
+/**/                  {{0x3fe9dc52, 0x24a8b955} },
+/**/                  {{0x3ff3cc66, 0x4f8fff15} },
+/**/                  {{0xbbf67c97, 0x82045611} },},
+/**/                 {{{0x3fe5e000, 0x000dcc40} },
+/**/                  {{0x3fea1163, 0x4df5b93e} },
+/**/                  {{0x3ff3a418, 0x75853228} },
+/**/                  {{0xbbf585da, 0xd481f350} },},
+/**/                 {{{0x3fe60000, 0x02efd2fc} },
+/**/                  {{0x3fea46cb, 0x30d16323} },
+/**/                  {{0x3ff37c2d, 0x187962ae} },
+/**/                  {{0x3bf004c3, 0xa5f77bb0} },},
+/**/                 {{{0x3fe61fff, 0xfeb8088a} },
+/**/                  {{0x3fea7c8b, 0x053920c0} },
+/**/                  {{0x3ff354a2, 0x891769a9} },
+/**/                  {{0x3bbc6b30, 0x3fee3029} },},
+/**/                 {{{0x3fe64000, 0x00f3ca06} },
+/**/                  {{0x3feab2a4, 0x28a1911a} },
+/**/                  {{0x3ff32d77, 0x0a6f0a4a} },
+/**/                  {{0x3bf2a6f8, 0xfac5081a} },},
+/**/                 {{{0x3fe65fff, 0xfe9ec2f4} },
+/**/                  {{0x3feae917, 0xd4ce7239} },
+/**/                  {{0x3ff306a9, 0x0751a948} },
+/**/                  {{0xbbe950b5, 0x51ab9dbd} },},
+/**/                 {{{0x3fe68000, 0x03d43966} },
+/**/                  {{0x3feb1fe7, 0x708b998a} },
+/**/                  {{0x3ff2e036, 0xd7a153c7} },
+/**/                  {{0x3bdd36e2, 0xa1e4a14e} },},
+/**/                 {{{0x3fe69fff, 0xfab67783} },
+/**/                  {{0x3feb5714, 0x2e575464} },
+/**/                  {{0x3ff2ba1f, 0x05006cb6} },
+/**/                  {{0x3bea9a4a, 0x473c2e31} },},
+/**/                 {{{0x3fe6bfff, 0xfcb65f89} },
+/**/                  {{0x3feb8e9f, 0x981efd2f} },
+/**/                  {{0x3ff2945f, 0xe948d9f7} },
+/**/                  {{0xbbca5294, 0xe802df72} },},
+/**/                 {{{0x3fe6dfff, 0xfc5609a9} },
+/**/                  {{0x3febc68a, 0xfaed6ff1} },
+/**/                  {{0x3ff26ef8, 0x1533411e} },
+/**/                  {{0xbbf89153, 0xf51bc566} },},
+/**/                 {{{0x3fe6ffff, 0xfc4eef86} },
+/**/                  {{0x3febfed7, 0xc62205fe} },
+/**/                  {{0x3ff249e6, 0x0e70978c} },
+/**/                  {{0x3bc39021, 0xa2b9ff56} },},
+/**/                 {{{0x3fe72000, 0x004d98b3} },
+/**/                  {{0x3fec3787, 0x716968ad} },
+/**/                  {{0x3ff22528, 0x61be7751} },
+/**/                  {{0x3befc9c5, 0x74ee2211} },},
+/**/                 {{{0x3fe73fff, 0xfc155075} },
+/**/                  {{0x3fec709b, 0x5ec6fd4e} },
+/**/                  {{0x3ff200bd, 0xb5d53311} },
+/**/                  {{0x3be28a4d, 0xa269ae63} },},
+/**/                 {{{0x3fe76000, 0x0498c203} },
+/**/                  {{0x3fecaa15, 0x323d08c1} },
+/**/                  {{0x3ff1dca4, 0x93433f65} },
+/**/                  {{0x3bf8cae4, 0x14a28fb7} },},
+/**/                 {{{0x3fe77fff, 0xff1e5636} },
+/**/                  {{0x3fece3f6, 0x4147c12c} },
+/**/                  {{0x3ff1b8db, 0xbfe294a8} },
+/**/                  {{0xbbe7e19c, 0x4b56a744} },},
+/**/                 {{{0x3fe7a000, 0x0226d45a} },
+/**/                  {{0x3fed1e40, 0x4120eb7f} },
+/**/                  {{0x3ff19561, 0xd15f8278} },
+/**/                  {{0x3be64b28, 0x032c5d4c} },},
+/**/                 {{{0x3fe7c000, 0x0250a5aa} },
+/**/                  {{0x3fed58f4, 0xb112a1e1} },
+/**/                  {{0x3ff17235, 0x8a59d565} },
+/**/                  {{0xbbe716de, 0xb8dc7867} },},
+/**/                 {{{0x3fe7e000, 0x0482f82e} },
+/**/                  {{0x3fed9415, 0x3576bdf0} },
+/**/                  {{0x3ff14f55, 0xa22a1c5b} },
+/**/                  {{0x3bf207e1, 0xe1305604} },},
+/**/                 {{{0x3fe80000, 0x0205003e} },
+/**/                  {{0x3fedcfa3, 0x64d69ff7} },
+/**/                  {{0x3ff12cc0, 0xe37eb26f} },
+/**/                  {{0xbbd52ec6, 0xe32395f8} },},
+/**/                 {{{0x3fe81fff, 0xfbf99411} },
+/**/                  {{0x3fee0ba0, 0xebf98f51} },
+/**/                  {{0x3ff10a76, 0x16ddd5d6} },
+/**/                  {{0xbbece0d6, 0x59866045} },},
+/**/                 {{{0x3fe84000, 0x0248e3a3} },
+/**/                  {{0x3fee480f, 0x9bb7f565} },
+/**/                  {{0x3ff0e873, 0xfb84e05c} },
+/**/                  {{0x3bf4e5e8, 0x1595df92} },},
+/**/                 {{{0x3fe86000, 0x0145c157} },
+/**/                  {{0x3fee84f1, 0x0a10b3ab} },
+/**/                  {{0x3ff0c6b9, 0x7cbd7b1e} },
+/**/                  {{0xbbe19de6, 0xd5f121d0} },},
+/**/                 {{{0x3fe88000, 0x022631b9} },
+/**/                  {{0x3feec247, 0x0be1f047} },
+/**/                  {{0x3ff0a545, 0x6d0b3ee6} },
+/**/                  {{0xbbc272b1, 0xa3ba2c6f} },},
+/**/                 {{{0x3fe8a000, 0x045f7828} },
+/**/                  {{0x3fef0013, 0x6c45ba1c} },
+/**/                  {{0x3ff08416, 0xaf2a0f09} },
+/**/                  {{0x3be82b56, 0x5b63c799} },},
+/**/                 {{{0x3fe8bfff, 0xffc686cf} },
+/**/                  {{0x3fef3e57, 0xf03c824b} },
+/**/                  {{0x3ff0632c, 0x33502220} },
+/**/                  {{0xbbd039ad, 0x2dbeeb25} },},
+/**/                 {{{0x3fe8dfff, 0xfd8644c6} },
+/**/                  {{0x3fef7d16, 0x8774261d} },
+/**/                  {{0x3ff04284, 0xdd5b3019} },
+/**/                  {{0x3bd79f33, 0xe1eba933} },},
+/**/                 {{{0x3fe8ffff, 0xfe4e7937} },
+/**/                  {{0x3fefbc51, 0x1a99a641} },
+/**/                  {{0x3ff0221f, 0x9f69840b} },
+/**/                  {{0xbbea9e84, 0x7beee018} },},
+/**/                 {{{0x3fe92000, 0x0435251f} },
+/**/                  {{0x3feffc09, 0x9eb22390} },
+/**/                  {{0x3ff001fb, 0x6f7c51e8} },
+/**/                  {{0xbb5a12e7, 0x31032e0a} },},
+  };
+
+#else
+#ifdef LITTLE_ENDI
+static const number
+      xfg[186][4] = {                             /* xi,Fi,Gi,FFi, i=16..201 */
+/**/                 {{{0x1e519d60, 0x3fb00000} },
+/**/                  {{0x96c4e240, 0x3fb00557} },
+/**/                  {{0x628127b7, 0x402ff554} },
+/**/                  {{0x9e355b06, 0xbb9a1dee} },},
+/**/                 {{{0x1b1a7010, 0x3fb10000} },
+/**/                  {{0xaab892b7, 0x3fb10668} },
+/**/                  {{0xbe3fdf74, 0x402e12c7} },
+/**/                  {{0x037da741, 0x3ba89234} },},
+/**/                 {{{0x2505e350, 0x3fb20000} },
+/**/                  {{0xff547824, 0x3fb2079b} },
+/**/                  {{0xde853633, 0x402c65c5} },
+/**/                  {{0xe9614250, 0x3bb7486e} },},
+/**/                 {{{0xfcdc4252, 0x3fb2ffff} },
+/**/                  {{0x5eb16c68, 0x3fb308f3} },
+/**/                  {{0xe56be74f, 0x402ae5da} },
+/**/                  {{0x91a23034, 0xbb82c726} },},
+/**/                 {{{0xe3ff849f, 0x3fb3ffff} },
+/**/                  {{0x154999cc, 0x3fb40a71} },
+/**/                  {{0x046b7352, 0x40298c43} },
+/**/                  {{0x3843738f, 0x3b9aceaf} },},
+/**/                 {{{0xedc9590f, 0x3fb4ffff} },
+/**/                  {{0x429bdd80, 0x3fb50c17} },
+/**/                  {{0x91b5d674, 0x40285384} },
+/**/                  {{0xb4403d22, 0xbbc1d02d} },},
+/**/                 {{{0x00ee83f7, 0x3fb60000} },
+/**/                  {{0xda80cc21, 0x3fb60de7} },
+/**/                  {{0xef21a2a7, 0x40273724} },
+/**/                  {{0x72523ffd, 0xbb95e53c} },},
+/**/                 {{{0xeb05ea41, 0x3fb6ffff} },
+/**/                  {{0xb8c51bea, 0x3fb70fe4} },
+/**/                  {{0xfae562ff, 0x40263370} },
+/**/                  {{0x8ffe0626, 0xbb99ad0e} },},
+/**/                 {{{0xdc0515f7, 0x3fb7ffff} },
+/**/                  {{0x1db54498, 0x3fb81210} },
+/**/                  {{0x0e7eab5c, 0x40254553} },
+/**/                  {{0xd62ed686, 0xbb914c87} },},
+/**/                 {{{0xe384d7ab, 0x3fb8ffff} },
+/**/                  {{0x2a8d3727, 0x3fb9146c} },
+/**/                  {{0xfd57f3fd, 0x40246a33} },
+/**/                  {{0x5381e06d, 0xbbbbda8d} },},
+/**/                 {{{0xe4832347, 0x3fb9ffff} },
+/**/                  {{0xd50e1050, 0x3fba16fa} },
+/**/                  {{0xc5537a96, 0x40239fe2} },
+/**/                  {{0xc111eabb, 0x3bc7f695} },},
+/**/                 {{{0x274540e3, 0x3fbb0000} },
+/**/                  {{0x7ae68517, 0x3fbb19be} },
+/**/                  {{0x3637e946, 0x4022e481} },
+/**/                  {{0x8dbd9d93, 0x3bc307f8} },},
+/**/                 {{{0xfebf2e9b, 0x3fbbffff} },
+/**/                  {{0x8369cd19, 0x3fbc1cb8} },
+/**/                  {{0x17aef223, 0x40223676} },
+/**/                  {{0x424a9cf3, 0x3bc50038} },},
+/**/                 {{{0x23529045, 0x3fbd0000} },
+/**/                  {{0xc11d7ef7, 0x3fbd1feb} },
+/**/                  {{0xb8e43d4e, 0x4021945f} },
+/**/                  {{0x52a6f224, 0x3b812007} },},
+/**/                 {{{0xd872a829, 0x3fbdffff} },
+/**/                  {{0x8ee4d6b7, 0x3fbe2359} },
+/**/                  {{0x76195d5f, 0x4020fd0c} },
+/**/                  {{0x85fdca85, 0xbbb4d9ab} },},
+/**/                 {{{0xff323b84, 0x3fbeffff} },
+/**/                  {{0xec9073e5, 0x3fbf2704} },
+/**/                  {{0x3020200f, 0x40206f71} },
+/**/                  {{0x12836992, 0x3bb77aa2} },},
+/**/                 {{{0x0ce79195, 0x3fc00000} },
+/**/                  {{0xbc30cc61, 0x3fc01577} },
+/**/                  {{0xd6564a88, 0x401fd549} },
+/**/                  {{0x965c0ad0, 0xbbc8926f} },},
+/**/                 {{{0xee40e918, 0x3fc07fff} },
+/**/                  {{0x8279ac01, 0x3fc0978d} },
+/**/                  {{0x9294bc03, 0x401edbb5} },
+/**/                  {{0x4aae45d6, 0xbb80a533} },},
+/**/                 {{{0x0cc091fd, 0x3fc10000} },
+/**/                  {{0x44dfb2f7, 0x3fc119c5} },
+/**/                  {{0x067d8e18, 0x401df0bb} },
+/**/                  {{0x4ff642a4, 0xbbcc2c18} },},
+/**/                 {{{0x0d9936a1, 0x3fc18000} },
+/**/                  {{0xb9085a4b, 0x3fc19c1f} },
+/**/                  {{0x71ce3629, 0x401d131a} },
+/**/                  {{0x0669355b, 0xbbc36553} },},
+/**/                 {{{0xed5f3188, 0x3fc1ffff} },
+/**/                  {{0xee74bf2d, 0x3fc21e9d} },
+/**/                  {{0xff0cd655, 0x401c41b6} },
+/**/                  {{0x478ecfc5, 0x3b8867f5} },},
+/**/                 {{{0x05f06a51, 0x3fc28000} },
+/**/                  {{0x550b313f, 0x3fc2a141} },
+/**/                  {{0x1702e6d2, 0x401b7b92} },
+/**/                  {{0x380131fe, 0xbbadab51} },},
+/**/                 {{{0xfe3d339e, 0x3fc2ffff} },
+/**/                  {{0xa75f76df, 0x3fc3240a} },
+/**/                  {{0xfcb6409d, 0x401abfc8} },
+/**/                  {{0x0d291d83, 0x3bc60bcf} },},
+/**/                 {{{0xed888d6f, 0x3fc37fff} },
+/**/                  {{0x13cc5db7, 0x3fc3a6fb} },
+/**/                  {{0x8ed5320d, 0x401a0d8f} },
+/**/                  {{0x4eef03ab, 0x3bb8a48e} },},
+/**/                 {{{0x02ca050d, 0x3fc40000} },
+/**/                  {{0xe25776bb, 0x3fc42a13} },
+/**/                  {{0xfa84c2bc, 0x4019642d} },
+/**/                  {{0xcc56516f, 0xbbd0bd5d} },},
+/**/                 {{{0xf2531f5c, 0x3fc47fff} },
+/**/                  {{0xdeb73404, 0x3fc4ad55} },
+/**/                  {{0xf86e9035, 0x4018c2fe} },
+/**/                  {{0x5aa287c8, 0x3b9cffe7} },},
+/**/                 {{{0x13774992, 0x3fc50000} },
+/**/                  {{0x7d0ee307, 0x3fc530c2} },
+/**/                  {{0x370caf35, 0x4018296c} },
+/**/                  {{0xf91d6532, 0xbbcf75d1} },},
+/**/                 {{{0xedddcb2d, 0x3fc57fff} },
+/**/                  {{0x5db4347d, 0x3fc5b45a} },
+/**/                  {{0x52190c0e, 0x401796ee} },
+/**/                  {{0x17d5d076, 0x3b88a25f} },},
+/**/                 {{{0xf41949a0, 0x3fc5ffff} },
+/**/                  {{0x13bf986a, 0x3fc6381f} },
+/**/                  {{0x2d2255fd, 0x40170b09} },
+/**/                  {{0xb1bcd5e7, 0xbb9bfb23} },},
+/**/                 {{{0xf834d3a1, 0x3fc67fff} },
+/**/                  {{0x8ec85952, 0x3fc6bc11} },
+/**/                  {{0x62cf2268, 0x4016854c} },
+/**/                  {{0x82e39e04, 0x3b9ee53b} },},
+/**/                 {{{0xfd9106ea, 0x3fc6ffff} },
+/**/                  {{0xf298f6f7, 0x3fc74032} },
+/**/                  {{0x1f4f84a9, 0x40160551} },
+/**/                  {{0x112634b8, 0xbbb59c4a} },},
+/**/                 {{{0x0f649a4f, 0x3fc78000} },
+/**/                  {{0x6ca53abc, 0x3fc7c484} },
+/**/                  {{0x4809d175, 0x40158ab9} },
+/**/                  {{0x73d3cd2e, 0x3bc91c75} },},
+/**/                 {{{0xef06bbd8, 0x3fc7ffff} },
+/**/                  {{0xdf7d76ad, 0x3fc84906} },
+/**/                  {{0xdd2b30a6, 0x4015152e} },
+/**/                  {{0x084c3eef, 0xbbbfa2da} },},
+/**/                 {{{0x021c6334, 0x3fc88000} },
+/**/                  {{0xd965f986, 0x3fc8cdbb} },
+/**/                  {{0x51b74296, 0x4014a462} },
+/**/                  {{0x74dcfe0b, 0xbb9ec02e} },},
+/**/                 {{{0xf38d0756, 0x3fc8ffff} },
+/**/                  {{0x28e173c7, 0x3fc952a4} },
+/**/                  {{0x17b59ebd, 0x4014380b} },
+/**/                  {{0xb77589f0, 0xbbcd0f1c} },},
+/**/                 {{{0x104efca1, 0x3fc98000} },
+/**/                  {{0x4644d23c, 0x3fc9d7c1} },
+/**/                  {{0xcb1eabd5, 0x4013cfe5} },
+/**/                  {{0xea188d9e, 0xbbd5d6f7} },},
+/**/                 {{{0x09417b30, 0x3fca0000} },
+/**/                  {{0x096d76aa, 0x3fca5d14} },
+/**/                  {{0xb3723db0, 0x40136bb4} },
+/**/                  {{0xfbf3979c, 0x3bbe3e0d} },},
+/**/                 {{{0xeb1c23ec, 0x3fca7fff} },
+/**/                  {{0xab60288d, 0x3fcae29d} },
+/**/                  {{0x783071d7, 0x40130b3e} },
+/**/                  {{0x3d5384bf, 0xbbc7dd82} },},
+/**/                 {{{0xfb171c13, 0x3fcaffff} },
+/**/                  {{0xa221a96b, 0x3fcb685f} },
+/**/                  {{0xd8c0747d, 0x4012ae4d} },
+/**/                  {{0xd5554972, 0x3bd4644b} },},
+/**/                 {{{0x0aba44be, 0x3fcb8000} },
+/**/                  {{0xecdf241f, 0x3fcbee5a} },
+/**/                  {{0xc6fad63b, 0x401254b1} },
+/**/                  {{0xd092b85a, 0x3ba41916} },},
+/**/                 {{{0x113d2a3e, 0x3fcc0000} },
+/**/                  {{0xb3e92543, 0x3fcc7490} },
+/**/                  {{0x9a62c035, 0x4011fe3c} },
+/**/                  {{0x41a03739, 0xbba3cc39} },},
+/**/                 {{{0xf49e00ce, 0x3fcc7fff} },
+/**/                  {{0x0f59eab0, 0x3fccfb02} },
+/**/                  {{0xe956a631, 0x4011aac3} },
+/**/                  {{0xbfa8cb5b, 0xbbb7a383} },},
+/**/                 {{{0x05f611ab, 0x3fcd0000} },
+/**/                  {{0x89e6844e, 0x3fcd81b0} },
+/**/                  {{0xf391268d, 0x40115a1f} },
+/**/                  {{0xb2dc91f3, 0x3bd39b5c} },},
+/**/                 {{{0x14764ceb, 0x3fcd8000} },
+/**/                  {{0x27debf0d, 0x3fce089d} },
+/**/                  {{0xfbc84740, 0x40110c2b} },
+/**/                  {{0x84712510, 0x3bc14d4d} },},
+/**/                 {{{0x14bcea76, 0x3fce0000} },
+/**/                  {{0x16dbc820, 0x3fce8fc9} },
+/**/                  {{0xa00ca48e, 0x4010c0c5} },
+/**/                  {{0x640f1b9e, 0xbbd33788} },},
+/**/                 {{{0xfd7995bd, 0x3fce7fff} },
+/**/                  {{0x88b50424, 0x3fcf1735} },
+/**/                  {{0xbe02169a, 0x401077cc} },
+/**/                  {{0x221fdf77, 0xbbb61fee} },},
+/**/                 {{{0x0cc35436, 0x3fcf0000} },
+/**/                  {{0xfd21a40b, 0x3fcf9ee3} },
+/**/                  {{0x1ee7ffe8, 0x40103123} },
+/**/                  {{0xc79ff5c1, 0x3bd427e3} },},
+/**/                 {{{0x01d1da33, 0x3fcf8000} },
+/**/                  {{0xb7dbe15c, 0x3fd0136a} },
+/**/                  {{0x77d559e5, 0x400fd959} },
+/**/                  {{0xd67948d7, 0x3bb0c6a1} },},
+/**/                 {{{0x060c13b2, 0x3fd00000} },
+/**/                  {{0xaaad4f18, 0x3fd05785} },
+/**/                  {{0x2675d182, 0x400f549e} },
+/**/                  {{0x18f0dd10, 0xbbc15208} },},
+/**/                 {{{0x03885492, 0x3fd04000} },
+/**/                  {{0x660542d7, 0x3fd09bc3} },
+/**/                  {{0xdf3f5fec, 0x400ed3e2} },
+/**/                  {{0xb883ae62, 0xbbd95657} },},
+/**/                 {{{0x052f5a13, 0x3fd08000} },
+/**/                  {{0x9a195045, 0x3fd0e024} },
+/**/                  {{0xfa68f2c8, 0x400e56f8} },
+/**/                  {{0x5a543e8e, 0x3bded7ba} },},
+/**/                 {{{0x02ba1af5, 0x3fd0c000} },
+/**/                  {{0xe2e7f24b, 0x3fd124a9} },
+/**/                  {{0xbffe633f, 0x400dddb4} },
+/**/                  {{0x0c60278f, 0xbbdcba86} },},
+/**/                 {{{0xf76642c1, 0x3fd0ffff} },
+/**/                  {{0xe162ffe6, 0x3fd16953} },
+/**/                  {{0x0311d5d5, 0x400d67ed} },
+/**/                  {{0xe40c5f9e, 0x3b7b1f4a} },},
+/**/                 {{{0x033602f0, 0x3fd14000} },
+/**/                  {{0x5f49508e, 0x3fd1ae23} },
+/**/                  {{0xb8708266, 0x400cf57a} },
+/**/                  {{0x8620f301, 0xbbd6a6c2} },},
+/**/                 {{{0xfefd1a13, 0x3fd17fff} },
+/**/                  {{0xdb2a9ba1, 0x3fd1f318} },
+/**/                  {{0x8d11009e, 0x400c8639} },
+/**/                  {{0x69b21d3b, 0x3bd3a9c6} },},
+/**/                 {{{0xf718365d, 0x3fd1bfff} },
+/**/                  {{0x0c41e3ac, 0x3fd23835} },
+/**/                  {{0xe02be47c, 0x400c1a06} },
+/**/                  {{0x129e8cd1, 0x3bdb961a} },},
+/**/                 {{{0xff001e00, 0x3fd1ffff} },
+/**/                  {{0xb2f6395e, 0x3fd27d78} },
+/**/                  {{0xf2fe9a85, 0x400bb0c1} },
+/**/                  {{0xe68fd7d8, 0x3be074a9} },},
+/**/                 {{{0xfe425a6a, 0x3fd23fff} },
+/**/                  {{0x618faabe, 0x3fd2c2e4} },
+/**/                  {{0x190b18df, 0x400b4a4c} },
+/**/                  {{0xf615aad1, 0xbbdf0d1f} },},
+/**/                 {{{0x059ec1db, 0x3fd28000} },
+/**/                  {{0xd8583884, 0x3fd30878} },
+/**/                  {{0x0cd82bc2, 0x400ae688} },
+/**/                  {{0x141c1f8d, 0xbbd563c3} },},
+/**/                 {{{0x000dd081, 0x3fd2c000} },
+/**/                  {{0xaffdb6d8, 0x3fd34e36} },
+/**/                  {{0x5270fc15, 0x400a855a} },
+/**/                  {{0x9f2cdafd, 0xbbc6d88d} },},
+/**/                 {{{0xfc1dcd2b, 0x3fd2ffff} },
+/**/                  {{0xa95875bc, 0x3fd3941e} },
+/**/                  {{0xaa9502b6, 0x400a26a8} },
+/**/                  {{0x8389b15c, 0xbbe13cad} },},
+/**/                 {{{0xf6c0d4a0, 0x3fd33fff} },
+/**/                  {{0x739845f5, 0x3fd3da31} },
+/**/                  {{0x4d2573a0, 0x4009ca5a} },
+/**/                  {{0xacaee379, 0xbbc71636} },},
+/**/                 {{{0x06b16793, 0x3fd38000} },
+/**/                  {{0xdbc088f0, 0x3fd4206f} },
+/**/                  {{0x9344e33a, 0x40097057} },
+/**/                  {{0x1d7a4f81, 0xbbc2c052} },},
+/**/                 {{{0x07358fa3, 0x3fd3c000} },
+/**/                  {{0x6f23311d, 0x3fd466da} },
+/**/                  {{0x5aa612ea, 0x4009188a} },
+/**/                  {{0x685e8edc, 0x3b8653a5} },},
+/**/                 {{{0xfc3b18cf, 0x3fd3ffff} },
+/**/                  {{0xe9282e6b, 0x3fd4ad71} },
+/**/                  {{0x641e643d, 0x4008c2dd} },
+/**/                  {{0x3f567c64, 0x3b95f0ef} },},
+/**/                 {{{0x000dd2a8, 0x3fd44000} },
+/**/                  {{0x1fa3f2d1, 0x3fd4f437} },
+/**/                  {{0x6072f821, 0x40086f3c} },
+/**/                  {{0x95ff68b5, 0x3bb68efa} },},
+/**/                 {{{0xfbb43713, 0x3fd47fff} },
+/**/                  {{0xb3ac333c, 0x3fd53b2a} },
+/**/                  {{0x3da56692, 0x40081d94} },
+/**/                  {{0x2985fd3f, 0xbbbf4d7f} },},
+/**/                 {{{0xfb113bf4, 0x3fd4bfff} },
+/**/                  {{0x6e8ed9c2, 0x3fd5824d} },
+/**/                  {{0xa8add00f, 0x4007cdd2} },
+/**/                  {{0x1c9b3657, 0x3bcf478a} },},
+/**/                 {{{0xf7f087c9, 0x3fd4ffff} },
+/**/                  {{0x07446496, 0x3fd5c9a0} },
+/**/                  {{0x444588eb, 0x40077fe6} },
+/**/                  {{0xa4eabb0c, 0xbbc177dc} },},
+/**/                 {{{0x088b3814, 0x3fd54000} },
+/**/                  {{0x564125f9, 0x3fd61123} },
+/**/                  {{0x6281a765, 0x400733be} },
+/**/                  {{0xf57051c4, 0xbbc2c52c} },},
+/**/                 {{{0xf7d55966, 0x3fd57fff} },
+/**/                  {{0xe194a5d5, 0x3fd658d7} },
+/**/                  {{0x73b47d1f, 0x4006e94b} },
+/**/                  {{0xf9996dc6, 0x3bda2fcf} },},
+/**/                 {{{0x08bf2490, 0x3fd5c000} },
+/**/                  {{0xb775b28d, 0x3fd6a0be} },
+/**/                  {{0x15b6ec28, 0x4006a07e} },
+/**/                  {{0xaa5285b8, 0xbbe0ca90} },},
+/**/                 {{{0x09fa853f, 0x3fd60000} },
+/**/                  {{0x65a66cfd, 0x3fd6e8d8} },
+/**/                  {{0x1c701269, 0x40065948} },
+/**/                  {{0x8591e13a, 0x3bd9ea95} },},
+/**/                 {{{0x07595fca, 0x3fd64000} },
+/**/                  {{0xc0556a7c, 0x3fd73125} },
+/**/                  {{0xbaae9d02, 0x4006139b} },
+/**/                  {{0x40152b83, 0x3bd88aff} },},
+/**/                 {{{0x031687da, 0x3fd68000} },
+/**/                  {{0x92e2cfd0, 0x3fd779a7} },
+/**/                  {{0xcae0882b, 0x4005cf6b} },
+/**/                  {{0x9f439451, 0xbbd8a4a2} },},
+/**/                 {{{0xf5c8cfe2, 0x3fd6bfff} },
+/**/                  {{0x9fb452ed, 0x3fd7c25e} },
+/**/                  {{0xc561f1cd, 0x40058cab} },
+/**/                  {{0xf6a37d74, 0xbbe371a6} },},
+/**/                 {{{0xf81df231, 0x3fd6ffff} },
+/**/                  {{0xcfb4dab5, 0x3fd80b4b} },
+/**/                  {{0x8d3ca5d3, 0x40054b4f} },
+/**/                  {{0x679dc99f, 0x3bcb4686} },},
+/**/                 {{{0xfa71385e, 0x3fd73fff} },
+/**/                  {{0xe007a9b6, 0x3fd8546f} },
+/**/                  {{0xb3b22176, 0x40050b4b} },
+/**/                  {{0xa5c73477, 0xbbcd1540} },},
+/**/                 {{{0x024a9c2b, 0x3fd78000} },
+/**/                  {{0xa7fcf5cf, 0x3fd89dcb} },
+/**/                  {{0x3159cbe1, 0x4004cc95} },
+/**/                  {{0xd58a6ad0, 0xbbdc25ea} },},
+/**/                 {{{0x02eb62b8, 0x3fd7c000} },
+/**/                  {{0xec0ba5cf, 0x3fd8e75f} },
+/**/                  {{0x8731eeea, 0x40048f21} },
+/**/                  {{0xcc1adafb, 0xbbc1cb73} },},
+/**/                 {{{0x054a52d1, 0x3fd80000} },
+/**/                  {{0x8bb822e9, 0x3fd9312d} },
+/**/                  {{0x9170a729, 0x400452e6} },
+/**/                  {{0xeac002ee, 0xbbd8bb17} },},
+/**/                 {{{0xf93a00a3, 0x3fd83fff} },
+/**/                  {{0x4bb9ad2a, 0x3fd97b35} },
+/**/                  {{0xae924e7f, 0x400417da} },
+/**/                  {{0x9a378cc7, 0x3bd4b800} },},
+/**/                 {{{0xfbdc91c1, 0x3fd87fff} },
+/**/                  {{0x2771b601, 0x3fd9c578} },
+/**/                  {{0x78855799, 0x4003ddf4} },
+/**/                  {{0xa00445d9, 0x3bd9077d} },},
+/**/                 {{{0xf6d215e6, 0x3fd8bfff} },
+/**/                  {{0xe0ea4a0b, 0x3fda0ff6} },
+/**/                  {{0x189a0989, 0x4003a52b} },
+/**/                  {{0x89c0613d, 0xbbda6831} },},
+/**/                 {{{0x02f734ef, 0x3fd90000} },
+/**/                  {{0x736bf579, 0x3fda5ab2} },
+/**/                  {{0xe9244ca6, 0x40036d75} },
+/**/                  {{0x4b722377, 0x3be3a6d8} },},
+/**/                 {{{0x04eef8b4, 0x3fd94000} },
+/**/                  {{0x9fb6e3d0, 0x3fdaa5ab} },
+/**/                  {{0xc9089cb7, 0x400336cc} },
+/**/                  {{0x22cc00bb, 0x3b9f6963} },},
+/**/                 {{{0x041ec76a, 0x3fd98000} },
+/**/                  {{0x5176c7e4, 0x3fdaf0e3} },
+/**/                  {{0xcb0b9506, 0x40030127} },
+/**/                  {{0x5385a849, 0x3bb1ffdb} },},
+/**/                 {{{0x08044e47, 0x3fd9c000} },
+/**/                  {{0x77071224, 0x3fdb3c5a} },
+/**/                  {{0x50d75ec7, 0x4002cc7f} },
+/**/                  {{0x78effc8a, 0xbbb0fade} },},
+/**/                 {{{0x01f8235b, 0x3fda0000} },
+/**/                  {{0xe725782e, 0x3fdb8811} },
+/**/                  {{0x18fbfb37, 0x400298cc} },
+/**/                  {{0x3b50e71b, 0xbbe55ed3} },},
+/**/                 {{{0xfb8c6f08, 0x3fda3fff} },
+/**/                  {{0x97b086f3, 0x3fdbd40a} },
+/**/                  {{0x154de04b, 0x40026607} },
+/**/                  {{0x455faae3, 0xbbdec65e} },},
+/**/                 {{{0xfb3d63e1, 0x3fda7fff} },
+/**/                  {{0x7d9a3b8a, 0x3fdc2045} },
+/**/                  {{0x7e60bfbb, 0x40023429} },
+/**/                  {{0x154ebd33, 0x3be3001c} },},
+/**/                 {{{0xf5f45c48, 0x3fdabfff} },
+/**/                  {{0x7b8d45e6, 0x3fdc6cc3} },
+/**/                  {{0xdb1ace69, 0x4002032c} },
+/**/                  {{0x3ed33616, 0xbbe5ebf8} },},
+/**/                 {{{0x0508b34c, 0x3fdb0000} },
+/**/                  {{0xa27e8d37, 0x3fdcb985} },
+/**/                  {{0xd4459a2b, 0x4001d30a} },
+/**/                  {{0xae61e2d1, 0xbbd01432} },},
+/**/                 {{{0x0a84710c, 0x3fdb4000} },
+/**/                  {{0xc3e50155, 0x3fdd068c} },
+/**/                  {{0x775034dd, 0x4001a3bd} },
+/**/                  {{0x58e0e228, 0xbbe80b1e} },},
+/**/                 {{{0xf692e9d8, 0x3fdb7fff} },
+/**/                  {{0xc49d6627, 0x3fdd53d9} },
+/**/                  {{0xfe18066a, 0x4001753e} },
+/**/                  {{0xf760d33e, 0xbbb004c8} },},
+/**/                 {{{0x0280f14d, 0x3fdbc000} },
+/**/                  {{0xe4e81013, 0x3fdda16d} },
+/**/                  {{0xa38ea052, 0x40014789} },
+/**/                  {{0x27c9c4ea, 0x3be848bc} },},
+/**/                 {{{0x001121d1, 0x3fdc0000} },
+/**/                  {{0xeac018f0, 0x3fddef49} },
+/**/                  {{0x20b8be0c, 0x40011a98} },
+/**/                  {{0xd0d6010e, 0xbbe1527e} },},
+/**/                 {{{0xfef662aa, 0x3fdc3fff} },
+/**/                  {{0xea0c7070, 0x3fde3d6e} },
+/**/                  {{0x32f46ccd, 0x4000ee65} },
+/**/                  {{0x189a000d, 0x3be8d241} },},
+/**/                 {{{0x09845818, 0x3fdc8000} },
+/**/                  {{0xf36a8b1b, 0x3fde8bdd} },
+/**/                  {{0xcac73476, 0x4000c2eb} },
+/**/                  {{0x12bed284, 0x3bd221f7} },},
+/**/                 {{{0xfb0493bf, 0x3fdcbfff} },
+/**/                  {{0xe0c60d10, 0x3fdeda97} },
+/**/                  {{0x251c7836, 0x40009827} },
+/**/                  {{0x6eec41b7, 0xbbe0bd54} },},
+/**/                 {{{0xfd52961f, 0x3fdcffff} },
+/**/                  {{0xefb3e44b, 0x3fdf299d} },
+/**/                  {{0x74e459f5, 0x40006e12} },
+/**/                  {{0xe969c82f, 0xbbd93f77} },},
+/**/                 {{{0xfe2319a4, 0x3fdd3fff} },
+/**/                  {{0x17139490, 0x3fdf78f1} },
+/**/                  {{0x3e737e94, 0x400044a9} },
+/**/                  {{0x49594b7a, 0xbb91e7cc} },},
+/**/                 {{{0xfa4de596, 0x3fdd7fff} },
+/**/                  {{0x638f49e8, 0x3fdfc892} },
+/**/                  {{0x231057a5, 0x40001be7} },
+/**/                  {{0xf5af9f5f, 0x3bd482b0} },},
+/**/                 {{{0xfe729a69, 0x3fddbfff} },
+/**/                  {{0x7c6ab019, 0x3fe00c41} },
+/**/                  {{0xbf612660, 0x3fffe78f} },
+/**/                  {{0x00da681e, 0x3bea5cda} },},
+/**/                 {{{0x09d66802, 0x3fde0000} },
+/**/                  {{0xf6b883cf, 0x3fe03461} },
+/**/                  {{0xbc05a87c, 0x3fff988e} },
+/**/                  {{0xf2372669, 0xbbe06c33} },},
+/**/                 {{{0xfb211657, 0x3fde3fff} },
+/**/                  {{0x191db8e8, 0x3fe05cab} },
+/**/                  {{0x7bcfe6be, 0x3fff4ac3} },
+/**/                  {{0x5ed8d35b, 0xbbd5d51f} },},
+/**/                 {{{0x0a3f068a, 0x3fde8000} },
+/**/                  {{0x95fb54f0, 0x3fe0851d} },
+/**/                  {{0x144ca408, 0x3ffefe26} },
+/**/                  {{0xa2c169c5, 0xbbc7c894} },},
+/**/                 {{{0x01adb060, 0x3fdec000} },
+/**/                  {{0xdc7b54f9, 0x3fe0adb9} },
+/**/                  {{0x5ebe52a7, 0x3ffeb2af} },
+/**/                  {{0x312c5ffd, 0x3bd4e740} },},
+/**/                 {{{0xff5c0d01, 0x3fdeffff} },
+/**/                  {{0x92550a8d, 0x3fe0d680} },
+/**/                  {{0x0d71fdf0, 0x3ffe6858} },
+/**/                  {{0x96b35499, 0x3bddd8a6} },},
+/**/                 {{{0xf93d5fcc, 0x3fdf3fff} },
+/**/                  {{0x45cb4374, 0x3fe0ff72} },
+/**/                  {{0x3cce5040, 0x3ffe1f19} },
+/**/                  {{0x7c1efab4, 0xbbc9f0ec} },},
+/**/                 {{{0xfa0dd18f, 0x3fdf7fff} },
+/**/                  {{0x944dd508, 0x3fe1288f} },
+/**/                  {{0x298b874d, 0x3ffdd6ec} },
+/**/                  {{0x9642a0a6, 0x3bea6ebd} },},
+/**/                 {{{0xfd3a9f1a, 0x3fdfbfff} },
+/**/                  {{0x13750f3e, 0x3fe151d9} },
+/**/                  {{0x5806a27e, 0x3ffd8fca} },
+/**/                  {{0xfc65ac7a, 0x3bda2a03} },},
+/**/                 {{{0xfc481400, 0x3fdfffff} },
+/**/                  {{0x598944ca, 0x3fe17b4f} },
+/**/                  {{0x82532170, 0x3ffd49ad} },
+/**/                  {{0x3d236dc3, 0x3bc4412e} },},
+/**/                 {{{0xff53786c, 0x3fe01fff} },
+/**/                  {{0x07d83d47, 0x3fe1a4f3} },
+/**/                  {{0x851bffeb, 0x3ffd048f} },
+/**/                  {{0x29f81b14, 0x3bd1589d} },},
+/**/                 {{{0xfee301b7, 0x3fe03fff} },
+/**/                  {{0xb8a6a382, 0x3fe1cec4} },
+/**/                  {{0x7c519db6, 0x3ffcc06a} },
+/**/                  {{0x5b24d6b2, 0x3bd370e6} },},
+/**/                 {{{0x006e36bf, 0x3fe06000} },
+/**/                  {{0x114eb8be, 0x3fe1f8c5} },
+/**/                  {{0xa34d6786, 0x3ffc7d38} },
+/**/                  {{0x4b98c1d4, 0xbbea92de} },},
+/**/                 {{{0xfd60aa43, 0x3fe07fff} },
+/**/                  {{0xabeccecb, 0x3fe222f4} },
+/**/                  {{0x77342ac4, 0x3ffc3af4} },
+/**/                  {{0x03a5c2c2, 0xbbdd47f6} },},
+/**/                 {{{0x037762e8, 0x3fe0a000} },
+/**/                  {{0x3f99efe8, 0x3fe24d54} },
+/**/                  {{0x75f54fab, 0x3ffbf998} },
+/**/                  {{0x15771a46, 0x3bedf7f4} },},
+/**/                 {{{0xff1c6921, 0x3fe0bfff} },
+/**/                  {{0x598e35d0, 0x3fe277e4} },
+/**/                  {{0x8addd186, 0x3ffbb91f} },
+/**/                  {{0x5e0e5a73, 0x3be0f16c} },},
+/**/                 {{{0xff07154b, 0x3fe0dfff} },
+/**/                  {{0xb6bc3986, 0x3fe2a2a5} },
+/**/                  {{0x8301646d, 0x3ffb7984} },
+/**/                  {{0xbbaa5310, 0xbbf02dd0} },},
+/**/                 {{{0x02fcdda4, 0x3fe10000} },
+/**/                  {{0x02a59f1e, 0x3fe2cd99} },
+/**/                  {{0x705219bf, 0x3ffb3ac2} },
+/**/                  {{0x112fa616, 0xbbe59357} },},
+/**/                 {{{0x01ce1140, 0x3fe12000} },
+/**/                  {{0xdf0a67c2, 0x3fe2f8be} },
+/**/                  {{0x9ab8ae2a, 0x3ffafcd4} },
+/**/                  {{0x9303f346, 0x3be2c542} },},
+/**/                 {{{0x04d0f355, 0x3fe14000} },
+/**/                  {{0x08fcc7bf, 0x3fe32418} },
+/**/                  {{0x497b9a36, 0x3ffabfb6} },
+/**/                  {{0xb5a59234, 0x3bebc044} },},
+/**/                 {{{0x00fb0c8a, 0x3fe16000} },
+/**/                  {{0x2471618b, 0x3fe34fa5} },
+/**/                  {{0x0d26d117, 0x3ffa8363} },
+/**/                  {{0x3f7bb7c9, 0xbbdbfbb2} },},
+/**/                 {{{0x026f10b3, 0x3fe18000} },
+/**/                  {{0xf7579056, 0x3fe37b66} },
+/**/                  {{0x6b4cf4b1, 0x3ffa47d6} },
+/**/                  {{0xaf0b5de9, 0x3bf0f6b4} },},
+/**/                 {{{0xfd0978f8, 0x3fe19fff} },
+/**/                  {{0x290cc78c, 0x3fe3a75e} },
+/**/                  {{0x36c21315, 0x3ffa0d0c} },
+/**/                  {{0xa296b262, 0x3beb2129} },},
+/**/                 {{{0xfd94840b, 0x3fe1bfff} },
+/**/                  {{0x85b4e4a4, 0x3fe3d38b} },
+/**/                  {{0x32f2ecef, 0x3ff9d300} },
+/**/                  {{0xb9bb7d74, 0xbbdbab1a} },},
+/**/                 {{{0xfbda1ea1, 0x3fe1dfff} },
+/**/                  {{0xbf3cee2f, 0x3fe3ffef} },
+/**/                  {{0x6770fed8, 0x3ff999ae} },
+/**/                  {{0xb4ace9a4, 0x3bda0bdc} },},
+/**/                 {{{0xfc989533, 0x3fe1ffff} },
+/**/                  {{0x9c27900c, 0x3fe42c8b} },
+/**/                  {{0xe0d9f1ac, 0x3ff96112} },
+/**/                  {{0x2fa2d81a, 0xbbee19eb} },},
+/**/                 {{{0x012b8d26, 0x3fe22000} },
+/**/                  {{0xe11975ca, 0x3fe4595f} },
+/**/                  {{0xcdaa4e80, 0x3ff92929} },
+/**/                  {{0xacc82d4b, 0x3bf23382} },},
+/**/                 {{{0x04f4d6af, 0x3fe24000} },
+/**/                  {{0x4d224131, 0x3fe4866d} },
+/**/                  {{0x815c34e8, 0x3ff8f1ef} },
+/**/                  {{0x3b740a99, 0xbbd0c6ff} },},
+/**/                 {{{0xfcc07bda, 0x3fe25fff} },
+/**/                  {{0x98b7d010, 0x3fe4b3b4} },
+/**/                  {{0x73e7ffa1, 0x3ff8bb60} },
+/**/                  {{0x1ad7a9c2, 0x3bebc31b} },},
+/**/                 {{{0x042d9639, 0x3fe28000} },
+/**/                  {{0xb64540d1, 0x3fe4e136} },
+/**/                  {{0xf4374938, 0x3ff88578} },
+/**/                  {{0x1b85e901, 0x3be36de9} },},
+/**/                 {{{0x03be29a0, 0x3fe2a000} },
+/**/                  {{0x52bffd96, 0x3fe50ef4} },
+/**/                  {{0xc0042c06, 0x3ff85035} },
+/**/                  {{0x76f5efbd, 0x3be15d01} },},
+/**/                 {{{0xfaa91f12, 0x3fe2bfff} },
+/**/                  {{0x3e2f4e0d, 0x3fe53cee} },
+/**/                  {{0x8542df07, 0x3ff81b93} },
+/**/                  {{0x17662a2b, 0x3be555cd} },},
+/**/                 {{{0xfe884891, 0x3fe2dfff} },
+/**/                  {{0x6c1a2470, 0x3fe56b25} },
+/**/                  {{0xe422ea70, 0x3ff7e78e} },
+/**/                  {{0xbd030c11, 0x3bf03504} },},
+/**/                 {{{0xfe87152b, 0x3fe2ffff} },
+/**/                  {{0x9beaaaa1, 0x3fe5999a} },
+/**/                  {{0xd18fe9b3, 0x3ff7b424} },
+/**/                  {{0x773e0e64, 0xbb649a5f} },},
+/**/                 {{{0xffc1a721, 0x3fe31fff} },
+/**/                  {{0xafe0e564, 0x3fe5c84e} },
+/**/                  {{0x338db8d4, 0x3ff78152} },
+/**/                  {{0x5da8e935, 0x3beaf428} },},
+/**/                 {{{0xff70a372, 0x3fe33fff} },
+/**/                  {{0x82191d64, 0x3fe5f742} },
+/**/                  {{0x1122bcae, 0x3ff74f14} },
+/**/                  {{0xdee4bfaf, 0x3bdb1c4b} },},
+/**/                 {{{0x0436e836, 0x3fe36000} },
+/**/                  {{0xfde6ccff, 0x3fe62676} },
+/**/                  {{0x7644252c, 0x3ff71d67} },
+/**/                  {{0xe08c3afb, 0xbbec3d10} },},
+/**/                 {{{0xfcbe9641, 0x3fe37fff} },
+/**/                  {{0xee9ffdaf, 0x3fe655ec} },
+/**/                  {{0xa6fc0515, 0x3ff6ec49} },
+/**/                  {{0x2ed29567, 0x3bdda453} },},
+/**/                 {{{0xffb6d6ca, 0x3fe39fff} },
+/**/                  {{0x5e67a1e1, 0x3fe685a5} },
+/**/                  {{0xbc2ae969, 0x3ff6bbb7} },
+/**/                  {{0x2ef43882, 0x3becbf7b} },},
+/**/                 {{{0x04934fec, 0x3fe3c000} },
+/**/                  {{0x2cc07d75, 0x3fe6b5a1} },
+/**/                  {{0x10b02ef8, 0x3ff68baf} },
+/**/                  {{0xfeb7cabd, 0xbbe7c8fb} },},
+/**/                 {{{0x03f5cf7f, 0x3fe3e000} },
+/**/                  {{0x3e59def6, 0x3fe6e5e1} },
+/**/                  {{0x0e61500f, 0x3ff65c2d} },
+/**/                  {{0x035f7845, 0xbbe30ba4} },},
+/**/                 {{{0x05280ad9, 0x3fe40000} },
+/**/                  {{0x91ab4c3e, 0x3fe71666} },
+/**/                  {{0x19f01c90, 0x3ff62d2f} },
+/**/                  {{0xffe95f6a, 0xbbf1e9f5} },},
+/**/                 {{{0x049efb65, 0x3fe42000} },
+/**/                  {{0x18af3b9d, 0x3fe74732} },
+/**/                  {{0xb86465e4, 0x3ff5feb2} },
+/**/                  {{0x280d591e, 0x3bc4cad7} },},
+/**/                 {{{0x0035ccb6, 0x3fe44000} },
+/**/                  {{0xcb4ff1e5, 0x3fe77844} },
+/**/                  {{0x7c455428, 0x3ff5d0b5} },
+/**/                  {{0x7ba5617c, 0x3bed8c18} },},
+/**/                 {{{0x03346717, 0x3fe46000} },
+/**/                  {{0xba258778, 0x3fe7a99f} },
+/**/                  {{0xf4392254, 0x3ff5a334} },
+/**/                  {{0xfc84a570, 0xbbefd14a} },},
+/**/                 {{{0x03002575, 0x3fe48000} },
+/**/                  {{0xd836768f, 0x3fe7db43} },
+/**/                  {{0xdcf97e0c, 0x3ff5762e} },
+/**/                  {{0x5f5df49e, 0xbbdd7eba} },},
+/**/                 {{{0x055bf381, 0x3fe4a000} },
+/**/                  {{0x35edeefa, 0x3fe80d32} },
+/**/                  {{0xea46e31f, 0x3ff549a0} },
+/**/                  {{0x76823eac, 0xbbdba522} },},
+/**/                 {{{0x04ce10e3, 0x3fe4c000} },
+/**/                  {{0xd67dc1a8, 0x3fe83f6b} },
+/**/                  {{0xed82bcc4, 0x3ff51d88} },
+/**/                  {{0x077d29ea, 0xbbeae92d} },},
+/**/                 {{{0x016c60e1, 0x3fe4e000} },
+/**/                  {{0xca0aaf31, 0x3fe871f1} },
+/**/                  {{0xbdacbf16, 0x3ff4f1e4} },
+/**/                  {{0x46ee425e, 0x3be82958} },},
+/**/                 {{{0xff966f0a, 0x3fe4ffff} },
+/**/                  {{0x2bff2dae, 0x3fe8a4c5} },
+/**/                  {{0x3917657e, 0x3ff4c6b2} },
+/**/                  {{0x5c86c705, 0xbbf127c2} },},
+/**/                 {{{0x0076e6eb, 0x3fe52000} },
+/**/                  {{0x175651e8, 0x3fe8d7e7} },
+/**/                  {{0x4f459b05, 0x3ff49bef} },
+/**/                  {{0x4181bbfc, 0xbbb1e9d1} },},
+/**/                 {{{0x03d12d3b, 0x3fe54000} },
+/**/                  {{0xa976ed56, 0x3fe90b58} },
+/**/                  {{0xfdf24af4, 0x3ff47199} },
+/**/                  {{0xc30decaf, 0x3be38c17} },},
+/**/                 {{{0xfce7fa8d, 0x3fe55fff} },
+/**/                  {{0xf03a3a09, 0x3fe93f1a} },
+/**/                  {{0x5f13234b, 0x3ff447b0} },
+/**/                  {{0x70df7e20, 0x3bf1b8b2} },},
+/**/                 {{{0x0331b46a, 0x3fe58000} },
+/**/                  {{0x38e83134, 0x3fe9732f} },
+/**/                  {{0x68d8b41b, 0x3ff41e30} },
+/**/                  {{0xb90bc28b, 0xbbee24d8} },},
+/**/                 {{{0xfc14848e, 0x3fe59fff} },
+/**/                  {{0x8471b489, 0x3fe9a796} },
+/**/                  {{0x5de3aa73, 0x3ff3f518} },
+/**/                  {{0xe0761536, 0xbbecacd9} },},
+/**/                 {{{0xfb7cd395, 0x3fe5bfff} },
+/**/                  {{0x24a8b955, 0x3fe9dc52} },
+/**/                  {{0x4f8fff15, 0x3ff3cc66} },
+/**/                  {{0x82045611, 0xbbf67c97} },},
+/**/                 {{{0x000dcc40, 0x3fe5e000} },
+/**/                  {{0x4df5b93e, 0x3fea1163} },
+/**/                  {{0x75853228, 0x3ff3a418} },
+/**/                  {{0xd481f350, 0xbbf585da} },},
+/**/                 {{{0x02efd2fc, 0x3fe60000} },
+/**/                  {{0x30d16323, 0x3fea46cb} },
+/**/                  {{0x187962ae, 0x3ff37c2d} },
+/**/                  {{0xa5f77bb0, 0x3bf004c3} },},
+/**/                 {{{0xfeb8088a, 0x3fe61fff} },
+/**/                  {{0x053920c0, 0x3fea7c8b} },
+/**/                  {{0x891769a9, 0x3ff354a2} },
+/**/                  {{0x3fee3029, 0x3bbc6b30} },},
+/**/                 {{{0x00f3ca06, 0x3fe64000} },
+/**/                  {{0x28a1911a, 0x3feab2a4} },
+/**/                  {{0x0a6f0a4a, 0x3ff32d77} },
+/**/                  {{0xfac5081a, 0x3bf2a6f8} },},
+/**/                 {{{0xfe9ec2f4, 0x3fe65fff} },
+/**/                  {{0xd4ce7239, 0x3feae917} },
+/**/                  {{0x0751a948, 0x3ff306a9} },
+/**/                  {{0x51ab9dbd, 0xbbe950b5} },},
+/**/                 {{{0x03d43966, 0x3fe68000} },
+/**/                  {{0x708b998a, 0x3feb1fe7} },
+/**/                  {{0xd7a153c7, 0x3ff2e036} },
+/**/                  {{0xa1e4a14e, 0x3bdd36e2} },},
+/**/                 {{{0xfab67783, 0x3fe69fff} },
+/**/                  {{0x2e575464, 0x3feb5714} },
+/**/                  {{0x05006cb6, 0x3ff2ba1f} },
+/**/                  {{0x473c2e31, 0x3bea9a4a} },},
+/**/                 {{{0xfcb65f89, 0x3fe6bfff} },
+/**/                  {{0x981efd2f, 0x3feb8e9f} },
+/**/                  {{0xe948d9f7, 0x3ff2945f} },
+/**/                  {{0xe802df72, 0xbbca5294} },},
+/**/                 {{{0xfc5609a9, 0x3fe6dfff} },
+/**/                  {{0xfaed6ff1, 0x3febc68a} },
+/**/                  {{0x1533411e, 0x3ff26ef8} },
+/**/                  {{0xf51bc566, 0xbbf89153} },},
+/**/                 {{{0xfc4eef86, 0x3fe6ffff} },
+/**/                  {{0xc62205fe, 0x3febfed7} },
+/**/                  {{0x0e70978c, 0x3ff249e6} },
+/**/                  {{0xa2b9ff56, 0x3bc39021} },},
+/**/                 {{{0x004d98b3, 0x3fe72000} },
+/**/                  {{0x716968ad, 0x3fec3787} },
+/**/                  {{0x61be7751, 0x3ff22528} },
+/**/                  {{0x74ee2211, 0x3befc9c5} },},
+/**/                 {{{0xfc155075, 0x3fe73fff} },
+/**/                  {{0x5ec6fd4e, 0x3fec709b} },
+/**/                  {{0xb5d53311, 0x3ff200bd} },
+/**/                  {{0xa269ae63, 0x3be28a4d} },},
+/**/                 {{{0x0498c203, 0x3fe76000} },
+/**/                  {{0x323d08c1, 0x3fecaa15} },
+/**/                  {{0x93433f65, 0x3ff1dca4} },
+/**/                  {{0x14a28fb7, 0x3bf8cae4} },},
+/**/                 {{{0xff1e5636, 0x3fe77fff} },
+/**/                  {{0x4147c12c, 0x3fece3f6} },
+/**/                  {{0xbfe294a8, 0x3ff1b8db} },
+/**/                  {{0x4b56a744, 0xbbe7e19c} },},
+/**/                 {{{0x0226d45a, 0x3fe7a000} },
+/**/                  {{0x4120eb7f, 0x3fed1e40} },
+/**/                  {{0xd15f8278, 0x3ff19561} },
+/**/                  {{0x032c5d4c, 0x3be64b28} },},
+/**/                 {{{0x0250a5aa, 0x3fe7c000} },
+/**/                  {{0xb112a1e1, 0x3fed58f4} },
+/**/                  {{0x8a59d565, 0x3ff17235} },
+/**/                  {{0xb8dc7867, 0xbbe716de} },},
+/**/                 {{{0x0482f82e, 0x3fe7e000} },
+/**/                  {{0x3576bdf0, 0x3fed9415} },
+/**/                  {{0xa22a1c5b, 0x3ff14f55} },
+/**/                  {{0xe1305604, 0x3bf207e1} },},
+/**/                 {{{0x0205003e, 0x3fe80000} },
+/**/                  {{0x64d69ff7, 0x3fedcfa3} },
+/**/                  {{0xe37eb26f, 0x3ff12cc0} },
+/**/                  {{0xe32395f8, 0xbbd52ec6} },},
+/**/                 {{{0xfbf99411, 0x3fe81fff} },
+/**/                  {{0xebf98f51, 0x3fee0ba0} },
+/**/                  {{0x16ddd5d6, 0x3ff10a76} },
+/**/                  {{0x59866045, 0xbbece0d6} },},
+/**/                 {{{0x0248e3a3, 0x3fe84000} },
+/**/                  {{0x9bb7f565, 0x3fee480f} },
+/**/                  {{0xfb84e05c, 0x3ff0e873} },
+/**/                  {{0x1595df92, 0x3bf4e5e8} },},
+/**/                 {{{0x0145c157, 0x3fe86000} },
+/**/                  {{0x0a10b3ab, 0x3fee84f1} },
+/**/                  {{0x7cbd7b1e, 0x3ff0c6b9} },
+/**/                  {{0xd5f121d0, 0xbbe19de6} },},
+/**/                 {{{0x022631b9, 0x3fe88000} },
+/**/                  {{0x0be1f047, 0x3feec247} },
+/**/                  {{0x6d0b3ee6, 0x3ff0a545} },
+/**/                  {{0xa3ba2c6f, 0xbbc272b1} },},
+/**/                 {{{0x045f7828, 0x3fe8a000} },
+/**/                  {{0x6c45ba1c, 0x3fef0013} },
+/**/                  {{0xaf2a0f09, 0x3ff08416} },
+/**/                  {{0x5b63c799, 0x3be82b56} },},
+/**/                 {{{0xffc686cf, 0x3fe8bfff} },
+/**/                  {{0xf03c824b, 0x3fef3e57} },
+/**/                  {{0x33502220, 0x3ff0632c} },
+/**/                  {{0x2dbeeb25, 0xbbd039ad} },},
+/**/                 {{{0xfd8644c6, 0x3fe8dfff} },
+/**/                  {{0x8774261d, 0x3fef7d16} },
+/**/                  {{0xdd5b3019, 0x3ff04284} },
+/**/                  {{0xe1eba933, 0x3bd79f33} },},
+/**/                 {{{0xfe4e7937, 0x3fe8ffff} },
+/**/                  {{0x1a99a641, 0x3fefbc51} },
+/**/                  {{0x9f69840b, 0x3ff0221f} },
+/**/                  {{0x7beee018, 0xbbea9e84} },},
+/**/                 {{{0x0435251f, 0x3fe92000} },
+/**/                  {{0x9eb22390, 0x3feffc09} },
+/**/                  {{0x6f7c51e8, 0x3ff001fb} },
+/**/                  {{0x31032e0a, 0xbb5a12e7} },},
+  };
+
+#endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/w_exp_compat.c b/REORG.TODO/sysdeps/ieee754/dbl-64/w_exp_compat.c
new file mode 100644
index 0000000000..e61e03b335
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/w_exp_compat.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* wrapper exp */
+double
+__exp (double x)
+{
+  double z = __ieee754_exp (x);
+  if (__builtin_expect (!isfinite (z) || z == 0, 0)
+      && isfinite (x) && _LIB_VERSION != _IEEE_)
+    return __kernel_standard (x, x, 6 + !!signbit (x));
+
+  return z;
+}
+hidden_def (__exp)
+weak_alias (__exp, exp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__exp, __expl)
+weak_alias (__exp, expl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c
new file mode 100644
index 0000000000..ccccdaf106
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_acosh.c
@@ -0,0 +1,67 @@
+/* Optimized for 64-bit by Ulrich Drepper <drepper@gmail.com>, 2012 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_acosh(x)
+ * Method :
+ *	Based on
+ *		acosh(x) = log [ x + sqrt(x*x-1) ]
+ *	we have
+ *		acosh(x) := log(x)+ln2,	if x is large; else
+ *		acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else
+ *		acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1.
+ *
+ * Special cases:
+ *	acosh(x) is NaN with signal if x<1.
+ *	acosh(NaN) is NaN without signal.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+one	= 1.0,
+ln2	= 6.93147180559945286227e-01;  /* 0x3FE62E42, 0xFEFA39EF */
+
+double
+__ieee754_acosh (double x)
+{
+  int64_t hx;
+  EXTRACT_WORDS64 (hx, x);
+
+  if (hx > INT64_C (0x4000000000000000))
+    {
+      if (__glibc_unlikely (hx >= INT64_C (0x41b0000000000000)))
+	{
+	  /* x > 2**28 */
+	  if (hx >= INT64_C (0x7ff0000000000000))
+	    /* x is inf of NaN */
+	    return x + x;
+	  else
+	    return __ieee754_log (x) + ln2;/* acosh(huge)=log(2x) */
+	}
+
+      /* 2**28 > x > 2 */
+      double t = x * x;
+      return __ieee754_log (2.0 * x - one / (x + __ieee754_sqrt (t - one)));
+    }
+  else if (__glibc_likely (hx > INT64_C (0x3ff0000000000000)))
+    {
+      /* 1<x<2 */
+      double t = x - one;
+      return __log1p (t + __ieee754_sqrt (2.0 * t + t * t));
+    }
+  else if (__glibc_likely (hx == INT64_C (0x3ff0000000000000)))
+    return 0.0;				/* acosh(1) = 0 */
+  else					/* x < 1 */
+    return (x - x) / (x - x);
+}
+strong_alias (__ieee754_acosh, __acosh_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c
new file mode 100644
index 0000000000..fca80b13f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_cosh.c
@@ -0,0 +1,84 @@
+/* Optimized by Ulrich Drepper <drepper@gmail.com>, 2011 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_cosh(x)
+ * Method :
+ * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2
+ *	1. Replace x by |x| (cosh(x) = cosh(-x)).
+ *	2.
+ *							[ exp(x) - 1 ]^2
+ *	    0        <= x <= ln2/2  :  cosh(x) := 1 + -------------------
+ *							   2*exp(x)
+ *
+ *						  exp(x) +  1/exp(x)
+ *	    ln2/2    <= x <= 22     :  cosh(x) := -------------------
+ *							  2
+ *	    22       <= x <= lnovft :  cosh(x) := exp(x)/2
+ *	    lnovft   <= x <= ln2ovft:  cosh(x) := exp(x/2)/2 * exp(x/2)
+ *	    ln2ovft  <  x	    :  cosh(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ *	cosh(x) is |x| if x is +INF, -INF, or NaN.
+ *	only cosh(0)=1 is exact for finite x.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double one = 1.0, half=0.5, huge = 1.0e300;
+
+double
+__ieee754_cosh (double x)
+{
+	double t,w;
+	int32_t ix;
+
+    /* High word of |x|. */
+	GET_HIGH_WORD(ix,x);
+	ix &= 0x7fffffff;
+
+    /* |x| in [0,22] */
+	if (ix < 0x40360000) {
+	    /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
+		if(ix<0x3fd62e43) {
+		    if (ix<0x3c800000)			/* cosh(tiny) = 1 */
+		      return one;
+		    t = __expm1(fabs(x));
+		    w = one+t;
+		    return one+(t*t)/(w+w);
+		}
+
+	    /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+		t = __ieee754_exp(fabs(x));
+		return half*t+half/t;
+	}
+
+    /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
+	if (ix < 0x40862e42)  return half*__ieee754_exp(fabs(x));
+
+    /* |x| in [log(maxdouble), overflowthresold] */
+	int64_t fix;
+	EXTRACT_WORDS64(fix, x);
+	fix &= UINT64_C(0x7fffffffffffffff);
+	if (fix <= UINT64_C(0x408633ce8fb9f87d)) {
+	    w = __ieee754_exp(half*fabs(x));
+	    t = half*w;
+	    return t*w;
+	}
+
+    /* x is INF or NaN */
+	if(ix>=0x7ff00000) return x*x;
+
+    /* |x| > overflowthresold, cosh(x) overflow */
+	return huge*huge;
+}
+strong_alias (__ieee754_cosh, __cosh_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
new file mode 100644
index 0000000000..f686bb6706
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_fmod.c
@@ -0,0 +1,105 @@
+/* Rewritten for 64-bit machines by Ulrich Drepper <drepper@gmail.com>.  */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_fmod(x,y)
+ * Return x mod y in exact arithmetic
+ * Method: shift and subtract
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+static const double one = 1.0, Zero[] = {0.0, -0.0,};
+
+double
+__ieee754_fmod (double x, double y)
+{
+	int32_t n,ix,iy;
+	int64_t hx,hy,hz,sx,i;
+
+	EXTRACT_WORDS64(hx,x);
+	EXTRACT_WORDS64(hy,y);
+	sx = hx&UINT64_C(0x8000000000000000);	/* sign of x */
+	hx ^=sx;				/* |x| */
+	hy &= UINT64_C(0x7fffffffffffffff);	/* |y| */
+
+    /* purge off exception values */
+	if(__builtin_expect(hy==0
+			    || hx >= UINT64_C(0x7ff0000000000000)
+			    || hy > UINT64_C(0x7ff0000000000000), 0))
+	  /* y=0,or x not finite or y is NaN */
+	    return (x*y)/(x*y);
+	if(__builtin_expect(hx<=hy, 0)) {
+	    if(hx<hy) return x;	/* |x|<|y| return x */
+	    return Zero[(uint64_t)sx>>63];	/* |x|=|y| return x*0*/
+	}
+
+    /* determine ix = ilogb(x) */
+	if(__builtin_expect(hx<UINT64_C(0x0010000000000000), 0)) {
+	  /* subnormal x */
+	  for (ix = -1022,i=(hx<<11); i>0; i<<=1) ix -=1;
+	} else ix = (hx>>52)-1023;
+
+    /* determine iy = ilogb(y) */
+	if(__builtin_expect(hy<UINT64_C(0x0010000000000000), 0)) {	/* subnormal y */
+	  for (iy = -1022,i=(hy<<11); i>0; i<<=1) iy -=1;
+	} else iy = (hy>>52)-1023;
+
+    /* set up hx, hy and align y to x */
+	if(__builtin_expect(ix >= -1022, 1))
+	    hx = UINT64_C(0x0010000000000000)|(UINT64_C(0x000fffffffffffff)&hx);
+	else {		/* subnormal x, shift x to normal */
+	    n = -1022-ix;
+	    hx<<=n;
+	}
+	if(__builtin_expect(iy >= -1022, 1))
+	    hy = UINT64_C(0x0010000000000000)|(UINT64_C(0x000fffffffffffff)&hy);
+	else {		/* subnormal y, shift y to normal */
+	    n = -1022-iy;
+	    hy<<=n;
+	}
+
+    /* fix point fmod */
+	n = ix - iy;
+	while(n--) {
+	    hz=hx-hy;
+	    if(hz<0){hx = hx+hx;}
+	    else {
+		if(hz==0)		/* return sign(x)*0 */
+		    return Zero[(uint64_t)sx>>63];
+		hx = hz+hz;
+	    }
+	}
+	hz=hx-hy;
+	if(hz>=0) {hx=hz;}
+
+    /* convert back to floating value and restore the sign */
+	if(hx==0)			/* return sign(x)*0 */
+	    return Zero[(uint64_t)sx>>63];
+	while(hx<UINT64_C(0x0010000000000000)) {	/* normalize x */
+	    hx = hx+hx;
+	    iy -= 1;
+	}
+	if(__builtin_expect(iy>= -1022, 1)) {	/* normalize output */
+	  hx = ((hx-UINT64_C(0x0010000000000000))|((uint64_t)(iy+1023)<<52));
+	    INSERT_WORDS64(x,hx|sx);
+	} else {		/* subnormal output */
+	    n = -1022 - iy;
+	    hx>>=n;
+	    INSERT_WORDS64(x,hx|sx);
+	    x *= one;		/* create necessary signal */
+	}
+	return x;		/* exact output */
+}
+strong_alias (__ieee754_fmod, __fmod_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c
new file mode 100644
index 0000000000..4f5a81669e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c
@@ -0,0 +1,87 @@
+/* @(#)e_log10.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_log10(x)
+ * Return the base 10 logarithm of x
+ *
+ * Method :
+ *	Let log10_2hi = leading 40 bits of log10(2) and
+ *	    log10_2lo = log10(2) - log10_2hi,
+ *	    ivln10   = 1/log(10) rounded.
+ *	Then
+ *		n = ilogb(x),
+ *		if(n<0)  n = n+1;
+ *		x = scalbn(x,-n);
+ *		log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x))
+ *
+ * Note 1:
+ *	To guarantee log10(10**n)=n, where 10**n is normal, the rounding
+ *	mode must set to Round-to-Nearest.
+ * Note 2:
+ *	[1/log(10)] rounded to 53 bits has error  .198   ulps;
+ *	log10 is monotonic at all binary break points.
+ *
+ * Special cases:
+ *	log10(x) is NaN with signal if x < 0;
+ *	log10(+INF) is +INF with no signal; log10(0) is -INF with signal;
+ *	log10(NaN) is that NaN with no signal;
+ *	log10(10**N) = N  for N=0,1,...,22.
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following constants.
+ * The decimal values may be used, provided that the compiler will convert
+ * from decimal to binary accurately enough to produce the hexadecimal values
+ * shown.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+static const double two54 = 1.80143985094819840000e+16;		/* 0x4350000000000000 */
+static const double ivln10 = 4.34294481903251816668e-01;	/* 0x3FDBCB7B1526E50E */
+static const double log10_2hi = 3.01029995663611771306e-01;	/* 0x3FD34413509F6000 */
+static const double log10_2lo = 3.69423907715893078616e-13;	/* 0x3D59FEF311F12B36 */
+
+double
+__ieee754_log10 (double x)
+{
+  double y, z;
+  int64_t i, hx;
+  int32_t k;
+
+  EXTRACT_WORDS64 (hx, x);
+
+  k = 0;
+  if (hx < INT64_C(0x0010000000000000))
+    {				/* x < 2**-1022  */
+      if (__glibc_unlikely ((hx & UINT64_C(0x7fffffffffffffff)) == 0))
+	return -two54 / (x - x);	/* log(+-0)=-inf */
+      if (__glibc_unlikely (hx < 0))
+	return (x - x) / (x - x);	/* log(-#) = NaN */
+      k -= 54;
+      x *= two54;		/* subnormal number, scale up x */
+      EXTRACT_WORDS64 (hx, x);
+    }
+  /* scale up resulted in a NaN number  */
+  if (__glibc_unlikely (hx >= UINT64_C(0x7ff0000000000000)))
+    return x + x;
+  k += (hx >> 52) - 1023;
+  i = ((uint64_t) k & UINT64_C(0x8000000000000000)) >> 63;
+  hx = (hx & UINT64_C(0x000fffffffffffff)) | ((0x3ff - i) << 52);
+  y = (double) (k + i);
+  INSERT_WORDS64 (x, hx);
+  z = y * log10_2lo + ivln10 * __ieee754_log (x);
+  return z + y * log10_2hi;
+}
+
+strong_alias (__ieee754_log10, __log10_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c
new file mode 100644
index 0000000000..5ccb78cf03
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/e_log2.c
@@ -0,0 +1,128 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_log2(x)
+ * Return the logarithm to base 2 of x
+ *
+ * Method :
+ *   1. Argument Reduction: find k and f such that
+ *			x = 2^k * (1+f),
+ *	   where  sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ *   2. Approximation of log(1+f).
+ *	Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ *		 = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ *		 = 2s + s*R
+ *      We use a special Reme algorithm on [0,0.1716] to generate
+ *	a polynomial of degree 14 to approximate R The maximum error
+ *	of this polynomial approximation is bounded by 2**-58.45. In
+ *	other words,
+ *			2      4      6      8      10      12      14
+ *	    R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s  +Lg6*s  +Lg7*s
+ *	(the values of Lg1 to Lg7 are listed in the program)
+ *	and
+ *	    |      2          14          |     -58.45
+ *	    | Lg1*s +...+Lg7*s    -  R(z) | <= 2
+ *	    |                             |
+ *	Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ *	In order to guarantee error in log below 1ulp, we compute log
+ *	by
+ *		log(1+f) = f - s*(f - R)	(if f is not too large)
+ *		log(1+f) = f - (hfsq - s*(hfsq+R)).	(better accuracy)
+ *
+ *	3. Finally,  log(x) = k + log(1+f).
+ *			    = k+(f-(hfsq-(s*(hfsq+R))))
+ *
+ * Special cases:
+ *	log2(x) is NaN with signal if x < 0 (including -INF) ;
+ *	log2(+INF) is +INF; log(0) is -INF with signal;
+ *	log2(NaN) is that NaN with no signal.
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double ln2 = 0.69314718055994530942;
+static const double two54 = 1.80143985094819840000e+16;	/* 4350000000000000 */
+static const double Lg1 = 6.666666666666735130e-01;	/* 3FE5555555555593 */
+static const double Lg2 = 3.999999999940941908e-01;	/* 3FD999999997FA04 */
+static const double Lg3 = 2.857142874366239149e-01;	/* 3FD2492494229359 */
+static const double Lg4 = 2.222219843214978396e-01;	/* 3FCC71C51D8E78AF */
+static const double Lg5 = 1.818357216161805012e-01;	/* 3FC7466496CB03DE */
+static const double Lg6 = 1.531383769920937332e-01;	/* 3FC39A09D078C69F */
+static const double Lg7 = 1.479819860511658591e-01;	/* 3FC2F112DF3E5244 */
+
+static const double zero = 0.0;
+
+double
+__ieee754_log2 (double x)
+{
+  double hfsq, f, s, z, R, w, t1, t2, dk;
+  int64_t hx, i, j;
+  int32_t k;
+
+  EXTRACT_WORDS64 (hx, x);
+
+  k = 0;
+  if (hx < INT64_C(0x0010000000000000))
+    {				/* x < 2**-1022  */
+      if (__glibc_unlikely ((hx & UINT64_C(0x7fffffffffffffff)) == 0))
+	return -two54 / (x - x);	/* log(+-0)=-inf */
+      if (__glibc_unlikely (hx < 0))
+	return (x - x) / (x - x);	/* log(-#) = NaN */
+      k -= 54;
+      x *= two54;		/* subnormal number, scale up x */
+      EXTRACT_WORDS64 (hx, x);
+    }
+  if (__glibc_unlikely (hx >= UINT64_C(0x7ff0000000000000)))
+    return x + x;
+  k += (hx >> 52) - 1023;
+  hx &= UINT64_C(0x000fffffffffffff);
+  i = (hx + UINT64_C(0x95f6400000000)) & UINT64_C(0x10000000000000);
+  /* normalize x or x/2 */
+  INSERT_WORDS64 (x, hx | (i ^ UINT64_C(0x3ff0000000000000)));
+  k += (i >> 52);
+  dk = (double) k;
+  f = x - 1.0;
+  if ((UINT64_C(0x000fffffffffffff) & (2 + hx)) < 3)
+    {				/* |f| < 2**-20 */
+      if (f == zero)
+	return dk;
+      R = f * f * (0.5 - 0.33333333333333333 * f);
+      return dk - (R - f) / ln2;
+    }
+  s = f / (2.0 + f);
+  z = s * s;
+  i = hx - UINT64_C(0x6147a00000000);
+  w = z * z;
+  j = UINT64_C(0x6b85100000000) - hx;
+  t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+  t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+  i |= j;
+  R = t2 + t1;
+  if (i > 0)
+    {
+      hfsq = 0.5 * f * f;
+      return dk - ((hfsq - (s * (hfsq + R))) - f) / ln2;
+    }
+  else
+    {
+      return dk - ((s * (f - R)) - f) / ln2;
+    }
+}
+
+strong_alias (__ieee754_log2, __log2_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
new file mode 100644
index 0000000000..faaaf90208
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c
@@ -0,0 +1,54 @@
+/* @(#)s_ceil.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * ceil(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ *	Bit twiddling.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+double
+__ceil(double x)
+{
+	int64_t i0,i;
+	int32_t j0;
+	EXTRACT_WORDS64(i0,x);
+	j0 = ((i0>>52)&0x7ff)-0x3ff;
+	if(j0<=51) {
+	    if(j0<0) {
+	      /* return 0*sign(x) if |x|<1 */
+	      if(i0<0) {i0=INT64_C(0x8000000000000000);}
+	      else if(i0!=0) { i0=INT64_C(0x3ff0000000000000);}
+	    } else {
+		i = INT64_C(0x000fffffffffffff)>>j0;
+		if((i0&i)==0) return x; /* x is integral */
+		if(i0>0) i0 += UINT64_C(0x0010000000000000)>>j0;
+		i0 &= (~i);
+	    }
+	} else {
+	    if(j0==0x400) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	INSERT_WORDS64(x,i0);
+	return x;
+}
+#ifndef __ceil
+weak_alias (__ceil, ceil)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__ceil, __ceill)
+weak_alias (__ceil, ceill)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
new file mode 100644
index 0000000000..ef51608f6e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c
@@ -0,0 +1,42 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * finite(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <shlib-compat.h>
+#include <stdint.h>
+
+#undef __finite
+int
+__finite(double x)
+{
+  int64_t lx;
+  EXTRACT_WORDS64(lx,x);
+  return (int)((uint64_t)((lx&INT64_C(0x7ff0000000000000))-INT64_C(0x7ff0000000000000))>>63);
+}
+hidden_def (__finite)
+weak_alias (__finite, finite)
+#ifdef NO_LONG_DOUBLE
+# ifdef LDBL_CLASSIFY_COMPAT
+#  if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+compat_symbol (libc, __finite, __finitel, GLIBC_2_0);
+#  endif
+#  if SHLIB_COMPAT (libm, GLIBC_2_1, GLIBC_2_23)
+compat_symbol (libm, __finite, __finitel, GLIBC_2_1);
+#  endif
+# endif
+weak_alias (__finite, finitel)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
new file mode 100644
index 0000000000..1b99fffc30
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c
@@ -0,0 +1,74 @@
+/* Round double to integer away from zero.
+   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* Based on a version which carries the following copyright:  */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+/*
+ * floor(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ *	Bit twiddling.
+ */
+
+
+double
+__floor (double x)
+{
+	int64_t i0;
+	EXTRACT_WORDS64(i0,x);
+	int32_t j0 = ((i0>>52)&0x7ff)-0x3ff;
+	if(__builtin_expect(j0<52, 1)) {
+	    if(j0<0) {
+		/* return 0*sign(x) if |x|<1 */
+		if(i0>=0) {i0=0;}
+		else if((i0&0x7fffffffffffffffl)!=0)
+		  { i0=0xbff0000000000000l;}
+	    } else {
+		uint64_t i = (0x000fffffffffffffl)>>j0;
+		if((i0&i)==0) return x; /* x is integral */
+		if(i0<0) i0 += (0x0010000000000000l)>>j0;
+		i0 &= (~i);
+	    }
+	    INSERT_WORDS64(x,i0);
+	} else if (j0==0x400)
+	    return x+x;	/* inf or NaN */
+	return x;
+}
+#ifndef __floor
+weak_alias (__floor, floor)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__floor, __floorl)
+weak_alias (__floor, floorl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c
new file mode 100644
index 0000000000..5e8bc64711
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c
@@ -0,0 +1,69 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <inttypes.h>
+#include <math.h>
+#include <math_private.h>
+
+/*
+ * for non-zero, finite x
+ *	x = frexp(arg,&exp);
+ * return a double fp quantity x such that 0.5 <= |x| <1.0
+ * and the corresponding binary exponent "exp". That is
+ *	arg = x*2^exp.
+ * If arg is inf, 0.0, or NaN, then frexp(arg,&exp) returns arg
+ * with *exp=0.
+ */
+
+
+double
+__frexp (double x, int *eptr)
+{
+  int64_t ix;
+  EXTRACT_WORDS64 (ix, x);
+  int32_t ex = 0x7ff & (ix >> 52);
+  int e = 0;
+
+  if (__glibc_likely (ex != 0x7ff && x != 0.0))
+    {
+      /* Not zero and finite.  */
+      e = ex - 1022;
+      if (__glibc_unlikely (ex == 0))
+	{
+	  /* Subnormal.  */
+	  x *= 0x1p54;
+	  EXTRACT_WORDS64 (ix, x);
+	  ex = 0x7ff & (ix >> 52);
+	  e = ex - 1022 - 54;
+	}
+
+      ix = (ix & INT64_C (0x800fffffffffffff)) | INT64_C (0x3fe0000000000000);
+      INSERT_WORDS64 (x, ix);
+    }
+  else
+    /* Quiet signaling NaNs.  */
+    x += x;
+
+  *eptr = e;
+  return x;
+}
+weak_alias (__frexp, frexp)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__frexp, __frexpl)
+weak_alias (__frexp, frexpl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
new file mode 100644
index 0000000000..fbcd75b8bd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_getpayload.c
@@ -0,0 +1,33 @@
+/* Get NaN payload.  dbl-64/wordsize-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+double
+getpayload (const double *x)
+{
+  uint64_t ix;
+  EXTRACT_WORDS64 (ix, *x);
+  ix &= 0x7ffffffffffffULL;
+  return (double) ix;
+}
+#ifdef NO_LONG_DOUBLE
+weak_alias (getpayload, getpayloadl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
new file mode 100644
index 0000000000..951fb73239
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c
@@ -0,0 +1,33 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Changed to return -1 for -Inf by Ulrich Drepper <drepper@cygnus.com>.
+ * Public domain.
+ */
+
+/*
+ * isinf(x) returns 1 is x is inf, -1 if x is -inf, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <shlib-compat.h>
+
+int
+__isinf (double x)
+{
+	int64_t ix;
+	EXTRACT_WORDS64(ix,x);
+	int64_t t = ix & UINT64_C(0x7fffffffffffffff);
+	t ^= UINT64_C(0x7ff0000000000000);
+	t |= -t;
+	return ~(t >> 63) & (ix >> 62);
+}
+hidden_def (__isinf)
+weak_alias (__isinf, isinf)
+#ifdef NO_LONG_DOUBLE
+# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
+# endif
+weak_alias (__isinf, isinfl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
new file mode 100644
index 0000000000..bcff9e3b67
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c
@@ -0,0 +1,39 @@
+/* @(#)s_isnan.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * isnan(x) returns 1 is x is nan, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <shlib-compat.h>
+#include <stdint.h>
+
+#undef __isnan
+int __isnan(double x)
+{
+	int64_t hx;
+	EXTRACT_WORDS64(hx,x);
+	hx &= UINT64_C(0x7fffffffffffffff);
+	hx = UINT64_C(0x7ff0000000000000) - hx;
+	return (int)(((uint64_t)hx)>>63);
+}
+hidden_def (__isnan)
+weak_alias (__isnan, isnan)
+#ifdef NO_LONG_DOUBLE
+# if defined LDBL_CLASSIFY_COMPAT && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_23)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+# endif
+weak_alias (__isnan, isnanl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
new file mode 100644
index 0000000000..117f64bede
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_issignaling.c
@@ -0,0 +1,43 @@
+/* Test for signaling NaN.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+
+int
+__issignaling (double x)
+{
+  u_int64_t xi;
+  EXTRACT_WORDS64 (xi, x);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* We only have to care about the high-order bit of x's significand, because
+     having it set (sNaN) already makes the significand different from that
+     used to designate infinity.  */
+  return (xi & UINT64_C (0x7ff8000000000000)) == UINT64_C (0x7ff8000000000000);
+#else
+  /* To keep the following comparison simple, toggle the quiet/signaling bit,
+     so that it is set for sNaNs.  This is inverse to IEEE 754-2008 (as well as
+     common practice for IEEE 754-1985).  */
+  xi ^= UINT64_C (0x0008000000000000);
+  /* We have to compare for greater (instead of greater or equal), because x's
+     significand being all-zero designates infinity not NaN.  */
+  return (xi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7ff8000000000000);
+#endif
+}
+libm_hidden_def (__issignaling)
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
new file mode 100644
index 0000000000..86a791111e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c
@@ -0,0 +1,82 @@
+/* Round double value to long long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define lround __hidden_lround
+#define __lround __hidden___lround
+
+#include <math.h>
+#include <sysdep.h>
+
+#include <math_private.h>
+
+
+long long int
+__llround (double x)
+{
+  int32_t j0;
+  int64_t i0;
+  long long int result;
+  int sign;
+
+  EXTRACT_WORDS64 (i0, x);
+  j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+  sign = i0 < 0 ? -1 : 1;
+  i0 &= UINT64_C(0xfffffffffffff);
+  i0 |= UINT64_C(0x10000000000000);
+
+  if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else if (j0 >= 52)
+	result = i0 << (j0 - 52);
+      else
+	{
+	  i0 += UINT64_C(0x8000000000000) >> j0;
+
+	  result = i0 >> (52 - j0);
+	}
+    }
+  else
+    {
+      /* The number is too large.  It is left implementation defined
+	 what happens.  */
+      return (long long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__llround, llround)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__llround, __llroundl)
+weak_alias (__llround, llroundl)
+#endif
+
+/* long has the same width as long long on LP64 machines, so use an alias.  */
+#undef lround
+#undef __lround
+#ifdef _LP64
+strong_alias (__llround, __lround)
+weak_alias (__llround, lround)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__llround, __lroundl)
+weak_alias (__llround, lroundl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c
new file mode 100644
index 0000000000..c65cd52208
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c
@@ -0,0 +1,48 @@
+/* Compute radix independent exponent.
+   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+double
+__logb (double x)
+{
+  int64_t ix, ex;
+
+  EXTRACT_WORDS64 (ix, x);
+  ix &= UINT64_C(0x7fffffffffffffff);
+  if (ix == 0)
+    return -1.0 / fabs (x);
+  ex = ix >> 52;
+  if (ex == 0x7ff)
+    return x * x;
+  if (__glibc_unlikely (ex == 0))
+    {
+      int m = __builtin_clzll (ix);
+      ex -= m - 12;
+    }
+  return (double) (ex - 1023);
+}
+weak_alias (__logb, logb)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__logb, __logbl)
+weak_alias (__logb, logbl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
new file mode 100644
index 0000000000..02b01aa00d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_lround.c
@@ -0,0 +1,89 @@
+/* Round double value to long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+
+/* For LP64, lround is an alias for llround.  */
+#ifndef _LP64
+
+long int
+__lround (double x)
+{
+  int32_t j0;
+  int64_t i0;
+  long int result;
+  int sign;
+
+  EXTRACT_WORDS64 (i0, x);
+  j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+  sign = i0 < 0 ? -1 : 1;
+  i0 &= UINT64_C(0xfffffffffffff);
+  i0 |= UINT64_C(0x10000000000000);
+
+  if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else if (j0 >= 52)
+	result = i0 << (j0 - 52);
+      else
+	{
+	  i0 += UINT64_C(0x8000000000000) >> j0;
+
+	  result = i0 >> (52 - j0);
+#ifdef FE_INVALID
+	  if (sizeof (long int) == 4
+	      && sign == 1
+	      && result == LONG_MIN)
+	    /* Rounding brought the value out of range.  */
+	    feraiseexcept (FE_INVALID);
+#endif
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#ifdef FE_INVALID
+      if (sizeof (long int) == 4
+	  && x <= (double) LONG_MIN - 0.5)
+	{
+	  /* If truncation produces LONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  feraiseexcept (FE_INVALID);
+	  return LONG_MIN;
+	}
+#endif
+      return (long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__lround, lround)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__lround, __lroundl)
+weak_alias (__lround, lroundl)
+# endif
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c
new file mode 100644
index 0000000000..c309e56272
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c
@@ -0,0 +1,66 @@
+/* Rewritten for 64-bit machines by Ulrich Drepper <drepper@gmail.com>.  */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * modf(double x, double *iptr)
+ * return fraction part of x, and return x's integral part in *iptr.
+ * Method:
+ *	Bit twiddling.
+ *
+ * Exception:
+ *	No exception.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+static const double one = 1.0;
+
+double
+__modf(double x, double *iptr)
+{
+	int64_t i0;
+	int32_t j0;
+	EXTRACT_WORDS64(i0,x);
+	j0 = ((i0>>52)&0x7ff)-0x3ff;	/* exponent of x */
+	if(j0<52) {			/* integer part in x */
+	    if(j0<0) {			/* |x|<1 */
+		/* *iptr = +-0 */
+		INSERT_WORDS64(*iptr,i0&UINT64_C(0x8000000000000000));
+		return x;
+	    } else {
+		uint64_t i = UINT64_C(0x000fffffffffffff)>>j0;
+		if((i0&i)==0) {		/* x is integral */
+		    *iptr = x;
+		    /* return +-0 */
+		    INSERT_WORDS64(x,i0&UINT64_C(0x8000000000000000));
+		    return x;
+		} else {
+		    INSERT_WORDS64(*iptr,i0&(~i));
+		    return x - *iptr;
+		}
+	    }
+	} else { /* no fraction part */
+	    *iptr = x*one;
+	    /* We must handle NaNs separately.  */
+	    if (j0 == 0x400 && (i0 & UINT64_C(0xfffffffffffff)))
+	      return x*one;
+	    INSERT_WORDS64(x,i0&UINT64_C(0x8000000000000000));	/* return +-0 */
+	    return x;
+	}
+}
+weak_alias (__modf, modf)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__modf, __modfl)
+weak_alias (__modf, modfl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
new file mode 100644
index 0000000000..8293819981
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c
@@ -0,0 +1,66 @@
+/* Adapted for use as nearbyint by Ulrich Drepper <drepper@cygnus.com>.  */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * rint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ *	Using floating addition.
+ * Exception:
+ *	Inexact flag raised if x not equal to rint(x).
+ */
+
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+
+static const double
+TWO52[2]={
+  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+double
+__nearbyint(double x)
+{
+	fenv_t env;
+	int64_t i0,sx;
+	int32_t j0;
+	EXTRACT_WORDS64(i0,x);
+	sx = (i0>>63)&1;
+	j0 = ((i0>>52)&0x7ff)-0x3ff;
+	if(__builtin_expect(j0<52, 1)) {
+	    if(j0<0) {
+		libc_feholdexcept (&env);
+		double w = TWO52[sx]+x;
+		double t =  w-TWO52[sx];
+		math_opt_barrier(t);
+		libc_fesetenv (&env);
+		return __copysign (t, x);
+	    }
+	} else {
+	    if(j0==0x400) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	libc_feholdexcept (&env);
+	double w = TWO52[sx]+x;
+	double t = w-TWO52[sx];
+	math_opt_barrier (t);
+	libc_fesetenv (&env);
+	return t;
+}
+weak_alias (__nearbyint, nearbyint)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__nearbyint, __nearbyintl)
+weak_alias (__nearbyint, nearbyintl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
new file mode 100644
index 0000000000..37a823c075
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c
@@ -0,0 +1,114 @@
+/* Compute remainder and a congruent to the quotient.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+#include <stdint.h>
+
+static const double zero = 0.0;
+
+
+double
+__remquo (double x, double y, int *quo)
+{
+  int64_t hx, hy;
+  uint64_t sx, qs;
+  int cquo;
+
+  EXTRACT_WORDS64 (hx, x);
+  EXTRACT_WORDS64 (hy, y);
+  sx = hx & UINT64_C(0x8000000000000000);
+  qs = sx ^ (hy & UINT64_C(0x8000000000000000));
+  hy &= UINT64_C(0x7fffffffffffffff);
+  hx &= UINT64_C(0x7fffffffffffffff);
+
+  /* Purge off exception values.  */
+  if (__glibc_unlikely (hy == 0))
+    return (x * y) / (x * y);			/* y = 0 */
+  if (__builtin_expect (hx >= UINT64_C(0x7ff0000000000000) /* x not finite */
+			|| hy > UINT64_C(0x7ff0000000000000), 0))/* y is NaN */
+    return (x * y) / (x * y);
+
+  if (hy <= UINT64_C(0x7fbfffffffffffff))
+    x = __ieee754_fmod (x, 8 * y);		/* now x < 8y */
+
+  if (__glibc_unlikely (hx == hy))
+    {
+      *quo = qs ? -1 : 1;
+      return zero * x;
+    }
+
+  x = fabs (x);
+  INSERT_WORDS64 (y, hy);
+  cquo = 0;
+
+  if (hy <= UINT64_C(0x7fcfffffffffffff) && x >= 4 * y)
+    {
+      x -= 4 * y;
+      cquo += 4;
+    }
+  if (hy <= UINT64_C(0x7fdfffffffffffff) && x >= 2 * y)
+    {
+      x -= 2 * y;
+      cquo += 2;
+    }
+
+  if (hy < UINT64_C(0x0020000000000000))
+    {
+      if (x + x > y)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x + x >= y)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+  else
+    {
+      double y_half = 0.5 * y;
+      if (x > y_half)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x >= y_half)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+
+  *quo = qs ? -cquo : cquo;
+
+  /* Ensure correct sign of zero result in round-downward mode.  */
+  if (x == 0.0)
+    x = 0.0;
+  if (sx)
+    x = -x;
+  return x;
+}
+weak_alias (__remquo, remquo)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__remquo, __remquol)
+weak_alias (__remquo, remquol)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
new file mode 100644
index 0000000000..87b2339d43
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c
@@ -0,0 +1,60 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * rint(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ *	Using floating addition.
+ * Exception:
+ *	Inexact flag raised if x not equal to rint(x).
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+TWO52[2]={
+  4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
+ -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
+};
+
+double
+__rint(double x)
+{
+	int64_t i0,sx;
+	int32_t j0;
+	EXTRACT_WORDS64(i0,x);
+	sx = (i0>>63)&1;
+	j0 = ((i0>>52)&0x7ff)-0x3ff;
+	if(j0<52) {
+	    if(j0<0) {
+		double w = TWO52[sx]+x;
+		double t =  w-TWO52[sx];
+		EXTRACT_WORDS64(i0,t);
+		INSERT_WORDS64(t,(i0&UINT64_C(0x7fffffffffffffff))|(sx<<63));
+		return t;
+	    }
+	} else {
+	    if(j0==0x400) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	double w = TWO52[sx]+x;
+	return w-TWO52[sx];
+}
+#ifndef __rint
+weak_alias (__rint, rint)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__rint, __rintl)
+weak_alias (__rint, rintl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
new file mode 100644
index 0000000000..0e3738b6ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_round.c
@@ -0,0 +1,68 @@
+/* Round double to integer away from zero.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+#include <stdint.h>
+
+
+double
+__round (double x)
+{
+  int64_t i0, j0;
+
+  EXTRACT_WORDS64 (i0, x);
+  j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+  if (__glibc_likely (j0 < 52))
+    {
+      if (j0 < 0)
+	{
+	  i0 &= UINT64_C(0x8000000000000000);
+	  if (j0 == -1)
+	    i0 |= UINT64_C(0x3ff0000000000000);
+	}
+      else
+	{
+	  uint64_t i = UINT64_C(0x000fffffffffffff) >> j0;
+	  if ((i0 & i) == 0)
+	    /* X is integral.  */
+	    return x;
+
+	  i0 += UINT64_C(0x0008000000000000) >> j0;
+	  i0 &= ~i;
+	}
+    }
+  else
+    {
+      if (j0 == 0x400)
+	/* Inf or NaN.  */
+	return x + x;
+      else
+	return x;
+    }
+
+  INSERT_WORDS64 (x, i0);
+  return x;
+}
+weak_alias (__round, round)
+#ifdef NO_LONG_DOUBLE
+strong_alias (__round, __roundl)
+weak_alias (__round, roundl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
new file mode 100644
index 0000000000..d13ee25cea
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_roundeven.c
@@ -0,0 +1,72 @@
+/* Round to nearest integer value, rounding halfway cases to even.
+   dbl-64/wordsize-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+#define BIAS 0x3ff
+#define MANT_DIG 53
+#define MAX_EXP (2 * BIAS + 1)
+
+double
+roundeven (double x)
+{
+  uint64_t ix, ux;
+  EXTRACT_WORDS64 (ix, x);
+  ux = ix & 0x7fffffffffffffffULL;
+  int exponent = ux >> (MANT_DIG - 1);
+  if (exponent >= BIAS + MANT_DIG - 1)
+    {
+      /* Integer, infinity or NaN.  */
+      if (exponent == MAX_EXP)
+	/* Infinity or NaN; quiet signaling NaNs.  */
+	return x + x;
+      else
+	return x;
+    }
+  else if (exponent >= BIAS)
+    {
+      /* At least 1; not necessarily an integer.  Locate the bits with
+	 exponents 0 and -1 (when the unbiased exponent is 0, the bit
+	 with exponent 0 is implicit, but as the bias is odd it is OK
+	 to take it from the low bit of the exponent).  */
+      int int_pos = (BIAS + MANT_DIG - 1) - exponent;
+      int half_pos = int_pos - 1;
+      uint64_t half_bit = 1ULL << half_pos;
+      uint64_t int_bit = 1ULL << int_pos;
+      if ((ix & (int_bit | (half_bit - 1))) != 0)
+	/* Carry into the exponent works correctly.  No need to test
+	   whether HALF_BIT is set.  */
+	ix += half_bit;
+      ix &= ~(int_bit - 1);
+    }
+  else if (exponent == BIAS - 1 && ux > 0x3fe0000000000000ULL)
+    /* Interval (0.5, 1).  */
+    ix = (ix & 0x8000000000000000ULL) | 0x3ff0000000000000ULL;
+  else
+    /* Rounds to 0.  */
+    ix &= 0x8000000000000000ULL;
+  INSERT_WORDS64 (x, ix);
+  return x;
+}
+hidden_def (roundeven)
+#ifdef NO_LONG_DOUBLE
+weak_alias (roundeven, roundevenl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c
new file mode 100644
index 0000000000..8dce51e928
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c
@@ -0,0 +1,60 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * scalbn (double x, int n)
+ * scalbn(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+two54   =  1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
+twom54  =  5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
+huge   = 1.0e+300,
+tiny   = 1.0e-300;
+
+double
+__scalbln (double x, long int n)
+{
+	int64_t ix;
+	int64_t k;
+	EXTRACT_WORDS64(ix,x);
+	k = (ix >> 52) & 0x7ff;			/* extract exponent */
+	if (__builtin_expect(k==0, 0)) {	/* 0 or subnormal x */
+	    if ((ix & UINT64_C(0xfffffffffffff))==0) return x; /* +-0 */
+	    x *= two54;
+	    EXTRACT_WORDS64(ix,x);
+	    k = ((ix >> 52) & 0x7ff) - 54;
+	    }
+	if (__builtin_expect(k==0x7ff, 0)) return x+x;	/* NaN or Inf */
+	if (__builtin_expect(n< -50000, 0))
+	  return tiny*__copysign(tiny,x); /*underflow*/
+	if (__builtin_expect(n> 50000 || k+n > 0x7fe, 0))
+	  return huge*__copysign(huge,x); /* overflow  */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+	k = k+n;
+	if (__builtin_expect(k > 0, 1))		/* normal result */
+	    {INSERT_WORDS64(x,(ix&UINT64_C(0x800fffffffffffff))|(k<<52));
+	      return x;}
+	if (k <= -54)
+	  return tiny*__copysign(tiny,x);	/*underflow*/
+	k += 54;				/* subnormal result */
+	INSERT_WORDS64(x,(ix&INT64_C(0x800fffffffffffff))|(k<<52));
+	return x*twom54;
+}
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalbln, __scalblnl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c
new file mode 100644
index 0000000000..d517a919c8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c
@@ -0,0 +1,60 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * scalbn (double x, int n)
+ * scalbn(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const double
+two54   =  1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
+twom54  =  5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */
+huge   = 1.0e+300,
+tiny   = 1.0e-300;
+
+double
+__scalbn (double x, int n)
+{
+	int64_t ix;
+	int64_t k;
+	EXTRACT_WORDS64(ix,x);
+	k = (ix >> 52) & 0x7ff;			/* extract exponent */
+	if (__builtin_expect(k==0, 0)) {	/* 0 or subnormal x */
+	    if ((ix & UINT64_C(0xfffffffffffff))==0) return x; /* +-0 */
+	    x *= two54;
+	    EXTRACT_WORDS64(ix,x);
+	    k = ((ix >> 52) & 0x7ff) - 54;
+	    }
+	if (__builtin_expect(k==0x7ff, 0)) return x+x;	/* NaN or Inf */
+	if (__builtin_expect(n< -50000, 0))
+	  return tiny*__copysign(tiny,x); /*underflow*/
+	if (__builtin_expect(n> 50000 || k+n > 0x7fe, 0))
+	  return huge*__copysign(huge,x); /* overflow  */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+	k = k+n;
+	if (__builtin_expect(k > 0, 1))		/* normal result */
+	    {INSERT_WORDS64(x,(ix&UINT64_C(0x800fffffffffffff))|(k<<52));
+	      return x;}
+	if (k <= -54)
+	  return tiny*__copysign(tiny,x);	/*underflow*/
+	k += 54;				/* subnormal result */
+	INSERT_WORDS64(x,(ix&INT64_C(0x800fffffffffffff))|(k<<52));
+	return x*twom54;
+}
+#ifdef NO_LONG_DOUBLE
+strong_alias (__scalbn, __scalbnl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c
new file mode 100644
index 0000000000..d4f6d55432
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_setpayload_main.c
@@ -0,0 +1,53 @@
+/* Set NaN payload.  dbl-64/wordsize-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+#define SET_HIGH_BIT (HIGH_ORDER_BIT_IS_SET_FOR_SNAN ? SIG : !SIG)
+#define BIAS 0x3ff
+#define PAYLOAD_DIG 51
+#define EXPLICIT_MANT_DIG 52
+
+int
+FUNC (double *x, double payload)
+{
+  uint64_t ix;
+  EXTRACT_WORDS64 (ix, payload);
+  int exponent = ix >> EXPLICIT_MANT_DIG;
+  /* Test if argument is (a) negative or too large; (b) too small,
+     except for 0 when allowed; (c) not an integer.  */
+  if (exponent >= BIAS + PAYLOAD_DIG
+      || (exponent < BIAS && !(SET_HIGH_BIT && ix == 0))
+      || (ix & ((1ULL << (BIAS + EXPLICIT_MANT_DIG - exponent)) - 1)) != 0)
+    {
+      INSERT_WORDS64 (*x, 0);
+      return 1;
+    }
+  if (ix != 0)
+    {
+      ix &= (1ULL << EXPLICIT_MANT_DIG) - 1;
+      ix |= 1ULL << EXPLICIT_MANT_DIG;
+      ix >>= BIAS + EXPLICIT_MANT_DIG - exponent;
+    }
+  ix |= 0x7ff0000000000000ULL | (SET_HIGH_BIT ? 0x8000000000000ULL : 0);
+  INSERT_WORDS64 (*x, ix);
+  return 0;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
new file mode 100644
index 0000000000..1e8d57f32b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalorder.c
@@ -0,0 +1,50 @@
+/* Total order operation.  dbl-64/wordsize-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalorder (double x, double y)
+{
+  int64_t ix, iy;
+  EXTRACT_WORDS64 (ix, x);
+  EXTRACT_WORDS64 (iy, y);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the arguments interpreted as
+     sign-magnitude integers.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if ((ix & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL
+      && (iy & 0x7fffffffffffffffULL) > 0x7ff0000000000000ULL)
+    {
+      ix ^= 0x0008000000000000ULL;
+      iy ^= 0x0008000000000000ULL;
+    }
+#endif
+  uint64_t ix_sign = ix >> 63;
+  uint64_t iy_sign = iy >> 63;
+  ix ^= ix_sign >> 1;
+  iy ^= iy_sign >> 1;
+  return ix <= iy;
+}
+#ifdef NO_LONG_DOUBLE
+weak_alias (totalorder, totalorderl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
new file mode 100644
index 0000000000..47a077f18b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_totalordermag.c
@@ -0,0 +1,47 @@
+/* Total order operation on absolute values.  dbl-64/wordsize-64 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalordermag (double x, double y)
+{
+  uint64_t ix, iy;
+  EXTRACT_WORDS64 (ix, x);
+  EXTRACT_WORDS64 (iy, y);
+  ix &= 0x7fffffffffffffffULL;
+  iy &= 0x7fffffffffffffffULL;
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the absolute values of the
+     arguments.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if (ix > 0x7ff0000000000000ULL && iy > 0x7ff0000000000000ULL)
+    {
+      ix ^= 0x0008000000000000ULL;
+      iy ^= 0x0008000000000000ULL;
+    }
+#endif
+  return ix <= iy;
+}
+#ifdef NO_LONG_DOUBLE
+weak_alias (totalordermag, totalordermagl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
new file mode 100644
index 0000000000..050ec0016a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c
@@ -0,0 +1,57 @@
+/* Truncate argument to nearest integral value not larger than the argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+double
+__trunc (double x)
+{
+  int64_t i0, j0;
+  int64_t sx;
+
+  EXTRACT_WORDS64 (i0, x);
+  sx = i0 & UINT64_C(0x8000000000000000);
+  j0 = ((i0 >> 52) & 0x7ff) - 0x3ff;
+  if (j0 < 52)
+    {
+      if (j0 < 0)
+	/* The magnitude of the number is < 1 so the result is +-0.  */
+	INSERT_WORDS64 (x, sx);
+      else
+	INSERT_WORDS64 (x, sx | (i0 & ~(UINT64_C(0x000fffffffffffff) >> j0)));
+    }
+  else
+    {
+      if (j0 == 0x400)
+	/* x is inf or NaN.  */
+	return x + x;
+    }
+
+  return x;
+}
+#ifndef __trunc
+weak_alias (__trunc, trunc)
+# ifdef NO_LONG_DOUBLE
+strong_alias (__trunc, __truncl)
+weak_alias (__trunc, truncl)
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1.c b/REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1.c
new file mode 100644
index 0000000000..70d33de74c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1.c
@@ -0,0 +1,75 @@
+/* Compute x^2 + y^2 - 1, without large cancellation error.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_split.h>
+#include <stdlib.h>
+
+/* Calculate X + Y exactly and store the result in *HI + *LO.  It is
+   given that |X| >= |Y| and the values are small enough that no
+   overflow occurs.  */
+
+static inline void
+add_split (double *hi, double *lo, double x, double y)
+{
+  /* Apply Dekker's algorithm.  */
+  *hi = x + y;
+  *lo = (x - *hi) + y;
+}
+
+/* Compare absolute values of floating-point values pointed to by P
+   and Q for qsort.  */
+
+static int
+compare (const void *p, const void *q)
+{
+  double pd = fabs (*(const double *) p);
+  double qd = fabs (*(const double *) q);
+  if (pd < qd)
+    return -1;
+  else if (pd == qd)
+    return 0;
+  else
+    return 1;
+}
+
+/* Return X^2 + Y^2 - 1, computed without large cancellation error.
+   It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
+   0.5.  */
+
+double
+__x2y2m1 (double x, double y)
+{
+  double vals[5];
+  SET_RESTORE_ROUND (FE_TONEAREST);
+  mul_split (&vals[1], &vals[0], x, x);
+  mul_split (&vals[3], &vals[2], y, y);
+  vals[4] = -1.0;
+  qsort (vals, 5, sizeof (double), compare);
+  /* Add up the values so that each element of VALS has absolute value
+     at most equal to the last set bit of the next nonzero
+     element.  */
+  for (size_t i = 0; i <= 3; i++)
+    {
+      add_split (&vals[i + 1], &vals[i], vals[i + 1], vals[i]);
+      qsort (vals + i + 1, 4 - i, sizeof (double), compare);
+    }
+  /* Now any error from this addition will be small.  */
+  return vals[4] + vals[3] + vals[2] + vals[1] + vals[0];
+}
diff --git a/REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1f.c b/REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1f.c
new file mode 100644
index 0000000000..17bc435a62
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/dbl-64/x2y2m1f.c
@@ -0,0 +1,32 @@
+/* Compute x^2 + y^2 - 1, without large cancellation error.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Return X^2 + Y^2 - 1, computed without large cancellation error.
+   It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
+   0.5.  */
+
+float
+__x2y2m1f (float x, float y)
+{
+  double dx = x, dy = y;
+  return (float) ((dx - 1) * (dx + 1) + dy * dy);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/float128/Makeconfig b/REORG.TODO/sysdeps/ieee754/float128/Makeconfig
new file mode 100644
index 0000000000..6c385d2df2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/Makeconfig
@@ -0,0 +1,3 @@
+# Include this earlier so it can be used earlier in Makefiles,
+# and sysdep/ makefiles.
+float128-fcts = yes
diff --git a/REORG.TODO/sysdeps/ieee754/float128/Makefile b/REORG.TODO/sysdeps/ieee754/float128/Makefile
new file mode 100644
index 0000000000..c07586c1b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/Makefile
@@ -0,0 +1,3 @@
+ifeq ($(subdir),stdlib)
+routines += float1282mpn strfromf128
+endif
diff --git a/REORG.TODO/sysdeps/ieee754/float128/Versions b/REORG.TODO/sysdeps/ieee754/float128/Versions
new file mode 100644
index 0000000000..caf206475c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/Versions
@@ -0,0 +1,150 @@
+%include <float128-abi.h>
+%ifndef FLOAT128_VERSION
+% error "float128-abi.h must define FLOAT128_VERSION"
+%endif
+libc {
+  FLOAT128_VERSION {
+    strfromf128;
+  }
+}
+libm {
+  FLOAT128_VERSION {
+    __acosf128_finite;
+    __acoshf128_finite;
+    __asinf128_finite;
+    __atan2f128_finite;
+    __atanhf128_finite;
+    __coshf128_finite;
+    __exp10f128_finite;
+    __exp2f128_finite;
+    __expf128_finite;
+    __finitef128;
+    __fmodf128_finite;
+    __fpclassifyf128;
+    __gammaf128_r_finite;
+    __hypotf128_finite;
+    __iseqsigf128;
+    __isinff128;
+    __isnanf128;
+    __issignalingf128;
+    __j0f128_finite;
+    __j1f128_finite;
+    __jnf128_finite;
+    __lgammaf128_r_finite;
+    __log10f128_finite;
+    __log2f128_finite;
+    __logf128_finite;
+    __powf128_finite;
+    __remainderf128_finite;
+    __signbitf128;
+    __sinhf128_finite;
+    __sqrtf128_finite;
+    __y0f128_finite;
+    __y1f128_finite;
+    __ynf128_finite;
+    acosf128;
+    acoshf128;
+    asinf128;
+    asinhf128;
+    atan2f128;
+    atanf128;
+    atanhf128;
+    cabsf128;
+    cacosf128;
+    cacoshf128;
+    canonicalizef128;
+    cargf128;
+    casinf128;
+    casinhf128;
+    catanf128;
+    catanhf128;
+    cbrtf128;
+    ccosf128;
+    ccoshf128;
+    ceilf128;
+    cexpf128;
+    cimagf128;
+    clog10f128;
+    clogf128;
+    conjf128;
+    copysignf128;
+    cosf128;
+    coshf128;
+    cpowf128;
+    cprojf128;
+    crealf128;
+    csinf128;
+    csinhf128;
+    csqrtf128;
+    ctanf128;
+    ctanhf128;
+    erfcf128;
+    erff128;
+    exp10f128;
+    exp2f128;
+    expf128;
+    expm1f128;
+    fabsf128;
+    fdimf128;
+    floorf128;
+    fmaf128;
+    fmaxf128;
+    fmaxmagf128;
+    fminf128;
+    fminmagf128;
+    fmodf128;
+    frexpf128;
+    fromfpf128;
+    fromfpxf128;
+    getpayloadf128;
+    hypotf128;
+    ilogbf128;
+    j0f128;
+    j1f128;
+    jnf128;
+    ldexpf128;
+    lgammaf128;
+    lgammaf128_r;
+    llogbf128;
+    llrintf128;
+    llroundf128;
+    log10f128;
+    log1pf128;
+    log2f128;
+    logbf128;
+    logf128;
+    lrintf128;
+    lroundf128;
+    modff128;
+    nanf128;
+    nearbyintf128;
+    nextafterf128;
+    nextdownf128;
+    nextupf128;
+    powf128;
+    remainderf128;
+    remquof128;
+    rintf128;
+    roundevenf128;
+    roundf128;
+    scalblnf128;
+    scalbnf128;
+    setpayloadf128;
+    setpayloadsigf128;
+    sincosf128;
+    sinf128;
+    sinhf128;
+    sqrtf128;
+    tanf128;
+    tanhf128;
+    tgammaf128;
+    totalorderf128;
+    totalordermagf128;
+    truncf128;
+    ufromfpf128;
+    ufromfpxf128;
+    y0f128;
+    y1f128;
+    ynf128;
+  }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_acosf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_acosf128.c
new file mode 100644
index 0000000000..7ddf7dcdf1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_acosf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_acosl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_acoshf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_acoshf128.c
new file mode 100644
index 0000000000..f6dd40cd88
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_acoshf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_acoshl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_asinf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_asinf128.c
new file mode 100644
index 0000000000..133ab8d875
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_asinf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_asinl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_atan2f128.c b/REORG.TODO/sysdeps/ieee754/float128/e_atan2f128.c
new file mode 100644
index 0000000000..9aa740f770
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_atan2f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_atan2l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_atanhf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_atanhf128.c
new file mode 100644
index 0000000000..f26c8d54d2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_atanhf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_atanhl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_coshf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_coshf128.c
new file mode 100644
index 0000000000..2abf067f64
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_coshf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_coshl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_exp10f128.c b/REORG.TODO/sysdeps/ieee754/float128/e_exp10f128.c
new file mode 100644
index 0000000000..b3468d256b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_exp10f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_exp10l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_expf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_expf128.c
new file mode 100644
index 0000000000..b727b17cc9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_expf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_expl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_fmodf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_fmodf128.c
new file mode 100644
index 0000000000..ed8a7491ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_fmodf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_fmodl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_gammaf128_r.c b/REORG.TODO/sysdeps/ieee754/float128/e_gammaf128_r.c
new file mode 100644
index 0000000000..895ac6374d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_gammaf128_r.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_gammal_r.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_hypotf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_hypotf128.c
new file mode 100644
index 0000000000..1f06555505
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_hypotf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_hypotl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_ilogbf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_ilogbf128.c
new file mode 100644
index 0000000000..2861801854
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_ilogbf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_ilogbl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_j0f128.c b/REORG.TODO/sysdeps/ieee754/float128/e_j0f128.c
new file mode 100644
index 0000000000..b624b5c596
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_j0f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_j0l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_j1f128.c b/REORG.TODO/sysdeps/ieee754/float128/e_j1f128.c
new file mode 100644
index 0000000000..445428e742
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_j1f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_j1l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_jnf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_jnf128.c
new file mode 100644
index 0000000000..7854e11a1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_jnf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_jnl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_lgammaf128_r.c b/REORG.TODO/sysdeps/ieee754/float128/e_lgammaf128_r.c
new file mode 100644
index 0000000000..3517ac32af
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_lgammaf128_r.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_lgammal_r.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_log10f128.c b/REORG.TODO/sysdeps/ieee754/float128/e_log10f128.c
new file mode 100644
index 0000000000..1c3341e412
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_log10f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_log10l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_log2f128.c b/REORG.TODO/sysdeps/ieee754/float128/e_log2f128.c
new file mode 100644
index 0000000000..36becaadc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_log2f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_log2l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_logf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_logf128.c
new file mode 100644
index 0000000000..b0c9975caf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_logf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_logl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_powf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_powf128.c
new file mode 100644
index 0000000000..3afaf7f6a6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_powf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_powl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_rem_pio2f128.c b/REORG.TODO/sysdeps/ieee754/float128/e_rem_pio2f128.c
new file mode 100644
index 0000000000..86c2ca1024
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_rem_pio2f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_rem_pio2l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_remainderf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_remainderf128.c
new file mode 100644
index 0000000000..90c18f8493
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_remainderf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_remainderl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_scalbf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_scalbf128.c
new file mode 100644
index 0000000000..067b724164
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_scalbf128.c
@@ -0,0 +1 @@
+/* Not defined for _FloatN types.  */
diff --git a/REORG.TODO/sysdeps/ieee754/float128/e_sinhf128.c b/REORG.TODO/sysdeps/ieee754/float128/e_sinhf128.c
new file mode 100644
index 0000000000..42a54e0015
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/e_sinhf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/e_sinhl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/float1282mpn.c b/REORG.TODO/sysdeps/ieee754/float128/float1282mpn.c
new file mode 100644
index 0000000000..f012ccf0a6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/float1282mpn.c
@@ -0,0 +1,20 @@
+/* Convert a _Float128 type to multiprecision.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float128_private.h>
+#include "../ldbl-128/ldbl2mpn.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/float128_private.h b/REORG.TODO/sysdeps/ieee754/float128/float128_private.h
new file mode 100644
index 0000000000..1e00853c83
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/float128_private.h
@@ -0,0 +1,326 @@
+/* _Float128 overrides for building ldbl-128 as _Float128.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This must be included before the function renames below.  */
+#include <gmp.h>
+#include <math.h>
+#undef HUGE_VALL
+#define HUGE_VALL HUGE_VAL_F128
+#include <math/mul_splitl.h>
+
+/* Renames derived from math_private.h.  */
+#include <math_private.h>
+#include <ieee754_float128.h>
+#define ieee854_long_double_shape_type ieee854_float128_shape_type
+#define ieee854_long_double ieee854_float128
+
+#undef GET_LDOUBLE_LSW64
+#undef GET_LDOUBLE_MSW64
+#undef GET_LDOUBLE_WORDS64
+#undef SET_LDOUBLE_LSW64
+#undef SET_LDOUBLE_MSW64
+#undef SET_LDOUBLE_WORDS64
+#define GET_LDOUBLE_LSW64(x,y) GET_FLOAT128_LSW64 (x, y)
+#define GET_LDOUBLE_MSW64(x,y) GET_FLOAT128_MSW64 (x, y)
+#define GET_LDOUBLE_WORDS64(x,y,z) GET_FLOAT128_WORDS64 (x, y, z)
+#define SET_LDOUBLE_LSW64(x,y) SET_FLOAT128_LSW64 (x, y)
+#define SET_LDOUBLE_MSW64(x,y) SET_FLOAT128_MSW64 (x, y)
+#define SET_LDOUBLE_WORDS64(x,y,z) SET_FLOAT128_WORDS64 (x, y, z)
+
+#undef IEEE854_LONG_DOUBLE_BIAS
+#define IEEE854_LONG_DOUBLE_BIAS IEEE854_FLOAT128_BIAS
+
+#ifdef SET_RESTORE_ROUNDF128
+# undef SET_RESTORE_ROUNDL
+# define SET_RESTORE_ROUNDL() SET_RESTORE_ROUNDF128()
+#endif
+
+
+/* misc macros from the header below.  */
+#include <fix-fp-int-convert-overflow.h>
+#undef FIX_LDBL_LONG_CONVERT_OVERFLOW
+#undef FIX_LDBL_LLONG_CONVERT_OVERFLOW
+#define FIX_LDBL_LONG_CONVERT_OVERFLOW FIX_FLT128_LONG_CONVERT_OVERFLOW
+#define FIX_LDBL_LLONG_CONVERT_OVERFLOW FIX_FLT128_LLONG_CONVERT_OVERFLOW
+
+
+/* float.h constants.  */
+#include <float.h>
+#undef LDBL_DIG
+#undef LDBL_EPSILON
+#undef LDBL_MANT_DIG
+#undef LDBL_MAX
+#undef LDBL_MAX_10_EXP
+#undef LDBL_MAX_EXP
+#undef LDBL_MIN
+#undef LDBL_MIN_10_EXP
+#undef LDBL_MIN_EXP
+#undef LDBL_TRUE_MIN
+#define LDBL_DIG FLT128_DIG
+#define LDBL_EPSILON FLT128_EPSILON
+#define LDBL_MANT_DIG FLT128_MANT_DIG
+#define LDBL_MAX FLT128_MAX
+#define LDBL_MAX_10_EXP FLT128_MAX_10_EXP
+#define LDBL_MAX_EXP FLT128_MAX_EXP
+#define LDBL_MIN FLT128_MIN
+#define LDBL_MIN_10_EXP FLT128_MIN_10_EXP
+#define LDBL_MIN_EXP FLT128_MIN_EXP
+#define LDBL_TRUE_MIN FLT128_TRUE_MIN
+
+
+/* math.h GNU constants.  */
+#undef M_El
+#undef M_LOG2El
+#undef M_LOG10El
+#undef M_LN2l
+#undef M_LN10l
+#undef M_PIl
+#undef M_PI_2l
+#undef M_PI_4l
+#undef M_1_PIl
+#undef M_2_PIl
+#undef M_2_SQRTPIl
+#undef M_SQRT2l
+#undef M_SQRT1_2l
+#define M_El M_Ef128
+#define M_LOG2El M_LOG2Ef128
+#define M_LOG10El M_LOG10Ef128
+#define M_LN2l M_LN2f128
+#define M_LN10l M_LN10f128
+#define M_PIl M_PIf128
+#define M_PI_2l M_PI_2f128
+#define M_PI_4l M_PI_4f128
+#define M_1_PIl M_1_PIf128
+#define M_2_PIl M_2_PIf128
+#define M_2_SQRTPIl M_2_SQRTPIf128
+#define M_SQRT2l M_SQRT2f128
+#define M_SQRT1_2l M_SQRT1_2f128
+
+
+/* IEEE function renames.  */
+#define __ieee754_acoshl __ieee754_acoshf128
+#define __ieee754_acosl __ieee754_acosf128
+#define __ieee754_asinhl __ieee754_asinhf128
+#define __ieee754_asinl __ieee754_asinf128
+#define __ieee754_atan2l __ieee754_atan2f128
+#define __ieee754_atanhl __ieee754_atanhf128
+#define __ieee754_coshl __ieee754_coshf128
+#define __ieee754_cosl __ieee754_cosf128
+#define __ieee754_exp10l __ieee754_exp10f128
+#define __ieee754_exp2l __ieee754_exp2f128
+#define __ieee754_expl __ieee754_expf128
+#define __ieee754_fmodl __ieee754_fmodf128
+#define __ieee754_gammal_r __ieee754_gammaf128_r
+#define __ieee754_hypotl __ieee754_hypotf128
+#define __ieee754_ilogbl __ieee754_ilogbf128
+#define __ieee754_j0l __ieee754_j0f128
+#define __ieee754_j1l __ieee754_j1f128
+#define __ieee754_jnl __ieee754_jnf128
+#define __ieee754_lgammal_r __ieee754_lgammaf128_r
+#define __ieee754_log10l __ieee754_log10f128
+#define __ieee754_log2l __ieee754_log2f128
+#define __ieee754_logl __ieee754_logf128
+#define __ieee754_powl __ieee754_powf128
+#define __ieee754_rem_pio2l __ieee754_rem_pio2f128
+#define __ieee754_remainderl __ieee754_remainderf128
+#define __ieee754_sinhl __ieee754_sinhf128
+#define __ieee754_sqrtl __ieee754_sqrtf128
+#define __ieee754_y0l __ieee754_y0f128
+#define __ieee754_y1l __ieee754_y1f128
+#define __ieee754_ynl __ieee754_ynf128
+
+
+/* finite math entry points.  */
+#define __acoshl_finite __acoshf128_finite
+#define __acosl_finite __acosf128_finite
+#define __asinl_finite __asinf128_finite
+#define __atan2l_finite __atan2f128_finite
+#define __atanhl_finite __atanhf128_finite
+#define __coshl_finite __coshf128_finite
+#define __cosl_finite __cosf128_finite
+#define __exp10l_finite __exp10f128_finite
+#define __exp2l_finite __exp2f128_finite
+#define __expl_finite __expf128_finite
+#define __fmodl_finite __fmodf128_finite
+#define __hypotl_finite __hypotf128_finite
+#define __ilogbl_finite __ilogbf128_finite
+#define __j0l_finite __j0f128_finite
+#define __j1l_finite __j1f128_finite
+#define __jnl_finite __jnf128_finite
+#define __lgammal_r_finite __lgammaf128_r_finite
+#define __log10l_finite __log10f128_finite
+#define __log2l_finite __log2f128_finite
+#define __logl_finite __logf128_finite
+#define __powl_finite __powf128_finite
+#define __remainderl_finite __remainderf128_finite
+#define __sinhl_finite __sinhf128_finite
+#define __y0l_finite __y0f128_finite
+#define __y1l_finite __y1f128_finite
+#define __ynl_finite __ynf128_finite
+
+
+/* internal function names.  */
+#define __asinhl __asinhf128
+#define __atanl __atanf128
+#define __cbrtl __cbrtf128
+#define __ceill __ceilf128
+#define __copysignl __copysignf128
+#define __cosl __cosf128
+#define __erfcl __erfcf128
+#define __erfl __erff128
+#define __expl __expf128
+#define __expm1l __expm1f128
+#define __fabsl __fabsf128
+#define __fdiml __fdimf128
+#define __finitel __finitef128
+#define __floorl __floorf128
+#define __fmal __fmaf128
+#define __fmaxl __fmaxf128
+#define __fminl __fminf128
+#define __fpclassifyl __fpclassifyf128
+#define __frexpl __frexpf128
+#define __gammal_r_finite __gammaf128_r_finite
+#define __isinfl __isinff128
+#define __isnanl __isnanf128
+#define __issignalingl __issignalingf128
+#define __ldexpl __ldexpf128
+#define __llrintl __llrintf128
+#define __llroundl __llroundf128
+#define __log1pl __log1pf128
+#define __logbl __logbf128
+#define __logl __logf128
+#define __lrintl __lrintf128
+#define __lroundl __lroundf128
+#define __modfl __modff128
+#define __nearbyintl __nearbyintf128
+#define __nextafterl __nextafterf128
+#define __nextdownl __nextdownf128
+#define __nextupl __nextupf128
+#define __remquol __remquof128
+#define __rintl __rintf128
+#define __roundl __roundf128
+#define __scalblnl __scalblnf128
+#define __scalbnl __scalbnf128
+#define __signbitl __signbitf128
+#define __sincosl __sincosf128
+#define __sinl __sinf128
+#define __sqrtl __sqrtf128
+#define __tanhl __tanhf128
+#define __tanl __tanf128
+#define __truncl __truncf128
+#define __x2y2m1l __x2y2m1f128
+
+/* __nexttowardf128 is not _Float128 API. */
+#define __nexttowardl __nexttowardf128_do_not_use
+#define nexttowardl nexttowardf128_do_not_use
+
+
+/* public entry points.  */
+#define asinhl asinhf128
+#define atanl atanf128
+#define cbrtl cbrtf128
+#define ceill ceilf128
+#define copysignl copysignf128
+#define cosl cosf128
+#define erfcl erfcf128
+#define erfl erff128
+#define expl expf128
+#define expm1l expm1f128
+#define fabsl fabsf128
+#define fdiml fdimf128
+#define finitel finitef128_do_not_use
+#define floorl floorf128
+#define fmal fmaf128
+#define fmaxl fmaxf128
+#define fminl fminf128
+#define frexpl frexpf128
+#define getpayloadl getpayloadf128
+#define isinfl isinff128_do_not_use
+#define isnanl isnanf128_do_not_use
+#define ldexpl ldexpf128
+#define llrintl llrintf128
+#define llroundl llroundf128
+#define log1pl log1pf128
+#define logbl logbf128
+#define logl logf128
+#define lrintl lrintf128
+#define lroundl lroundf128
+#define modfl modff128
+#define nanl nanf128
+#define nearbyintl nearbyintf128
+#define nextafterl nextafterf128
+#define nextdownl nextdownf128
+#define nextupl nextupf128
+#define remquol remquof128
+#define rintl rintf128
+#define roundevenl roundevenf128
+#define roundl roundf128
+#define scalbnl scalbnf128
+#define sincosl sincosf128
+#define sinl sinf128
+#define sqrtl sqrtf128
+#define tanhl tanhf128
+#define tanl tanf128
+#define totalorderl totalorderf128
+#define totalordermagl totalordermagf128
+#define truncl truncf128
+
+
+/* misc internal renames.  */
+#define __builtin_fmal __builtin_fmaf128
+#define __expl_table __expf128_table
+#define __gamma_productl __gamma_productf128
+#define __kernel_cosl __kernel_cosf128
+#define __kernel_rem_pio2l __kernel_rem_pio2f128
+#define __kernel_sincosl __kernel_sincosf128
+#define __kernel_sinl __kernel_sinf128
+#define __kernel_tanl __kernel_tanf128
+#define __lgamma_negl __lgamma_negf128
+#define __lgamma_productl __lgamma_productf128
+#define __mpn_extract_long_double __mpn_extract_float128
+#define __sincosl_table __sincosf128_table
+#define mul_splitl mul_splitf128
+
+/* Builtin renames.  */
+#define __builtin_copysignl __builtin_copysignf128
+#define __builtin_signbitl __builtin_signbit
+
+/* Get the constant suffix from bits/floatn-compat.h.  */
+#define L(x) __f128 (x)
+
+static inline void
+mul_splitf128 (_Float128 *hi, _Float128 *lo, _Float128 x, _Float128 y)
+{
+#ifdef __FP_FAST_FMAF128
+  /* Fast built-in fused multiply-add.  */
+  *hi = x * y;
+  *lo = __builtin_fmal (x, y, -*hi);
+#else
+  /* Apply Dekker's algorithm.  */
+  *hi = x * y;
+# define C ((1LL << (FLT128_MANT_DIG + 1) / 2) + 1)
+  _Float128 x1 = x * C;
+  _Float128 y1 = y * C;
+# undef C
+  x1 = (x - x1) + x1;
+  y1 = (y - y1) + y1;
+  _Float128 x2 = x - x1;
+  _Float128 y2 = y - y1;
+  *lo = (((x1 * y1 - *hi) + x1 * y2) + x2 * y1) + x2 * y2;
+#endif
+}
diff --git a/REORG.TODO/sysdeps/ieee754/float128/gamma_productf128.c b/REORG.TODO/sysdeps/ieee754/float128/gamma_productf128.c
new file mode 100644
index 0000000000..be2271f12f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/gamma_productf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/gamma_productl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/ieee754_float128.h b/REORG.TODO/sysdeps/ieee754/float128/ieee754_float128.h
new file mode 100644
index 0000000000..e8e7211d88
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/ieee754_float128.h
@@ -0,0 +1,140 @@
+/* _Float128 IEEE like macros.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+#ifndef _IEEE754_FLOAT128_H
+#define _IEEE754_FLOAT128_H
+
+#include <endian.h>
+#include <stdint.h>
+
+# if __FLOAT_WORD_ORDER == BIG_ENDIAN
+#  define __FLT_EORDER2(t, a, b) t a; t b;
+#  define __FLT_EORDER4(t, a, b, c, d) \
+			t a; t b; t c; t d;
+#  define __FLT_EORDER6(t, a, b, c, d, e, f)  \
+			t a; t b; t c; t d; t e; t f;
+#  define __FLT_EORDER7(t, a, b, c, d, e, f, g)  \
+			t a; t b; t c; t d; t e; t f; t g;
+# else
+#  define __FLT_EORDER2(t, a, b) \
+			t b; t a;
+#  define __FLT_EORDER4(t, a, b, c, d) \
+			t d; t c; t b; t a;
+#  define __FLT_EORDER6(t, a, b, c, d, e, f)  \
+			t f; t e; t d; t c; t b; t a;
+#  define __FLT_EORDER7(t, a, b, c, d, e, f, g)  \
+			t g; t f; t e; t d; t c; t b; t a;
+# endif
+
+/* A union which permits us to convert between _Float128 and
+   four 32 bit ints or two 64 bit ints.  */
+
+typedef union
+{
+  _Float128 value;
+  struct
+  {
+    __FLT_EORDER2 (uint64_t, msw, lsw);
+  } parts64;
+  struct
+  {
+    __FLT_EORDER4 (uint32_t, w0, w1, w2, w3);
+  } parts32;
+} ieee854_float128_shape_type;
+
+/* Get two 64 bit ints from a _Float128.  */
+
+# define GET_FLOAT128_WORDS64(ix0,ix1,d)			\
+do {								\
+  ieee854_float128_shape_type qw_u;				\
+  qw_u.value = (d);						\
+  (ix0) = qw_u.parts64.msw;					\
+  (ix1) = qw_u.parts64.lsw;					\
+} while (0)
+
+/* Set a _Float128 from two 64 bit ints.  */
+
+# define SET_FLOAT128_WORDS64(d,ix0,ix1)			\
+do {								\
+  ieee854_float128_shape_type qw_u;				\
+  qw_u.parts64.msw = (ix0);					\
+  qw_u.parts64.lsw = (ix1);					\
+  (d) = qw_u.value;						\
+} while (0)
+
+/* Get the more significant 64 bits of a _Float128 mantissa.  */
+
+# define GET_FLOAT128_MSW64(v,d)				\
+do {								\
+  ieee854_float128_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  (v) = sh_u.parts64.msw;					\
+} while (0)
+
+/* Set the more significant 64 bits of a _Float128 mantissa from an int.  */
+
+# define SET_FLOAT128_MSW64(d,v)				\
+do {								\
+  ieee854_float128_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  sh_u.parts64.msw = (v);					\
+  (d) = sh_u.value;						\
+} while (0)
+
+/* Get the least significant 64 bits of a _Float128 mantissa.  */
+
+# define GET_FLOAT128_LSW64(v,d)				\
+do {								\
+  ieee854_float128_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  (v) = sh_u.parts64.lsw;					\
+} while (0)
+
+/* Likewise, some helper macros which are exposed via ieee754.h for
+   C99 real types, but not _Float128.  */
+
+union ieee854_float128
+  {
+    _Float128 d;
+
+    /* This is the IEEE 854 quad-precision format.  */
+    struct
+      {
+	__FLT_EORDER6 (unsigned int, negative:1,
+				     exponent:15,
+				     mantissa0:16,
+				     mantissa1:32,
+				     mantissa2:32,
+				     mantissa3:32)
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+	__FLT_EORDER7 (unsigned int, negative:1,
+				     exponent:15,
+				     quiet_nan:1,
+				     mantissa0:15,
+				     mantissa1:32,
+				     mantissa2:32,
+				     mantissa3:32)
+      } ieee_nan;
+  };
+
+#define IEEE854_FLOAT128_BIAS 0x3fff /* Added to exponent.  */
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/float128/k_cosf128.c b/REORG.TODO/sysdeps/ieee754/float128/k_cosf128.c
new file mode 100644
index 0000000000..9db0906e9a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/k_cosf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/k_cosl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/k_sincosf128.c b/REORG.TODO/sysdeps/ieee754/float128/k_sincosf128.c
new file mode 100644
index 0000000000..14c0f1eccf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/k_sincosf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/k_sincosl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/k_sinf128.c b/REORG.TODO/sysdeps/ieee754/float128/k_sinf128.c
new file mode 100644
index 0000000000..f3acf1cfe1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/k_sinf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/k_sinl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/k_tanf128.c b/REORG.TODO/sysdeps/ieee754/float128/k_tanf128.c
new file mode 100644
index 0000000000..ca6be539f7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/k_tanf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/k_tanl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/lgamma_negf128.c b/REORG.TODO/sysdeps/ieee754/float128/lgamma_negf128.c
new file mode 100644
index 0000000000..9c16f93025
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/lgamma_negf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/lgamma_negl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/lgamma_productf128.c b/REORG.TODO/sysdeps/ieee754/float128/lgamma_productf128.c
new file mode 100644
index 0000000000..5efe5dd576
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/lgamma_productf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/lgamma_productl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_asinhf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_asinhf128.c
new file mode 100644
index 0000000000..7b93d8cf3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_asinhf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_asinhl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_atanf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_atanf128.c
new file mode 100644
index 0000000000..9b4d7ecec3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_atanf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_atanl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_cbrtf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_cbrtf128.c
new file mode 100644
index 0000000000..3bd5797373
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_cbrtf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_cbrtl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_ceilf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_ceilf128.c
new file mode 100644
index 0000000000..0af15f5f03
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_ceilf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_ceill.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_copysignf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_copysignf128.c
new file mode 100644
index 0000000000..808f7abbc0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_copysignf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_copysignl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_cosf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_cosf128.c
new file mode 100644
index 0000000000..8ba552695c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_cosf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_cosl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_erff128.c b/REORG.TODO/sysdeps/ieee754/float128/s_erff128.c
new file mode 100644
index 0000000000..ac16ad6665
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_erff128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_erfl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_expm1f128.c b/REORG.TODO/sysdeps/ieee754/float128/s_expm1f128.c
new file mode 100644
index 0000000000..ea28d89db4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_expm1f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_expm1l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_fabsf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_fabsf128.c
new file mode 100644
index 0000000000..79ba47c3fd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_fabsf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_fabsl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_finitef128.c b/REORG.TODO/sysdeps/ieee754/float128/s_finitef128.c
new file mode 100644
index 0000000000..801de88e32
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_finitef128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_finitel.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_floorf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_floorf128.c
new file mode 100644
index 0000000000..18298436a1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_floorf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_floorl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_fmaf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_fmaf128.c
new file mode 100644
index 0000000000..6497895c8d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_fmaf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_fmal.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_fpclassifyf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_fpclassifyf128.c
new file mode 100644
index 0000000000..15131dc4a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_fpclassifyf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_fpclassifyl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_frexpf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_frexpf128.c
new file mode 100644
index 0000000000..7b040b3e33
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_frexpf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_frexpl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_fromfpf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_fromfpf128.c
new file mode 100644
index 0000000000..891de3d448
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_fromfpf128.c
@@ -0,0 +1,5 @@
+#define UNSIGNED 0
+#define INEXACT 0
+#define FUNC fromfpf128
+#include <float128_private.h>
+#include "../ldbl-128/s_fromfpl_main.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_fromfpxf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_fromfpxf128.c
new file mode 100644
index 0000000000..21676fab03
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_fromfpxf128.c
@@ -0,0 +1,5 @@
+#define UNSIGNED 0
+#define INEXACT 1
+#define FUNC fromfpxf128
+#include <float128_private.h>
+#include "../ldbl-128/s_fromfpl_main.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_getpayloadf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_getpayloadf128.c
new file mode 100644
index 0000000000..2e2607a81b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_getpayloadf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_getpayloadl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_isinff128.c b/REORG.TODO/sysdeps/ieee754/float128/s_isinff128.c
new file mode 100644
index 0000000000..62cc424b16
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_isinff128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_isinfl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_isnanf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_isnanf128.c
new file mode 100644
index 0000000000..efba24059a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_isnanf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_isnanl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_issignalingf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_issignalingf128.c
new file mode 100644
index 0000000000..1d4599544f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_issignalingf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_issignalingl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_llrintf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_llrintf128.c
new file mode 100644
index 0000000000..bb9ca580cd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_llrintf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_llrintl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_llroundf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_llroundf128.c
new file mode 100644
index 0000000000..be54a90608
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_llroundf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_llroundl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_log1pf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_log1pf128.c
new file mode 100644
index 0000000000..48bb84f987
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_log1pf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_log1pl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_logbf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_logbf128.c
new file mode 100644
index 0000000000..167384a8d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_logbf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_logbl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_lrintf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_lrintf128.c
new file mode 100644
index 0000000000..1cfa9d7ca4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_lrintf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_lrintl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_lroundf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_lroundf128.c
new file mode 100644
index 0000000000..13ba9f220d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_lroundf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_lroundl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_modff128.c b/REORG.TODO/sysdeps/ieee754/float128/s_modff128.c
new file mode 100644
index 0000000000..4618c6c380
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_modff128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_modfl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_nearbyintf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_nearbyintf128.c
new file mode 100644
index 0000000000..e61a3b3bfb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_nearbyintf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_nearbyintl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_nextafterf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_nextafterf128.c
new file mode 100644
index 0000000000..2c43a00384
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_nextafterf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_nextafterl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_nexttowardf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_nexttowardf128.c
new file mode 100644
index 0000000000..006e4c98b1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_nexttowardf128.c
@@ -0,0 +1 @@
+/* This function does not exist for _FloatN types.  */
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_nextupf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_nextupf128.c
new file mode 100644
index 0000000000..7d5d0b8c72
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_nextupf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_nextupl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_remquof128.c b/REORG.TODO/sysdeps/ieee754/float128/s_remquof128.c
new file mode 100644
index 0000000000..1cef61ab1b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_remquof128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_remquol.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_rintf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_rintf128.c
new file mode 100644
index 0000000000..2adb95f360
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_rintf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_rintl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_roundevenf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_roundevenf128.c
new file mode 100644
index 0000000000..5a9b3f395f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_roundevenf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_roundevenl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_roundf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_roundf128.c
new file mode 100644
index 0000000000..1eb36f2a5e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_roundf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_roundl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_scalblnf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_scalblnf128.c
new file mode 100644
index 0000000000..999223c517
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_scalblnf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_scalblnl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_scalbnf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_scalbnf128.c
new file mode 100644
index 0000000000..0e7ab2663b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_scalbnf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_scalbnl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_setpayloadf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_setpayloadf128.c
new file mode 100644
index 0000000000..63e046a269
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_setpayloadf128.c
@@ -0,0 +1,4 @@
+#include <float128_private.h>
+#define SIG 0
+#define FUNC setpayloadf128
+#include "../ldbl-128/s_setpayloadl_main.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_setpayloadsigf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_setpayloadsigf128.c
new file mode 100644
index 0000000000..85b2c4a1a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_setpayloadsigf128.c
@@ -0,0 +1,4 @@
+#include <float128_private.h>
+#define SIG 1
+#define FUNC setpayloadsigf128
+#include "../ldbl-128/s_setpayloadl_main.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_signbitf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_signbitf128.c
new file mode 100644
index 0000000000..71c1ca3a34
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_signbitf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_signbitl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_significandf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_significandf128.c
new file mode 100644
index 0000000000..067b724164
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_significandf128.c
@@ -0,0 +1 @@
+/* Not defined for _FloatN types.  */
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_sincosf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_sincosf128.c
new file mode 100644
index 0000000000..472adde17f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_sincosf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_sincosl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_sinf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_sinf128.c
new file mode 100644
index 0000000000..d79a1163a5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_sinf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_sinl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_tanf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_tanf128.c
new file mode 100644
index 0000000000..382961aada
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_tanf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_tanl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_tanhf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_tanhf128.c
new file mode 100644
index 0000000000..e02c9a6005
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_tanhf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_tanhl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_totalorderf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_totalorderf128.c
new file mode 100644
index 0000000000..1b115d8307
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_totalorderf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_totalorderl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_totalordermagf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_totalordermagf128.c
new file mode 100644
index 0000000000..e44c657275
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_totalordermagf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_totalordermagl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_truncf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_truncf128.c
new file mode 100644
index 0000000000..474d9dc77e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_truncf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/s_truncl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_ufromfpf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_ufromfpf128.c
new file mode 100644
index 0000000000..0cd2281035
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_ufromfpf128.c
@@ -0,0 +1,5 @@
+#define UNSIGNED 1
+#define INEXACT 0
+#define FUNC ufromfpf128
+#include <float128_private.h>
+#include "../ldbl-128/s_fromfpl_main.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/s_ufromfpxf128.c b/REORG.TODO/sysdeps/ieee754/float128/s_ufromfpxf128.c
new file mode 100644
index 0000000000..c0cd7e3bc8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/s_ufromfpxf128.c
@@ -0,0 +1,5 @@
+#define UNSIGNED 1
+#define INEXACT 1
+#define FUNC ufromfpxf128
+#include <float128_private.h>
+#include "../ldbl-128/s_fromfpl_main.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/strfromf128.c b/REORG.TODO/sysdeps/ieee754/float128/strfromf128.c
new file mode 100644
index 0000000000..597c7e62f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/strfromf128.c
@@ -0,0 +1,25 @@
+/* Definitions for strfromf128.  Implementation in stdlib/strfrom-skeleton.c.
+
+   Copyright (C) 2017 Free Software Foundation, Inc.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define	FLOAT		_Float128
+#define STRFROM		strfromf128
+
+#include <bits/floatn.h>
+#include <float128_private.h>
+
+#include <stdlib/strfrom-skeleton.c>
diff --git a/REORG.TODO/sysdeps/ieee754/float128/t_sincosf128.c b/REORG.TODO/sysdeps/ieee754/float128/t_sincosf128.c
new file mode 100644
index 0000000000..7e699d3c8e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/t_sincosf128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/t_sincosl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/float128/x2y2m1f128.c b/REORG.TODO/sysdeps/ieee754/float128/x2y2m1f128.c
new file mode 100644
index 0000000000..68880792e6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/float128/x2y2m1f128.c
@@ -0,0 +1,2 @@
+#include <float128_private.h>
+#include "../ldbl-128/x2y2m1l.c"
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_acosf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_acosf.c
new file mode 100644
index 0000000000..6f792f6604
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_acosf.c
@@ -0,0 +1,78 @@
+/* e_acosf.c -- float version of e_acos.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+one =  1.0000000000e+00, /* 0x3F800000 */
+pi =  3.1415925026e+00, /* 0x40490fda */
+pio2_hi =  1.5707962513e+00, /* 0x3fc90fda */
+pio2_lo =  7.5497894159e-08, /* 0x33a22168 */
+pS0 =  1.6666667163e-01, /* 0x3e2aaaab */
+pS1 = -3.2556581497e-01, /* 0xbea6b090 */
+pS2 =  2.0121252537e-01, /* 0x3e4e0aa8 */
+pS3 = -4.0055535734e-02, /* 0xbd241146 */
+pS4 =  7.9153501429e-04, /* 0x3a4f7f04 */
+pS5 =  3.4793309169e-05, /* 0x3811ef08 */
+qS1 = -2.4033949375e+00, /* 0xc019d139 */
+qS2 =  2.0209457874e+00, /* 0x4001572d */
+qS3 = -6.8828397989e-01, /* 0xbf303361 */
+qS4 =  7.7038154006e-02; /* 0x3d9dc62e */
+
+float
+__ieee754_acosf(float x)
+{
+	float z,p,q,r,w,s,c,df;
+	int32_t hx,ix;
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(ix==0x3f800000) {		/* |x|==1 */
+	    if(hx>0) return 0.0;	/* acos(1) = 0  */
+	    else return pi+(float)2.0*pio2_lo;	/* acos(-1)= pi */
+	} else if(ix>0x3f800000) {	/* |x| >= 1 */
+	    return (x-x)/(x-x);		/* acos(|x|>1) is NaN */
+	}
+	if(ix<0x3f000000) {	/* |x| < 0.5 */
+	    if(ix<=0x32800000) return pio2_hi+pio2_lo;/*if|x|<=2**-26*/
+	    z = x*x;
+	    p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+	    q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+	    r = p/q;
+	    return pio2_hi - (x - (pio2_lo-x*r));
+	} else  if (hx<0) {		/* x < -0.5 */
+	    z = (one+x)*(float)0.5;
+	    p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+	    q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+	    s = __ieee754_sqrtf(z);
+	    r = p/q;
+	    w = r*s-pio2_lo;
+	    return pi - (float)2.0*(s+w);
+	} else {			/* x > 0.5 */
+	    int32_t idf;
+	    z = (one-x)*(float)0.5;
+	    s = __ieee754_sqrtf(z);
+	    df = s;
+	    GET_FLOAT_WORD(idf,df);
+	    SET_FLOAT_WORD(df,idf&0xfffff000);
+	    c  = (z-df*df)/(s+df);
+	    p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*pS5)))));
+	    q = one+z*(qS1+z*(qS2+z*(qS3+z*qS4)));
+	    r = p/q;
+	    w = r*s+c;
+	    return (float)2.0*(df+w);
+	}
+}
+strong_alias (__ieee754_acosf, __acosf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_acoshf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_acoshf.c
new file mode 100644
index 0000000000..aabfb85df7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_acoshf.c
@@ -0,0 +1,49 @@
+/* e_acoshf.c -- float version of e_acosh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_acoshf.c,v 1.5 1995/05/12 04:57:20 jtc Exp $";
+#endif
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+one	= 1.0,
+ln2	= 6.9314718246e-01;  /* 0x3f317218 */
+
+float __ieee754_acoshf(float x)
+{
+	float t;
+	int32_t hx;
+	GET_FLOAT_WORD(hx,x);
+	if(hx<0x3f800000) {		/* x < 1 */
+	    return (x-x)/(x-x);
+	} else if(hx >=0x4d800000) {	/* x > 2**28 */
+	    if(hx >=0x7f800000) {	/* x is inf of NaN */
+		return x+x;
+	    } else
+		return __ieee754_logf(x)+ln2;	/* acosh(huge)=log(2x) */
+	} else if (hx==0x3f800000) {
+	    return 0.0;			/* acosh(1) = 0 */
+	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
+	    t=x*x;
+	    return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one)));
+	} else {			/* 1<x<2 */
+	    t = x-one;
+	    return __log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t));
+	}
+}
+strong_alias (__ieee754_acoshf, __acoshf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_asinf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_asinf.c
new file mode 100644
index 0000000000..2ca2dbcb28
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_asinf.c
@@ -0,0 +1,104 @@
+/* e_asinf.c -- float version of e_asin.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+  Modifications for single precision expansion are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_asinf.c,v 1.5 1995/05/12 04:57:25 jtc Exp $";
+#endif
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float
+one =  1.0000000000e+00, /* 0x3F800000 */
+huge =  1.000e+30,
+
+pio2_hi = 1.57079637050628662109375f,
+pio2_lo = -4.37113900018624283e-8f,
+pio4_hi = 0.785398185253143310546875f,
+
+/* asin x = x + x^3 p(x^2)
+   -0.5 <= x <= 0.5;
+   Peak relative error 4.8e-9 */
+p0 = 1.666675248e-1f,
+p1 = 7.495297643e-2f,
+p2 = 4.547037598e-2f,
+p3 = 2.417951451e-2f,
+p4 = 4.216630880e-2f;
+
+float __ieee754_asinf(float x)
+{
+	float t,w,p,q,c,r,s;
+	int32_t hx,ix;
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(ix==0x3f800000) {
+		/* asin(1)=+-pi/2 with inexact */
+	    return x*pio2_hi+x*pio2_lo;
+	} else if(ix> 0x3f800000) {	/* |x|>= 1 */
+	    return (x-x)/(x-x);		/* asin(|x|>1) is NaN */
+	} else if (ix<0x3f000000) {	/* |x|<0.5 */
+	    if(ix<0x32000000) {		/* if |x| < 2**-27 */
+		math_check_force_underflow (x);
+		if(huge+x>one) return x;/* return x with inexact if x!=0*/
+	    } else {
+		t = x*x;
+		w = t * (p0 + t * (p1 + t * (p2 + t * (p3 + t * p4))));
+		return x+x*w;
+	    }
+	}
+	/* 1> |x|>= 0.5 */
+	w = one-fabsf(x);
+	t = w*0.5f;
+	p = t * (p0 + t * (p1 + t * (p2 + t * (p3 + t * p4))));
+	s = __ieee754_sqrtf(t);
+	if(ix>=0x3F79999A) {	/* if |x| > 0.975 */
+	    t = pio2_hi-(2.0f*(s+s*p)-pio2_lo);
+	} else {
+	    int32_t iw;
+	    w  = s;
+	    GET_FLOAT_WORD(iw,w);
+	    SET_FLOAT_WORD(w,iw&0xfffff000);
+	    c  = (t-w*w)/(s+w);
+	    r  = p;
+	    p  = 2.0f*s*r-(pio2_lo-2.0f*c);
+	    q  = pio4_hi-2.0f*w;
+	    t  = pio4_hi-(p-q);
+	}
+	if(hx>0) return t; else return -t;
+}
+strong_alias (__ieee754_asinf, __asinf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_atan2f.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_atan2f.c
new file mode 100644
index 0000000000..29eefc0dd6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_atan2f.c
@@ -0,0 +1,94 @@
+/* e_atan2f.c -- float version of e_atan2.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+tiny  = 1.0e-30,
+zero  = 0.0,
+pi_o_4  = 7.8539818525e-01,  /* 0x3f490fdb */
+pi_o_2  = 1.5707963705e+00,  /* 0x3fc90fdb */
+pi      = 3.1415927410e+00,  /* 0x40490fdb */
+pi_lo   = -8.7422776573e-08; /* 0xb3bbbd2e */
+
+float
+__ieee754_atan2f (float y, float x)
+{
+	float z;
+	int32_t k,m,hx,hy,ix,iy;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	GET_FLOAT_WORD(hy,y);
+	iy = hy&0x7fffffff;
+	if((ix>0x7f800000)||
+	   (iy>0x7f800000))	/* x or y is NaN */
+	   return x+y;
+	if(hx==0x3f800000) return __atanf(y);   /* x=1.0 */
+	m = ((hy>>31)&1)|((hx>>30)&2);	/* 2*sign(x)+sign(y) */
+
+    /* when y = 0 */
+	if(iy==0) {
+	    switch(m) {
+		case 0:
+		case 1: return y;	/* atan(+-0,+anything)=+-0 */
+		case 2: return  pi+tiny;/* atan(+0,-anything) = pi */
+		case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
+	    }
+	}
+    /* when x = 0 */
+	if(ix==0) return (hy<0)?  -pi_o_2-tiny: pi_o_2+tiny;
+
+    /* when x is INF */
+	if(ix==0x7f800000) {
+	    if(iy==0x7f800000) {
+		switch(m) {
+		    case 0: return  pi_o_4+tiny;/* atan(+INF,+INF) */
+		    case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
+		    case 2: return  (float)3.0*pi_o_4+tiny;/*atan(+INF,-INF)*/
+		    case 3: return (float)-3.0*pi_o_4-tiny;/*atan(-INF,-INF)*/
+		}
+	    } else {
+		switch(m) {
+		    case 0: return  zero  ;	/* atan(+...,+INF) */
+		    case 1: return -zero  ;	/* atan(-...,+INF) */
+		    case 2: return  pi+tiny  ;	/* atan(+...,-INF) */
+		    case 3: return -pi-tiny  ;	/* atan(-...,-INF) */
+		}
+	    }
+	}
+    /* when y is INF */
+	if(iy==0x7f800000) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+
+    /* compute y/x */
+	k = (iy-ix)>>23;
+	if(k > 60) z=pi_o_2+(float)0.5*pi_lo;	/* |y/x| >  2**60 */
+	else if(hx<0&&k<-60) z=0.0;	/* |y|/x < -2**60 */
+	else z=__atanf(fabsf(y/x));	/* safe to do y/x */
+	switch (m) {
+	    case 0: return       z  ;	/* atan(+,+) */
+	    case 1: {
+		      u_int32_t zh;
+		      GET_FLOAT_WORD(zh,z);
+		      SET_FLOAT_WORD(z,zh ^ 0x80000000);
+		    }
+		    return       z  ;	/* atan(-,+) */
+	    case 2: return  pi-(z-pi_lo);/* atan(+,-) */
+	    default: /* case 3 */
+		    return  (z-pi_lo)-pi;/* atan(-,-) */
+	}
+}
+strong_alias (__ieee754_atan2f, __atan2f_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_atanhf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_atanhf.c
new file mode 100644
index 0000000000..feb6beeec7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_atanhf.c
@@ -0,0 +1,74 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+
+/* __ieee754_atanh(x)
+   Method :
+      1.Reduced x to positive by atanh(-x) = -atanh(x)
+      2.For x>=0.5
+		    1              2x                          x
+	atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
+		    2             1 - x                      1 - x
+
+	For x<0.5
+	atanh(x) = 0.5*log1p(2x+2x*x/(1-x))
+
+   Special cases:
+	atanh(x) is NaN if |x| > 1 with signal;
+	atanh(NaN) is that NaN with no signal;
+	atanh(+-1) is +-INF with signal.
+
+ */
+
+#include <float.h>
+#include <inttypes.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float huge = 1e30;
+
+float
+__ieee754_atanhf (float x)
+{
+  float xa = fabsf (x);
+  float t;
+  if (isless (xa, 0.5f))
+    {
+      if (__glibc_unlikely (xa < 0x1.0p-28f))
+	{
+	  math_force_eval (huge + x);
+	  math_check_force_underflow (x);
+	  return x;
+	}
+
+      t = xa + xa;
+      t = 0.5f * __log1pf (t + t * xa / (1.0f - xa));
+    }
+  else if (__glibc_likely (isless (xa, 1.0f)))
+    t = 0.5f * __log1pf ((xa + xa) / (1.0f - xa));
+  else
+    {
+      if (isgreater (xa, 1.0f))
+	return (x - x) / (x - x);
+
+      return x / 0.0f;
+    }
+
+  return __copysignf (t, x);
+}
+strong_alias (__ieee754_atanhf, __atanhf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_coshf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_coshf.c
new file mode 100644
index 0000000000..7b223758e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_coshf.c
@@ -0,0 +1,63 @@
+/* e_coshf.c -- float version of e_cosh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ * Optimizations by Ulrich Drepper <drepper@gmail.com>, 2011
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float huge = 1.0e30;
+static const float one = 1.0, half=0.5;
+
+float
+__ieee754_coshf (float x)
+{
+	float t,w;
+	int32_t ix;
+
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;
+
+    /* |x| in [0,22] */
+	if (ix < 0x41b00000) {
+	    /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
+		if(ix<0x3eb17218) {
+		    if (ix<0x24000000) return one;	/* cosh(tiny) = 1 */
+		    t = __expm1f(fabsf(x));
+		    w = one+t;
+		    return one+(t*t)/(w+w);
+		}
+
+	    /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+		t = __ieee754_expf(fabsf(x));
+		return half*t+half/t;
+	}
+
+    /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
+	if (ix < 0x42b17180)  return half*__ieee754_expf(fabsf(x));
+
+    /* |x| in [log(maxdouble), overflowthresold] */
+	if (ix<=0x42b2d4fc) {
+	    w = __ieee754_expf(half*fabsf(x));
+	    t = half*w;
+	    return t*w;
+	}
+
+    /* x is INF or NaN */
+	if(ix>=0x7f800000) return x*x;
+
+    /* |x| > overflowthresold, cosh(x) overflow */
+	return math_narrow_eval (huge*huge);
+}
+strong_alias (__ieee754_coshf, __coshf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_exp2f.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_exp2f.c
new file mode 100644
index 0000000000..567d3ff6d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_exp2f.c
@@ -0,0 +1,132 @@
+/* Single-precision floating point 2^x.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Geoffrey Keating <geoffk@ozemail.com.au>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* The basic design here is from
+   Shmuel Gal and Boris Bachelis, "An Accurate Elementary Mathematical
+   Library for the IEEE Floating Point Standard", ACM Trans. Math. Soft.,
+   17 (1), March 1991, pp. 26-45.
+   It has been slightly modified to compute 2^x instead of e^x, and for
+   single-precision.
+   */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
+#include <stdlib.h>
+#include <float.h>
+#include <ieee754.h>
+#include <math.h>
+#include <fenv.h>
+#include <inttypes.h>
+#include <math_private.h>
+
+#include "t_exp2f.h"
+
+static const float TWOM100 = 7.88860905e-31;
+static const float TWO127 = 1.7014118346e+38;
+
+float
+__ieee754_exp2f (float x)
+{
+  static const float himark = (float) FLT_MAX_EXP;
+  static const float lomark = (float) (FLT_MIN_EXP - FLT_MANT_DIG - 1);
+
+  /* Check for usual case.  */
+  if (isless (x, himark) && isgreaterequal (x, lomark))
+    {
+      static const float THREEp14 = 49152.0;
+      int tval, unsafe;
+      float rx, x22, result;
+      union ieee754_float ex2_u, scale_u;
+
+      if (fabsf (x) < FLT_EPSILON / 4.0f)
+	return 1.0f + x;
+
+      {
+	SET_RESTORE_ROUND_NOEXF (FE_TONEAREST);
+
+	/* 1. Argument reduction.
+	   Choose integers ex, -128 <= t < 128, and some real
+	   -1/512 <= x1 <= 1/512 so that
+	   x = ex + t/512 + x1.
+
+	   First, calculate rx = ex + t/256.  */
+	rx = x + THREEp14;
+	rx -= THREEp14;
+	x -= rx;  /* Compute x=x1. */
+	/* Compute tval = (ex*256 + t)+128.
+	   Now, t = (tval mod 256)-128 and ex=tval/256  [that's mod, NOT %;
+	   and /-round-to-nearest not the usual c integer /].  */
+	tval = (int) (rx * 256.0f + 128.0f);
+
+	/* 2. Adjust for accurate table entry.
+	   Find e so that
+	   x = ex + t/256 + e + x2
+	   where -7e-4 < e < 7e-4, and
+	   (float)(2^(t/256+e))
+	   is accurate to one part in 2^-64.  */
+
+	/* 'tval & 255' is the same as 'tval%256' except that it's always
+	   positive.
+	   Compute x = x2.  */
+	x -= __exp2f_deltatable[tval & 255];
+
+	/* 3. Compute ex2 = 2^(t/255+e+ex).  */
+	ex2_u.f = __exp2f_atable[tval & 255];
+	tval >>= 8;
+	/* x2 is an integer multiple of 2^-30; avoid intermediate
+	   underflow from the calculation of x22 * x.  */
+	unsafe = abs(tval) >= -FLT_MIN_EXP - 32;
+	ex2_u.ieee.exponent += tval >> unsafe;
+	scale_u.f = 1.0;
+	scale_u.ieee.exponent += tval - (tval >> unsafe);
+
+	/* 4. Approximate 2^x2 - 1, using a second-degree polynomial,
+	   with maximum error in [-2^-9 - 2^-14, 2^-9 + 2^-14]
+	   less than 1.3e-10.  */
+
+	x22 = (.24022656679f * x + .69314736128f) * ex2_u.f;
+      }
+
+      /* 5. Return (2^x2-1) * 2^(t/512+e+ex) + 2^(t/512+e+ex).  */
+      result = x22 * x + ex2_u.f;
+
+      if (!unsafe)
+	return result;
+      else
+	{
+	  result *= scale_u.f;
+	  math_check_force_underflow_nonneg (result);
+	  return result;
+	}
+    }
+  /* Exceptional cases:  */
+  else if (isless (x, himark))
+    {
+      if (isinf (x))
+	/* e^-inf == 0, with no error.  */
+	return 0;
+      else
+	/* Underflow */
+	return TWOM100 * TWOM100;
+    }
+  else
+    /* Return x, if x is a NaN or Inf; or overflow, otherwise.  */
+    return TWO127*x;
+}
+strong_alias (__ieee754_exp2f, __exp2f_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_expf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_expf.c
new file mode 100644
index 0000000000..782072f213
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_expf.c
@@ -0,0 +1,133 @@
+/* Single-precision floating point e^x.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Geoffrey Keating <geoffk@ozemail.com.au>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* How this works:
+
+   The input value, x, is written as
+
+   x = n * ln(2) + t/512 + delta[t] + x;
+
+   where:
+   - n is an integer, 127 >= n >= -150;
+   - t is an integer, 177 >= t >= -177
+   - delta is based on a table entry, delta[t] < 2^-28
+   - x is whatever is left, |x| < 2^-10
+
+   Then e^x is approximated as
+
+   e^x = 2^n ( e^(t/512 + delta[t])
+	       + ( e^(t/512 + delta[t])
+		   * ( p(x + delta[t] + n * ln(2)) - delta ) ) )
+
+   where
+   - p(x) is a polynomial approximating e(x)-1;
+   - e^(t/512 + delta[t]) is obtained from a table.
+
+   The table used is the same one as for the double precision version;
+   since we have the table, we might as well use it.
+
+   It turns out to be faster to do calculations in double precision than
+   to perform an 'accurate table method' expf, because of the range reduction
+   overhead (compare exp2f).
+   */
+#include <float.h>
+#include <ieee754.h>
+#include <math.h>
+#include <fenv.h>
+#include <inttypes.h>
+#include <math_private.h>
+
+extern const float __exp_deltatable[178];
+extern const double __exp_atable[355] /* __attribute__((mode(DF))) */;
+
+static const float TWOM100 = 7.88860905e-31;
+static const float TWO127 = 1.7014118346e+38;
+
+float
+__ieee754_expf (float x)
+{
+  static const float himark = 88.72283935546875;
+  static const float lomark = -103.972084045410;
+  /* Check for usual case.  */
+  if (isless (x, himark) && isgreater (x, lomark))
+    {
+      static const float THREEp42 = 13194139533312.0;
+      static const float THREEp22 = 12582912.0;
+      /* 1/ln(2).  */
+#undef M_1_LN2
+      static const float M_1_LN2 = 1.44269502163f;
+      /* ln(2) */
+#undef M_LN2
+      static const double M_LN2 = .6931471805599452862;
+
+      int tval;
+      double x22, t, result, dx;
+      float n, delta;
+      union ieee754_double ex2_u;
+
+      {
+	SET_RESTORE_ROUND_NOEXF (FE_TONEAREST);
+
+	/* Calculate n.  */
+	n = x * M_1_LN2 + THREEp22;
+	n -= THREEp22;
+	dx = x - n*M_LN2;
+
+	/* Calculate t/512.  */
+	t = dx + THREEp42;
+	t -= THREEp42;
+	dx -= t;
+
+	/* Compute tval = t.  */
+	tval = (int) (t * 512.0);
+
+	if (t >= 0)
+	  delta = - __exp_deltatable[tval];
+	else
+	  delta = __exp_deltatable[-tval];
+
+	/* Compute ex2 = 2^n e^(t/512+delta[t]).  */
+	ex2_u.d = __exp_atable[tval+177];
+	ex2_u.ieee.exponent += (int) n;
+
+	/* Approximate e^(dx+delta) - 1, using a second-degree polynomial,
+	   with maximum error in [-2^-10-2^-28,2^-10+2^-28]
+	   less than 5e-11.  */
+	x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx + delta;
+      }
+
+      /* Return result.  */
+      result = x22 * ex2_u.d + ex2_u.d;
+      return (float) result;
+    }
+  /* Exceptional cases:  */
+  else if (isless (x, himark))
+    {
+      if (isinf (x))
+	/* e^-inf == 0, with no error.  */
+	return 0;
+      else
+	/* Underflow */
+	return TWOM100 * TWOM100;
+    }
+  else
+    /* Return x, if x is a NaN or Inf; or overflow, otherwise.  */
+    return TWO127*x;
+}
+strong_alias (__ieee754_expf, __expf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_fmodf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_fmodf.c
new file mode 100644
index 0000000000..8d8fad4eb5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_fmodf.c
@@ -0,0 +1,102 @@
+/* e_fmodf.c -- float version of e_fmod.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_fmodf(x,y)
+ * Return x mod y in exact arithmetic
+ * Method: shift and subtract
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float one = 1.0, Zero[] = {0.0, -0.0,};
+
+float
+__ieee754_fmodf (float x, float y)
+{
+	int32_t n,hx,hy,hz,ix,iy,sx,i;
+
+	GET_FLOAT_WORD(hx,x);
+	GET_FLOAT_WORD(hy,y);
+	sx = hx&0x80000000;		/* sign of x */
+	hx ^=sx;		/* |x| */
+	hy &= 0x7fffffff;	/* |y| */
+
+    /* purge off exception values */
+	if(hy==0||(hx>=0x7f800000)||		/* y=0,or x not finite */
+	   (hy>0x7f800000))			/* or y is NaN */
+	    return (x*y)/(x*y);
+	if(hx<hy) return x;			/* |x|<|y| return x */
+	if(hx==hy)
+	    return Zero[(u_int32_t)sx>>31];	/* |x|=|y| return x*0*/
+
+    /* determine ix = ilogb(x) */
+	if(hx<0x00800000) {	/* subnormal x */
+	    for (ix = -126,i=(hx<<8); i>0; i<<=1) ix -=1;
+	} else ix = (hx>>23)-127;
+
+    /* determine iy = ilogb(y) */
+	if(hy<0x00800000) {	/* subnormal y */
+	    for (iy = -126,i=(hy<<8); i>=0; i<<=1) iy -=1;
+	} else iy = (hy>>23)-127;
+
+    /* set up {hx,lx}, {hy,ly} and align y to x */
+	if(ix >= -126)
+	    hx = 0x00800000|(0x007fffff&hx);
+	else {		/* subnormal x, shift x to normal */
+	    n = -126-ix;
+	    hx = hx<<n;
+	}
+	if(iy >= -126)
+	    hy = 0x00800000|(0x007fffff&hy);
+	else {		/* subnormal y, shift y to normal */
+	    n = -126-iy;
+	    hy = hy<<n;
+	}
+
+    /* fix point fmod */
+	n = ix - iy;
+	while(n--) {
+	    hz=hx-hy;
+	    if(hz<0){hx = hx+hx;}
+	    else {
+		if(hz==0)		/* return sign(x)*0 */
+		    return Zero[(u_int32_t)sx>>31];
+		hx = hz+hz;
+	    }
+	}
+	hz=hx-hy;
+	if(hz>=0) {hx=hz;}
+
+    /* convert back to floating value and restore the sign */
+	if(hx==0)			/* return sign(x)*0 */
+	    return Zero[(u_int32_t)sx>>31];
+	while(hx<0x00800000) {		/* normalize x */
+	    hx = hx+hx;
+	    iy -= 1;
+	}
+	if(iy>= -126) {		/* normalize output */
+	    hx = ((hx-0x00800000)|((iy+127)<<23));
+	    SET_FLOAT_WORD(x,hx|sx);
+	} else {		/* subnormal output */
+	    n = -126 - iy;
+	    hx >>= n;
+	    SET_FLOAT_WORD(x,hx|sx);
+	    x *= one;		/* create necessary signal */
+	}
+	return x;		/* exact output */
+}
+strong_alias (__ieee754_fmodf, __fmodf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_gammaf_r.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_gammaf_r.c
new file mode 100644
index 0000000000..1157dec2fe
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_gammaf_r.c
@@ -0,0 +1,212 @@
+/* Implementation of gamma function according to ISO C.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+   approximation to gamma function.  */
+
+static const float gamma_coeff[] =
+  {
+    0x1.555556p-4f,
+    -0xb.60b61p-12f,
+    0x3.403404p-12f,
+  };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 42, in the form R *
+   2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+   avoid overflow or underflow in intermediate calculations.  */
+
+static float
+gammaf_positive (float x, int *exp2_adj)
+{
+  int local_signgam;
+  if (x < 0.5f)
+    {
+      *exp2_adj = 0;
+      return __ieee754_expf (__ieee754_lgammaf_r (x + 1, &local_signgam)) / x;
+    }
+  else if (x <= 1.5f)
+    {
+      *exp2_adj = 0;
+      return __ieee754_expf (__ieee754_lgammaf_r (x, &local_signgam));
+    }
+  else if (x < 2.5f)
+    {
+      *exp2_adj = 0;
+      float x_adj = x - 1;
+      return (__ieee754_expf (__ieee754_lgammaf_r (x_adj, &local_signgam))
+	      * x_adj);
+    }
+  else
+    {
+      float eps = 0;
+      float x_eps = 0;
+      float x_adj = x;
+      float prod = 1;
+      if (x < 4.0f)
+	{
+	  /* Adjust into the range for applying Stirling's
+	     approximation.  */
+	  float n = __ceilf (4.0f - x);
+	  x_adj = math_narrow_eval (x + n);
+	  x_eps = (x - (x_adj - n));
+	  prod = __gamma_productf (x_adj - n, x_eps, n, &eps);
+	}
+      /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+	 Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+	 starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+	 factored out.  */
+      float exp_adj = -eps;
+      float x_adj_int = __roundf (x_adj);
+      float x_adj_frac = x_adj - x_adj_int;
+      int x_adj_log2;
+      float x_adj_mant = __frexpf (x_adj, &x_adj_log2);
+      if (x_adj_mant < (float) M_SQRT1_2)
+	{
+	  x_adj_log2--;
+	  x_adj_mant *= 2.0f;
+	}
+      *exp2_adj = x_adj_log2 * (int) x_adj_int;
+      float ret = (__ieee754_powf (x_adj_mant, x_adj)
+		   * __ieee754_exp2f (x_adj_log2 * x_adj_frac)
+		   * __ieee754_expf (-x_adj)
+		   * __ieee754_sqrtf (2 * (float) M_PI / x_adj)
+		   / prod);
+      exp_adj += x_eps * __ieee754_logf (x_adj);
+      float bsum = gamma_coeff[NCOEFF - 1];
+      float x_adj2 = x_adj * x_adj;
+      for (size_t i = 1; i <= NCOEFF - 1; i++)
+	bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+      exp_adj += bsum / x_adj;
+      return ret + ret * __expm1f (exp_adj);
+    }
+}
+
+float
+__ieee754_gammaf_r (float x, int *signgamp)
+{
+  int32_t hx;
+  float ret;
+
+  GET_FLOAT_WORD (hx, x);
+
+  if (__glibc_unlikely ((hx & 0x7fffffff) == 0))
+    {
+      /* Return value for x == 0 is Inf with divide by zero exception.  */
+      *signgamp = 0;
+      return 1.0 / x;
+    }
+  if (__builtin_expect (hx < 0, 0)
+      && (u_int32_t) hx < 0xff800000 && __rintf (x) == x)
+    {
+      /* Return value for integer x < 0 is NaN with invalid exception.  */
+      *signgamp = 0;
+      return (x - x) / (x - x);
+    }
+  if (__glibc_unlikely (hx == 0xff800000))
+    {
+      /* x == -Inf.  According to ISO this is NaN.  */
+      *signgamp = 0;
+      return x - x;
+    }
+  if (__glibc_unlikely ((hx & 0x7f800000) == 0x7f800000))
+    {
+      /* Positive infinity (return positive infinity) or NaN (return
+	 NaN).  */
+      *signgamp = 0;
+      return x + x;
+    }
+
+  if (x >= 36.0f)
+    {
+      /* Overflow.  */
+      *signgamp = 0;
+      ret = math_narrow_eval (FLT_MAX * FLT_MAX);
+      return ret;
+    }
+  else
+    {
+      SET_RESTORE_ROUNDF (FE_TONEAREST);
+      if (x > 0.0f)
+	{
+	  *signgamp = 0;
+	  int exp2_adj;
+	  float tret = gammaf_positive (x, &exp2_adj);
+	  ret = __scalbnf (tret, exp2_adj);
+	}
+      else if (x >= -FLT_EPSILON / 4.0f)
+	{
+	  *signgamp = 0;
+	  ret = 1.0f / x;
+	}
+      else
+	{
+	  float tx = __truncf (x);
+	  *signgamp = (tx == 2.0f * __truncf (tx / 2.0f)) ? -1 : 1;
+	  if (x <= -42.0f)
+	    /* Underflow.  */
+	    ret = FLT_MIN * FLT_MIN;
+	  else
+	    {
+	      float frac = tx - x;
+	      if (frac > 0.5f)
+		frac = 1.0f - frac;
+	      float sinpix = (frac <= 0.25f
+			      ? __sinf ((float) M_PI * frac)
+			      : __cosf ((float) M_PI * (0.5f - frac)));
+	      int exp2_adj;
+	      float tret = (float) M_PI / (-x * sinpix
+					   * gammaf_positive (-x, &exp2_adj));
+	      ret = __scalbnf (tret, -exp2_adj);
+	      math_check_force_underflow_nonneg (ret);
+	    }
+	}
+      ret = math_narrow_eval (ret);
+    }
+  if (isinf (ret) && x != 0)
+    {
+      if (*signgamp < 0)
+	{
+	  ret = math_narrow_eval (-__copysignf (FLT_MAX, ret) * FLT_MAX);
+	  ret = -ret;
+	}
+      else
+	ret = math_narrow_eval (__copysignf (FLT_MAX, ret) * FLT_MAX);
+      return ret;
+    }
+  else if (ret == 0)
+    {
+      if (*signgamp < 0)
+	{
+	  ret = math_narrow_eval (-__copysignf (FLT_MIN, ret) * FLT_MIN);
+	  ret = -ret;
+	}
+      else
+	ret = math_narrow_eval (__copysignf (FLT_MIN, ret) * FLT_MIN);
+      return ret;
+    }
+  else
+    return ret;
+}
+strong_alias (__ieee754_gammaf_r, __gammaf_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_hypotf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_hypotf.c
new file mode 100644
index 0000000000..fda2651a84
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_hypotf.c
@@ -0,0 +1,45 @@
+/* e_hypotf.c -- float version of e_hypot.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+float
+__ieee754_hypotf(float x, float y)
+{
+	double d_x, d_y;
+	int32_t ha, hb;
+
+	GET_FLOAT_WORD(ha,x);
+	ha &= 0x7fffffff;
+	GET_FLOAT_WORD(hb,y);
+	hb &= 0x7fffffff;
+	if (ha == 0x7f800000 && !issignaling (y))
+	  return fabsf(x);
+	else if (hb == 0x7f800000 && !issignaling (x))
+	  return fabsf(y);
+	else if (ha > 0x7f800000 || hb > 0x7f800000)
+	  return fabsf(x) * fabsf(y);
+	else if (ha == 0)
+	  return fabsf(y);
+	else if (hb == 0)
+	  return fabsf(x);
+
+	d_x = (double) x;
+	d_y = (double) y;
+
+	return (float) __ieee754_sqrt(d_x * d_x + d_y * d_y);
+}
+strong_alias (__ieee754_hypotf, __hypotf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_ilogbf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_ilogbf.c
new file mode 100644
index 0000000000..1ae344ea39
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_ilogbf.c
@@ -0,0 +1,44 @@
+/* s_ilogbf.c -- float version of s_ilogb.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_ilogbf.c,v 1.4 1995/05/10 20:47:31 jtc Exp $";
+#endif
+
+#include <limits.h>
+#include <math.h>
+#include <math_private.h>
+
+int __ieee754_ilogbf(float x)
+{
+	int32_t hx,ix;
+
+	GET_FLOAT_WORD(hx,x);
+	hx &= 0x7fffffff;
+	if(hx<0x00800000) {
+	    if(hx==0)
+		return FP_ILOGB0;	/* ilogb(0) = FP_ILOGB0 */
+	    else			/* subnormal x */
+	        for (ix = -126,hx<<=8; hx>0; hx<<=1) ix -=1;
+	    return ix;
+	}
+	else if (hx<0x7f800000) return (hx>>23)-127;
+	else if (FP_ILOGBNAN != INT_MAX) {
+	    /* ISO C99 requires ilogbf(+-Inf) == INT_MAX.  */
+	    if (hx==0x7f800000)
+		return INT_MAX;
+	}
+	return FP_ILOGBNAN;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_j0f.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_j0f.c
new file mode 100644
index 0000000000..b783dd069d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_j0f.c
@@ -0,0 +1,337 @@
+/* e_j0f.c -- float version of e_j0.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static float pzerof(float), qzerof(float);
+
+static const float
+huge	= 1e30,
+one	= 1.0,
+invsqrtpi=  5.6418961287e-01, /* 0x3f106ebb */
+tpi      =  6.3661974669e-01, /* 0x3f22f983 */
+		/* R0/S0 on [0, 2.00] */
+R02  =  1.5625000000e-02, /* 0x3c800000 */
+R03  = -1.8997929874e-04, /* 0xb947352e */
+R04  =  1.8295404516e-06, /* 0x35f58e88 */
+R05  = -4.6183270541e-09, /* 0xb19eaf3c */
+S01  =  1.5619102865e-02, /* 0x3c7fe744 */
+S02  =  1.1692678527e-04, /* 0x38f53697 */
+S03  =  5.1354652442e-07, /* 0x3509daa6 */
+S04  =  1.1661400734e-09; /* 0x30a045e8 */
+
+static const float zero = 0.0;
+
+float
+__ieee754_j0f(float x)
+{
+	float z, s,c,ss,cc,r,u,v;
+	int32_t hx,ix;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(ix>=0x7f800000) return one/(x*x);
+	x = fabsf(x);
+	if(ix >= 0x40000000) {	/* |x| >= 2.0 */
+		__sincosf (x, &s, &c);
+		ss = s-c;
+		cc = s+c;
+		if(ix<0x7f000000) {  /* make sure x+x not overflow */
+		    z = -__cosf(x+x);
+		    if ((s*c)<zero) cc = z/ss;
+		    else	    ss = z/cc;
+		}
+	/*
+	 * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+	 * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+	 */
+		if(ix>0x48000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(x);
+		else {
+		    u = pzerof(x); v = qzerof(x);
+		    z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(x);
+		}
+		return z;
+	}
+	if(ix<0x39000000) {	/* |x| < 2**-13 */
+	    math_force_eval(huge+x);		/* raise inexact if x != 0 */
+	    if(ix<0x32000000) return one;	/* |x|<2**-27 */
+	    else	      return one - (float)0.25*x*x;
+	}
+	z = x*x;
+	r =  z*(R02+z*(R03+z*(R04+z*R05)));
+	s =  one+z*(S01+z*(S02+z*(S03+z*S04)));
+	if(ix < 0x3F800000) {	/* |x| < 1.00 */
+	    return one + z*((float)-0.25+(r/s));
+	} else {
+	    u = (float)0.5*x;
+	    return((one+u)*(one-u)+z*(r/s));
+	}
+}
+strong_alias (__ieee754_j0f, __j0f_finite)
+
+static const float
+u00  = -7.3804296553e-02, /* 0xbd9726b5 */
+u01  =  1.7666645348e-01, /* 0x3e34e80d */
+u02  = -1.3818567619e-02, /* 0xbc626746 */
+u03  =  3.4745343146e-04, /* 0x39b62a69 */
+u04  = -3.8140706238e-06, /* 0xb67ff53c */
+u05  =  1.9559013964e-08, /* 0x32a802ba */
+u06  = -3.9820518410e-11, /* 0xae2f21eb */
+v01  =  1.2730483897e-02, /* 0x3c509385 */
+v02  =  7.6006865129e-05, /* 0x389f65e0 */
+v03  =  2.5915085189e-07, /* 0x348b216c */
+v04  =  4.4111031494e-10; /* 0x2ff280c2 */
+
+float
+__ieee754_y0f(float x)
+{
+	float z, s,c,ss,cc,u,v;
+	int32_t hx,ix;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = 0x7fffffff&hx;
+    /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0, y0(0) is -inf.  */
+	if(ix>=0x7f800000) return  one/(x+x*x);
+	if(ix==0) return -1/zero; /* -inf and divide by zero exception.  */
+	if(hx<0) return zero/(zero*x);
+	if(ix >= 0x40000000) {  /* |x| >= 2.0 */
+	/* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0))
+	 * where x0 = x-pi/4
+	 *      Better formula:
+	 *              cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+	 *                      =  1/sqrt(2) * (sin(x) + cos(x))
+	 *              sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+	 *                      =  1/sqrt(2) * (sin(x) - cos(x))
+	 * To avoid cancellation, use
+	 *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+	 * to compute the worse one.
+	 */
+		__sincosf (x, &s, &c);
+		ss = s-c;
+		cc = s+c;
+	/*
+	 * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+	 * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+	 */
+		if(ix<0x7f000000) {  /* make sure x+x not overflow */
+		    z = -__cosf(x+x);
+		    if ((s*c)<zero) cc = z/ss;
+		    else            ss = z/cc;
+		}
+		if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x);
+		else {
+		    u = pzerof(x); v = qzerof(x);
+		    z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x);
+		}
+		return z;
+	}
+	if(ix<=0x39800000) {	/* x < 2**-13 */
+	    return(u00 + tpi*__ieee754_logf(x));
+	}
+	z = x*x;
+	u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
+	v = one+z*(v01+z*(v02+z*(v03+z*v04)));
+	return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x)));
+}
+strong_alias (__ieee754_y0f, __y0f_finite)
+
+/* The asymptotic expansions of pzero is
+ *	1 - 9/128 s^2 + 11025/98304 s^4 - ...,	where s = 1/x.
+ * For x >= 2, We approximate pzero by
+ *	pzero(x) = 1 + (R/S)
+ * where  R = pR0 + pR1*s^2 + pR2*s^4 + ... + pR5*s^10
+ *	  S = 1 + pS0*s^2 + ... + pS4*s^10
+ * and
+ *	| pzero(x)-1-R/S | <= 2  ** ( -60.26)
+ */
+static const float pR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.0000000000e+00, /* 0x00000000 */
+ -7.0312500000e-02, /* 0xbd900000 */
+ -8.0816707611e+00, /* 0xc1014e86 */
+ -2.5706311035e+02, /* 0xc3808814 */
+ -2.4852163086e+03, /* 0xc51b5376 */
+ -5.2530439453e+03, /* 0xc5a4285a */
+};
+static const float pS8[5] = {
+  1.1653436279e+02, /* 0x42e91198 */
+  3.8337448730e+03, /* 0x456f9beb */
+  4.0597855469e+04, /* 0x471e95db */
+  1.1675296875e+05, /* 0x47e4087c */
+  4.7627726562e+04, /* 0x473a0bba */
+};
+static const float pR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ -1.1412546255e-11, /* 0xad48c58a */
+ -7.0312492549e-02, /* 0xbd8fffff */
+ -4.1596107483e+00, /* 0xc0851b88 */
+ -6.7674766541e+01, /* 0xc287597b */
+ -3.3123129272e+02, /* 0xc3a59d9b */
+ -3.4643338013e+02, /* 0xc3ad3779 */
+};
+static const float pS5[5] = {
+  6.0753936768e+01, /* 0x42730408 */
+  1.0512523193e+03, /* 0x44836813 */
+  5.9789707031e+03, /* 0x45bad7c4 */
+  9.6254453125e+03, /* 0x461665c8 */
+  2.4060581055e+03, /* 0x451660ee */
+};
+
+static const float pR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+ -2.5470459075e-09, /* 0xb12f081b */
+ -7.0311963558e-02, /* 0xbd8fffb8 */
+ -2.4090321064e+00, /* 0xc01a2d95 */
+ -2.1965976715e+01, /* 0xc1afba52 */
+ -5.8079170227e+01, /* 0xc2685112 */
+ -3.1447946548e+01, /* 0xc1fb9565 */
+};
+static const float pS3[5] = {
+  3.5856033325e+01, /* 0x420f6c94 */
+  3.6151397705e+02, /* 0x43b4c1ca */
+  1.1936077881e+03, /* 0x44953373 */
+  1.1279968262e+03, /* 0x448cffe6 */
+  1.7358093262e+02, /* 0x432d94b8 */
+};
+
+static const float pR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+ -8.8753431271e-08, /* 0xb3be98b7 */
+ -7.0303097367e-02, /* 0xbd8ffb12 */
+ -1.4507384300e+00, /* 0xbfb9b1cc */
+ -7.6356959343e+00, /* 0xc0f4579f */
+ -1.1193166733e+01, /* 0xc1331736 */
+ -3.2336456776e+00, /* 0xc04ef40d */
+};
+static const float pS2[5] = {
+  2.2220300674e+01, /* 0x41b1c32d */
+  1.3620678711e+02, /* 0x430834f0 */
+  2.7047027588e+02, /* 0x43873c32 */
+  1.5387539673e+02, /* 0x4319e01a */
+  1.4657617569e+01, /* 0x416a859a */
+};
+
+static float
+pzerof(float x)
+{
+	const float *p,*q;
+	float z,r,s;
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;
+	/* ix >= 0x40000000 for all calls to this function.  */
+	if(ix>=0x41000000)     {p = pR8; q= pS8;}
+	else if(ix>=0x40f71c58){p = pR5; q= pS5;}
+	else if(ix>=0x4036db68){p = pR3; q= pS3;}
+	else {p = pR2; q= pS2;}
+	z = one/(x*x);
+	r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+	s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4]))));
+	return one+ r/s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qzero is
+ *	-1/8 s + 75/1024 s^3 - ..., where s = 1/x.
+ * We approximate pzero by
+ *	qzero(x) = s*(-1.25 + (R/S))
+ * where  R = qR0 + qR1*s^2 + qR2*s^4 + ... + qR5*s^10
+ *	  S = 1 + qS0*s^2 + ... + qS5*s^12
+ * and
+ *	| qzero(x)/s +1.25-R/S | <= 2  ** ( -61.22)
+ */
+static const float qR8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.0000000000e+00, /* 0x00000000 */
+  7.3242187500e-02, /* 0x3d960000 */
+  1.1768206596e+01, /* 0x413c4a93 */
+  5.5767340088e+02, /* 0x440b6b19 */
+  8.8591972656e+03, /* 0x460a6cca */
+  3.7014625000e+04, /* 0x471096a0 */
+};
+static const float qS8[6] = {
+  1.6377603149e+02, /* 0x4323c6aa */
+  8.0983447266e+03, /* 0x45fd12c2 */
+  1.4253829688e+05, /* 0x480b3293 */
+  8.0330925000e+05, /* 0x49441ed4 */
+  8.4050156250e+05, /* 0x494d3359 */
+ -3.4389928125e+05, /* 0xc8a7eb69 */
+};
+
+static const float qR5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+  1.8408595828e-11, /* 0x2da1ec79 */
+  7.3242180049e-02, /* 0x3d95ffff */
+  5.8356351852e+00, /* 0x40babd86 */
+  1.3511157227e+02, /* 0x43071c90 */
+  1.0272437744e+03, /* 0x448067cd */
+  1.9899779053e+03, /* 0x44f8bf4b */
+};
+static const float qS5[6] = {
+  8.2776611328e+01, /* 0x42a58da0 */
+  2.0778142090e+03, /* 0x4501dd07 */
+  1.8847289062e+04, /* 0x46933e94 */
+  5.6751113281e+04, /* 0x475daf1d */
+  3.5976753906e+04, /* 0x470c88c1 */
+ -5.3543427734e+03, /* 0xc5a752be */
+};
+
+static const float qR3[6] = {/* for x in [4.547,2.8571]=1/[0.2199,0.35001] */
+  4.3774099900e-09, /* 0x3196681b */
+  7.3241114616e-02, /* 0x3d95ff70 */
+  3.3442313671e+00, /* 0x405607e3 */
+  4.2621845245e+01, /* 0x422a7cc5 */
+  1.7080809021e+02, /* 0x432acedf */
+  1.6673394775e+02, /* 0x4326bbe4 */
+};
+static const float qS3[6] = {
+  4.8758872986e+01, /* 0x42430916 */
+  7.0968920898e+02, /* 0x44316c1c */
+  3.7041481934e+03, /* 0x4567825f */
+  6.4604252930e+03, /* 0x45c9e367 */
+  2.5163337402e+03, /* 0x451d4557 */
+ -1.4924745178e+02, /* 0xc3153f59 */
+};
+
+static const float qR2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+  1.5044444979e-07, /* 0x342189db */
+  7.3223426938e-02, /* 0x3d95f62a */
+  1.9981917143e+00, /* 0x3fffc4bf */
+  1.4495602608e+01, /* 0x4167edfd */
+  3.1666231155e+01, /* 0x41fd5471 */
+  1.6252708435e+01, /* 0x4182058c */
+};
+static const float qS2[6] = {
+  3.0365585327e+01, /* 0x41f2ecb8 */
+  2.6934811401e+02, /* 0x4386ac8f */
+  8.4478375244e+02, /* 0x44533229 */
+  8.8293585205e+02, /* 0x445cbbe5 */
+  2.1266638184e+02, /* 0x4354aa98 */
+ -5.3109550476e+00, /* 0xc0a9f358 */
+};
+
+static float
+qzerof(float x)
+{
+	const float *p,*q;
+	float s,r,z;
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;
+	/* ix >= 0x40000000 for all calls to this function.  */
+	if(ix>=0x41000000)     {p = qR8; q= qS8;}
+	else if(ix>=0x40f71c58){p = qR5; q= qS5;}
+	else if(ix>=0x4036db68){p = qR3; q= qS3;}
+	else {p = qR2; q= qS2;}
+	z = one/(x*x);
+	r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+	s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
+	return (-(float).125 + r/s)/x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_j1f.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_j1f.c
new file mode 100644
index 0000000000..805a87d85b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_j1f.c
@@ -0,0 +1,347 @@
+/* e_j1f.c -- float version of e_j1.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static float ponef(float), qonef(float);
+
+static const float
+huge    = 1e30,
+one	= 1.0,
+invsqrtpi=  5.6418961287e-01, /* 0x3f106ebb */
+tpi      =  6.3661974669e-01, /* 0x3f22f983 */
+	/* R0/S0 on [0,2] */
+r00  = -6.2500000000e-02, /* 0xbd800000 */
+r01  =  1.4070566976e-03, /* 0x3ab86cfd */
+r02  = -1.5995563444e-05, /* 0xb7862e36 */
+r03  =  4.9672799207e-08, /* 0x335557d2 */
+s01  =  1.9153760746e-02, /* 0x3c9ce859 */
+s02  =  1.8594678841e-04, /* 0x3942fab6 */
+s03  =  1.1771846857e-06, /* 0x359dffc2 */
+s04  =  5.0463624390e-09, /* 0x31ad6446 */
+s05  =  1.2354227016e-11; /* 0x2d59567e */
+
+static const float zero    = 0.0;
+
+float
+__ieee754_j1f(float x)
+{
+	float z, s,c,ss,cc,r,u,v,y;
+	int32_t hx,ix;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(__builtin_expect(ix>=0x7f800000, 0)) return one/x;
+	y = fabsf(x);
+	if(ix >= 0x40000000) {	/* |x| >= 2.0 */
+		__sincosf (y, &s, &c);
+		ss = -s-c;
+		cc = s-c;
+		if(ix<0x7f000000) {  /* make sure y+y not overflow */
+		    z = __cosf(y+y);
+		    if ((s*c)>zero) cc = z/ss;
+		    else	    ss = z/cc;
+		}
+	/*
+	 * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
+	 * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
+	 */
+		if(ix>0x48000000) z = (invsqrtpi*cc)/__ieee754_sqrtf(y);
+		else {
+		    u = ponef(y); v = qonef(y);
+		    z = invsqrtpi*(u*cc-v*ss)/__ieee754_sqrtf(y);
+		}
+		if(hx<0) return -z;
+		else	 return  z;
+	}
+	if(__builtin_expect(ix<0x32000000, 0)) {	/* |x|<2**-27 */
+	    if(huge+x>one) {		/* inexact if x!=0 necessary */
+		float ret = math_narrow_eval ((float) 0.5 * x);
+		math_check_force_underflow (ret);
+		if (ret == 0 && x != 0)
+		  __set_errno (ERANGE);
+		return ret;
+	    }
+	}
+	z = x*x;
+	r =  z*(r00+z*(r01+z*(r02+z*r03)));
+	s =  one+z*(s01+z*(s02+z*(s03+z*(s04+z*s05))));
+	r *= x;
+	return(x*(float)0.5+r/s);
+}
+strong_alias (__ieee754_j1f, __j1f_finite)
+
+static const float U0[5] = {
+ -1.9605709612e-01, /* 0xbe48c331 */
+  5.0443872809e-02, /* 0x3d4e9e3c */
+ -1.9125689287e-03, /* 0xbafaaf2a */
+  2.3525259166e-05, /* 0x37c5581c */
+ -9.1909917899e-08, /* 0xb3c56003 */
+};
+static const float V0[5] = {
+  1.9916731864e-02, /* 0x3ca3286a */
+  2.0255257550e-04, /* 0x3954644b */
+  1.3560879779e-06, /* 0x35b602d4 */
+  6.2274145840e-09, /* 0x31d5f8eb */
+  1.6655924903e-11, /* 0x2d9281cf */
+};
+
+float
+__ieee754_y1f(float x)
+{
+	float z, s,c,ss,cc,u,v;
+	int32_t hx,ix;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = 0x7fffffff&hx;
+    /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */
+	if(__builtin_expect(ix>=0x7f800000, 0)) return  one/(x+x*x);
+	if(__builtin_expect(ix==0, 0))
+		return -1/zero; /* -inf and divide by zero exception.  */
+	if(__builtin_expect(hx<0, 0)) return zero/(zero*x);
+	if(ix >= 0x40000000) {  /* |x| >= 2.0 */
+		SET_RESTORE_ROUNDF (FE_TONEAREST);
+		__sincosf (x, &s, &c);
+		ss = -s-c;
+		cc = s-c;
+		if(ix<0x7f000000) {  /* make sure x+x not overflow */
+		    z = __cosf(x+x);
+		    if ((s*c)>zero) cc = z/ss;
+		    else            ss = z/cc;
+		}
+	/* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0))
+	 * where x0 = x-3pi/4
+	 *      Better formula:
+	 *              cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+	 *                      =  1/sqrt(2) * (sin(x) - cos(x))
+	 *              sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+	 *                      = -1/sqrt(2) * (cos(x) + sin(x))
+	 * To avoid cancellation, use
+	 *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+	 * to compute the worse one.
+	 */
+		if(ix>0x48000000) z = (invsqrtpi*ss)/__ieee754_sqrtf(x);
+		else {
+		    u = ponef(x); v = qonef(x);
+		    z = invsqrtpi*(u*ss+v*cc)/__ieee754_sqrtf(x);
+		}
+		return z;
+	}
+	if(__builtin_expect(ix<=0x33000000, 0)) {    /* x < 2**-25 */
+	    z = -tpi / x;
+	    if (isinf (z))
+		__set_errno (ERANGE);
+	    return z;
+	}
+	z = x*x;
+	u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
+	v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
+	return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x));
+}
+strong_alias (__ieee754_y1f, __y1f_finite)
+
+/* For x >= 8, the asymptotic expansions of pone is
+ *	1 + 15/128 s^2 - 4725/2^15 s^4 - ...,	where s = 1/x.
+ * We approximate pone by
+ *	pone(x) = 1 + (R/S)
+ * where  R = pr0 + pr1*s^2 + pr2*s^4 + ... + pr5*s^10
+ *	  S = 1 + ps0*s^2 + ... + ps4*s^10
+ * and
+ *	| pone(x)-1-R/S | <= 2  ** ( -60.06)
+ */
+
+static const float pr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.0000000000e+00, /* 0x00000000 */
+  1.1718750000e-01, /* 0x3df00000 */
+  1.3239480972e+01, /* 0x4153d4ea */
+  4.1205184937e+02, /* 0x43ce06a3 */
+  3.8747453613e+03, /* 0x45722bed */
+  7.9144794922e+03, /* 0x45f753d6 */
+};
+static const float ps8[5] = {
+  1.1420736694e+02, /* 0x42e46a2c */
+  3.6509309082e+03, /* 0x45642ee5 */
+  3.6956207031e+04, /* 0x47105c35 */
+  9.7602796875e+04, /* 0x47bea166 */
+  3.0804271484e+04, /* 0x46f0a88b */
+};
+
+static const float pr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+  1.3199052094e-11, /* 0x2d68333f */
+  1.1718749255e-01, /* 0x3defffff */
+  6.8027510643e+00, /* 0x40d9b023 */
+  1.0830818176e+02, /* 0x42d89dca */
+  5.1763616943e+02, /* 0x440168b7 */
+  5.2871520996e+02, /* 0x44042dc6 */
+};
+static const float ps5[5] = {
+  5.9280597687e+01, /* 0x426d1f55 */
+  9.9140142822e+02, /* 0x4477d9b1 */
+  5.3532670898e+03, /* 0x45a74a23 */
+  7.8446904297e+03, /* 0x45f52586 */
+  1.5040468750e+03, /* 0x44bc0180 */
+};
+
+static const float pr3[6] = {
+  3.0250391081e-09, /* 0x314fe10d */
+  1.1718686670e-01, /* 0x3defffab */
+  3.9329774380e+00, /* 0x407bb5e7 */
+  3.5119403839e+01, /* 0x420c7a45 */
+  9.1055007935e+01, /* 0x42b61c2a */
+  4.8559066772e+01, /* 0x42423c7c */
+};
+static const float ps3[5] = {
+  3.4791309357e+01, /* 0x420b2a4d */
+  3.3676245117e+02, /* 0x43a86198 */
+  1.0468714600e+03, /* 0x4482dbe3 */
+  8.9081134033e+02, /* 0x445eb3ed */
+  1.0378793335e+02, /* 0x42cf936c */
+};
+
+static const float pr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+  1.0771083225e-07, /* 0x33e74ea8 */
+  1.1717621982e-01, /* 0x3deffa16 */
+  2.3685150146e+00, /* 0x401795c0 */
+  1.2242610931e+01, /* 0x4143e1bc */
+  1.7693971634e+01, /* 0x418d8d41 */
+  5.0735230446e+00, /* 0x40a25a4d */
+};
+static const float ps2[5] = {
+  2.1436485291e+01, /* 0x41ab7dec */
+  1.2529022980e+02, /* 0x42fa9499 */
+  2.3227647400e+02, /* 0x436846c7 */
+  1.1767937469e+02, /* 0x42eb5bd7 */
+  8.3646392822e+00, /* 0x4105d590 */
+};
+
+static float
+ponef(float x)
+{
+	const float *p,*q;
+	float z,r,s;
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;
+	/* ix >= 0x40000000 for all calls to this function.  */
+	if(ix>=0x41000000)     {p = pr8; q= ps8;}
+	else if(ix>=0x40f71c58){p = pr5; q= ps5;}
+	else if(ix>=0x4036db68){p = pr3; q= ps3;}
+	else {p = pr2; q= ps2;}
+	z = one/(x*x);
+	r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+	s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*q[4]))));
+	return one+ r/s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qone is
+ *	3/8 s - 105/1024 s^3 - ..., where s = 1/x.
+ * We approximate pone by
+ *	qone(x) = s*(0.375 + (R/S))
+ * where  R = qr1*s^2 + qr2*s^4 + ... + qr5*s^10
+ *	  S = 1 + qs1*s^2 + ... + qs6*s^12
+ * and
+ *	| qone(x)/s -0.375-R/S | <= 2  ** ( -61.13)
+ */
+
+static const float qr8[6] = { /* for x in [inf, 8]=1/[0,0.125] */
+  0.0000000000e+00, /* 0x00000000 */
+ -1.0253906250e-01, /* 0xbdd20000 */
+ -1.6271753311e+01, /* 0xc1822c8d */
+ -7.5960174561e+02, /* 0xc43de683 */
+ -1.1849806641e+04, /* 0xc639273a */
+ -4.8438511719e+04, /* 0xc73d3683 */
+};
+static const float qs8[6] = {
+  1.6139537048e+02, /* 0x43216537 */
+  7.8253862305e+03, /* 0x45f48b17 */
+  1.3387534375e+05, /* 0x4802bcd6 */
+  7.1965775000e+05, /* 0x492fb29c */
+  6.6660125000e+05, /* 0x4922be94 */
+ -2.9449025000e+05, /* 0xc88fcb48 */
+};
+
+static const float qr5[6] = { /* for x in [8,4.5454]=1/[0.125,0.22001] */
+ -2.0897993405e-11, /* 0xadb7d219 */
+ -1.0253904760e-01, /* 0xbdd1fffe */
+ -8.0564479828e+00, /* 0xc100e736 */
+ -1.8366960144e+02, /* 0xc337ab6b */
+ -1.3731937256e+03, /* 0xc4aba633 */
+ -2.6124443359e+03, /* 0xc523471c */
+};
+static const float qs5[6] = {
+  8.1276550293e+01, /* 0x42a28d98 */
+  1.9917987061e+03, /* 0x44f8f98f */
+  1.7468484375e+04, /* 0x468878f8 */
+  4.9851425781e+04, /* 0x4742bb6d */
+  2.7948074219e+04, /* 0x46da5826 */
+ -4.7191835938e+03, /* 0xc5937978 */
+};
+
+static const float qr3[6] = {
+ -5.0783124372e-09, /* 0xb1ae7d4f */
+ -1.0253783315e-01, /* 0xbdd1ff5b */
+ -4.6101160049e+00, /* 0xc0938612 */
+ -5.7847221375e+01, /* 0xc267638e */
+ -2.2824453735e+02, /* 0xc3643e9a */
+ -2.1921012878e+02, /* 0xc35b35cb */
+};
+static const float qs3[6] = {
+  4.7665153503e+01, /* 0x423ea91e */
+  6.7386511230e+02, /* 0x4428775e */
+  3.3801528320e+03, /* 0x45534272 */
+  5.5477290039e+03, /* 0x45ad5dd5 */
+  1.9031191406e+03, /* 0x44ede3d0 */
+ -1.3520118713e+02, /* 0xc3073381 */
+};
+
+static const float qr2[6] = {/* for x in [2.8570,2]=1/[0.3499,0.5] */
+ -1.7838172539e-07, /* 0xb43f8932 */
+ -1.0251704603e-01, /* 0xbdd1f475 */
+ -2.7522056103e+00, /* 0xc0302423 */
+ -1.9663616180e+01, /* 0xc19d4f16 */
+ -4.2325313568e+01, /* 0xc2294d1f */
+ -2.1371921539e+01, /* 0xc1aaf9b2 */
+};
+static const float qs2[6] = {
+  2.9533363342e+01, /* 0x41ec4454 */
+  2.5298155212e+02, /* 0x437cfb47 */
+  7.5750280762e+02, /* 0x443d602e */
+  7.3939318848e+02, /* 0x4438d92a */
+  1.5594900513e+02, /* 0x431bf2f2 */
+ -4.9594988823e+00, /* 0xc09eb437 */
+};
+
+static float
+qonef(float x)
+{
+	const float *p,*q;
+	float  s,r,z;
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;
+	/* ix >= 0x40000000 for all calls to this function.  */
+	if(ix>=0x40200000)     {p = qr8; q= qs8;}
+	else if(ix>=0x40f71c58){p = qr5; q= qs5;}
+	else if(ix>=0x4036db68){p = qr3; q= qs3;}
+	else {p = qr2; q= qs2;}
+	z = one/(x*x);
+	r = p[0]+z*(p[1]+z*(p[2]+z*(p[3]+z*(p[4]+z*p[5]))));
+	s = one+z*(q[0]+z*(q[1]+z*(q[2]+z*(q[3]+z*(q[4]+z*q[5])))));
+	return ((float).375 + r/s)/x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_jnf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_jnf.c
new file mode 100644
index 0000000000..4e634778d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_jnf.c
@@ -0,0 +1,233 @@
+/* e_jnf.c -- float version of e_jn.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float
+two   =  2.0000000000e+00, /* 0x40000000 */
+one   =  1.0000000000e+00; /* 0x3F800000 */
+
+static const float zero  =  0.0000000000e+00;
+
+float
+__ieee754_jnf(int n, float x)
+{
+    float ret;
+    {
+	int32_t i,hx,ix, sgn;
+	float a, b, temp, di;
+	float z, w;
+
+    /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
+     * Thus, J(-n,x) = J(n,-x)
+     */
+	GET_FLOAT_WORD(hx,x);
+	ix = 0x7fffffff&hx;
+    /* if J(n,NaN) is NaN */
+	if(__builtin_expect(ix>0x7f800000, 0)) return x+x;
+	if(n<0){
+		n = -n;
+		x = -x;
+		hx ^= 0x80000000;
+	}
+	if(n==0) return(__ieee754_j0f(x));
+	if(n==1) return(__ieee754_j1f(x));
+	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
+	x = fabsf(x);
+	SET_RESTORE_ROUNDF (FE_TONEAREST);
+	if(__builtin_expect(ix==0||ix>=0x7f800000, 0))	/* if x is 0 or inf */
+	    return sgn == 1 ? -zero : zero;
+	else if((float)n<=x) {
+		/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
+	    a = __ieee754_j0f(x);
+	    b = __ieee754_j1f(x);
+	    for(i=1;i<n;i++){
+		temp = b;
+		b = b*((double)(i+i)/x) - a; /* avoid underflow */
+		a = temp;
+	    }
+	} else {
+	    if(ix<0x30800000) {	/* x < 2**-29 */
+    /* x is tiny, return the first Taylor expansion of J(n,x)
+     * J(n,x) = 1/n!*(x/2)^n  - ...
+     */
+		if(n>33)	/* underflow */
+		    b = zero;
+		else {
+		    temp = x*(float)0.5; b = temp;
+		    for (a=one,i=2;i<=n;i++) {
+			a *= (float)i;		/* a = n! */
+			b *= temp;		/* b = (x/2)^n */
+		    }
+		    b = b/a;
+		}
+	    } else {
+		/* use backward recurrence */
+		/*			x      x^2      x^2
+		 *  J(n,x)/J(n-1,x) =  ----   ------   ------   .....
+		 *			2n  - 2(n+1) - 2(n+2)
+		 *
+		 *			1      1        1
+		 *  (for large x)   =  ----  ------   ------   .....
+		 *			2n   2(n+1)   2(n+2)
+		 *			-- - ------ - ------ -
+		 *			 x     x         x
+		 *
+		 * Let w = 2n/x and h=2/x, then the above quotient
+		 * is equal to the continued fraction:
+		 *		    1
+		 *	= -----------------------
+		 *		       1
+		 *	   w - -----------------
+		 *			  1
+		 *		w+h - ---------
+		 *		       w+2h - ...
+		 *
+		 * To determine how many terms needed, let
+		 * Q(0) = w, Q(1) = w(w+h) - 1,
+		 * Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
+		 * When Q(k) > 1e4	good for single
+		 * When Q(k) > 1e9	good for double
+		 * When Q(k) > 1e17	good for quadruple
+		 */
+	    /* determine k */
+		float t,v;
+		float q0,q1,h,tmp; int32_t k,m;
+		w  = (n+n)/(float)x; h = (float)2.0/(float)x;
+		q0 = w;  z = w+h; q1 = w*z - (float)1.0; k=1;
+		while(q1<(float)1.0e9) {
+			k += 1; z += h;
+			tmp = z*q1 - q0;
+			q0 = q1;
+			q1 = tmp;
+		}
+		m = n+n;
+		for(t=zero, i = 2*(n+k); i>=m; i -= 2) t = one/(i/x-t);
+		a = t;
+		b = one;
+		/*  estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n)
+		 *  Hence, if n*(log(2n/x)) > ...
+		 *  single 8.8722839355e+01
+		 *  double 7.09782712893383973096e+02
+		 *  long double 1.1356523406294143949491931077970765006170e+04
+		 *  then recurrent value may overflow and the result is
+		 *  likely underflow to zero
+		 */
+		tmp = n;
+		v = two/x;
+		tmp = tmp*__ieee754_logf(fabsf(v*tmp));
+		if(tmp<(float)8.8721679688e+01) {
+		    for(i=n-1,di=(float)(i+i);i>0;i--){
+			temp = b;
+			b *= di;
+			b  = b/x - a;
+			a = temp;
+			di -= two;
+		    }
+		} else {
+		    for(i=n-1,di=(float)(i+i);i>0;i--){
+			temp = b;
+			b *= di;
+			b  = b/x - a;
+			a = temp;
+			di -= two;
+		    /* scale b to avoid spurious overflow */
+			if(b>(float)1e10) {
+			    a /= b;
+			    t /= b;
+			    b  = one;
+			}
+		    }
+		}
+		/* j0() and j1() suffer enormous loss of precision at and
+		 * near zero; however, we know that their zero points never
+		 * coincide, so just choose the one further away from zero.
+		 */
+		z = __ieee754_j0f (x);
+		w = __ieee754_j1f (x);
+		if (fabsf (z) >= fabsf (w))
+		  b = (t * z / b);
+		else
+		  b = (t * w / a);
+	    }
+	}
+	if(sgn==1) ret = -b; else ret = b;
+	ret = math_narrow_eval (ret);
+    }
+    if (ret == 0)
+      {
+	ret = math_narrow_eval (__copysignf (FLT_MIN, ret) * FLT_MIN);
+	__set_errno (ERANGE);
+      }
+    else
+	math_check_force_underflow (ret);
+    return ret;
+}
+strong_alias (__ieee754_jnf, __jnf_finite)
+
+float
+__ieee754_ynf(int n, float x)
+{
+    float ret;
+    {
+	int32_t i,hx,ix;
+	u_int32_t ib;
+	int32_t sign;
+	float a, b, temp;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = 0x7fffffff&hx;
+    /* if Y(n,NaN) is NaN */
+	if(__builtin_expect(ix>0x7f800000, 0)) return x+x;
+	if(__builtin_expect(ix==0, 0))
+		return -HUGE_VALF+x;  /* -inf and overflow exception.  */
+	if(__builtin_expect(hx<0, 0)) return zero/(zero*x);
+	sign = 1;
+	if(n<0){
+		n = -n;
+		sign = 1 - ((n&1)<<1);
+	}
+	if(n==0) return(__ieee754_y0f(x));
+	SET_RESTORE_ROUNDF (FE_TONEAREST);
+	if(n==1) {
+	    ret = sign*__ieee754_y1f(x);
+	    goto out;
+	}
+	if(__builtin_expect(ix==0x7f800000, 0)) return zero;
+
+	a = __ieee754_y0f(x);
+	b = __ieee754_y1f(x);
+	/* quit if b is -inf */
+	GET_FLOAT_WORD(ib,b);
+	for(i=1;i<n&&ib!=0xff800000;i++){
+	    temp = b;
+	    b = ((double)(i+i)/x)*b - a;
+	    GET_FLOAT_WORD(ib,b);
+	    a = temp;
+	}
+	/* If B is +-Inf, set up errno accordingly.  */
+	if (! isfinite (b))
+	  __set_errno (ERANGE);
+	if(sign>0) ret = b; else ret = -b;
+    }
+ out:
+    if (isinf (ret))
+	ret = __copysignf (FLT_MAX, ret) * FLT_MAX;
+    return ret;
+}
+strong_alias (__ieee754_ynf, __ynf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_lgammaf_r.c
new file mode 100644
index 0000000000..1b30dcd84d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -0,0 +1,246 @@
+/* e_lgammaf_r.c -- float version of e_lgamma_r.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+static const float
+two23=  8.3886080000e+06, /* 0x4b000000 */
+half=  5.0000000000e-01, /* 0x3f000000 */
+one =  1.0000000000e+00, /* 0x3f800000 */
+pi  =  3.1415927410e+00, /* 0x40490fdb */
+a0  =  7.7215664089e-02, /* 0x3d9e233f */
+a1  =  3.2246702909e-01, /* 0x3ea51a66 */
+a2  =  6.7352302372e-02, /* 0x3d89f001 */
+a3  =  2.0580807701e-02, /* 0x3ca89915 */
+a4  =  7.3855509982e-03, /* 0x3bf2027e */
+a5  =  2.8905137442e-03, /* 0x3b3d6ec6 */
+a6  =  1.1927076848e-03, /* 0x3a9c54a1 */
+a7  =  5.1006977446e-04, /* 0x3a05b634 */
+a8  =  2.2086278477e-04, /* 0x39679767 */
+a9  =  1.0801156895e-04, /* 0x38e28445 */
+a10 =  2.5214456400e-05, /* 0x37d383a2 */
+a11 =  4.4864096708e-05, /* 0x383c2c75 */
+tc  =  1.4616321325e+00, /* 0x3fbb16c3 */
+tf  = -1.2148628384e-01, /* 0xbdf8cdcd */
+/* tt = -(tail of tf) */
+tt  =  6.6971006518e-09, /* 0x31e61c52 */
+t0  =  4.8383611441e-01, /* 0x3ef7b95e */
+t1  = -1.4758771658e-01, /* 0xbe17213c */
+t2  =  6.4624942839e-02, /* 0x3d845a15 */
+t3  = -3.2788541168e-02, /* 0xbd064d47 */
+t4  =  1.7970675603e-02, /* 0x3c93373d */
+t5  = -1.0314224288e-02, /* 0xbc28fcfe */
+t6  =  6.1005386524e-03, /* 0x3bc7e707 */
+t7  = -3.6845202558e-03, /* 0xbb7177fe */
+t8  =  2.2596477065e-03, /* 0x3b141699 */
+t9  = -1.4034647029e-03, /* 0xbab7f476 */
+t10 =  8.8108185446e-04, /* 0x3a66f867 */
+t11 = -5.3859531181e-04, /* 0xba0d3085 */
+t12 =  3.1563205994e-04, /* 0x39a57b6b */
+t13 = -3.1275415677e-04, /* 0xb9a3f927 */
+t14 =  3.3552918467e-04, /* 0x39afe9f7 */
+u0  = -7.7215664089e-02, /* 0xbd9e233f */
+u1  =  6.3282704353e-01, /* 0x3f2200f4 */
+u2  =  1.4549225569e+00, /* 0x3fba3ae7 */
+u3  =  9.7771751881e-01, /* 0x3f7a4bb2 */
+u4  =  2.2896373272e-01, /* 0x3e6a7578 */
+u5  =  1.3381091878e-02, /* 0x3c5b3c5e */
+v1  =  2.4559779167e+00, /* 0x401d2ebe */
+v2  =  2.1284897327e+00, /* 0x4008392d */
+v3  =  7.6928514242e-01, /* 0x3f44efdf */
+v4  =  1.0422264785e-01, /* 0x3dd572af */
+v5  =  3.2170924824e-03, /* 0x3b52d5db */
+s0  = -7.7215664089e-02, /* 0xbd9e233f */
+s1  =  2.1498242021e-01, /* 0x3e5c245a */
+s2  =  3.2577878237e-01, /* 0x3ea6cc7a */
+s3  =  1.4635047317e-01, /* 0x3e15dce6 */
+s4  =  2.6642270386e-02, /* 0x3cda40e4 */
+s5  =  1.8402845599e-03, /* 0x3af135b4 */
+s6  =  3.1947532989e-05, /* 0x3805ff67 */
+r1  =  1.3920053244e+00, /* 0x3fb22d3b */
+r2  =  7.2193557024e-01, /* 0x3f38d0c5 */
+r3  =  1.7193385959e-01, /* 0x3e300f6e */
+r4  =  1.8645919859e-02, /* 0x3c98bf54 */
+r5  =  7.7794247773e-04, /* 0x3a4beed6 */
+r6  =  7.3266842264e-06, /* 0x36f5d7bd */
+w0  =  4.1893854737e-01, /* 0x3ed67f1d */
+w1  =  8.3333335817e-02, /* 0x3daaaaab */
+w2  = -2.7777778450e-03, /* 0xbb360b61 */
+w3  =  7.9365057172e-04, /* 0x3a500cfd */
+w4  = -5.9518753551e-04, /* 0xba1c065c */
+w5  =  8.3633989561e-04, /* 0x3a5b3dd2 */
+w6  = -1.6309292987e-03; /* 0xbad5c4e8 */
+
+static const float zero=  0.0000000000e+00;
+
+static float
+sin_pif(float x)
+{
+	float y,z;
+	int n,ix;
+
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;
+
+	if(ix<0x3e800000) return __kernel_sinf(pi*x,zero,0);
+	y = -x;		/* x is assume negative */
+
+    /*
+     * argument reduction, make sure inexact flag not raised if input
+     * is an integer
+     */
+	z = __floorf(y);
+	if(z!=y) {				/* inexact anyway */
+	    y  *= (float)0.5;
+	    y   = (float)2.0*(y - __floorf(y));	/* y = |x| mod 2.0 */
+	    n   = (int) (y*(float)4.0);
+	} else {
+	    if(ix>=0x4b800000) {
+		y = zero; n = 0;                 /* y must be even */
+	    } else {
+		if(ix<0x4b000000) z = y+two23;	/* exact */
+		GET_FLOAT_WORD(n,z);
+		n &= 1;
+		y  = n;
+		n<<= 2;
+	    }
+	}
+	switch (n) {
+	    case 0:   y =  __kernel_sinf(pi*y,zero,0); break;
+	    case 1:
+	    case 2:   y =  __kernel_cosf(pi*((float)0.5-y),zero); break;
+	    case 3:
+	    case 4:   y =  __kernel_sinf(pi*(one-y),zero,0); break;
+	    case 5:
+	    case 6:   y = -__kernel_cosf(pi*(y-(float)1.5),zero); break;
+	    default:  y =  __kernel_sinf(pi*(y-(float)2.0),zero,0); break;
+	    }
+	return -y;
+}
+
+
+float
+__ieee754_lgammaf_r(float x, int *signgamp)
+{
+	float t,y,z,nadj,p,p1,p2,p3,q,r,w;
+	int i,hx,ix;
+
+	GET_FLOAT_WORD(hx,x);
+
+    /* purge off +-inf, NaN, +-0, and negative arguments */
+	*signgamp = 1;
+	ix = hx&0x7fffffff;
+	if(__builtin_expect(ix>=0x7f800000, 0)) return x*x;
+	if(__builtin_expect(ix==0, 0))
+	  {
+	    if (hx < 0)
+	      *signgamp = -1;
+	    return one/fabsf(x);
+	  }
+	if(__builtin_expect(ix<0x30800000, 0)) {
+	    /* |x|<2**-30, return -log(|x|) */
+	    if(hx<0) {
+		*signgamp = -1;
+		return -__ieee754_logf(-x);
+	    } else return -__ieee754_logf(x);
+	}
+	if(hx<0) {
+	    if(ix>=0x4b000000)	/* |x|>=2**23, must be -integer */
+		return __fabsf (x)/zero;
+	    if (ix > 0x40000000 /* X < 2.0f.  */
+		&& ix < 0x41700000 /* X > -15.0f.  */)
+		return __lgamma_negf (x, signgamp);
+	    t = sin_pif(x);
+	    if(t==zero) return one/fabsf(t); /* -integer */
+	    nadj = __ieee754_logf(pi/fabsf(t*x));
+	    if(t<zero) *signgamp = -1;
+	    x = -x;
+	}
+
+    /* purge off 1 and 2 */
+	if (ix==0x3f800000||ix==0x40000000) r = 0;
+    /* for x < 2.0 */
+	else if(ix<0x40000000) {
+	    if(ix<=0x3f666666) {	/* lgamma(x) = lgamma(x+1)-log(x) */
+		r = -__ieee754_logf(x);
+		if(ix>=0x3f3b4a20) {y = one-x; i= 0;}
+		else if(ix>=0x3e6d3308) {y= x-(tc-one); i=1;}
+		else {y = x; i=2;}
+	    } else {
+		r = zero;
+		if(ix>=0x3fdda618) {y=(float)2.0-x;i=0;} /* [1.7316,2] */
+		else if(ix>=0x3F9da620) {y=x-tc;i=1;} /* [1.23,1.73] */
+		else {y=x-one;i=2;}
+	    }
+	    switch(i) {
+	      case 0:
+		z = y*y;
+		p1 = a0+z*(a2+z*(a4+z*(a6+z*(a8+z*a10))));
+		p2 = z*(a1+z*(a3+z*(a5+z*(a7+z*(a9+z*a11)))));
+		p  = y*p1+p2;
+		r  += (p-(float)0.5*y); break;
+	      case 1:
+		z = y*y;
+		w = z*y;
+		p1 = t0+w*(t3+w*(t6+w*(t9 +w*t12)));	/* parallel comp */
+		p2 = t1+w*(t4+w*(t7+w*(t10+w*t13)));
+		p3 = t2+w*(t5+w*(t8+w*(t11+w*t14)));
+		p  = z*p1-(tt-w*(p2+y*p3));
+		r += (tf + p); break;
+	      case 2:
+		p1 = y*(u0+y*(u1+y*(u2+y*(u3+y*(u4+y*u5)))));
+		p2 = one+y*(v1+y*(v2+y*(v3+y*(v4+y*v5))));
+		r += (-(float)0.5*y + p1/p2);
+	    }
+	}
+	else if(ix<0x41000000) {			/* x < 8.0 */
+	    i = (int)x;
+	    t = zero;
+	    y = x-(float)i;
+	    p = y*(s0+y*(s1+y*(s2+y*(s3+y*(s4+y*(s5+y*s6))))));
+	    q = one+y*(r1+y*(r2+y*(r3+y*(r4+y*(r5+y*r6)))));
+	    r = half*y+p/q;
+	    z = one;	/* lgamma(1+s) = log(s) + lgamma(s) */
+	    switch(i) {
+	    case 7: z *= (y+(float)6.0);	/* FALLTHRU */
+	    case 6: z *= (y+(float)5.0);	/* FALLTHRU */
+	    case 5: z *= (y+(float)4.0);	/* FALLTHRU */
+	    case 4: z *= (y+(float)3.0);	/* FALLTHRU */
+	    case 3: z *= (y+(float)2.0);	/* FALLTHRU */
+		    r += __ieee754_logf(z); break;
+	    }
+    /* 8.0 <= x < 2**26 */
+	} else if (ix < 0x4c800000) {
+	    t = __ieee754_logf(x);
+	    z = one/x;
+	    y = z*z;
+	    w = w0+z*(w1+y*(w2+y*(w3+y*(w4+y*(w5+y*w6)))));
+	    r = (x-half)*(t-one)+w;
+	} else
+    /* 2**26 <= x <= inf */
+	    r =  math_narrow_eval (x*(__ieee754_logf(x)-one));
+	/* NADJ is set for negative arguments but not otherwise,
+	   resulting in warnings that it may be used uninitialized
+	   although in the cases where it is used it has always been
+	   set.  */
+	DIAG_PUSH_NEEDS_COMMENT;
+	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	if(hx<0) r = nadj - r;
+	DIAG_POP_NEEDS_COMMENT;
+	return r;
+}
+strong_alias (__ieee754_lgammaf_r, __lgammaf_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_log10f.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_log10f.c
new file mode 100644
index 0000000000..aa21bbc9c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_log10f.c
@@ -0,0 +1,54 @@
+/* e_log10f.c -- float version of e_log10.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+static const float
+two25      =  3.3554432000e+07, /* 0x4c000000 */
+ivln10     =  4.3429449201e-01, /* 0x3ede5bd9 */
+log10_2hi  =  3.0102920532e-01, /* 0x3e9a2080 */
+log10_2lo  =  7.9034151668e-07; /* 0x355427db */
+
+float
+__ieee754_log10f(float x)
+{
+	float y,z;
+	int32_t i,k,hx;
+
+	GET_FLOAT_WORD(hx,x);
+
+	k=0;
+	if (hx < 0x00800000) {			/* x < 2**-126  */
+	    if (__builtin_expect((hx&0x7fffffff)==0, 0))
+	      return -two25/__fabsf (x);	/* log(+-0)=-inf  */
+	    if (__builtin_expect(hx<0, 0))
+		return (x-x)/(x-x);	/* log(-#) = NaN */
+	    k -= 25; x *= two25; /* subnormal number, scale up x */
+	    GET_FLOAT_WORD(hx,x);
+	}
+	if (__builtin_expect(hx >= 0x7f800000, 0)) return x+x;
+	k += (hx>>23)-127;
+	i  = ((u_int32_t)k&0x80000000)>>31;
+	hx = (hx&0x007fffff)|((0x7f-i)<<23);
+	y  = (float)(k+i);
+	if (FIX_INT_FP_CONVERT_ZERO && y == 0.0f)
+	  y = 0.0f;
+	SET_FLOAT_WORD(x,hx);
+	z  = y*log10_2lo + ivln10*__ieee754_logf(x);
+	return  z+y*log10_2hi;
+}
+strong_alias (__ieee754_log10f, __log10f_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_log2f.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_log2f.c
new file mode 100644
index 0000000000..782d901094
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_log2f.c
@@ -0,0 +1,86 @@
+/* e_logf.c -- float version of e_log.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ * adapted for log2 by Ulrich Drepper <drepper@cygnus.com>
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+static const float
+ln2 = 0.69314718055994530942,
+two25 =    3.355443200e+07,	/* 0x4c000000 */
+Lg1 = 6.6666668653e-01,	/* 3F2AAAAB */
+Lg2 = 4.0000000596e-01,	/* 3ECCCCCD */
+Lg3 = 2.8571429849e-01, /* 3E924925 */
+Lg4 = 2.2222198546e-01, /* 3E638E29 */
+Lg5 = 1.8183572590e-01, /* 3E3A3325 */
+Lg6 = 1.5313838422e-01, /* 3E1CD04F */
+Lg7 = 1.4798198640e-01; /* 3E178897 */
+
+static const float zero   =  0.0;
+
+float
+__ieee754_log2f(float x)
+{
+	float hfsq,f,s,z,R,w,t1,t2,dk;
+	int32_t k,ix,i,j;
+
+	GET_FLOAT_WORD(ix,x);
+
+	k=0;
+	if (ix < 0x00800000) {			/* x < 2**-126  */
+	    if (__builtin_expect((ix&0x7fffffff)==0, 0))
+		return -two25/__fabsf (x);	/* log(+-0)=-inf  */
+	    if (__builtin_expect(ix<0, 0))
+		return (x-x)/(x-x);	/* log(-#) = NaN */
+	    k -= 25; x *= two25; /* subnormal number, scale up x */
+	    GET_FLOAT_WORD(ix,x);
+	}
+	if (__builtin_expect(ix >= 0x7f800000, 0)) return x+x;
+	k += (ix>>23)-127;
+	ix &= 0x007fffff;
+	i = (ix+(0x95f64<<3))&0x800000;
+	SET_FLOAT_WORD(x,ix|(i^0x3f800000));	/* normalize x or x/2 */
+	k += (i>>23);
+	dk = (float)k;
+	f = x-(float)1.0;
+	if((0x007fffff&(15+ix))<16) {	/* |f| < 2**-20 */
+	    if(f==zero)
+	      {
+		if (FIX_INT_FP_CONVERT_ZERO && dk == 0.0f)
+		  dk = 0.0f;
+		return dk;
+	      }
+	    R = f*f*((float)0.5-(float)0.33333333333333333*f);
+	    return dk-(R-f)/ln2;
+	}
+	s = f/((float)2.0+f);
+	z = s*s;
+	i = ix-(0x6147a<<3);
+	w = z*z;
+	j = (0x6b851<<3)-ix;
+	t1= w*(Lg2+w*(Lg4+w*Lg6));
+	t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7)));
+	i |= j;
+	R = t2+t1;
+	if(i>0) {
+	    hfsq=(float)0.5*f*f;
+	    return dk-((hfsq-(s*(hfsq+R)))-f)/ln2;
+	} else {
+	    return dk-((s*(f-R))-f)/ln2;
+	}
+}
+strong_alias (__ieee754_log2f, __log2f_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_logf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_logf.c
new file mode 100644
index 0000000000..cf75e11781
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_logf.c
@@ -0,0 +1,85 @@
+/* e_logf.c -- float version of e_log.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+ln2_hi =   6.9313812256e-01,	/* 0x3f317180 */
+ln2_lo =   9.0580006145e-06,	/* 0x3717f7d1 */
+two25 =    3.355443200e+07,	/* 0x4c000000 */
+Lg1 = 6.6666668653e-01,	/* 3F2AAAAB */
+Lg2 = 4.0000000596e-01,	/* 3ECCCCCD */
+Lg3 = 2.8571429849e-01, /* 3E924925 */
+Lg4 = 2.2222198546e-01, /* 3E638E29 */
+Lg5 = 1.8183572590e-01, /* 3E3A3325 */
+Lg6 = 1.5313838422e-01, /* 3E1CD04F */
+Lg7 = 1.4798198640e-01; /* 3E178897 */
+
+static const float zero   =  0.0;
+
+float
+__ieee754_logf(float x)
+{
+	float hfsq,f,s,z,R,w,t1,t2,dk;
+	int32_t k,ix,i,j;
+
+	GET_FLOAT_WORD(ix,x);
+
+	k=0;
+	if (ix < 0x00800000) {			/* x < 2**-126  */
+	    if (__builtin_expect((ix&0x7fffffff)==0, 0))
+		return -two25/zero;		/* log(+-0)=-inf */
+	    if (__builtin_expect(ix<0, 0))
+		return (x-x)/(x-x);	/* log(-#) = NaN */
+	    k -= 25; x *= two25; /* subnormal number, scale up x */
+	    GET_FLOAT_WORD(ix,x);
+	}
+	if (__builtin_expect(ix >= 0x7f800000, 0)) return x+x;
+	k += (ix>>23)-127;
+	ix &= 0x007fffff;
+	i = (ix+(0x95f64<<3))&0x800000;
+	SET_FLOAT_WORD(x,ix|(i^0x3f800000));	/* normalize x or x/2 */
+	k += (i>>23);
+	f = x-(float)1.0;
+	if((0x007fffff&(15+ix))<16) {	/* |f| < 2**-20 */
+	    if(f==zero) {
+	      if(k==0) return zero;  else {dk=(float)k;
+					   return dk*ln2_hi+dk*ln2_lo;}
+	    }
+	    R = f*f*((float)0.5-(float)0.33333333333333333*f);
+	    if(k==0) return f-R; else {dk=(float)k;
+		     return dk*ln2_hi-((R-dk*ln2_lo)-f);}
+	}
+	s = f/((float)2.0+f);
+	dk = (float)k;
+	z = s*s;
+	i = ix-(0x6147a<<3);
+	w = z*z;
+	j = (0x6b851<<3)-ix;
+	t1= w*(Lg2+w*(Lg4+w*Lg6));
+	t2= z*(Lg1+w*(Lg3+w*(Lg5+w*Lg7)));
+	i |= j;
+	R = t2+t1;
+	if(i>0) {
+	    hfsq=(float)0.5*f*f;
+	    if(k==0) return f-(hfsq-s*(hfsq+R)); else
+		     return dk*ln2_hi-((hfsq-(s*(hfsq+R)+dk*ln2_lo))-f);
+	} else {
+	    if(k==0) return f-s*(f-R); else
+		     return dk*ln2_hi-((s*(f-R)-dk*ln2_lo)-f);
+	}
+}
+strong_alias (__ieee754_logf, __logf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_powf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_powf.c
new file mode 100644
index 0000000000..13b49def8e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_powf.c
@@ -0,0 +1,258 @@
+/* e_powf.c -- float version of e_pow.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float huge = 1.0e+30, tiny = 1.0e-30;
+
+static const float
+bp[] = {1.0, 1.5,},
+dp_h[] = { 0.0, 5.84960938e-01,}, /* 0x3f15c000 */
+dp_l[] = { 0.0, 1.56322085e-06,}, /* 0x35d1cfdc */
+zero    =  0.0,
+one	=  1.0,
+two	=  2.0,
+two24	=  16777216.0,	/* 0x4b800000 */
+	/* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */
+L1  =  6.0000002384e-01, /* 0x3f19999a */
+L2  =  4.2857143283e-01, /* 0x3edb6db7 */
+L3  =  3.3333334327e-01, /* 0x3eaaaaab */
+L4  =  2.7272811532e-01, /* 0x3e8ba305 */
+L5  =  2.3066075146e-01, /* 0x3e6c3255 */
+L6  =  2.0697501302e-01, /* 0x3e53f142 */
+P1   =  1.6666667163e-01, /* 0x3e2aaaab */
+P2   = -2.7777778450e-03, /* 0xbb360b61 */
+P3   =  6.6137559770e-05, /* 0x388ab355 */
+P4   = -1.6533901999e-06, /* 0xb5ddea0e */
+P5   =  4.1381369442e-08, /* 0x3331bb4c */
+lg2  =  6.9314718246e-01, /* 0x3f317218 */
+lg2_h  =  6.93145752e-01, /* 0x3f317200 */
+lg2_l  =  1.42860654e-06, /* 0x35bfbe8c */
+ovt =  4.2995665694e-08, /* -(128-log2(ovfl+.5ulp)) */
+cp    =  9.6179670095e-01, /* 0x3f76384f =2/(3ln2) */
+cp_h  =  0xf.64p-4, /* cp high 12 bits.  */
+cp_l  =  -0x7.b11e3p-16, /* 2/(3ln2) - cp_h.  */
+ivln2    =  1.4426950216e+00, /* 0x3fb8aa3b =1/ln2 */
+ivln2_h  =  1.4426879883e+00, /* 0x3fb8aa00 =16b 1/ln2*/
+ivln2_l  =  7.0526075433e-06; /* 0x36eca570 =1/ln2 tail*/
+
+float
+__ieee754_powf(float x, float y)
+{
+	float z,ax,z_h,z_l,p_h,p_l;
+	float y1,t1,t2,r,s,t,u,v,w;
+	int32_t i,j,k,yisint,n;
+	int32_t hx,hy,ix,iy,is;
+
+	GET_FLOAT_WORD(hx,x);
+	GET_FLOAT_WORD(hy,y);
+	ix = hx&0x7fffffff;  iy = hy&0x7fffffff;
+
+    /* y==zero: x**0 = 1 */
+	if(iy==0 && !issignaling (x)) return one;
+
+    /* x==+-1 */
+	if(x == 1.0 && !issignaling (y)) return one;
+	if(x == -1.0 && isinf(y)) return one;
+
+    /* +-NaN return x+y */
+	if(__builtin_expect(ix > 0x7f800000 ||
+			    iy > 0x7f800000, 0))
+		return x+y;
+
+    /* determine if y is an odd int when x < 0
+     * yisint = 0	... y is not an integer
+     * yisint = 1	... y is an odd int
+     * yisint = 2	... y is an even int
+     */
+	yisint  = 0;
+	if(hx<0) {
+	    if(iy>=0x4b800000) yisint = 2; /* even integer y */
+	    else if(iy>=0x3f800000) {
+		k = (iy>>23)-0x7f;	   /* exponent */
+		j = iy>>(23-k);
+		if((j<<(23-k))==iy) yisint = 2-(j&1);
+	    }
+	}
+
+    /* special value of y */
+	if (__builtin_expect(iy==0x7f800000, 0)) {	/* y is +-inf */
+	    if (ix==0x3f800000)
+		return  y - y;	/* inf**+-1 is NaN */
+	    else if (ix > 0x3f800000)/* (|x|>1)**+-inf = inf,0 */
+		return (hy>=0)? y: zero;
+	    else			/* (|x|<1)**-,+inf = inf,0 */
+		return (hy<0)?-y: zero;
+	}
+	if(iy==0x3f800000) {	/* y is  +-1 */
+	    if(hy<0) return one/x; else return x;
+	}
+	if(hy==0x40000000) return x*x; /* y is  2 */
+	if(hy==0x3f000000) {	/* y is  0.5 */
+	    if(__builtin_expect(hx>=0, 1))	/* x >= +0 */
+	    return __ieee754_sqrtf(x);
+	}
+
+	ax   = fabsf(x);
+    /* special value of x */
+	if(__builtin_expect(ix==0x7f800000||ix==0||ix==0x3f800000, 0)){
+	    z = ax;			/*x is +-0,+-inf,+-1*/
+	    if(hy<0) z = one/z;	/* z = (1/|x|) */
+	    if(hx<0) {
+		if(((ix-0x3f800000)|yisint)==0) {
+		    z = (z-z)/(z-z); /* (-1)**non-int is NaN */
+		} else if(yisint==1)
+		    z = -z;		/* (x<0)**odd = -(|x|**odd) */
+	    }
+	    return z;
+	}
+
+    /* (x<0)**(non-int) is NaN */
+	if(__builtin_expect(((((u_int32_t)hx>>31)-1)|yisint)==0, 0))
+	    return (x-x)/(x-x);
+
+    /* |y| is huge */
+	if(__builtin_expect(iy>0x4d000000, 0)) { /* if |y| > 2**27 */
+	/* over/underflow if x is not close to one */
+	    if(ix<0x3f7ffff8) return (hy<0)? huge*huge:tiny*tiny;
+	    if(ix>0x3f800007) return (hy>0)? huge*huge:tiny*tiny;
+	/* now |1-x| is tiny <= 2**-20, suffice to compute
+	   log(x) by x-x^2/2+x^3/3-x^4/4 */
+	    t = ax-1;		/* t has 20 trailing zeros */
+	    w = (t*t)*((float)0.5-t*((float)0.333333333333-t*(float)0.25));
+	    u = ivln2_h*t;	/* ivln2_h has 16 sig. bits */
+	    v = t*ivln2_l-w*ivln2;
+	    t1 = u+v;
+	    GET_FLOAT_WORD(is,t1);
+	    SET_FLOAT_WORD(t1,is&0xfffff000);
+	    t2 = v-(t1-u);
+	} else {
+	    float s2,s_h,s_l,t_h,t_l;
+	    /* Avoid internal underflow for tiny y.  The exact value
+	       of y does not matter if |y| <= 2**-32.  */
+	    if (iy < 0x2f800000)
+	      SET_FLOAT_WORD (y, (hy & 0x80000000) | 0x2f800000);
+	    n = 0;
+	/* take care subnormal number */
+	    if(ix<0x00800000)
+		{ax *= two24; n -= 24; GET_FLOAT_WORD(ix,ax); }
+	    n  += ((ix)>>23)-0x7f;
+	    j  = ix&0x007fffff;
+	/* determine interval */
+	    ix = j|0x3f800000;		/* normalize ix */
+	    if(j<=0x1cc471) k=0;	/* |x|<sqrt(3/2) */
+	    else if(j<0x5db3d7) k=1;	/* |x|<sqrt(3)   */
+	    else {k=0;n+=1;ix -= 0x00800000;}
+	    SET_FLOAT_WORD(ax,ix);
+
+	/* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
+	    u = ax-bp[k];		/* bp[0]=1.0, bp[1]=1.5 */
+	    v = one/(ax+bp[k]);
+	    s = u*v;
+	    s_h = s;
+	    GET_FLOAT_WORD(is,s_h);
+	    SET_FLOAT_WORD(s_h,is&0xfffff000);
+	/* t_h=ax+bp[k] High */
+	    SET_FLOAT_WORD (t_h,
+			    ((((ix>>1)|0x20000000)+0x00400000+(k<<21))
+			     & 0xfffff000));
+	    t_l = ax - (t_h-bp[k]);
+	    s_l = v*((u-s_h*t_h)-s_h*t_l);
+	/* compute log(ax) */
+	    s2 = s*s;
+	    r = s2*s2*(L1+s2*(L2+s2*(L3+s2*(L4+s2*(L5+s2*L6)))));
+	    r += s_l*(s_h+s);
+	    s2  = s_h*s_h;
+	    t_h = (float)3.0+s2+r;
+	    GET_FLOAT_WORD(is,t_h);
+	    SET_FLOAT_WORD(t_h,is&0xfffff000);
+	    t_l = r-((t_h-(float)3.0)-s2);
+	/* u+v = s*(1+...) */
+	    u = s_h*t_h;
+	    v = s_l*t_h+t_l*s;
+	/* 2/(3log2)*(s+...) */
+	    p_h = u+v;
+	    GET_FLOAT_WORD(is,p_h);
+	    SET_FLOAT_WORD(p_h,is&0xfffff000);
+	    p_l = v-(p_h-u);
+	    z_h = cp_h*p_h;		/* cp_h+cp_l = 2/(3*log2) */
+	    z_l = cp_l*p_h+p_l*cp+dp_l[k];
+	/* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
+	    t = (float)n;
+	    t1 = (((z_h+z_l)+dp_h[k])+t);
+	    GET_FLOAT_WORD(is,t1);
+	    SET_FLOAT_WORD(t1,is&0xfffff000);
+	    t2 = z_l-(((t1-t)-dp_h[k])-z_h);
+	}
+
+	s = one; /* s (sign of result -ve**odd) = -1 else = 1 */
+	if(((((u_int32_t)hx>>31)-1)|(yisint-1))==0)
+	    s = -one;	/* (-ve)**(odd int) */
+
+    /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
+	GET_FLOAT_WORD(is,y);
+	SET_FLOAT_WORD(y1,is&0xfffff000);
+	p_l = (y-y1)*t1+y*t2;
+	p_h = y1*t1;
+	z = p_l+p_h;
+	GET_FLOAT_WORD(j,z);
+	if (__builtin_expect(j>0x43000000, 0))		/* if z > 128 */
+	    return s*huge*huge;				/* overflow */
+	else if (__builtin_expect(j==0x43000000, 0)) {	/* if z == 128 */
+	    if(p_l+ovt>z-p_h) return s*huge*huge;	/* overflow */
+	}
+	else if (__builtin_expect((j&0x7fffffff)>0x43160000, 0))/* z <= -150 */
+	    return s*tiny*tiny;				/* underflow */
+	else if (__builtin_expect((u_int32_t) j==0xc3160000, 0)){/* z == -150*/
+	    if(p_l<=z-p_h) return s*tiny*tiny;		/* underflow */
+	}
+    /*
+     * compute 2**(p_h+p_l)
+     */
+	i = j&0x7fffffff;
+	k = (i>>23)-0x7f;
+	n = 0;
+	if(i>0x3f000000) {		/* if |z| > 0.5, set n = [z+0.5] */
+	    n = j+(0x00800000>>(k+1));
+	    k = ((n&0x7fffffff)>>23)-0x7f;	/* new k for n */
+	    SET_FLOAT_WORD(t,n&~(0x007fffff>>k));
+	    n = ((n&0x007fffff)|0x00800000)>>(23-k);
+	    if(j<0) n = -n;
+	    p_h -= t;
+	}
+	t = p_l+p_h;
+	GET_FLOAT_WORD(is,t);
+	SET_FLOAT_WORD(t,is&0xfffff000);
+	u = t*lg2_h;
+	v = (p_l-(t-p_h))*lg2+t*lg2_l;
+	z = u+v;
+	w = v-(z-u);
+	t  = z*z;
+	t1  = z - t*(P1+t*(P2+t*(P3+t*(P4+t*P5))));
+	r  = (z*t1)/(t1-two)-(w+z*w);
+	z  = one-(r-z);
+	GET_FLOAT_WORD(j,z);
+	j += (n<<23);
+	if((j>>23)<=0)	/* subnormal output */
+	  {
+	    z = __scalbnf (z, n);
+	    float force_underflow = z * z;
+	    math_force_eval (force_underflow);
+	  }
+	else SET_FLOAT_WORD(z,j);
+	return s*z;
+}
+strong_alias (__ieee754_powf, __powf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_rem_pio2f.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_rem_pio2f.c
new file mode 100644
index 0000000000..c4d28c8657
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_rem_pio2f.c
@@ -0,0 +1,179 @@
+/* e_rem_pio2f.c -- float version of e_rem_pio2.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_rem_pio2f.c,v 1.5 1995/05/10 20:46:03 jtc Exp $";
+#endif
+
+/* __ieee754_rem_pio2f(x,y)
+ *
+ * return the remainder of x rem pi/2 in y[0]+y[1]
+ * use __kernel_rem_pio2f()
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+/*
+ * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+ */
+static const int32_t two_over_pi[] = {
+0xA2, 0xF9, 0x83, 0x6E, 0x4E, 0x44, 0x15, 0x29, 0xFC,
+0x27, 0x57, 0xD1, 0xF5, 0x34, 0xDD, 0xC0, 0xDB, 0x62,
+0x95, 0x99, 0x3C, 0x43, 0x90, 0x41, 0xFE, 0x51, 0x63,
+0xAB, 0xDE, 0xBB, 0xC5, 0x61, 0xB7, 0x24, 0x6E, 0x3A,
+0x42, 0x4D, 0xD2, 0xE0, 0x06, 0x49, 0x2E, 0xEA, 0x09,
+0xD1, 0x92, 0x1C, 0xFE, 0x1D, 0xEB, 0x1C, 0xB1, 0x29,
+0xA7, 0x3E, 0xE8, 0x82, 0x35, 0xF5, 0x2E, 0xBB, 0x44,
+0x84, 0xE9, 0x9C, 0x70, 0x26, 0xB4, 0x5F, 0x7E, 0x41,
+0x39, 0x91, 0xD6, 0x39, 0x83, 0x53, 0x39, 0xF4, 0x9C,
+0x84, 0x5F, 0x8B, 0xBD, 0xF9, 0x28, 0x3B, 0x1F, 0xF8,
+0x97, 0xFF, 0xDE, 0x05, 0x98, 0x0F, 0xEF, 0x2F, 0x11,
+0x8B, 0x5A, 0x0A, 0x6D, 0x1F, 0x6D, 0x36, 0x7E, 0xCF,
+0x27, 0xCB, 0x09, 0xB7, 0x4F, 0x46, 0x3F, 0x66, 0x9E,
+0x5F, 0xEA, 0x2D, 0x75, 0x27, 0xBA, 0xC7, 0xEB, 0xE5,
+0xF1, 0x7B, 0x3D, 0x07, 0x39, 0xF7, 0x8A, 0x52, 0x92,
+0xEA, 0x6B, 0xFB, 0x5F, 0xB1, 0x1F, 0x8D, 0x5D, 0x08,
+0x56, 0x03, 0x30, 0x46, 0xFC, 0x7B, 0x6B, 0xAB, 0xF0,
+0xCF, 0xBC, 0x20, 0x9A, 0xF4, 0x36, 0x1D, 0xA9, 0xE3,
+0x91, 0x61, 0x5E, 0xE6, 0x1B, 0x08, 0x65, 0x99, 0x85,
+0x5F, 0x14, 0xA0, 0x68, 0x40, 0x8D, 0xFF, 0xD8, 0x80,
+0x4D, 0x73, 0x27, 0x31, 0x06, 0x06, 0x15, 0x56, 0xCA,
+0x73, 0xA8, 0xC9, 0x60, 0xE2, 0x7B, 0xC0, 0x8C, 0x6B,
+};
+
+/* This array is like the one in e_rem_pio2.c, but the numbers are
+   single precision and the last 8 bits are forced to 0.  */
+static const int32_t npio2_hw[] = {
+0x3fc90f00, 0x40490f00, 0x4096cb00, 0x40c90f00, 0x40fb5300, 0x4116cb00,
+0x412fed00, 0x41490f00, 0x41623100, 0x417b5300, 0x418a3a00, 0x4196cb00,
+0x41a35c00, 0x41afed00, 0x41bc7e00, 0x41c90f00, 0x41d5a000, 0x41e23100,
+0x41eec200, 0x41fb5300, 0x4203f200, 0x420a3a00, 0x42108300, 0x4216cb00,
+0x421d1400, 0x42235c00, 0x4229a500, 0x422fed00, 0x42363600, 0x423c7e00,
+0x4242c700, 0x42490f00
+};
+
+/*
+ * invpio2:  24 bits of 2/pi
+ * pio2_1:   first  17 bit of pi/2
+ * pio2_1t:  pi/2 - pio2_1
+ * pio2_2:   second 17 bit of pi/2
+ * pio2_2t:  pi/2 - (pio2_1+pio2_2)
+ * pio2_3:   third  17 bit of pi/2
+ * pio2_3t:  pi/2 - (pio2_1+pio2_2+pio2_3)
+ */
+
+static const float
+zero =  0.0000000000e+00, /* 0x00000000 */
+half =  5.0000000000e-01, /* 0x3f000000 */
+two8 =  2.5600000000e+02, /* 0x43800000 */
+invpio2 =  6.3661980629e-01, /* 0x3f22f984 */
+pio2_1  =  1.5707855225e+00, /* 0x3fc90f80 */
+pio2_1t =  1.0804334124e-05, /* 0x37354443 */
+pio2_2  =  1.0804273188e-05, /* 0x37354400 */
+pio2_2t =  6.0770999344e-11, /* 0x2e85a308 */
+pio2_3  =  6.0770943833e-11, /* 0x2e85a300 */
+pio2_3t =  6.1232342629e-17; /* 0x248d3132 */
+
+int32_t __ieee754_rem_pio2f(float x, float *y)
+{
+	float z,w,t,r,fn;
+	float tx[3];
+	int32_t e0,i,j,nx,n,ix,hx;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(ix<=0x3f490fd8)   /* |x| ~<= pi/4 , no need for reduction */
+	    {y[0] = x; y[1] = 0; return 0;}
+	if(ix<0x4016cbe4) {  /* |x| < 3pi/4, special case with n=+-1 */
+	    if(hx>0) {
+		z = x - pio2_1;
+		if((ix&0xffffffc0)!=0x3fc90fc0) { /* 24+24 bit pi OK */
+		    y[0] = z - pio2_1t;
+		    y[1] = (z-y[0])-pio2_1t;
+		} else {		/* near pi/2, use 24+24+24 bit pi */
+		    z -= pio2_2;
+		    y[0] = z - pio2_2t;
+		    y[1] = (z-y[0])-pio2_2t;
+		}
+		return 1;
+	    } else {	/* negative x */
+		z = x + pio2_1;
+		if((ix&0xffffffc0)!=0x3fc90fc0) { /* 24+24 bit pi OK */
+		    y[0] = z + pio2_1t;
+		    y[1] = (z-y[0])+pio2_1t;
+		} else {		/* near pi/2, use 24+24+24 bit pi */
+		    z += pio2_2;
+		    y[0] = z + pio2_2t;
+		    y[1] = (z-y[0])+pio2_2t;
+		}
+		return -1;
+	    }
+	}
+	if(ix<=0x43490f80) { /* |x| ~<= 2^7*(pi/2), medium size */
+	    t  = fabsf(x);
+	    n  = (int32_t) (t*invpio2+half);
+	    fn = (float)n;
+	    r  = t-fn*pio2_1;
+	    w  = fn*pio2_1t;	/* 1st round good to 40 bit */
+	    if(n<32&&(int32_t)(ix&0xffffff00)!=npio2_hw[n-1]) {
+		y[0] = r-w;	/* quick check no cancellation */
+	    } else {
+	        u_int32_t high;
+	        j  = ix>>23;
+	        y[0] = r-w;
+		GET_FLOAT_WORD(high,y[0]);
+	        i = j-((high>>23)&0xff);
+	        if(i>8) {  /* 2nd iteration needed, good to 57 */
+		    t  = r;
+		    w  = fn*pio2_2;
+		    r  = t-w;
+		    w  = fn*pio2_2t-((t-r)-w);
+		    y[0] = r-w;
+		    GET_FLOAT_WORD(high,y[0]);
+		    i = j-((high>>23)&0xff);
+		    if(i>25)  {	/* 3rd iteration need, 74 bits acc */
+			t  = r;	/* will cover all possible cases */
+			w  = fn*pio2_3;
+			r  = t-w;
+			w  = fn*pio2_3t-((t-r)-w);
+			y[0] = r-w;
+		    }
+		}
+	    }
+	    y[1] = (r-y[0])-w;
+	    if(hx<0) 	{y[0] = -y[0]; y[1] = -y[1]; return -n;}
+	    else	 return n;
+	}
+    /*
+     * all other (large) arguments
+     */
+	if(ix>=0x7f800000) {		/* x is inf or NaN */
+	    y[0]=y[1]=x-x; return 0;
+	}
+    /* set z = scalbn(|x|,ilogb(x)-7) */
+	e0 	= (ix>>23)-134;		/* e0 = ilogb(z)-7; */
+	SET_FLOAT_WORD(z, ix - ((int32_t)(e0<<23)));
+	for(i=0;i<2;i++) {
+		tx[i] = (float)((int32_t)(z));
+		z     = (z-tx[i])*two8;
+	}
+	tx[2] = z;
+	nx = 3;
+	while(tx[nx-1]==zero) nx--;	/* skip zero term */
+	n  =  __kernel_rem_pio2f(tx,y,e0,nx,2,two_over_pi);
+	if(hx<0) {y[0] = -y[0]; y[1] = -y[1]; return -n;}
+	return n;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_remainderf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_remainderf.c
new file mode 100644
index 0000000000..cc0167862e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_remainderf.c
@@ -0,0 +1,62 @@
+/* e_remainderf.c -- float version of e_remainder.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float zero = 0.0;
+
+
+float
+__ieee754_remainderf(float x, float p)
+{
+	int32_t hx,hp;
+	u_int32_t sx;
+	float p_half;
+
+	GET_FLOAT_WORD(hx,x);
+	GET_FLOAT_WORD(hp,p);
+	sx = hx&0x80000000;
+	hp &= 0x7fffffff;
+	hx &= 0x7fffffff;
+
+    /* purge off exception values */
+	if(hp==0) return (x*p)/(x*p);		/* p = 0 */
+	if((hx>=0x7f800000)||			/* x not finite */
+	  ((hp>0x7f800000)))			/* p is NaN */
+	    return (x*p)/(x*p);
+
+
+	if (hp<=0x7effffff) x = __ieee754_fmodf(x,p+p);	/* now x < 2p */
+	if ((hx-hp)==0) return zero*x;
+	x  = fabsf(x);
+	p  = fabsf(p);
+	if (hp<0x01000000) {
+	    if(x+x>p) {
+		x-=p;
+		if(x+x>=p) x -= p;
+	    }
+	} else {
+	    p_half = (float)0.5*p;
+	    if(x>p_half) {
+		x-=p;
+		if(x>=p_half) x -= p;
+	    }
+	}
+	GET_FLOAT_WORD(hx,x);
+	SET_FLOAT_WORD(x,hx^sx);
+	return x;
+}
+strong_alias (__ieee754_remainderf, __remainderf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_sinhf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_sinhf.c
new file mode 100644
index 0000000000..6100d95c55
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_sinhf.c
@@ -0,0 +1,60 @@
+/* e_sinhf.c -- float version of e_sinh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float one = 1.0, shuge = 1.0e37;
+
+float
+__ieee754_sinhf(float x)
+{
+	float t,w,h;
+	int32_t ix,jx;
+
+	GET_FLOAT_WORD(jx,x);
+	ix = jx&0x7fffffff;
+
+    /* x is INF or NaN */
+	if(__builtin_expect(ix>=0x7f800000, 0)) return x+x;
+
+	h = 0.5;
+	if (jx<0) h = -h;
+    /* |x| in [0,22], return sign(x)*0.5*(E+E/(E+1))) */
+	if (ix < 0x41b00000) {		/* |x|<22 */
+	    if (__builtin_expect(ix<0x31800000, 0)) {	/* |x|<2**-28 */
+		math_check_force_underflow (x);
+		if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */
+	    }
+	    t = __expm1f(fabsf(x));
+	    if(ix<0x3f800000) return h*((float)2.0*t-t*t/(t+one));
+	    return h*(t+t/(t+one));
+	}
+
+    /* |x| in [22, log(maxdouble)] return 0.5*exp(|x|) */
+	if (ix < 0x42b17180)  return h*__ieee754_expf(fabsf(x));
+
+    /* |x| in [log(maxdouble), overflowthresold] */
+	if (ix<=0x42b2d4fc) {
+	    w = __ieee754_expf((float)0.5*fabsf(x));
+	    t = h*w;
+	    return t*w;
+	}
+
+    /* |x| > overflowthresold, sinh(x) overflow */
+	return math_narrow_eval (x*shuge);
+}
+strong_alias (__ieee754_sinhf, __sinhf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/e_sqrtf.c b/REORG.TODO/sysdeps/ieee754/flt-32/e_sqrtf.c
new file mode 100644
index 0000000000..c02206ac01
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/e_sqrtf.c
@@ -0,0 +1,86 @@
+/* e_sqrtf.c -- float version of e_sqrt.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static	const float	one	= 1.0, tiny=1.0e-30;
+
+float
+__ieee754_sqrtf(float x)
+{
+	float z;
+	int32_t sign = (int)0x80000000;
+	int32_t ix,s,q,m,t,i;
+	u_int32_t r;
+
+	GET_FLOAT_WORD(ix,x);
+
+    /* take care of Inf and NaN */
+	if((ix&0x7f800000)==0x7f800000) {
+	    return x*x+x;		/* sqrt(NaN)=NaN, sqrt(+inf)=+inf
+					   sqrt(-inf)=sNaN */
+	}
+    /* take care of zero */
+	if(ix<=0) {
+	    if((ix&(~sign))==0) return x;/* sqrt(+-0) = +-0 */
+	    else if(ix<0)
+		return (x-x)/(x-x);		/* sqrt(-ve) = sNaN */
+	}
+    /* normalize x */
+	m = (ix>>23);
+	if(m==0) {				/* subnormal x */
+	    for(i=0;(ix&0x00800000)==0;i++) ix<<=1;
+	    m -= i-1;
+	}
+	m -= 127;	/* unbias exponent */
+	ix = (ix&0x007fffff)|0x00800000;
+	if(m&1)	/* odd m, double x to make it even */
+	    ix += ix;
+	m >>= 1;	/* m = [m/2] */
+
+    /* generate sqrt(x) bit by bit */
+	ix += ix;
+	q = s = 0;		/* q = sqrt(x) */
+	r = 0x01000000;		/* r = moving bit from right to left */
+
+	while(r!=0) {
+	    t = s+r;
+	    if(t<=ix) {
+		s    = t+r;
+		ix  -= t;
+		q   += r;
+	    }
+	    ix += ix;
+	    r>>=1;
+	}
+
+    /* use floating add to find out rounding direction */
+	if(ix!=0) {
+	    z = one-tiny; /* trigger inexact flag */
+	    if (z>=one) {
+		z = one+tiny;
+		if (z>one)
+		    q += 2;
+		else
+		    q += (q&1);
+	    }
+	}
+	ix = (q>>1)+0x3f000000;
+	ix += (m <<23);
+	SET_FLOAT_WORD(z,ix);
+	return z;
+}
+strong_alias (__ieee754_sqrtf, __sqrtf_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/k_cosf.c b/REORG.TODO/sysdeps/ieee754/flt-32/k_cosf.c
new file mode 100644
index 0000000000..63ca822f8c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/k_cosf.c
@@ -0,0 +1,55 @@
+/* k_cosf.c -- float version of k_cos.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: k_cosf.c,v 1.4 1995/05/10 20:46:23 jtc Exp $";
+#endif
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+one =  1.0000000000e+00, /* 0x3f800000 */
+C1  =  4.1666667908e-02, /* 0x3d2aaaab */
+C2  = -1.3888889225e-03, /* 0xbab60b61 */
+C3  =  2.4801587642e-05, /* 0x37d00d01 */
+C4  = -2.7557314297e-07, /* 0xb493f27c */
+C5  =  2.0875723372e-09, /* 0x310f74f6 */
+C6  = -1.1359647598e-11; /* 0xad47d74e */
+
+float __kernel_cosf(float x, float y)
+{
+	float a,hz,z,r,qx;
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;			/* ix = |x|'s high word*/
+	if(ix<0x32000000) {			/* if x < 2**27 */
+	    if(((int)x)==0) return one;		/* generate inexact */
+	}
+	z  = x*x;
+	r  = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
+	if(ix < 0x3e99999a) 			/* if |x| < 0.3 */
+	    return one - ((float)0.5*z - (z*r - x*y));
+	else {
+	    if(ix > 0x3f480000) {		/* x > 0.78125 */
+		qx = (float)0.28125;
+	    } else {
+	        SET_FLOAT_WORD(qx,ix-0x01000000);	/* x/4 */
+	    }
+	    hz = (float)0.5*z-qx;
+	    a  = one-qx;
+	    return a - (hz - (z*r-x*y));
+	}
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/k_rem_pio2f.c b/REORG.TODO/sysdeps/ieee754/flt-32/k_rem_pio2f.c
new file mode 100644
index 0000000000..a8d5b216e6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/k_rem_pio2f.c
@@ -0,0 +1,208 @@
+/* k_rem_pio2f.c -- float version of k_rem_pio2.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: k_rem_pio2f.c,v 1.4 1995/05/10 20:46:28 jtc Exp $";
+#endif
+
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+/* In the float version, the input parameter x contains 8 bit
+   integers, not 24 bit integers.  113 bit precision is not supported.  */
+
+static const int init_jk[] = {4,7,9}; /* initial value for jk */
+
+static const float PIo2[] = {
+  1.5703125000e+00, /* 0x3fc90000 */
+  4.5776367188e-04, /* 0x39f00000 */
+  2.5987625122e-05, /* 0x37da0000 */
+  7.5437128544e-08, /* 0x33a20000 */
+  6.0026650317e-11, /* 0x2e840000 */
+  7.3896444519e-13, /* 0x2b500000 */
+  5.3845816694e-15, /* 0x27c20000 */
+  5.6378512969e-18, /* 0x22d00000 */
+  8.3009228831e-20, /* 0x1fc40000 */
+  3.2756352257e-22, /* 0x1bc60000 */
+  6.3331015649e-25, /* 0x17440000 */
+};
+
+static const float
+zero   = 0.0,
+one    = 1.0,
+two8   =  2.5600000000e+02, /* 0x43800000 */
+twon8  =  3.9062500000e-03; /* 0x3b800000 */
+
+int __kernel_rem_pio2f(float *x, float *y, int e0, int nx, int prec, const int32_t *ipio2)
+{
+	int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
+	float z,fw,f[20],fq[20],q[20];
+
+    /* initialize jk*/
+	jk = init_jk[prec];
+	jp = jk;
+
+    /* determine jx,jv,q0, note that 3>q0 */
+	jx =  nx-1;
+	jv = (e0-3)/8; if(jv<0) jv=0;
+	q0 =  e0-8*(jv+1);
+
+    /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
+	j = jv-jx; m = jx+jk;
+	for(i=0;i<=m;i++,j++) f[i] = (j<0)? zero : (float) ipio2[j];
+
+    /* compute q[0],q[1],...q[jk] */
+	for (i=0;i<=jk;i++) {
+	    for(j=0,fw=0.0;j<=jx;j++)
+		fw += x[j]*f[jx+i-j];
+	    q[i] = fw;
+	}
+
+	jz = jk;
+recompute:
+    /* distill q[] into iq[] reversingly */
+	for(i=0,j=jz,z=q[jz];j>0;i++,j--) {
+	    fw    =  (float)((int32_t)(twon8* z));
+	    iq[i] =  (int32_t)(z-two8*fw);
+	    z     =  q[j-1]+fw;
+	}
+
+    /* compute n */
+	z  = __scalbnf(z,q0);		/* actual value of z */
+	z -= (float)8.0*__floorf(z*(float)0.125);	/* trim off integer >= 8 */
+	n  = (int32_t) z;
+	z -= (float)n;
+	ih = 0;
+	if(q0>0) {	/* need iq[jz-1] to determine n */
+	    i  = (iq[jz-1]>>(8-q0)); n += i;
+	    iq[jz-1] -= i<<(8-q0);
+	    ih = iq[jz-1]>>(7-q0);
+	}
+	else if(q0==0) ih = iq[jz-1]>>7;
+	else if(z>=(float)0.5) ih=2;
+
+	if(ih>0) {	/* q > 0.5 */
+	    n += 1; carry = 0;
+	    for(i=0;i<jz ;i++) {	/* compute 1-q */
+		j = iq[i];
+		if(carry==0) {
+		    if(j!=0) {
+			carry = 1; iq[i] = 0x100- j;
+		    }
+		} else  iq[i] = 0xff - j;
+	    }
+	    if(q0>0) {		/* rare case: chance is 1 in 12 */
+	        switch(q0) {
+	        case 1:
+		   iq[jz-1] &= 0x7f; break;
+		case 2:
+		   iq[jz-1] &= 0x3f; break;
+	        }
+	    }
+	    if(ih==2) {
+		z = one - z;
+		if(carry!=0) z -= __scalbnf(one,q0);
+	    }
+	}
+
+    /* check if recomputation is needed */
+	if(z==zero) {
+	    j = 0;
+	    for (i=jz-1;i>=jk;i--) j |= iq[i];
+	    if(j==0) { /* need recomputation */
+		/* On s390x gcc 6.1 -O3 produces the warning "array subscript is
+		   below array bounds [-Werror=array-bounds]".  Only
+		   __ieee754_rem_pio2f calls __kernel_rem_pio2f for normal
+		   numbers and |x| ~> 2^7*(pi/2).  Thus x can't be zero and
+		   ipio2 is not zero, too.  Thus not all iq[] values can't be
+		   zero.  */
+		DIAG_PUSH_NEEDS_COMMENT;
+		DIAG_IGNORE_NEEDS_COMMENT (6.1, "-Warray-bounds");
+		for(k=1;iq[jk-k]==0;k++);   /* k = no. of terms needed */
+		DIAG_POP_NEEDS_COMMENT;
+
+		for(i=jz+1;i<=jz+k;i++) {   /* add q[jz+1] to q[jz+k] */
+		    f[jx+i] = (float) ipio2[jv+i];
+		    for(j=0,fw=0.0;j<=jx;j++) fw += x[j]*f[jx+i-j];
+		    q[i] = fw;
+		}
+		jz += k;
+		goto recompute;
+	    }
+	}
+
+    /* chop off zero terms */
+	if(z==(float)0.0) {
+	    jz -= 1; q0 -= 8;
+	    while(iq[jz]==0) { jz--; q0-=8;}
+	} else { /* break z into 8-bit if necessary */
+	    z = __scalbnf(z,-q0);
+	    if(z>=two8) {
+		fw = (float)((int32_t)(twon8*z));
+		iq[jz] = (int32_t)(z-two8*fw);
+		jz += 1; q0 += 8;
+		iq[jz] = (int32_t) fw;
+	    } else iq[jz] = (int32_t) z ;
+	}
+
+    /* convert integer "bit" chunk to floating-point value */
+	fw = __scalbnf(one,q0);
+	for(i=jz;i>=0;i--) {
+	    q[i] = fw*(float)iq[i]; fw*=twon8;
+	}
+
+    /* compute PIo2[0,...,jp]*q[jz,...,0] */
+	for(i=jz;i>=0;i--) {
+	    for(fw=0.0,k=0;k<=jp&&k<=jz-i;k++) fw += PIo2[k]*q[i+k];
+	    fq[jz-i] = fw;
+	}
+
+    /* compress fq[] into y[] */
+	switch(prec) {
+	    case 0:
+		fw = 0.0;
+		for (i=jz;i>=0;i--) fw += fq[i];
+		y[0] = (ih==0)? fw: -fw;
+		break;
+	    case 1:
+	    case 2:;
+		float fv = 0.0;
+		for (i=jz;i>=0;i--) fv = math_narrow_eval (fv + fq[i]);
+		y[0] = (ih==0)? fv: -fv;
+		fv = math_narrow_eval (fq[0]-fv);
+		for (i=1;i<=jz;i++) fv = math_narrow_eval (fv + fq[i]);
+		y[1] = (ih==0)? fv: -fv;
+		break;
+	    case 3:	/* painful */
+		for (i=jz;i>0;i--) {
+		    float fv = math_narrow_eval (fq[i-1]+fq[i]);
+		    fq[i]  += fq[i-1]-fv;
+		    fq[i-1] = fv;
+		}
+		for (i=jz;i>1;i--) {
+		    float fv = math_narrow_eval (fq[i-1]+fq[i]);
+		    fq[i]  += fq[i-1]-fv;
+		    fq[i-1] = fv;
+		}
+		for (fw=0.0,i=jz;i>=2;i--) fw += fq[i];
+		if(ih==0) {
+		    y[0] =  fq[0]; y[1] =  fq[1]; y[2] =  fw;
+		} else {
+		    y[0] = -fq[0]; y[1] = -fq[1]; y[2] = -fw;
+		}
+	}
+	return n&7;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/k_sinf.c b/REORG.TODO/sysdeps/ieee754/flt-32/k_sinf.c
new file mode 100644
index 0000000000..a195d59466
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/k_sinf.c
@@ -0,0 +1,50 @@
+/* k_sinf.c -- float version of k_sin.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: k_sinf.c,v 1.4 1995/05/10 20:46:33 jtc Exp $";
+#endif
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float
+half =  5.0000000000e-01,/* 0x3f000000 */
+S1  = -1.6666667163e-01, /* 0xbe2aaaab */
+S2  =  8.3333337680e-03, /* 0x3c088889 */
+S3  = -1.9841270114e-04, /* 0xb9500d01 */
+S4  =  2.7557314297e-06, /* 0x3638ef1b */
+S5  = -2.5050759689e-08, /* 0xb2d72f34 */
+S6  =  1.5896910177e-10; /* 0x2f2ec9d3 */
+
+float __kernel_sinf(float x, float y, int iy)
+{
+	float z,r,v;
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;			/* high word of x */
+	if(ix<0x32000000)			/* |x| < 2**-27 */
+	  {
+	    math_check_force_underflow (x);
+	    if ((int) x == 0)
+	      return x;		/* generate inexact */
+	  }
+	z	=  x*x;
+	v	=  z*x;
+	r	=  S2+z*(S3+z*(S4+z*(S5+z*S6)));
+	if(iy==0) return x+v*(S1+z*r);
+	else      return x-((z*(half*y-v*r)-y)-v*S1);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/k_tanf.c b/REORG.TODO/sysdeps/ieee754/flt-32/k_tanf.c
new file mode 100644
index 0000000000..9f0e55860f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/k_tanf.c
@@ -0,0 +1,101 @@
+/* k_tanf.c -- float version of k_tan.c
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: k_tanf.c,v 1.4 1995/05/10 20:46:39 jtc Exp $";
+#endif
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+static const float
+one   =  1.0000000000e+00, /* 0x3f800000 */
+pio4  =  7.8539812565e-01, /* 0x3f490fda */
+pio4lo=  3.7748947079e-08, /* 0x33222168 */
+T[] =  {
+  3.3333334327e-01, /* 0x3eaaaaab */
+  1.3333334029e-01, /* 0x3e088889 */
+  5.3968254477e-02, /* 0x3d5d0dd1 */
+  2.1869488060e-02, /* 0x3cb327a4 */
+  8.8632395491e-03, /* 0x3c11371f */
+  3.5920790397e-03, /* 0x3b6b6916 */
+  1.4562094584e-03, /* 0x3abede48 */
+  5.8804126456e-04, /* 0x3a1a26c8 */
+  2.4646313977e-04, /* 0x398137b9 */
+  7.8179444245e-05, /* 0x38a3f445 */
+  7.1407252108e-05, /* 0x3895c07a */
+ -1.8558637748e-05, /* 0xb79bae5f */
+  2.5907305826e-05, /* 0x37d95384 */
+};
+
+float __kernel_tanf(float x, float y, int iy)
+{
+	float z,r,v,w,s;
+	int32_t ix,hx;
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;	/* high word of |x| */
+	if(ix<0x39000000)			/* x < 2**-13 */
+	    {if((int)x==0) {			/* generate inexact */
+		if((ix|(iy+1))==0) return one/fabsf(x);
+		else if (iy == 1)
+		  {
+		    math_check_force_underflow (x);
+		    return x;
+		  }
+		else
+		  return -one / x;
+	    }
+	    }
+	if(ix>=0x3f2ca140) { 			/* |x|>=0.6744 */
+	    if(hx<0) {x = -x; y = -y;}
+	    z = pio4-x;
+	    w = pio4lo-y;
+	    x = z+w; y = 0.0;
+	    if (fabsf (x) < 0x1p-13f)
+		return (1 - ((hx >> 30) & 2)) * iy * (1.0f - 2 * iy * x);
+	}
+	z	=  x*x;
+	w 	=  z*z;
+    /* Break x^5*(T[1]+x^2*T[2]+...) into
+     *	  x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
+     *	  x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
+     */
+	r = T[1]+w*(T[3]+w*(T[5]+w*(T[7]+w*(T[9]+w*T[11]))));
+	v = z*(T[2]+w*(T[4]+w*(T[6]+w*(T[8]+w*(T[10]+w*T[12])))));
+	s = z*x;
+	r = y + z*(s*(r+v)+y);
+	r += T[0]*s;
+	w = x+r;
+	if(ix>=0x3f2ca140) {
+	    v = (float)iy;
+	    return (float)(1-((hx>>30)&2))*(v-(float)2.0*(x-(w*w/(w+v)-r)));
+	}
+	if(iy==1) return w;
+	else {		/* if allow error up to 2 ulp,
+			   simply return -1.0/(x+r) here */
+     /*  compute -1.0/(x+r) accurately */
+	    float a,t;
+	    int32_t i;
+	    z  = w;
+	    GET_FLOAT_WORD(i,z);
+	    SET_FLOAT_WORD(z,i&0xfffff000);
+	    v  = r-(z - x); 	/* z+v = r+x */
+	    t = a  = -(float)1.0/w;	/* a = -1.0/w */
+	    GET_FLOAT_WORD(i,t);
+	    SET_FLOAT_WORD(t,i&0xfffff000);
+	    s  = (float)1.0+t*z;
+	    return t+a*(s+t*v);
+	}
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/lgamma_negf.c b/REORG.TODO/sysdeps/ieee754/flt-32/lgamma_negf.c
new file mode 100644
index 0000000000..71bcbb0f9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/lgamma_negf.c
@@ -0,0 +1,280 @@
+/* lgammaf expanding around zeros.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float lgamma_zeros[][2] =
+  {
+    { -0x2.74ff94p+0f, 0x1.3fe0f2p-24f },
+    { -0x2.bf682p+0f, -0x1.437b2p-24f },
+    { -0x3.24c1b8p+0f, 0x6.c34cap-28f },
+    { -0x3.f48e2cp+0f, 0x1.707a04p-24f },
+    { -0x4.0a13ap+0f, 0x1.e99aap-24f },
+    { -0x4.fdd5ep+0f, 0x1.64454p-24f },
+    { -0x5.021a98p+0f, 0x2.03d248p-24f },
+    { -0x5.ffa4cp+0f, 0x2.9b82fcp-24f },
+    { -0x6.005ac8p+0f, -0x1.625f24p-24f },
+    { -0x6.fff3p+0f, 0x2.251e44p-24f },
+    { -0x7.000dp+0f, 0x8.48078p-28f },
+    { -0x7.fffe6p+0f, 0x1.fa98c4p-28f },
+    { -0x8.0001ap+0f, -0x1.459fcap-28f },
+    { -0x8.ffffdp+0f, -0x1.c425e8p-24f },
+    { -0x9.00003p+0f, 0x1.c44b82p-24f },
+    { -0xap+0f, 0x4.9f942p-24f },
+    { -0xap+0f, -0x4.9f93b8p-24f },
+    { -0xbp+0f, 0x6.b9916p-28f },
+    { -0xbp+0f, -0x6.b9915p-28f },
+    { -0xcp+0f, 0x8.f76c8p-32f },
+    { -0xcp+0f, -0x8.f76c7p-32f },
+    { -0xdp+0f, 0xb.09231p-36f },
+    { -0xdp+0f, -0xb.09231p-36f },
+    { -0xep+0f, 0xc.9cba5p-40f },
+    { -0xep+0f, -0xc.9cba5p-40f },
+    { -0xfp+0f, 0xd.73f9fp-44f },
+  };
+
+static const float e_hi = 0x2.b7e15p+0f, e_lo = 0x1.628aeep-24f;
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
+   approximation to lgamma function.  */
+
+static const float lgamma_coeff[] =
+  {
+    0x1.555556p-4f,
+    -0xb.60b61p-12f,
+    0x3.403404p-12f,
+  };
+
+#define NCOEFF (sizeof (lgamma_coeff) / sizeof (lgamma_coeff[0]))
+
+/* Polynomial approximations to (|gamma(x)|-1)(x-n)/(x-x0), where n is
+   the integer end-point of the half-integer interval containing x and
+   x0 is the zero of lgamma in that half-integer interval.  Each
+   polynomial is expressed in terms of x-xm, where xm is the midpoint
+   of the interval for which the polynomial applies.  */
+
+static const float poly_coeff[] =
+  {
+    /* Interval [-2.125, -2] (polynomial degree 5).  */
+    -0x1.0b71c6p+0f,
+    -0xc.73a1ep-4f,
+    -0x1.ec8462p-4f,
+    -0xe.37b93p-4f,
+    -0x1.02ed36p-4f,
+    -0xe.cbe26p-4f,
+    /* Interval [-2.25, -2.125] (polynomial degree 5).  */
+    -0xf.29309p-4f,
+    -0xc.a5cfep-4f,
+    0x3.9c93fcp-4f,
+    -0x1.02a2fp+0f,
+    0x9.896bep-4f,
+    -0x1.519704p+0f,
+    /* Interval [-2.375, -2.25] (polynomial degree 5).  */
+    -0xd.7d28dp-4f,
+    -0xe.6964cp-4f,
+    0xb.0d4f1p-4f,
+    -0x1.9240aep+0f,
+    0x1.dadabap+0f,
+    -0x3.1778c4p+0f,
+    /* Interval [-2.5, -2.375] (polynomial degree 6).  */
+    -0xb.74ea2p-4f,
+    -0x1.2a82cp+0f,
+    0x1.880234p+0f,
+    -0x3.320c4p+0f,
+    0x5.572a38p+0f,
+    -0x9.f92bap+0f,
+    0x1.1c347ep+4f,
+    /* Interval [-2.625, -2.5] (polynomial degree 6).  */
+    -0x3.d10108p-4f,
+    0x1.cd5584p+0f,
+    0x3.819c24p+0f,
+    0x6.84cbb8p+0f,
+    0xb.bf269p+0f,
+    0x1.57fb12p+4f,
+    0x2.7b9854p+4f,
+    /* Interval [-2.75, -2.625] (polynomial degree 6).  */
+    -0x6.b5d25p-4f,
+    0x1.28d604p+0f,
+    0x1.db6526p+0f,
+    0x2.e20b38p+0f,
+    0x4.44c378p+0f,
+    0x6.62a08p+0f,
+    0x9.6db3ap+0f,
+    /* Interval [-2.875, -2.75] (polynomial degree 5).  */
+    -0x8.a41b2p-4f,
+    0xc.da87fp-4f,
+    0x1.147312p+0f,
+    0x1.7617dap+0f,
+    0x1.d6c13p+0f,
+    0x2.57a358p+0f,
+    /* Interval [-3, -2.875] (polynomial degree 5).  */
+    -0xa.046d6p-4f,
+    0x9.70b89p-4f,
+    0xa.a89a6p-4f,
+    0xd.2f2d8p-4f,
+    0xd.e32b4p-4f,
+    0xf.fb741p-4f,
+  };
+
+static const size_t poly_deg[] =
+  {
+    5,
+    5,
+    5,
+    6,
+    6,
+    6,
+    5,
+    5,
+  };
+
+static const size_t poly_end[] =
+  {
+    5,
+    11,
+    17,
+    24,
+    31,
+    38,
+    44,
+    50,
+  };
+
+/* Compute sin (pi * X) for -0.25 <= X <= 0.5.  */
+
+static float
+lg_sinpi (float x)
+{
+  if (x <= 0.25f)
+    return __sinf ((float) M_PI * x);
+  else
+    return __cosf ((float) M_PI * (0.5f - x));
+}
+
+/* Compute cos (pi * X) for -0.25 <= X <= 0.5.  */
+
+static float
+lg_cospi (float x)
+{
+  if (x <= 0.25f)
+    return __cosf ((float) M_PI * x);
+  else
+    return __sinf ((float) M_PI * (0.5f - x));
+}
+
+/* Compute cot (pi * X) for -0.25 <= X <= 0.5.  */
+
+static float
+lg_cotpi (float x)
+{
+  return lg_cospi (x) / lg_sinpi (x);
+}
+
+/* Compute lgamma of a negative argument -15 < X < -2, setting
+   *SIGNGAMP accordingly.  */
+
+float
+__lgamma_negf (float x, int *signgamp)
+{
+  /* Determine the half-integer region X lies in, handle exact
+     integers and determine the sign of the result.  */
+  int i = __floorf (-2 * x);
+  if ((i & 1) == 0 && i == -2 * x)
+    return 1.0f / 0.0f;
+  float xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
+  i -= 4;
+  *signgamp = ((i & 2) == 0 ? -1 : 1);
+
+  SET_RESTORE_ROUNDF (FE_TONEAREST);
+
+  /* Expand around the zero X0 = X0_HI + X0_LO.  */
+  float x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
+  float xdiff = x - x0_hi - x0_lo;
+
+  /* For arguments in the range -3 to -2, use polynomial
+     approximations to an adjusted version of the gamma function.  */
+  if (i < 2)
+    {
+      int j = __floorf (-8 * x) - 16;
+      float xm = (-33 - 2 * j) * 0.0625f;
+      float x_adj = x - xm;
+      size_t deg = poly_deg[j];
+      size_t end = poly_end[j];
+      float g = poly_coeff[end];
+      for (size_t j = 1; j <= deg; j++)
+	g = g * x_adj + poly_coeff[end - j];
+      return __log1pf (g * xdiff / (x - xn));
+    }
+
+  /* The result we want is log (sinpi (X0) / sinpi (X))
+     + log (gamma (1 - X0) / gamma (1 - X)).  */
+  float x_idiff = fabsf (xn - x), x0_idiff = fabsf (xn - x0_hi - x0_lo);
+  float log_sinpi_ratio;
+  if (x0_idiff < x_idiff * 0.5f)
+    /* Use log not log1p to avoid inaccuracy from log1p of arguments
+       close to -1.  */
+    log_sinpi_ratio = __ieee754_logf (lg_sinpi (x0_idiff)
+				      / lg_sinpi (x_idiff));
+  else
+    {
+      /* Use log1p not log to avoid inaccuracy from log of arguments
+	 close to 1.  X0DIFF2 has positive sign if X0 is further from
+	 XN than X is from XN, negative sign otherwise.  */
+      float x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5f;
+      float sx0d2 = lg_sinpi (x0diff2);
+      float cx0d2 = lg_cospi (x0diff2);
+      log_sinpi_ratio = __log1pf (2 * sx0d2
+				  * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
+    }
+
+  float log_gamma_ratio;
+  float y0 = math_narrow_eval (1 - x0_hi);
+  float y0_eps = -x0_hi + (1 - y0) - x0_lo;
+  float y = math_narrow_eval (1 - x);
+  float y_eps = -x + (1 - y);
+  /* We now wish to compute LOG_GAMMA_RATIO
+     = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)).  XDIFF
+     accurately approximates the difference Y0 + Y0_EPS - Y -
+     Y_EPS.  Use Stirling's approximation.  */
+  float log_gamma_high
+    = (xdiff * __log1pf ((y0 - e_hi - e_lo + y0_eps) / e_hi)
+       + (y - 0.5f + y_eps) * __log1pf (xdiff / y));
+  /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)).  */
+  float y0r = 1 / y0, yr = 1 / y;
+  float y0r2 = y0r * y0r, yr2 = yr * yr;
+  float rdiff = -xdiff / (y * y0);
+  float bterm[NCOEFF];
+  float dlast = rdiff, elast = rdiff * yr * (yr + y0r);
+  bterm[0] = dlast * lgamma_coeff[0];
+  for (size_t j = 1; j < NCOEFF; j++)
+    {
+      float dnext = dlast * y0r2 + elast;
+      float enext = elast * yr2;
+      bterm[j] = dnext * lgamma_coeff[j];
+      dlast = dnext;
+      elast = enext;
+    }
+  float log_gamma_low = 0;
+  for (size_t j = 0; j < NCOEFF; j++)
+    log_gamma_low += bterm[NCOEFF - 1 - j];
+  log_gamma_ratio = log_gamma_high + log_gamma_low;
+
+  return log_sinpi_ratio + log_gamma_ratio;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/lgamma_productf.c b/REORG.TODO/sysdeps/ieee754/flt-32/lgamma_productf.c
new file mode 100644
index 0000000000..1cc8931700
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/lgamma_productf.c
@@ -0,0 +1 @@
+/* Not needed.  */
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/mpn2flt.c b/REORG.TODO/sysdeps/ieee754/flt-32/mpn2flt.c
new file mode 100644
index 0000000000..abf6510f4e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/mpn2flt.c
@@ -0,0 +1,41 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include <ieee754.h>
+#include <float.h>
+
+/* Convert a multi-precision integer of the needed number of bits (24 for
+   float) and an integral power of two to a `float' in IEEE754 single-
+   precision format.  */
+
+float
+__mpn_construct_float (mp_srcptr frac_ptr, int expt, int sign)
+{
+  union ieee754_float u;
+
+  u.ieee.negative = sign;
+  u.ieee.exponent = expt + IEEE754_FLOAT_BIAS;
+#if BITS_PER_MP_LIMB > FLT_MANT_DIG
+  u.ieee.mantissa = frac_ptr[0] & (((mp_limb_t) 1 << FLT_MANT_DIG) - 1);
+#else
+  #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+
+  return u.f;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_asinhf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_asinhf.c
new file mode 100644
index 0000000000..da9cafb600
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_asinhf.c
@@ -0,0 +1,50 @@
+/* s_asinhf.c -- float version of s_asinh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float
+one =  1.0000000000e+00, /* 0x3F800000 */
+ln2 =  6.9314718246e-01, /* 0x3f317218 */
+huge=  1.0000000000e+30;
+
+float
+__asinhf(float x)
+{
+	float w;
+	int32_t hx,ix;
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(__builtin_expect(ix< 0x38000000, 0)) {	/* |x|<2**-14 */
+	    math_check_force_underflow (x);
+	    if(huge+x>one) return x;	/* return x inexact except 0 */
+	}
+	if(__builtin_expect(ix>0x47000000, 0)) {	/* |x| > 2**14 */
+	    if(ix>=0x7f800000) return x+x;	/* x is inf or NaN */
+	    w = __ieee754_logf(fabsf(x))+ln2;
+	} else {
+	    float xa = fabsf(x);
+	    if (ix>0x40000000) {	/* 2**14 > |x| > 2.0 */
+		w = __ieee754_logf(2.0f*xa+one/(__ieee754_sqrtf(xa*xa+one)+xa));
+	    } else {		/* 2.0 > |x| > 2**-14 */
+		float t = xa*xa;
+		w =__log1pf(xa+t/(one+__ieee754_sqrtf(one+t)));
+	    }
+	}
+	return __copysignf(w, x);
+}
+weak_alias (__asinhf, asinhf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_atanf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_atanf.c
new file mode 100644
index 0000000000..e322a1d41f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_atanf.c
@@ -0,0 +1,101 @@
+/* s_atanf.c -- float version of s_atan.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_atanf.c,v 1.4 1995/05/10 20:46:47 jtc Exp $";
+#endif
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float atanhi[] = {
+  4.6364760399e-01, /* atan(0.5)hi 0x3eed6338 */
+  7.8539812565e-01, /* atan(1.0)hi 0x3f490fda */
+  9.8279368877e-01, /* atan(1.5)hi 0x3f7b985e */
+  1.5707962513e+00, /* atan(inf)hi 0x3fc90fda */
+};
+
+static const float atanlo[] = {
+  5.0121582440e-09, /* atan(0.5)lo 0x31ac3769 */
+  3.7748947079e-08, /* atan(1.0)lo 0x33222168 */
+  3.4473217170e-08, /* atan(1.5)lo 0x33140fb4 */
+  7.5497894159e-08, /* atan(inf)lo 0x33a22168 */
+};
+
+static const float aT[] = {
+  3.3333334327e-01, /* 0x3eaaaaaa */
+ -2.0000000298e-01, /* 0xbe4ccccd */
+  1.4285714924e-01, /* 0x3e124925 */
+ -1.1111110449e-01, /* 0xbde38e38 */
+  9.0908870101e-02, /* 0x3dba2e6e */
+ -7.6918758452e-02, /* 0xbd9d8795 */
+  6.6610731184e-02, /* 0x3d886b35 */
+ -5.8335702866e-02, /* 0xbd6ef16b */
+  4.9768779427e-02, /* 0x3d4bda59 */
+ -3.6531571299e-02, /* 0xbd15a221 */
+  1.6285819933e-02, /* 0x3c8569d7 */
+};
+
+static const float
+one   = 1.0,
+huge   = 1.0e30;
+
+float __atanf(float x)
+{
+	float w,s1,s2,z;
+	int32_t ix,hx,id;
+
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(ix>=0x4c000000) {	/* if |x| >= 2^25 */
+	    if(ix>0x7f800000)
+		return x+x;		/* NaN */
+	    if(hx>0) return  atanhi[3]+atanlo[3];
+	    else     return -atanhi[3]-atanlo[3];
+	} if (ix < 0x3ee00000) {	/* |x| < 0.4375 */
+	    if (ix < 0x31000000) {	/* |x| < 2^-29 */
+		math_check_force_underflow (x);
+		if(huge+x>one) return x;	/* raise inexact */
+	    }
+	    id = -1;
+	} else {
+	x = fabsf(x);
+	if (ix < 0x3f980000) {		/* |x| < 1.1875 */
+	    if (ix < 0x3f300000) {	/* 7/16 <=|x|<11/16 */
+		id = 0; x = ((float)2.0*x-one)/((float)2.0+x);
+	    } else {			/* 11/16<=|x|< 19/16 */
+		id = 1; x  = (x-one)/(x+one);
+	    }
+	} else {
+	    if (ix < 0x401c0000) {	/* |x| < 2.4375 */
+		id = 2; x  = (x-(float)1.5)/(one+(float)1.5*x);
+	    } else {			/* 2.4375 <= |x| < 2^66 */
+		id = 3; x  = -(float)1.0/x;
+	    }
+	}}
+    /* end of argument reduction */
+	z = x*x;
+	w = z*z;
+    /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */
+	s1 = z*(aT[0]+w*(aT[2]+w*(aT[4]+w*(aT[6]+w*(aT[8]+w*aT[10])))));
+	s2 = w*(aT[1]+w*(aT[3]+w*(aT[5]+w*(aT[7]+w*aT[9]))));
+	if (id<0) return x - x*(s1+s2);
+	else {
+	    z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x);
+	    return (hx<0)? -z:z;
+	}
+}
+weak_alias (__atanf, atanf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_cbrtf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_cbrtf.c
new file mode 100644
index 0000000000..1ac294c189
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_cbrtf.c
@@ -0,0 +1,63 @@
+/* Compute cubic root of float value.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
+   Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+
+#define CBRT2 1.2599210498948731648		/* 2^(1/3) */
+#define SQR_CBRT2 1.5874010519681994748		/* 2^(2/3) */
+
+static const double factor[5] =
+{
+  1.0 / SQR_CBRT2,
+  1.0 / CBRT2,
+  1.0,
+  CBRT2,
+  SQR_CBRT2
+};
+
+
+float
+__cbrtf (float x)
+{
+  float xm, ym, u, t2;
+  int xe;
+
+  /* Reduce X.  XM now is an range 1.0 to 0.5.  */
+  xm = __frexpf (fabsf (x), &xe);
+
+  /* If X is not finite or is null return it (with raising exceptions
+     if necessary.
+     Note: *Our* version of `frexp' sets XE to zero if the argument is
+     Inf or NaN.  This is not portable but faster.  */
+  if (xe == 0 && fpclassify (x) <= FP_ZERO)
+    return x + x;
+
+  u = (0.492659620528969547 + (0.697570460207922770
+			       - 0.191502161678719066 * xm) * xm);
+
+  t2 = u * u * u;
+
+  ym = u * (t2 + 2.0 * xm) / (2.0 * t2 + xm) * factor[2 + xe % 3];
+
+  return __ldexpf (x > 0.0 ? ym : -ym, xe / 3);
+}
+weak_alias (__cbrtf, cbrtf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_ceilf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_ceilf.c
new file mode 100644
index 0000000000..bff26c33cb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_ceilf.c
@@ -0,0 +1,48 @@
+/* s_ceilf.c -- float version of s_ceil.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+
+float
+__ceilf(float x)
+{
+	int32_t i0,j0;
+	u_int32_t i;
+
+	GET_FLOAT_WORD(i0,x);
+	j0 = ((i0>>23)&0xff)-0x7f;
+	if(j0<23) {
+	    if(j0<0) {
+		/* return 0*sign(x) if |x|<1 */
+		if(i0<0) {i0=0x80000000;}
+		else if(i0!=0) { i0=0x3f800000;}
+	    } else {
+		i = (0x007fffff)>>j0;
+		if((i0&i)==0) return x; /* x is integral */
+		if(i0>0) i0 += (0x00800000)>>j0;
+		i0 &= (~i);
+	    }
+	} else {
+	    if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	SET_FLOAT_WORD(x,i0);
+	return x;
+}
+#ifndef __ceilf
+weak_alias (__ceilf, ceilf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_copysignf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_copysignf.c
new file mode 100644
index 0000000000..1621836065
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_copysignf.c
@@ -0,0 +1,37 @@
+/* s_copysignf.c -- float version of s_copysign.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_copysignf.c,v 1.4 1995/05/10 20:46:59 jtc Exp $";
+#endif
+
+/*
+ * copysignf(float x, float y)
+ * copysignf(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+float __copysignf(float x, float y)
+{
+	u_int32_t ix,iy;
+	GET_FLOAT_WORD(ix,x);
+	GET_FLOAT_WORD(iy,y);
+	SET_FLOAT_WORD(x,(ix&0x7fffffff)|(iy&0x80000000));
+        return x;
+}
+weak_alias (__copysignf, copysignf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_cosf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_cosf.c
new file mode 100644
index 0000000000..0affd406bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_cosf.c
@@ -0,0 +1,63 @@
+/* s_cosf.c -- float version of s_cos.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_cosf.c,v 1.4 1995/05/10 20:47:03 jtc Exp $";
+#endif
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+#ifndef COSF
+# define COSF_FUNC __cosf
+#else
+# define COSF_FUNC COSF
+#endif
+
+float COSF_FUNC(float x)
+{
+	float y[2],z=0.0;
+	int32_t n,ix;
+
+	GET_FLOAT_WORD(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffff;
+	if(ix <= 0x3f490fd8) return __kernel_cosf(x,z);
+
+    /* cos(Inf or NaN) is NaN */
+	else if (ix>=0x7f800000) {
+	  if (ix == 0x7f800000)
+	    __set_errno (EDOM);
+	  return x-x;
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2f(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_cosf(y[0],y[1]);
+		case 1: return -__kernel_sinf(y[0],y[1],1);
+		case 2: return -__kernel_cosf(y[0],y[1]);
+		default:
+		        return  __kernel_sinf(y[0],y[1],1);
+	    }
+	}
+}
+
+#ifndef COSF
+weak_alias (__cosf, cosf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_erff.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_erff.c
new file mode 100644
index 0000000000..c8b6287503
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_erff.c
@@ -0,0 +1,230 @@
+/* s_erff.c -- float version of s_erf.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_erff.c,v 1.4 1995/05/10 20:47:07 jtc Exp $";
+#endif
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+static const float
+tiny	    = 1e-30,
+half=  5.0000000000e-01, /* 0x3F000000 */
+one =  1.0000000000e+00, /* 0x3F800000 */
+two =  2.0000000000e+00, /* 0x40000000 */
+	/* c = (subfloat)0.84506291151 */
+erx =  8.4506291151e-01, /* 0x3f58560b */
+/*
+ * Coefficients for approximation to  erf on [0,0.84375]
+ */
+efx =  1.2837916613e-01, /* 0x3e0375d4 */
+pp0  =  1.2837916613e-01, /* 0x3e0375d4 */
+pp1  = -3.2504209876e-01, /* 0xbea66beb */
+pp2  = -2.8481749818e-02, /* 0xbce9528f */
+pp3  = -5.7702702470e-03, /* 0xbbbd1489 */
+pp4  = -2.3763017452e-05, /* 0xb7c756b1 */
+qq1  =  3.9791721106e-01, /* 0x3ecbbbce */
+qq2  =  6.5022252500e-02, /* 0x3d852a63 */
+qq3  =  5.0813062117e-03, /* 0x3ba68116 */
+qq4  =  1.3249473704e-04, /* 0x390aee49 */
+qq5  = -3.9602282413e-06, /* 0xb684e21a */
+/*
+ * Coefficients for approximation to  erf  in [0.84375,1.25]
+ */
+pa0  = -2.3621185683e-03, /* 0xbb1acdc6 */
+pa1  =  4.1485610604e-01, /* 0x3ed46805 */
+pa2  = -3.7220788002e-01, /* 0xbebe9208 */
+pa3  =  3.1834661961e-01, /* 0x3ea2fe54 */
+pa4  = -1.1089469492e-01, /* 0xbde31cc2 */
+pa5  =  3.5478305072e-02, /* 0x3d1151b3 */
+pa6  = -2.1663755178e-03, /* 0xbb0df9c0 */
+qa1  =  1.0642088205e-01, /* 0x3dd9f331 */
+qa2  =  5.4039794207e-01, /* 0x3f0a5785 */
+qa3  =  7.1828655899e-02, /* 0x3d931ae7 */
+qa4  =  1.2617121637e-01, /* 0x3e013307 */
+qa5  =  1.3637083583e-02, /* 0x3c5f6e13 */
+qa6  =  1.1984500103e-02, /* 0x3c445aa3 */
+/*
+ * Coefficients for approximation to  erfc in [1.25,1/0.35]
+ */
+ra0  = -9.8649440333e-03, /* 0xbc21a093 */
+ra1  = -6.9385856390e-01, /* 0xbf31a0b7 */
+ra2  = -1.0558626175e+01, /* 0xc128f022 */
+ra3  = -6.2375331879e+01, /* 0xc2798057 */
+ra4  = -1.6239666748e+02, /* 0xc322658c */
+ra5  = -1.8460508728e+02, /* 0xc3389ae7 */
+ra6  = -8.1287437439e+01, /* 0xc2a2932b */
+ra7  = -9.8143291473e+00, /* 0xc11d077e */
+sa1  =  1.9651271820e+01, /* 0x419d35ce */
+sa2  =  1.3765776062e+02, /* 0x4309a863 */
+sa3  =  4.3456588745e+02, /* 0x43d9486f */
+sa4  =  6.4538726807e+02, /* 0x442158c9 */
+sa5  =  4.2900814819e+02, /* 0x43d6810b */
+sa6  =  1.0863500214e+02, /* 0x42d9451f */
+sa7  =  6.5702495575e+00, /* 0x40d23f7c */
+sa8  = -6.0424413532e-02, /* 0xbd777f97 */
+/*
+ * Coefficients for approximation to  erfc in [1/.35,28]
+ */
+rb0  = -9.8649431020e-03, /* 0xbc21a092 */
+rb1  = -7.9928326607e-01, /* 0xbf4c9dd4 */
+rb2  = -1.7757955551e+01, /* 0xc18e104b */
+rb3  = -1.6063638306e+02, /* 0xc320a2ea */
+rb4  = -6.3756646729e+02, /* 0xc41f6441 */
+rb5  = -1.0250950928e+03, /* 0xc480230b */
+rb6  = -4.8351919556e+02, /* 0xc3f1c275 */
+sb1  =  3.0338060379e+01, /* 0x41f2b459 */
+sb2  =  3.2579251099e+02, /* 0x43a2e571 */
+sb3  =  1.5367296143e+03, /* 0x44c01759 */
+sb4  =  3.1998581543e+03, /* 0x4547fdbb */
+sb5  =  2.5530502930e+03, /* 0x451f90ce */
+sb6  =  4.7452853394e+02, /* 0x43ed43a7 */
+sb7  = -2.2440952301e+01; /* 0xc1b38712 */
+
+float __erff(float x)
+{
+	int32_t hx,ix,i;
+	float R,S,P,Q,s,y,z,r;
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(ix>=0x7f800000) {		/* erf(nan)=nan */
+	    i = ((u_int32_t)hx>>31)<<1;
+	    return (float)(1-i)+one/x;	/* erf(+-inf)=+-1 */
+	}
+
+	if(ix < 0x3f580000) {		/* |x|<0.84375 */
+	    if(ix < 0x31800000) { 	/* |x|<2**-28 */
+	        if (ix < 0x04000000)
+		  {
+		    /* Avoid spurious underflow.  */
+		    float ret = 0.0625f * (16.0f * x + (16.0f * efx) * x);
+		    math_check_force_underflow (ret);
+		    return ret;
+		  }
+		return x + efx*x;
+	    }
+	    z = x*x;
+	    r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+	    s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+	    y = r/s;
+	    return x + x*y;
+	}
+	if(ix < 0x3fa00000) {		/* 0.84375 <= |x| < 1.25 */
+	    s = fabsf(x)-one;
+	    P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+	    Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+	    if(hx>=0) return erx + P/Q; else return -erx - P/Q;
+	}
+	if (ix >= 0x40c00000) {		/* inf>|x|>=6 */
+	    if(hx>=0) return one-tiny; else return tiny-one;
+	}
+	x = fabsf(x);
+ 	s = one/(x*x);
+	if(ix< 0x4036DB6E) {	/* |x| < 1/0.35 */
+	    R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+				ra5+s*(ra6+s*ra7))))));
+	    S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+				sa5+s*(sa6+s*(sa7+s*sa8)))))));
+	} else {	/* |x| >= 1/0.35 */
+	    R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+				rb5+s*rb6)))));
+	    S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+				sb5+s*(sb6+s*sb7))))));
+	}
+	GET_FLOAT_WORD(ix,x);
+	SET_FLOAT_WORD(z,ix&0xfffff000);
+	r  =  __ieee754_expf(-z*z-(float)0.5625)*__ieee754_expf((z-x)*(z+x)+R/S);
+	if(hx>=0) return one-r/x; else return  r/x-one;
+}
+weak_alias (__erff, erff)
+
+float __erfcf(float x)
+{
+	int32_t hx,ix;
+	float R,S,P,Q,s,y,z,r;
+	GET_FLOAT_WORD(hx,x);
+	ix = hx&0x7fffffff;
+	if(ix>=0x7f800000) {			/* erfc(nan)=nan */
+						/* erfc(+-inf)=0,2 */
+	    float ret = (float)(((u_int32_t)hx>>31)<<1)+one/x;
+	    if (FIX_INT_FP_CONVERT_ZERO && ret == 0.0f)
+	      return 0.0f;
+	    return ret;
+	}
+
+	if(ix < 0x3f580000) {		/* |x|<0.84375 */
+	    if(ix < 0x32800000)  	/* |x|<2**-26 */
+		return one-x;
+	    z = x*x;
+	    r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+	    s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+	    y = r/s;
+	    if(hx < 0x3e800000) {  	/* x<1/4 */
+		return one-(x+x*y);
+	    } else {
+		r = x*y;
+		r += (x-half);
+	        return half - r ;
+	    }
+	}
+	if(ix < 0x3fa00000) {		/* 0.84375 <= |x| < 1.25 */
+	    s = fabsf(x)-one;
+	    P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+	    Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+	    if(hx>=0) {
+	        z  = one-erx; return z - P/Q;
+	    } else {
+		z = erx+P/Q; return one+z;
+	    }
+	}
+	if (ix < 0x41e00000) {		/* |x|<28 */
+	    x = fabsf(x);
+ 	    s = one/(x*x);
+	    if(ix< 0x4036DB6D) {	/* |x| < 1/.35 ~ 2.857143*/
+	        R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(
+				ra5+s*(ra6+s*ra7))))));
+	        S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(
+				sa5+s*(sa6+s*(sa7+s*sa8)))))));
+	    } else {			/* |x| >= 1/.35 ~ 2.857143 */
+		if(hx<0&&ix>=0x40c00000) return two-tiny;/* x < -6 */
+	        R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(
+				rb5+s*rb6)))));
+	        S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(
+				sb5+s*(sb6+s*sb7))))));
+	    }
+	    GET_FLOAT_WORD(ix,x);
+	    SET_FLOAT_WORD(z,ix&0xffffe000);
+	    r  =  __ieee754_expf(-z*z-(float)0.5625)*
+			__ieee754_expf((z-x)*(z+x)+R/S);
+	    if(hx>0) {
+		float ret = math_narrow_eval (r/x);
+		if (ret == 0)
+		    __set_errno (ERANGE);
+		return ret;
+	    } else
+		return two-r/x;
+	} else {
+	    if(hx>0) {
+		__set_errno (ERANGE);
+		return tiny*tiny;
+	    } else
+		return two-tiny;
+	}
+}
+weak_alias (__erfcf, erfcf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_expm1f.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_expm1f.c
new file mode 100644
index 0000000000..c515d25e28
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_expm1f.c
@@ -0,0 +1,130 @@
+/* s_expm1f.c -- float version of s_expm1.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float huge = 1.0e+30;
+static const float tiny = 1.0e-30;
+
+static const float
+one		= 1.0,
+o_threshold	= 8.8721679688e+01,/* 0x42b17180 */
+ln2_hi		= 6.9313812256e-01,/* 0x3f317180 */
+ln2_lo		= 9.0580006145e-06,/* 0x3717f7d1 */
+invln2		= 1.4426950216e+00,/* 0x3fb8aa3b */
+	/* scaled coefficients related to expm1 */
+Q1  =  -3.3333335072e-02, /* 0xbd088889 */
+Q2  =   1.5873016091e-03, /* 0x3ad00d01 */
+Q3  =  -7.9365076090e-05, /* 0xb8a670cd */
+Q4  =   4.0082177293e-06, /* 0x36867e54 */
+Q5  =  -2.0109921195e-07; /* 0xb457edbb */
+
+float
+__expm1f(float x)
+{
+	float y,hi,lo,c,t,e,hxs,hfx,r1;
+	int32_t k,xsb;
+	u_int32_t hx;
+
+	GET_FLOAT_WORD(hx,x);
+	xsb = hx&0x80000000;		/* sign bit of x */
+	if(xsb==0) y=x; else y= -x;	/* y = |x| */
+	hx &= 0x7fffffff;		/* high word of |x| */
+
+    /* filter out huge and non-finite argument */
+	if(hx >= 0x4195b844) {			/* if |x|>=27*ln2 */
+	    if(hx >= 0x42b17218) {		/* if |x|>=88.721... */
+		if(hx>0x7f800000)
+		    return x+x;		 /* NaN */
+		if(hx==0x7f800000)
+		    return (xsb==0)? x:-1.0;/* exp(+-inf)={inf,-1} */
+		if(x > o_threshold) {
+		  __set_errno (ERANGE);
+		  return huge*huge; /* overflow */
+		}
+	    }
+	    if(xsb!=0) { /* x < -27*ln2, return -1.0 with inexact */
+		math_force_eval(x+tiny);/* raise inexact */
+		return tiny-one;	/* return -1 */
+	    }
+	}
+
+    /* argument reduction */
+	if(hx > 0x3eb17218) {		/* if  |x| > 0.5 ln2 */
+	    if(hx < 0x3F851592) {	/* and |x| < 1.5 ln2 */
+		if(xsb==0)
+		    {hi = x - ln2_hi; lo =  ln2_lo;  k =  1;}
+		else
+		    {hi = x + ln2_hi; lo = -ln2_lo;  k = -1;}
+	    } else {
+		k  = invln2*x+((xsb==0)?(float)0.5:(float)-0.5);
+		t  = k;
+		hi = x - t*ln2_hi;	/* t*ln2_hi is exact here */
+		lo = t*ln2_lo;
+	    }
+	    x  = hi - lo;
+	    c  = (hi-x)-lo;
+	}
+	else if(hx < 0x33000000) {	/* when |x|<2**-25, return x */
+	    math_check_force_underflow (x);
+	    t = huge+x;	/* return x with inexact flags when x!=0 */
+	    return x - (t-(huge+x));
+	}
+	else k = 0;
+
+    /* x is now in primary range */
+	hfx = (float)0.5*x;
+	hxs = x*hfx;
+	r1 = one+hxs*(Q1+hxs*(Q2+hxs*(Q3+hxs*(Q4+hxs*Q5))));
+	t  = (float)3.0-r1*hfx;
+	e  = hxs*((r1-t)/((float)6.0 - x*t));
+	if(k==0) return x - (x*e-hxs);		/* c is 0 */
+	else {
+	    e  = (x*(e-c)-c);
+	    e -= hxs;
+	    if(k== -1) return (float)0.5*(x-e)-(float)0.5;
+	    if(k==1) {
+		if(x < (float)-0.25) return -(float)2.0*(e-(x+(float)0.5));
+		else	      return  one+(float)2.0*(x-e);
+	    }
+	    if (k <= -2 || k>56) {   /* suffice to return exp(x)-1 */
+		int32_t i;
+		y = one-(e-x);
+		GET_FLOAT_WORD(i,y);
+		SET_FLOAT_WORD(y,i+(k<<23));	/* add k to y's exponent */
+		return y-one;
+	    }
+	    t = one;
+	    if(k<23) {
+		int32_t i;
+		SET_FLOAT_WORD(t,0x3f800000 - (0x1000000>>k)); /* t=1-2^-k */
+		y = t-(e-x);
+		GET_FLOAT_WORD(i,y);
+		SET_FLOAT_WORD(y,i+(k<<23));	/* add k to y's exponent */
+	   } else {
+		int32_t i;
+		SET_FLOAT_WORD(t,((0x7f-k)<<23));	/* 2^-k */
+		y = x-(e+t);
+		y += one;
+		GET_FLOAT_WORD(i,y);
+		SET_FLOAT_WORD(y,i+(k<<23));	/* add k to y's exponent */
+	    }
+	}
+	return y;
+}
+weak_alias (__expm1f, expm1f)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_fabsf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_fabsf.c
new file mode 100644
index 0000000000..297abe64bd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_fabsf.c
@@ -0,0 +1,30 @@
+/* s_fabsf.c -- float version of s_fabs.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_fabsf.c,v 1.4 1995/05/10 20:47:15 jtc Exp $";
+#endif
+
+/*
+ * fabsf(x) returns the absolute value of x.
+ */
+
+#include <math.h>
+
+float __fabsf(float x)
+{
+  return __builtin_fabsf (x);
+}
+weak_alias (__fabsf, fabsf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_finitef.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_finitef.c
new file mode 100644
index 0000000000..4c5b339235
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_finitef.c
@@ -0,0 +1,41 @@
+/* s_finitef.c -- float version of s_finite.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_finitef.c,v 1.4 1995/05/10 20:47:18 jtc Exp $";
+#endif
+
+/*
+ * finitef(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+#undef __finitef
+
+#ifndef FINITEF
+# define FINITEF __finitef
+#endif
+
+int FINITEF(float x)
+{
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	return (int)((u_int32_t)((ix&0x7f800000)-0x7f800000)>>31);
+}
+hidden_def (__finitef)
+weak_alias (__finitef, finitef)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_floorf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_floorf.c
new file mode 100644
index 0000000000..69160e5e10
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_floorf.c
@@ -0,0 +1,54 @@
+/* s_floorf.c -- float version of s_floor.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * floorf(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ *	Bit twiddling.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+float
+__floorf(float x)
+{
+	int32_t i0,j0;
+	u_int32_t i;
+	GET_FLOAT_WORD(i0,x);
+	j0 = ((i0>>23)&0xff)-0x7f;
+	if(j0<23) {
+	    if(j0<0) {
+		/* return 0*sign(x) if |x|<1 */
+		if(i0>=0) {i0=0;}
+		else if((i0&0x7fffffff)!=0)
+		  { i0=0xbf800000;}
+	    } else {
+		i = (0x007fffff)>>j0;
+		if((i0&i)==0) return x; /* x is integral */
+		if(i0<0) i0 += (0x00800000)>>j0;
+		i0 &= (~i);
+	    }
+	} else {
+	    if(__builtin_expect(j0==0x80, 0)) return x+x; /* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	SET_FLOAT_WORD(x,i0);
+	return x;
+}
+#ifndef __floorf
+weak_alias (__floorf, floorf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_fpclassifyf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_fpclassifyf.c
new file mode 100644
index 0000000000..8a67c6fc0e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_fpclassifyf.c
@@ -0,0 +1,42 @@
+/* Return classification value corresponding to argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+int
+__fpclassifyf (float x)
+{
+  u_int32_t wx;
+  int retval = FP_NORMAL;
+
+  GET_FLOAT_WORD (wx, x);
+  wx &= 0x7fffffff;
+  if (wx == 0)
+    retval = FP_ZERO;
+  else if (wx < 0x800000)
+    retval = FP_SUBNORMAL;
+  else if (wx >= 0x7f800000)
+    retval = wx > 0x7f800000 ? FP_NAN : FP_INFINITE;
+
+  return retval;
+}
+libm_hidden_def (__fpclassifyf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_frexpf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_frexpf.c
new file mode 100644
index 0000000000..005367cf58
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_frexpf.c
@@ -0,0 +1,44 @@
+/* s_frexpf.c -- float version of s_frexp.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_frexpf.c,v 1.5 1995/05/10 20:47:26 jtc Exp $";
+#endif
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+two25 =  3.3554432000e+07; /* 0x4c000000 */
+
+float __frexpf(float x, int *eptr)
+{
+	int32_t hx,ix;
+	GET_FLOAT_WORD(hx,x);
+	ix = 0x7fffffff&hx;
+	*eptr = 0;
+	if(ix>=0x7f800000||(ix==0)) return x + x;	/* 0,inf,nan */
+	if (ix<0x00800000) {		/* subnormal */
+	    x *= two25;
+	    GET_FLOAT_WORD(hx,x);
+	    ix = hx&0x7fffffff;
+	    *eptr = -25;
+	}
+	*eptr += (ix>>23)-126;
+	hx = (hx&0x807fffff)|0x3f000000;
+	SET_FLOAT_WORD(x,hx);
+	return x;
+}
+weak_alias (__frexpf, frexpf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf.c
new file mode 100644
index 0000000000..68d4c80a17
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 0
+#define FUNC fromfpf
+#include <s_fromfpf_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf_main.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf_main.c
new file mode 100644
index 0000000000..3a4ad80e55
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpf_main.c
@@ -0,0 +1,82 @@
+/* Round to integer type.  flt-32 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#define BIAS 0x7f
+#define MANT_DIG 24
+
+#if UNSIGNED
+# define RET_TYPE uintmax_t
+#else
+# define RET_TYPE intmax_t
+#endif
+
+#include <fromfp.h>
+
+RET_TYPE
+FUNC (float x, int round, unsigned int width)
+{
+  if (width > INTMAX_WIDTH)
+    width = INTMAX_WIDTH;
+  uint32_t ix;
+  GET_FLOAT_WORD (ix, x);
+  bool negative = (ix & 0x80000000) != 0;
+  if (width == 0)
+    return fromfp_domain_error (negative, width);
+  ix &= 0x7fffffff;
+  if (ix == 0)
+    return 0;
+  int exponent = ix >> (MANT_DIG - 1);
+  exponent -= BIAS;
+  int max_exponent = fromfp_max_exponent (negative, width);
+  if (exponent > max_exponent)
+    return fromfp_domain_error (negative, width);
+
+  ix &= ((1U << (MANT_DIG - 1)) - 1);
+  ix |= 1U << (MANT_DIG - 1);
+  uintmax_t uret;
+  bool half_bit, more_bits;
+  if (exponent >= MANT_DIG - 1)
+    {
+      uret = ix;
+      uret <<= exponent - (MANT_DIG - 1);
+      half_bit = false;
+      more_bits = false;
+    }
+  else if (exponent >= -1)
+    {
+      uint32_t h = 1U << (MANT_DIG - 2 - exponent);
+      half_bit = (ix & h) != 0;
+      more_bits = (ix & (h - 1)) != 0;
+      uret = ix >> (MANT_DIG - 1 - exponent);
+    }
+  else
+    {
+      uret = 0;
+      half_bit = false;
+      more_bits = true;
+    }
+  return fromfp_round_and_return (negative, uret, half_bit, more_bits, round,
+				  exponent, max_exponent, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpxf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpxf.c
new file mode 100644
index 0000000000..9d0fcbc8cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_fromfpxf.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 1
+#define FUNC fromfpxf
+#include <s_fromfpf_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_getpayloadf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_getpayloadf.c
new file mode 100644
index 0000000000..90cfcc53b9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_getpayloadf.c
@@ -0,0 +1,33 @@
+/* Get NaN payload.  flt-32 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fix-int-fp-convert-zero.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+float
+getpayloadf (const float *x)
+{
+  uint32_t ix;
+  GET_FLOAT_WORD (ix, *x);
+  ix &= 0x3fffff;
+  if (FIX_INT_FP_CONVERT_ZERO && ix == 0)
+    return 0.0f;
+  return (float) ix;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_isinff.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_isinff.c
new file mode 100644
index 0000000000..6eec050bb5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_isinff.c
@@ -0,0 +1,29 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_isinff.c,v 1.3 1995/05/11 23:20:21 jtc Exp $";
+#endif
+
+/*
+ * isinff(x) returns 1 if x is inf, -1 if x is -inf, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+int
+__isinff (float x)
+{
+	int32_t ix,t;
+	GET_FLOAT_WORD(ix,x);
+	t = ix & 0x7fffffff;
+	t ^= 0x7f800000;
+	t |= -t;
+	return ~(t >> 31) & (ix >> 30);
+}
+hidden_def (__isinff)
+weak_alias (__isinff, isinff)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_isnanf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_isnanf.c
new file mode 100644
index 0000000000..820b31a2b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_isnanf.c
@@ -0,0 +1,38 @@
+/* s_isnanf.c -- float version of s_isnan.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993, 2011 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_isnanf.c,v 1.4 1995/05/10 20:47:38 jtc Exp $";
+#endif
+
+/*
+ * isnanf(x) returns 1 is x is nan, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+#undef __isnanf
+int __isnanf(float x)
+{
+	int32_t ix;
+	GET_FLOAT_WORD(ix,x);
+	ix &= 0x7fffffff;
+	ix = 0x7f800000 - ix;
+	return (int)(((u_int32_t)(ix))>>31);
+}
+hidden_def (__isnanf)
+weak_alias (__isnanf, isnanf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_issignalingf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_issignalingf.c
new file mode 100644
index 0000000000..cd9830eae2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_issignalingf.c
@@ -0,0 +1,43 @@
+/* Test for signaling NaN.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+
+int
+__issignalingf (float x)
+{
+  u_int32_t xi;
+  GET_FLOAT_WORD (xi, x);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* We only have to care about the high-order bit of x's significand, because
+     having it set (sNaN) already makes the significand different from that
+     used to designate infinity.  */
+  return (xi & 0x7fc00000) == 0x7fc00000;
+#else
+  /* To keep the following comparison simple, toggle the quiet/signaling bit,
+     so that it is set for sNaNs.  This is inverse to IEEE 754-2008 (as well as
+     common practice for IEEE 754-1985).  */
+  xi ^= 0x00400000;
+  /* We have to compare for greater (instead of greater or equal), because x's
+     significand being all-zero designates infinity not NaN.  */
+  return (xi & 0x7fffffff) > 0x7fc00000;
+#endif
+}
+libm_hidden_def (__issignalingf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_llrintf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_llrintf.c
new file mode 100644
index 0000000000..e0ffbfee82
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_llrintf.c
@@ -0,0 +1,86 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+static const float two23[2] =
+{
+  8.3886080000e+06, /* 0x4B000000 */
+ -8.3886080000e+06, /* 0xCB000000 */
+};
+
+
+long long int
+__llrintf (float x)
+{
+  int32_t j0;
+  u_int32_t i0;
+  float w;
+  float t;
+  long long int result;
+  int sx;
+
+  GET_FLOAT_WORD (i0, x);
+
+  sx = i0 >> 31;
+  j0 = ((i0 >> 23) & 0xff) - 0x7f;
+  i0 &= 0x7fffff;
+  i0 |= 0x800000;
+
+  if (j0 < (int32_t) (sizeof (long long int) * 8) - 1)
+    {
+      if (j0 >= 23)
+	result = (long long int) i0 << (j0 - 23);
+      else
+	{
+	  w = math_narrow_eval (two23[sx] + x);
+	  t = w - two23[sx];
+	  GET_FLOAT_WORD (i0, t);
+	  j0 = ((i0 >> 23) & 0xff) - 0x7f;
+	  i0 &= 0x7fffff;
+	  i0 |= 0x800000;
+
+	  result = (j0 < 0 ? 0 : i0 >> (23 - j0));
+	}
+    }
+  else
+    {
+#ifdef FE_INVALID
+      /* The number is too large.  Unless it rounds to LLONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+      if (FIX_FLT_LLONG_CONVERT_OVERFLOW && x != (float) LLONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sx == 0 ? LLONG_MAX : LLONG_MIN;
+	}
+#endif
+      return (long long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__llrintf, llrintf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_llroundf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_llroundf.c
new file mode 100644
index 0000000000..faee87b879
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_llroundf.c
@@ -0,0 +1,73 @@
+/* Round float value to long long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+
+long long int
+__llroundf (float x)
+{
+  int32_t j0;
+  u_int32_t i;
+  long long int result;
+  int sign;
+
+  GET_FLOAT_WORD (i, x);
+  j0 = ((i >> 23) & 0xff) - 0x7f;
+  sign = (i & 0x80000000) != 0 ? -1 : 1;
+  i &= 0x7fffff;
+  i |= 0x800000;
+
+  if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else if (j0 >= 23)
+	result = (long long int) i << (j0 - 23);
+      else
+	{
+	  i += 0x400000 >> j0;
+
+	  result = i >> (23 - j0);
+	}
+    }
+  else
+    {
+#ifdef FE_INVALID
+      /* The number is too large.  Unless it rounds to LLONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+      if (FIX_FLT_LLONG_CONVERT_OVERFLOW && x != (float) LLONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sign == 1 ? LLONG_MAX : LLONG_MIN;
+	}
+#endif
+      return (long long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__llroundf, llroundf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_log1pf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_log1pf.c
new file mode 100644
index 0000000000..ade60a2e27
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_log1pf.c
@@ -0,0 +1,102 @@
+/* s_log1pf.c -- float version of s_log1p.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float
+ln2_hi =   6.9313812256e-01,	/* 0x3f317180 */
+ln2_lo =   9.0580006145e-06,	/* 0x3717f7d1 */
+two25 =    3.355443200e+07,	/* 0x4c000000 */
+Lp1 = 6.6666668653e-01,	/* 3F2AAAAB */
+Lp2 = 4.0000000596e-01,	/* 3ECCCCCD */
+Lp3 = 2.8571429849e-01, /* 3E924925 */
+Lp4 = 2.2222198546e-01, /* 3E638E29 */
+Lp5 = 1.8183572590e-01, /* 3E3A3325 */
+Lp6 = 1.5313838422e-01, /* 3E1CD04F */
+Lp7 = 1.4798198640e-01; /* 3E178897 */
+
+static const float zero = 0.0;
+
+float
+__log1pf(float x)
+{
+	float hfsq,f,c,s,z,R,u;
+	int32_t k,hx,hu,ax;
+
+	GET_FLOAT_WORD(hx,x);
+	ax = hx&0x7fffffff;
+
+	k = 1;
+	if (hx < 0x3ed413d7) {			/* x < 0.41422  */
+	    if(ax>=0x3f800000) {		/* x <= -1.0 */
+		if(x==(float)-1.0) return -two25/zero; /* log1p(-1)=-inf */
+		else return (x-x)/(x-x);	/* log1p(x<-1)=NaN */
+	    }
+	    if(ax<0x31000000) {			/* |x| < 2**-29 */
+		math_force_eval(two25+x);	/* raise inexact */
+		if (ax<0x24800000)		/* |x| < 2**-54 */
+		  {
+		    math_check_force_underflow (x);
+		    return x;
+		  }
+		else
+		    return x - x*x*(float)0.5;
+	    }
+	    if(hx>0||hx<=((int32_t)0xbe95f61f)) {
+		k=0;f=x;hu=1;}	/* -0.2929<x<0.41422 */
+	}
+	if (hx >= 0x7f800000) return x+x;
+	if(k!=0) {
+	    if(hx<0x5a000000) {
+		u  = (float)1.0+x;
+		GET_FLOAT_WORD(hu,u);
+		k  = (hu>>23)-127;
+		/* correction term */
+		c  = (k>0)? (float)1.0-(u-x):x-(u-(float)1.0);
+		c /= u;
+	    } else {
+		u  = x;
+		GET_FLOAT_WORD(hu,u);
+		k  = (hu>>23)-127;
+		c  = 0;
+	    }
+	    hu &= 0x007fffff;
+	    if(hu<0x3504f7) {
+		SET_FLOAT_WORD(u,hu|0x3f800000);/* normalize u */
+	    } else {
+		k += 1;
+		SET_FLOAT_WORD(u,hu|0x3f000000);	/* normalize u/2 */
+		hu = (0x00800000-hu)>>2;
+	    }
+	    f = u-(float)1.0;
+	}
+	hfsq=(float)0.5*f*f;
+	if(hu==0) {	/* |f| < 2**-20 */
+	    if(f==zero) {
+		if(k==0) return zero;
+		else {c += k*ln2_lo; return k*ln2_hi+c;}
+	    }
+	    R = hfsq*((float)1.0-(float)0.66666666666666666*f);
+	    if(k==0) return f-R; else
+		     return k*ln2_hi-((R-(k*ln2_lo+c))-f);
+	}
+	s = f/((float)2.0+f);
+	z = s*s;
+	R = z*(Lp1+z*(Lp2+z*(Lp3+z*(Lp4+z*(Lp5+z*(Lp6+z*Lp7))))));
+	if(k==0) return f-(hfsq-s*(hfsq+R)); else
+		 return k*ln2_hi-((hfsq-(s*(hfsq+R)+(k*ln2_lo+c)))-f);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_logbf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_logbf.c
new file mode 100644
index 0000000000..9ae20e332a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_logbf.c
@@ -0,0 +1,41 @@
+/* s_logbf.c -- float version of s_logb.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <fix-int-fp-convert-zero.h>
+
+float
+__logbf (float x)
+{
+  int32_t ix, rix;
+
+  GET_FLOAT_WORD (ix, x);
+  ix &= 0x7fffffff;		/* high |x| */
+  if (ix == 0)
+    return (float) -1.0 / fabsf (x);
+  if (ix >= 0x7f800000)
+    return x * x;
+  if (__glibc_unlikely ((rix = ix >> 23) == 0))
+    {
+      /* POSIX specifies that denormal number is treated as
+         though it were normalized.  */
+      rix -= __builtin_clz (ix) - 9;
+    }
+  if (FIX_INT_FP_CONVERT_ZERO && rix == 127)
+    return 0.0f;
+  return (float) (rix - 127);
+}
+weak_alias (__logbf, logbf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_lrintf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_lrintf.c
new file mode 100644
index 0000000000..a1ed720c0f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_lrintf.c
@@ -0,0 +1,86 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+static const float two23[2] =
+{
+  8.3886080000e+06, /* 0x4B000000 */
+ -8.3886080000e+06, /* 0xCB000000 */
+};
+
+
+long int
+__lrintf (float x)
+{
+  int32_t j0;
+  u_int32_t i0;
+  float w;
+  float t;
+  long int result;
+  int sx;
+
+  GET_FLOAT_WORD (i0, x);
+
+  sx = i0 >> 31;
+  j0 = ((i0 >> 23) & 0xff) - 0x7f;
+  i0 &= 0x7fffff;
+  i0 |= 0x800000;
+
+  if (j0 < (int32_t) (sizeof (long int) * 8) - 1)
+    {
+      if (j0 >= 23)
+	result = (long int) i0 << (j0 - 23);
+      else
+	{
+	  w = math_narrow_eval (two23[sx] + x);
+	  t = w - two23[sx];
+	  GET_FLOAT_WORD (i0, t);
+	  j0 = ((i0 >> 23) & 0xff) - 0x7f;
+	  i0 &= 0x7fffff;
+	  i0 |= 0x800000;
+
+	  result = (j0 < 0 ? 0 : i0 >> (23 - j0));
+	}
+    }
+  else
+    {
+#ifdef FE_INVALID
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+      if (FIX_FLT_LONG_CONVERT_OVERFLOW && x != (float) LONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sx == 0 ? LONG_MAX : LONG_MIN;
+	}
+#endif
+      return (long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__lrintf, lrintf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_lroundf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_lroundf.c
new file mode 100644
index 0000000000..81cb7ab10f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_lroundf.c
@@ -0,0 +1,73 @@
+/* Round float value to long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+
+long int
+__lroundf (float x)
+{
+  int32_t j0;
+  u_int32_t i;
+  long int result;
+  int sign;
+
+  GET_FLOAT_WORD (i, x);
+  j0 = ((i >> 23) & 0xff) - 0x7f;
+  sign = (i & 0x80000000) != 0 ? -1 : 1;
+  i &= 0x7fffff;
+  i |= 0x800000;
+
+  if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else if (j0 >= 23)
+	result = (long int) i << (j0 - 23);
+      else
+	{
+	  i += 0x400000 >> j0;
+
+	  result = i >> (23 - j0);
+	}
+    }
+  else
+    {
+#ifdef FE_INVALID
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+      if (FIX_FLT_LONG_CONVERT_OVERFLOW && x != (float) LONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sign == 1 ? LONG_MAX : LONG_MIN;
+	}
+#endif
+      return (long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__lroundf, lroundf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_modff.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_modff.c
new file mode 100644
index 0000000000..23f6a902b3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_modff.c
@@ -0,0 +1,54 @@
+/* s_modff.c -- float version of s_modf.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float one = 1.0;
+
+float
+__modff(float x, float *iptr)
+{
+	int32_t i0,j0;
+	u_int32_t i;
+	GET_FLOAT_WORD(i0,x);
+	j0 = ((i0>>23)&0xff)-0x7f;	/* exponent of x */
+	if(__builtin_expect(j0<23, 1)) {		/* integer part in x */
+	    if(j0<0) {			/* |x|<1 */
+		SET_FLOAT_WORD(*iptr,i0&0x80000000);	/* *iptr = +-0 */
+		return x;
+	    } else {
+		i = (0x007fffff)>>j0;
+		if((i0&i)==0) {			/* x is integral */
+		    u_int32_t ix;
+		    *iptr = x;
+		    GET_FLOAT_WORD(ix,x);
+		    SET_FLOAT_WORD(x,ix&0x80000000);	/* return +-0 */
+		    return x;
+		} else {
+		    SET_FLOAT_WORD(*iptr,i0&(~i));
+		    return x - *iptr;
+		}
+	    }
+	} else {			/* no fraction part */
+	    *iptr = x*one;
+	    /* We must handle NaNs separately.  */
+	    if (j0 == 0x80 && (i0 & 0x7fffff))
+	      return x*one;
+	    SET_FLOAT_WORD(x,i0&0x80000000);	/* return +-0 */
+	    return x;
+	}
+}
+weak_alias (__modff, modff)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_nearbyintf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_nearbyintf.c
new file mode 100644
index 0000000000..5aebefafcf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_nearbyintf.c
@@ -0,0 +1,59 @@
+/* s_rintf.c -- float version of s_rint.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+/* Adapted for use as nearbyint by Ulrich Drepper <drepper@cygnus.com>.  */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float
+TWO23[2]={
+  8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+};
+
+float
+__nearbyintf(float x)
+{
+	fenv_t env;
+	int32_t i0,j0,sx;
+	float w,t;
+	GET_FLOAT_WORD(i0,x);
+	sx = (i0>>31)&1;
+	j0 = ((i0>>23)&0xff)-0x7f;
+	if(j0<23) {
+	    if(j0<0) {
+		libc_feholdexceptf (&env);
+		w = TWO23[sx]+x;
+		t =  w-TWO23[sx];
+		math_force_eval (t);
+		libc_fesetenvf (&env);
+		GET_FLOAT_WORD(i0,t);
+		SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+		return t;
+	    }
+	} else {
+	    if(__builtin_expect(j0==0x80, 0)) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	libc_feholdexceptf (&env);
+	w = TWO23[sx]+x;
+	t = w-TWO23[sx];
+	math_force_eval (t);
+	libc_fesetenvf (&env);
+	return t;
+}
+weak_alias (__nearbyintf, nearbyintf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_nextafterf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_nextafterf.c
new file mode 100644
index 0000000000..625d54b768
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_nextafterf.c
@@ -0,0 +1,73 @@
+/* s_nextafterf.c -- float version of s_nextafter.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_nextafterf.c,v 1.4 1995/05/10 20:48:01 jtc Exp $";
+#endif
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+float __nextafterf(float x, float y)
+{
+	int32_t hx,hy,ix,iy;
+
+	GET_FLOAT_WORD(hx,x);
+	GET_FLOAT_WORD(hy,y);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = hy&0x7fffffff;		/* |y| */
+
+	if((ix>0x7f800000) ||   /* x is nan */
+	   (iy>0x7f800000))     /* y is nan */
+	   return x+y;
+	if(x==y) return y;		/* x=y, return y */
+	if(ix==0) {				/* x == 0 */
+	    float u;
+	    SET_FLOAT_WORD(x,(hy&0x80000000)|1);/* return +-minsubnormal */
+	    u = math_opt_barrier (x);
+	    u = u*u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if(hx>hy) {				/* x > y, x -= ulp */
+		hx -= 1;
+	    } else {				/* x < y, x += ulp */
+		hx += 1;
+	    }
+	} else {				/* x < 0 */
+	    if(hy>=0||hx>hy){			/* x < y, x -= ulp */
+		hx -= 1;
+	    } else {				/* x > y, x += ulp */
+		hx += 1;
+	    }
+	}
+	hy = hx&0x7f800000;
+	if(hy>=0x7f800000) {
+	  float u = x+x;	/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00800000) {
+	    float u = x*x;			/* underflow */
+	    math_force_eval (u);		/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	SET_FLOAT_WORD(x,hx);
+	return x;
+}
+weak_alias (__nextafterf, nextafterf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_nextupf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_nextupf.c
new file mode 100644
index 0000000000..bbabdf1bd6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_nextupf.c
@@ -0,0 +1,46 @@
+/* Return the least floating-point number greater than X.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Return the least floating-point number greater than X.  */
+float
+__nextupf (float x)
+{
+  int32_t hx, ix;
+
+  GET_FLOAT_WORD (hx, x);
+  ix = hx & 0x7fffffff;
+  if (ix == 0)
+    return FLT_TRUE_MIN;
+  if (ix > 0x7f800000)		/* x is nan.  */
+    return x + x;
+  if (hx >= 0)
+    {				/* x > 0.  */
+      if (isinf (x))
+        return x;
+      hx += 1;
+    }
+  else
+    hx -= 1;
+  SET_FLOAT_WORD (x, hx);
+  return x;
+}
+
+weak_alias (__nextupf, nextupf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_remquof.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_remquof.c
new file mode 100644
index 0000000000..8e398dc6c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_remquof.c
@@ -0,0 +1,110 @@
+/* Compute remainder and a congruent to the quotient.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+static const float zero = 0.0;
+
+
+float
+__remquof (float x, float y, int *quo)
+{
+  int32_t hx,hy;
+  u_int32_t sx;
+  int cquo, qs;
+
+  GET_FLOAT_WORD (hx, x);
+  GET_FLOAT_WORD (hy, y);
+  sx = hx & 0x80000000;
+  qs = sx ^ (hy & 0x80000000);
+  hy &= 0x7fffffff;
+  hx &= 0x7fffffff;
+
+  /* Purge off exception values.  */
+  if (hy == 0)
+    return (x * y) / (x * y); 			/* y = 0 */
+  if ((hx >= 0x7f800000)			/* x not finite */
+      || (hy > 0x7f800000))			/* y is NaN */
+    return (x * y) / (x * y);
+
+  if (hy <= 0x7dffffff)
+    x = __ieee754_fmodf (x, 8 * y);		/* now x < 8y */
+
+  if ((hx - hy) == 0)
+    {
+      *quo = qs ? -1 : 1;
+      return zero * x;
+    }
+
+  x  = fabsf (x);
+  y  = fabsf (y);
+  cquo = 0;
+
+  if (hy <= 0x7e7fffff && x >= 4 * y)
+    {
+      x -= 4 * y;
+      cquo += 4;
+    }
+  if (hy <= 0x7effffff && x >= 2 * y)
+    {
+      x -= 2 * y;
+      cquo += 2;
+    }
+
+  if (hy < 0x01000000)
+    {
+      if (x + x > y)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x + x >= y)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+  else
+    {
+      float y_half = 0.5 * y;
+      if (x > y_half)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x >= y_half)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+
+  *quo = qs ? -cquo : cquo;
+
+  /* Ensure correct sign of zero result in round-downward mode.  */
+  if (x == 0.0f)
+    x = 0.0f;
+  if (sx)
+    x = -x;
+  return x;
+}
+weak_alias (__remquof, remquof)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_rintf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_rintf.c
new file mode 100644
index 0000000000..8a907488f7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_rintf.c
@@ -0,0 +1,50 @@
+/* s_rintf.c -- float version of s_rint.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+TWO23[2]={
+  8.3886080000e+06, /* 0x4b000000 */
+ -8.3886080000e+06, /* 0xcb000000 */
+};
+
+float
+__rintf(float x)
+{
+	int32_t i0,j0,sx;
+	float w,t;
+	GET_FLOAT_WORD(i0,x);
+	sx = (i0>>31)&1;
+	j0 = ((i0>>23)&0xff)-0x7f;
+	if(j0<23) {
+	    if(j0<0) {
+		w = TWO23[sx]+x;
+		t =  w-TWO23[sx];
+		GET_FLOAT_WORD(i0,t);
+		SET_FLOAT_WORD(t,(i0&0x7fffffff)|(sx<<31));
+		return t;
+	    }
+	} else {
+	    if(j0==0x80) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	w = TWO23[sx]+x;
+	return w-TWO23[sx];
+}
+#ifndef __rintf
+weak_alias (__rintf, rintf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_roundevenf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_roundevenf.c
new file mode 100644
index 0000000000..4a8c2624bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_roundevenf.c
@@ -0,0 +1,68 @@
+/* Round to nearest integer value, rounding halfway cases to even.
+   flt-32 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+#define BIAS 0x7f
+#define MANT_DIG 24
+#define MAX_EXP (2 * BIAS + 1)
+
+float
+roundevenf (float x)
+{
+  uint32_t ix, ux;
+  GET_FLOAT_WORD (ix, x);
+  ux = ix & 0x7fffffff;
+  int exponent = ux >> (MANT_DIG - 1);
+  if (exponent >= BIAS + MANT_DIG - 1)
+    {
+      /* Integer, infinity or NaN.  */
+      if (exponent == MAX_EXP)
+	/* Infinity or NaN; quiet signaling NaNs.  */
+	return x + x;
+      else
+	return x;
+    }
+  else if (exponent >= BIAS)
+    {
+      /* At least 1; not necessarily an integer.  Locate the bits with
+	 exponents 0 and -1 (when the unbiased exponent is 0, the bit
+	 with exponent 0 is implicit, but as the bias is odd it is OK
+	 to take it from the low bit of the exponent).  */
+      int int_pos = (BIAS + MANT_DIG - 1) - exponent;
+      int half_pos = int_pos - 1;
+      uint32_t half_bit = 1U << half_pos;
+      uint32_t int_bit = 1U << int_pos;
+      if ((ix & (int_bit | (half_bit - 1))) != 0)
+	/* Carry into the exponent works correctly.  No need to test
+	   whether HALF_BIT is set.  */
+	ix += half_bit;
+      ix &= ~(int_bit - 1);
+    }
+  else if (exponent == BIAS - 1 && ux > 0x3f000000)
+    /* Interval (0.5, 1).  */
+    ix = (ix & 0x80000000) | 0x3f800000;
+  else
+    /* Rounds to 0.  */
+    ix &= 0x80000000;
+  SET_FLOAT_WORD (x, ix);
+  return x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_roundf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_roundf.c
new file mode 100644
index 0000000000..7ea0d97756
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_roundf.c
@@ -0,0 +1,63 @@
+/* Round float to integer away from zero.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+float
+__roundf (float x)
+{
+  int32_t i0, j0;
+
+  GET_FLOAT_WORD (i0, x);
+  j0 = ((i0 >> 23) & 0xff) - 0x7f;
+  if (j0 < 23)
+    {
+      if (j0 < 0)
+	{
+	  i0 &= 0x80000000;
+	  if (j0 == -1)
+	    i0 |= 0x3f800000;
+	}
+      else
+	{
+	  u_int32_t i = 0x007fffff >> j0;
+	  if ((i0 & i) == 0)
+	    /* X is integral.  */
+	    return x;
+
+	  i0 += 0x00400000 >> j0;
+	  i0 &= ~i;
+	}
+    }
+  else
+    {
+      if (j0 == 0x80)
+	/* Inf or NaN.  */
+	return x + x;
+      else
+	return x;
+    }
+
+  SET_FLOAT_WORD (x, i0);
+  return x;
+}
+weak_alias (__roundf, roundf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_scalblnf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_scalblnf.c
new file mode 100644
index 0000000000..ad3c586b33
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_scalblnf.c
@@ -0,0 +1,52 @@
+/* s_scalbnf.c -- float version of s_scalbn.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+two25   =  3.355443200e+07,	/* 0x4c000000 */
+twom25  =  2.9802322388e-08,	/* 0x33000000 */
+huge   = 1.0e+30,
+tiny   = 1.0e-30;
+
+float
+__scalblnf (float x, long int n)
+{
+	int32_t k,ix;
+	GET_FLOAT_WORD(ix,x);
+	k = (ix&0x7f800000)>>23;		/* extract exponent */
+	if (__builtin_expect(k==0, 0)) {	/* 0 or subnormal x */
+	    if ((ix&0x7fffffff)==0) return x; /* +-0 */
+	    x *= two25;
+	    GET_FLOAT_WORD(ix,x);
+	    k = ((ix&0x7f800000)>>23) - 25;
+	    }
+	if (__builtin_expect(k==0xff, 0)) return x+x;	/* NaN or Inf */
+	if (__builtin_expect(n< -50000, 0))
+	  return tiny*copysignf(tiny,x);	/*underflow*/
+	if (__builtin_expect(n> 50000 || k+n > 0xfe, 0))
+	  return huge*copysignf(huge,x); /* overflow  */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+	k = k+n;
+	if (__builtin_expect(k > 0, 1))		/* normal result */
+	    {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;}
+	if (k <= -25)
+	    return tiny*copysignf(tiny,x);	/*underflow*/
+	k += 25;				/* subnormal result */
+	SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
+	return x*twom25;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_scalbnf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_scalbnf.c
new file mode 100644
index 0000000000..f36ae241b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_scalbnf.c
@@ -0,0 +1,52 @@
+/* s_scalbnf.c -- float version of s_scalbn.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const float
+two25   =  3.355443200e+07,	/* 0x4c000000 */
+twom25  =  2.9802322388e-08,	/* 0x33000000 */
+huge   = 1.0e+30,
+tiny   = 1.0e-30;
+
+float
+__scalbnf (float x, int n)
+{
+	int32_t k,ix;
+	GET_FLOAT_WORD(ix,x);
+	k = (ix&0x7f800000)>>23;		/* extract exponent */
+	if (__builtin_expect(k==0, 0)) {	/* 0 or subnormal x */
+	    if ((ix&0x7fffffff)==0) return x; /* +-0 */
+	    x *= two25;
+	    GET_FLOAT_WORD(ix,x);
+	    k = ((ix&0x7f800000)>>23) - 25;
+	    }
+	if (__builtin_expect(k==0xff, 0)) return x+x;	/* NaN or Inf */
+	if (__builtin_expect(n< -50000, 0))
+	  return tiny*__copysignf(tiny,x);	/*underflow*/
+	if (__builtin_expect(n> 50000 || k+n > 0xfe, 0))
+	  return huge*__copysignf(huge,x); /* overflow  */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+	k = k+n;
+	if (__builtin_expect(k > 0, 1))		/* normal result */
+	    {SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23)); return x;}
+	if (k <= -25)
+	    return tiny*__copysignf(tiny,x);	/*underflow*/
+	k += 25;				/* subnormal result */
+	SET_FLOAT_WORD(x,(ix&0x807fffff)|(k<<23));
+	return x*twom25;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf.c
new file mode 100644
index 0000000000..86dfda9aa6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf.c
@@ -0,0 +1,3 @@
+#define SIG 0
+#define FUNC setpayloadf
+#include <s_setpayloadf_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf_main.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
new file mode 100644
index 0000000000..8b046d6547
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadf_main.c
@@ -0,0 +1,53 @@
+/* Set NaN payload.  flt-32 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+#define SET_HIGH_BIT (HIGH_ORDER_BIT_IS_SET_FOR_SNAN ? SIG : !SIG)
+#define BIAS 0x7f
+#define PAYLOAD_DIG 22
+#define EXPLICIT_MANT_DIG 23
+
+int
+FUNC (float *x, float payload)
+{
+  uint32_t ix;
+  GET_FLOAT_WORD (ix, payload);
+  int exponent = ix >> EXPLICIT_MANT_DIG;
+  /* Test if argument is (a) negative or too large; (b) too small,
+     except for 0 when allowed; (c) not an integer.  */
+  if (exponent >= BIAS + PAYLOAD_DIG
+      || (exponent < BIAS && !(SET_HIGH_BIT && ix == 0))
+      || (ix & ((1U << (BIAS + EXPLICIT_MANT_DIG - exponent)) - 1)) != 0)
+    {
+      SET_FLOAT_WORD (*x, 0);
+      return 1;
+    }
+  if (ix != 0)
+    {
+      ix &= (1U << EXPLICIT_MANT_DIG) - 1;
+      ix |= 1U << EXPLICIT_MANT_DIG;
+      ix >>= BIAS + EXPLICIT_MANT_DIG - exponent;
+    }
+  ix |= 0x7f800000 | (SET_HIGH_BIT ? 0x400000 : 0);
+  SET_FLOAT_WORD (*x, ix);
+  return 0;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadsigf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadsigf.c
new file mode 100644
index 0000000000..f7b335dac7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_setpayloadsigf.c
@@ -0,0 +1,3 @@
+#define SIG 1
+#define FUNC setpayloadsigf
+#include <s_setpayloadf_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_signbitf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_signbitf.c
new file mode 100644
index 0000000000..0f7e23d7f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_signbitf.c
@@ -0,0 +1,26 @@
+/* Return nonzero value if number is negative.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+int
+__signbitf (float x)
+{
+  return __builtin_signbitf (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_sincosf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_sincosf.c
new file mode 100644
index 0000000000..3ab92ee0ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_sincosf.c
@@ -0,0 +1,84 @@
+/* Compute sine and cosine of argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <math.h>
+
+#include <math_private.h>
+
+#ifndef SINCOSF
+# define SINCOSF_FUNC __sincosf
+#else
+# define SINCOSF_FUNC SINCOSF
+#endif
+
+void
+SINCOSF_FUNC (float x, float *sinx, float *cosx)
+{
+  int32_t ix;
+
+  /* High word of x. */
+  GET_FLOAT_WORD (ix, x);
+
+  /* |x| ~< pi/4 */
+  ix &= 0x7fffffff;
+  if (ix <= 0x3f490fd8)
+    {
+      *sinx = __kernel_sinf (x, 0.0, 0);
+      *cosx = __kernel_cosf (x, 0.0);
+    }
+  else if (ix>=0x7f800000)
+    {
+      /* sin(Inf or NaN) is NaN */
+      *sinx = *cosx = x - x;
+      if (ix == 0x7f800000)
+	__set_errno (EDOM);
+    }
+  else
+    {
+      /* Argument reduction needed.  */
+      float y[2];
+      int n;
+
+      n = __ieee754_rem_pio2f (x, y);
+      switch (n & 3)
+	{
+	case 0:
+	  *sinx = __kernel_sinf (y[0], y[1], 1);
+	  *cosx = __kernel_cosf (y[0], y[1]);
+	  break;
+	case 1:
+	  *sinx = __kernel_cosf (y[0], y[1]);
+	  *cosx = -__kernel_sinf (y[0], y[1], 1);
+	  break;
+	case 2:
+	  *sinx = -__kernel_sinf (y[0], y[1], 1);
+	  *cosx = -__kernel_cosf (y[0], y[1]);
+	  break;
+	default:
+	  *sinx = -__kernel_cosf (y[0], y[1]);
+	  *cosx = __kernel_sinf (y[0], y[1], 1);
+	  break;
+	}
+    }
+}
+
+#ifndef SINCOSF
+weak_alias (__sincosf, sincosf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_sinf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_sinf.c
new file mode 100644
index 0000000000..916e345571
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_sinf.c
@@ -0,0 +1,63 @@
+/* s_sinf.c -- float version of s_sin.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_sinf.c,v 1.4 1995/05/10 20:48:16 jtc Exp $";
+#endif
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+#ifndef SINF
+# define SINF_FUNC __sinf
+#else
+# define SINF_FUNC SINF
+#endif
+
+float SINF_FUNC(float x)
+{
+	float y[2],z=0.0;
+	int32_t n, ix;
+
+	GET_FLOAT_WORD(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffff;
+	if(ix <= 0x3f490fd8) return __kernel_sinf(x,z,0);
+
+    /* sin(Inf or NaN) is NaN */
+	else if (ix>=0x7f800000) {
+	  if (ix == 0x7f800000)
+	    __set_errno (EDOM);
+	  return x-x;
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2f(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_sinf(y[0],y[1],1);
+		case 1: return  __kernel_cosf(y[0],y[1]);
+		case 2: return -__kernel_sinf(y[0],y[1],1);
+		default:
+			return -__kernel_cosf(y[0],y[1]);
+	    }
+	}
+}
+
+#ifndef SINF
+weak_alias (__sinf, sinf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_tanf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_tanf.c
new file mode 100644
index 0000000000..685df8fa35
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_tanf.c
@@ -0,0 +1,49 @@
+/* s_tanf.c -- float version of s_tan.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_tanf.c,v 1.4 1995/05/10 20:48:20 jtc Exp $";
+#endif
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+float __tanf(float x)
+{
+	float y[2],z=0.0;
+	int32_t n, ix;
+
+	GET_FLOAT_WORD(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffff;
+	if(ix <= 0x3f490fda) return __kernel_tanf(x,z,1);
+
+    /* tan(Inf or NaN) is NaN */
+	else if (ix>=0x7f800000) {
+	  if (ix==0x7f800000)
+	    __set_errno (EDOM);
+	  return x-x;		/* NaN */
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2f(x,y);
+	    return __kernel_tanf(y[0],y[1],1-((n&1)<<1)); /*   1 -- n even
+							      -1 -- n odd */
+	}
+}
+weak_alias (__tanf, tanf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_tanhf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_tanhf.c
new file mode 100644
index 0000000000..f70702b29c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_tanhf.c
@@ -0,0 +1,62 @@
+/* s_tanhf.c -- float version of s_tanh.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_tanhf.c,v 1.4 1995/05/10 20:48:24 jtc Exp $";
+#endif
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const float one=1.0, two=2.0, tiny = 1.0e-30;
+
+float __tanhf(float x)
+{
+	float t,z;
+	int32_t jx,ix;
+
+	GET_FLOAT_WORD(jx,x);
+	ix = jx&0x7fffffff;
+
+    /* x is INF or NaN */
+	if(ix>=0x7f800000) {
+	    if (jx>=0) return one/x+one;    /* tanh(+-inf)=+-1 */
+	    else       return one/x-one;    /* tanh(NaN) = NaN */
+	}
+
+    /* |x| < 22 */
+	if (ix < 0x41b00000) {		/* |x|<22 */
+	    if (ix == 0)
+		return x;		/* x == +-0 */
+	    if (ix<0x24000000) 		/* |x|<2**-55 */
+	      {
+		math_check_force_underflow (x);
+		return x*(one+x);    	/* tanh(small) = small */
+	      }
+	    if (ix>=0x3f800000) {	/* |x|>=1  */
+		t = __expm1f(two*fabsf(x));
+		z = one - two/(t+two);
+	    } else {
+	        t = __expm1f(-two*fabsf(x));
+	        z= -t/(t+two);
+	    }
+    /* |x| > 22, return +-1 */
+	} else {
+	    z = one - tiny;		/* raised inexact flag */
+	}
+	return (jx>=0)? z: -z;
+}
+weak_alias (__tanhf, tanhf)
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_totalorderf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_totalorderf.c
new file mode 100644
index 0000000000..f592b051db
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_totalorderf.c
@@ -0,0 +1,46 @@
+/* Total order operation.  flt-32 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalorderf (float x, float y)
+{
+  int32_t ix, iy;
+  GET_FLOAT_WORD (ix, x);
+  GET_FLOAT_WORD (iy, y);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the arguments interpreted as
+     sign-magnitude integers.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if ((ix & 0x7fffffff) > 0x7f800000 && (iy & 0x7fffffff) > 0x7f800000)
+    {
+      ix ^= 0x00400000;
+      iy ^= 0x00400000;
+    }
+#endif
+  uint32_t ix_sign = ix >> 31;
+  uint32_t iy_sign = iy >> 31;
+  ix ^= ix_sign >> 1;
+  iy ^= iy_sign >> 1;
+  return ix <= iy;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_totalordermagf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_totalordermagf.c
new file mode 100644
index 0000000000..cac7601e12
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_totalordermagf.c
@@ -0,0 +1,44 @@
+/* Total order operation on absolute values.  flt-32 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalordermagf (float x, float y)
+{
+  uint32_t ix, iy;
+  GET_FLOAT_WORD (ix, x);
+  GET_FLOAT_WORD (iy, y);
+  ix &= 0x7fffffff;
+  iy &= 0x7fffffff;
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the absolute values of the
+     arguments.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if (ix > 0x7f800000 && iy > 0x7f800000)
+    {
+      ix ^= 0x00400000;
+      iy ^= 0x00400000;
+    }
+#endif
+  return ix <= iy;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_truncf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_truncf.c
new file mode 100644
index 0000000000..2edb03c16f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_truncf.c
@@ -0,0 +1,53 @@
+/* Truncate argument to nearest integral value not larger than the argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+float
+__truncf (float x)
+{
+  int32_t i0, j0;
+  int sx;
+
+  GET_FLOAT_WORD (i0, x);
+  sx = i0 & 0x80000000;
+  j0 = ((i0 >> 23) & 0xff) - 0x7f;
+  if (j0 < 23)
+    {
+      if (j0 < 0)
+	/* The magnitude of the number is < 1 so the result is +-0.  */
+	SET_FLOAT_WORD (x, sx);
+      else
+	SET_FLOAT_WORD (x, sx | (i0 & ~(0x007fffff >> j0)));
+    }
+  else
+    {
+      if (j0 == 0x80)
+	/* x is inf or NaN.  */
+	return x + x;
+    }
+
+  return x;
+}
+#ifndef __truncf
+weak_alias (__truncf, truncf)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpf.c
new file mode 100644
index 0000000000..e6ffdf3374
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpf.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 0
+#define FUNC ufromfpf
+#include <s_fromfpf_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpxf.c b/REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpxf.c
new file mode 100644
index 0000000000..97aa6890f0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/s_ufromfpxf.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 1
+#define FUNC ufromfpxf
+#include <s_fromfpf_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/t_exp2f.h b/REORG.TODO/sysdeps/ieee754/flt-32/t_exp2f.h
new file mode 100644
index 0000000000..aecabcc372
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/t_exp2f.h
@@ -0,0 +1,351 @@
+/* Accurate tables for exp2f().
+   Copyright (C) 1998-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Geoffrey Keating <geoffk@ozemail.com.au>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This table has the property that, for all integers -128 <= i <= 127,
+   exp(i/256.0 + __exp2f_deltatable[i-128]) == __exp2f_atable[i+128] + r
+   for some -2^-35 < r < 2^-35 (abs(r) < 2^-36 if i <= 0); and that
+   __exp2f_deltatable[i+128] == t * 2^-30
+   for integer t so that abs(t) <= 43447 * 2^0.  */
+
+#define W30 (9.31322575e-10)
+static const float __exp2f_deltatable[256] = {
+      -810*W30,       283*W30,     -1514*W30,      1304*W30,
+     -1148*W30,       -98*W30,      -744*W30,      -156*W30,
+      -419*W30,      -155*W30,       474*W30,       167*W30,
+     -1984*W30,      -826*W30,       692*W30,       781*W30,
+      -578*W30,      -411*W30,      -129*W30,     -1500*W30,
+       654*W30,      -141*W30,      -816*W30,       -53*W30,
+       148*W30,       493*W30,     -2214*W30,       760*W30,
+       260*W30,       750*W30,     -1300*W30,      1424*W30,
+     -1445*W30,      -339*W30,      -680*W30,      -349*W30,
+      -922*W30,       531*W30,       193*W30,     -2892*W30,
+       290*W30,     -2145*W30,      -276*W30,       485*W30,
+      -695*W30,       215*W30,     -7093*W30,       412*W30,
+     -4596*W30,       367*W30,       592*W30,      -615*W30,
+       -97*W30,     -1066*W30,       972*W30,      -226*W30,
+      -625*W30,      -374*W30,     -5647*W30,      -180*W30,
+     20349*W30,      -447*W30,       111*W30,     -4164*W30,
+       -87*W30,       -21*W30,      -251*W30,        66*W30,
+      -517*W30,      2093*W30,      -263*W30,       182*W30,
+      -601*W30,       475*W30,      -483*W30,     -1251*W30,
+      -373*W30,      1471*W30,       -92*W30,      -215*W30,
+       -97*W30,      -190*W30,         0*W30,      -290*W30,
+     -2647*W30,      1940*W30,      -582*W30,        28*W30,
+       833*W30,      1493*W30,        34*W30,       321*W30,
+      3327*W30,       -35*W30,       177*W30,      -135*W30,
+      -796*W30,      -428*W30,       129*W30,      9332*W30,
+       -12*W30,       -69*W30,     -1743*W30,      6508*W30,
+       -60*W30,       359*W30,     43447*W30,        15*W30,
+       -23*W30,      -305*W30,      -375*W30,      -652*W30,
+       667*W30,       269*W30,     -1575*W30,       185*W30,
+      -329*W30,       200*W30,      6002*W30,       163*W30,
+      -647*W30,        19*W30,      -603*W30,      -755*W30,
+       742*W30,      -438*W30,      3587*W30,      2560*W30,
+         0*W30,      -520*W30,      -241*W30,      -299*W30,
+     -1270*W30,      -991*W30,     -1138*W30,       255*W30,
+     -1192*W30,      1722*W30,      1023*W30,      3700*W30,
+     -1388*W30,     -1551*W30,     -2549*W30,        27*W30,
+       282*W30,       673*W30,       113*W30,      1561*W30,
+        72*W30,       873*W30,        87*W30,      -395*W30,
+      -433*W30,       629*W30,      3440*W30,      -284*W30,
+      -592*W30,      -103*W30,       -46*W30,     -3844*W30,
+      1712*W30,       303*W30,      1555*W30,      -631*W30,
+     -1400*W30,      -961*W30,      -854*W30,      -276*W30,
+       407*W30,       833*W30,      -345*W30,     -1501*W30,
+       121*W30,     -1581*W30,       400*W30,       150*W30,
+      1224*W30,      -139*W30,      -563*W30,       879*W30,
+       933*W30,      2939*W30,       788*W30,       211*W30,
+       530*W30,      -192*W30,       706*W30,    -13347*W30,
+      1065*W30,         3*W30,       111*W30,      -208*W30,
+      -360*W30,      -532*W30,      -291*W30,       483*W30,
+       987*W30,       -33*W30,     -1373*W30,      -166*W30,
+     -1174*W30,     -3955*W30,      1601*W30,      -280*W30,
+      1405*W30,       600*W30,     -1659*W30,       -23*W30,
+       390*W30,       449*W30,       570*W30,    -13143*W30,
+        -9*W30,     -1646*W30,      1201*W30,       294*W30,
+      2181*W30,     -1173*W30,      1388*W30,     -4504*W30,
+       190*W30,     -2304*W30,       211*W30,       239*W30,
+        48*W30,      -817*W30,      1018*W30,      1828*W30,
+      -663*W30,      1408*W30,       408*W30,       -36*W30,
+      1295*W30,      -230*W30,      1341*W30,         9*W30,
+        40*W30,       705*W30,       186*W30,       376*W30,
+       557*W30,      5866*W30,       363*W30,     -1558*W30,
+       718*W30,       669*W30,      1369*W30,     -2972*W30,
+      -468*W30,      -121*W30,      -219*W30,       667*W30,
+     29954*W30,       366*W30,        48*W30,      -203*W30
+};
+
+static const float __exp2f_atable[256] /* __attribute__((mode(SF))) */ = {
+ 0.707106411447, /* 0x0.b504ecfff */
+ 0.709024071690, /* 0x0.b58299fff */
+ 0.710945606239, /* 0x0.b60088000 */
+ 0.712874472142, /* 0x0.b67ef1000 */
+ 0.714806139464, /* 0x0.b6fd88fff */
+ 0.716744661340, /* 0x0.b77c94000 */
+ 0.718687653549, /* 0x0.b7fbea000 */
+ 0.720636486992, /* 0x0.b87ba1fff */
+ 0.722590208040, /* 0x0.b8fbabfff */
+ 0.724549472323, /* 0x0.b97c12fff */
+ 0.726514220228, /* 0x0.b9fcd5fff */
+ 0.728483855735, /* 0x0.ba7deb000 */
+ 0.730457961549, /* 0x0.baff4afff */
+ 0.732438981522, /* 0x0.bb811efff */
+ 0.734425544748, /* 0x0.bc0350000 */
+ 0.736416816713, /* 0x0.bc85d0000 */
+ 0.738412797450, /* 0x0.bd089efff */
+ 0.740414917465, /* 0x0.bd8bd4fff */
+ 0.742422521111, /* 0x0.be0f66fff */
+ 0.744434773914, /* 0x0.be9346fff */
+ 0.746454179287, /* 0x0.bf179f000 */
+ 0.748477637755, /* 0x0.bf9c3afff */
+ 0.750506639473, /* 0x0.c02133fff */
+ 0.752541840064, /* 0x0.c0a694fff */
+ 0.754582285889, /* 0x0.c12c4e000 */
+ 0.756628334525, /* 0x0.c1b265000 */
+ 0.758678436269, /* 0x0.c238bffff */
+ 0.760736882681, /* 0x0.c2bfa6fff */
+ 0.762799203401, /* 0x0.c346cf000 */
+ 0.764867603790, /* 0x0.c3ce5d000 */
+ 0.766940355298, /* 0x0.c45633fff */
+ 0.769021093841, /* 0x0.c4de90fff */
+ 0.771104693409, /* 0x0.c5671dfff */
+ 0.773195922364, /* 0x0.c5f02afff */
+ 0.775292098512, /* 0x0.c6798afff */
+ 0.777394294745, /* 0x0.c70350000 */
+ 0.779501736166, /* 0x0.c78d6d000 */
+ 0.781615912910, /* 0x0.c817fafff */
+ 0.783734917628, /* 0x0.c8a2d9fff */
+ 0.785858273516, /* 0x0.c92e02000 */
+ 0.787990570071, /* 0x0.c9b9c0000 */
+ 0.790125787245, /* 0x0.ca45aefff */
+ 0.792268991467, /* 0x0.cad223fff */
+ 0.794417440881, /* 0x0.cb5ef0fff */
+ 0.796570718287, /* 0x0.cbec0efff */
+ 0.798730909811, /* 0x0.cc79a0fff */
+ 0.800892710672, /* 0x0.cd074dfff */
+ 0.803068041795, /* 0x0.cd95ddfff */
+ 0.805242776881, /* 0x0.ce2464000 */
+ 0.807428598393, /* 0x0.ceb3a3fff */
+ 0.809617877002, /* 0x0.cf431dfff */
+ 0.811812341211, /* 0x0.cfd2eefff */
+ 0.814013659956, /* 0x0.d06333000 */
+ 0.816220164311, /* 0x0.d0f3ce000 */
+ 0.818434238424, /* 0x0.d184e7fff */
+ 0.820652604094, /* 0x0.d21649fff */
+ 0.822877407074, /* 0x0.d2a818000 */
+ 0.825108587751, /* 0x0.d33a51000 */
+ 0.827342867839, /* 0x0.d3ccbdfff */
+ 0.829588949684, /* 0x0.d45ff1000 */
+ 0.831849217401, /* 0x0.d4f411fff */
+ 0.834093391880, /* 0x0.d58724fff */
+ 0.836355149750, /* 0x0.d61b5f000 */
+ 0.838620424257, /* 0x0.d6afd3fff */
+ 0.840896368027, /* 0x0.d744fc000 */
+ 0.843176305293, /* 0x0.d7da66fff */
+ 0.845462262643, /* 0x0.d87037000 */
+ 0.847754716864, /* 0x0.d90673fff */
+ 0.850052893157, /* 0x0.d99d10fff */
+ 0.852359056469, /* 0x0.da3433fff */
+ 0.854668736446, /* 0x0.dacb91fff */
+ 0.856986224651, /* 0x0.db6373000 */
+ 0.859309315673, /* 0x0.dbfbb1fff */
+ 0.861639738080, /* 0x0.dc946bfff */
+ 0.863975346095, /* 0x0.dd2d7d000 */
+ 0.866317391394, /* 0x0.ddc6f9fff */
+ 0.868666708472, /* 0x0.de60f1000 */
+ 0.871022939695, /* 0x0.defb5c000 */
+ 0.873383641229, /* 0x0.df9611fff */
+ 0.875751554968, /* 0x0.e03141000 */
+ 0.878126025200, /* 0x0.e0ccde000 */
+ 0.880506813521, /* 0x0.e168e4fff */
+ 0.882894217966, /* 0x0.e2055afff */
+ 0.885287821299, /* 0x0.e2a239000 */
+ 0.887686729423, /* 0x0.e33f6ffff */
+ 0.890096127973, /* 0x0.e3dd56fff */
+ 0.892507970338, /* 0x0.e47b67000 */
+ 0.894928157336, /* 0x0.e51a03000 */
+ 0.897355020043, /* 0x0.e5b90efff */
+ 0.899788379682, /* 0x0.e65888000 */
+ 0.902227103705, /* 0x0.e6f85afff */
+ 0.904673457151, /* 0x0.e798ae000 */
+ 0.907128036008, /* 0x0.e8398afff */
+ 0.909585535528, /* 0x0.e8da99000 */
+ 0.912051796915, /* 0x0.e97c3a000 */
+ 0.914524436003, /* 0x0.ea1e46000 */
+ 0.917003571999, /* 0x0.eac0bf000 */
+ 0.919490039339, /* 0x0.eb63b2fff */
+ 0.921983361257, /* 0x0.ec071a000 */
+ 0.924488604054, /* 0x0.ecab48fff */
+ 0.926989555360, /* 0x0.ed4f30000 */
+ 0.929502844812, /* 0x0.edf3e6000 */
+ 0.932021975503, /* 0x0.ee98fdfff */
+ 0.934553921208, /* 0x0.ef3eecfff */
+ 0.937083780759, /* 0x0.efe4b8fff */
+ 0.939624726786, /* 0x0.f08b3f000 */
+ 0.942198514924, /* 0x0.f133ebfff */
+ 0.944726586343, /* 0x0.f1d99a000 */
+ 0.947287976728, /* 0x0.f28176fff */
+ 0.949856162070, /* 0x0.f329c5fff */
+ 0.952431440345, /* 0x0.f3d28bfff */
+ 0.955013573175, /* 0x0.f47bc5000 */
+ 0.957603693021, /* 0x0.f52584000 */
+ 0.960199773321, /* 0x0.f5cfa7000 */
+ 0.962801992906, /* 0x0.f67a31000 */
+ 0.965413510788, /* 0x0.f72556fff */
+ 0.968030691152, /* 0x0.f7d0dc000 */
+ 0.970655620084, /* 0x0.f87ce2fff */
+ 0.973290979849, /* 0x0.f92998fff */
+ 0.975926160805, /* 0x0.f9d64bfff */
+ 0.978571653370, /* 0x0.fa83ac000 */
+ 0.981225252139, /* 0x0.fb3193fff */
+ 0.983885228626, /* 0x0.fbdfe6fff */
+ 0.986552715296, /* 0x0.fc8eb7fff */
+ 0.989228487027, /* 0x0.fd3e14000 */
+ 0.991909801964, /* 0x0.fdedcd000 */
+ 0.994601726545, /* 0x0.fe9e38000 */
+ 0.997297704209, /* 0x0.ff4ee6fff */
+ 1.000000000000, /* 0x1.000000000 */
+ 1.002710938457, /* 0x1.00b1aa000 */
+ 1.005429744692, /* 0x1.0163d7ffe */
+ 1.008155703526, /* 0x1.02167dffe */
+ 1.010888457284, /* 0x1.02c995fff */
+ 1.013629436498, /* 0x1.037d38000 */
+ 1.016377568250, /* 0x1.043152000 */
+ 1.019134163841, /* 0x1.04e5f9ffe */
+ 1.021896362316, /* 0x1.059b00000 */
+ 1.024668931945, /* 0x1.0650b3ffe */
+ 1.027446627635, /* 0x1.0706be001 */
+ 1.030234098408, /* 0x1.07bd6bffe */
+ 1.033023953416, /* 0x1.087441ffe */
+ 1.035824656494, /* 0x1.092bce000 */
+ 1.038632392900, /* 0x1.09e3d0001 */
+ 1.041450142840, /* 0x1.0a9c79ffe */
+ 1.044273972530, /* 0x1.0b558a001 */
+ 1.047105550795, /* 0x1.0c0f1c001 */
+ 1.049944162390, /* 0x1.0cc924001 */
+ 1.052791833895, /* 0x1.0d83c4001 */
+ 1.055645227426, /* 0x1.0e3ec3fff */
+ 1.058507919326, /* 0x1.0efa60001 */
+ 1.061377286898, /* 0x1.0fb66bfff */
+ 1.064254641510, /* 0x1.1072fdffe */
+ 1.067140102389, /* 0x1.113018000 */
+ 1.070034146304, /* 0x1.11edc1fff */
+ 1.072937250162, /* 0x1.12ac04001 */
+ 1.075843691823, /* 0x1.136a7dfff */
+ 1.078760385496, /* 0x1.1429a3ffe */
+ 1.081685543070, /* 0x1.14e958000 */
+ 1.084618330005, /* 0x1.15a98c000 */
+ 1.087556362176, /* 0x1.166a18001 */
+ 1.090508937863, /* 0x1.172b98001 */
+ 1.093464612954, /* 0x1.17ed4bfff */
+ 1.096430182434, /* 0x1.18afa5ffe */
+ 1.099401354802, /* 0x1.19725e000 */
+ 1.102381587017, /* 0x1.1a35adfff */
+ 1.105370759965, /* 0x1.1af994000 */
+ 1.108367800686, /* 0x1.1bbdfdffe */
+ 1.111373305331, /* 0x1.1c82f6000 */
+ 1.114387035385, /* 0x1.1d4878001 */
+ 1.117408752440, /* 0x1.1e0e7ffff */
+ 1.120437502874, /* 0x1.1ed4fe000 */
+ 1.123474478729, /* 0x1.1f9c06000 */
+ 1.126521706601, /* 0x1.2063ba001 */
+ 1.129574775716, /* 0x1.212bd0001 */
+ 1.132638812065, /* 0x1.21f49e000 */
+ 1.135709524130, /* 0x1.22bddbffe */
+ 1.138789534565, /* 0x1.2387b5fff */
+ 1.141876101508, /* 0x1.2451fe000 */
+ 1.144971728301, /* 0x1.251cddffe */
+ 1.148077130296, /* 0x1.25e861ffe */
+ 1.151189923305, /* 0x1.26b462001 */
+ 1.154312610610, /* 0x1.278107ffe */
+ 1.157440662410, /* 0x1.284e08001 */
+ 1.160578370109, /* 0x1.291baa001 */
+ 1.163725256932, /* 0x1.29e9e6000 */
+ 1.166879892324, /* 0x1.2ab8a3ffe */
+ 1.170044302935, /* 0x1.2b8805fff */
+ 1.173205971694, /* 0x1.2c5739ffe */
+ 1.176397800428, /* 0x1.2d2867ffe */
+ 1.179586529747, /* 0x1.2df962001 */
+ 1.182784795737, /* 0x1.2ecafbffe */
+ 1.185991406414, /* 0x1.2f9d21ffe */
+ 1.189206838636, /* 0x1.306fdc001 */
+ 1.192430973067, /* 0x1.314328000 */
+ 1.195664167430, /* 0x1.32170c001 */
+ 1.198906540890, /* 0x1.32eb8a001 */
+ 1.202157497408, /* 0x1.33c098000 */
+ 1.205416083326, /* 0x1.349625fff */
+ 1.208683252332, /* 0x1.356c43fff */
+ 1.211961269402, /* 0x1.364318001 */
+ 1.215246438983, /* 0x1.371a64000 */
+ 1.218539118740, /* 0x1.37f22dffe */
+ 1.221847295770, /* 0x1.38cafc000 */
+ 1.225158572187, /* 0x1.39a3fdfff */
+ 1.228481650325, /* 0x1.3a7dc5ffe */
+ 1.231811761846, /* 0x1.3b5803fff */
+ 1.235149741144, /* 0x1.3c32c5ffe */
+ 1.238499879811, /* 0x1.3d0e53ffe */
+ 1.241858124726, /* 0x1.3dea69fff */
+ 1.245225191102, /* 0x1.3ec713fff */
+ 1.248601436624, /* 0x1.3fa458000 */
+ 1.251975655584, /* 0x1.40817a001 */
+ 1.255380749731, /* 0x1.4160a2001 */
+ 1.258783102010, /* 0x1.423f9bffe */
+ 1.262198328973, /* 0x1.431f6e000 */
+ 1.265619754780, /* 0x1.43ffa7fff */
+ 1.269052743928, /* 0x1.44e0a4001 */
+ 1.272490739830, /* 0x1.45c1f4000 */
+ 1.275942921659, /* 0x1.46a432001 */
+ 1.279397487615, /* 0x1.478697ffe */
+ 1.282870173427, /* 0x1.486a2dffe */
+ 1.286346316319, /* 0x1.494dfdffe */
+ 1.289836049094, /* 0x1.4a32b2001 */
+ 1.293333172770, /* 0x1.4b17e1ffe */
+ 1.296839594835, /* 0x1.4bfdadfff */
+ 1.300354957560, /* 0x1.4ce40fffe */
+ 1.303882122055, /* 0x1.4dcb38001 */
+ 1.307417988757, /* 0x1.4eb2f1ffe */
+ 1.310960650439, /* 0x1.4f9b1dfff */
+ 1.314516782746, /* 0x1.50842bfff */
+ 1.318079948424, /* 0x1.516daffff */
+ 1.321653246888, /* 0x1.5257de000 */
+ 1.325237751030, /* 0x1.5342c8001 */
+ 1.328829526907, /* 0x1.542e2c000 */
+ 1.332433700535, /* 0x1.551a5fffe */
+ 1.336045145966, /* 0x1.56070dffe */
+ 1.339667558645, /* 0x1.56f473ffe */
+ 1.343300342533, /* 0x1.57e287ffe */
+ 1.346941947961, /* 0x1.58d130001 */
+ 1.350594043714, /* 0x1.59c087ffe */
+ 1.354256033883, /* 0x1.5ab085fff */
+ 1.357932448365, /* 0x1.5ba175ffe */
+ 1.361609339707, /* 0x1.5c926dfff */
+ 1.365299344044, /* 0x1.5d8441ffe */
+ 1.369003057507, /* 0x1.5e76fc001 */
+ 1.372714757920, /* 0x1.5f6a3c000 */
+ 1.376437187179, /* 0x1.605e2fffe */
+ 1.380165219333, /* 0x1.615282001 */
+ 1.383909463864, /* 0x1.6247e3ffe */
+ 1.387661933907, /* 0x1.633dd0000 */
+ 1.391424179060, /* 0x1.64345fffe */
+ 1.395197510706, /* 0x1.652ba9fff */
+ 1.399006724329, /* 0x1.66254dffe */
+ 1.402773022651, /* 0x1.671c22000 */
+ 1.406576037403, /* 0x1.68155dfff */
+ 1.410389423392, /* 0x1.690f48001 */
+};
diff --git a/REORG.TODO/sysdeps/ieee754/flt-32/w_expf_compat.c b/REORG.TODO/sysdeps/ieee754/flt-32/w_expf_compat.c
new file mode 100644
index 0000000000..b2be6aa7e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/flt-32/w_expf_compat.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* wrapper expf */
+float
+__expf (float x)
+{
+  float z = __ieee754_expf (x);
+  if (__builtin_expect (!isfinite (z) || z == 0, 0)
+      && isfinite (x) && _LIB_VERSION != _IEEE_)
+    return __kernel_standard_f (x, x, 106 + !!signbit (x));
+
+  return z;
+}
+hidden_def (__expf)
+weak_alias (__expf, expf)
diff --git a/REORG.TODO/sysdeps/ieee754/ieee754.h b/REORG.TODO/sysdeps/ieee754/ieee754.h
new file mode 100644
index 0000000000..5c00d6377a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ieee754.h
@@ -0,0 +1,198 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _IEEE754_H
+
+#define _IEEE754_H 1
+#include <features.h>
+
+#include <endian.h>
+
+__BEGIN_DECLS
+
+union ieee754_float
+  {
+    float f;
+
+    /* This is the IEEE 754 single-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:8;
+	unsigned int mantissa:23;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	unsigned int mantissa:23;
+	unsigned int exponent:8;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:8;
+	unsigned int quiet_nan:1;
+	unsigned int mantissa:22;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	unsigned int mantissa:22;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:8;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee_nan;
+  };
+
+#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
+
+
+union ieee754_double
+  {
+    double d;
+
+    /* This is the IEEE 754 double-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:11;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:20;
+	unsigned int mantissa1:32;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
+	unsigned int mantissa0:20;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+	unsigned int mantissa1:32;
+# else
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:20;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+# endif
+#endif				/* Little endian.  */
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:11;
+	unsigned int quiet_nan:1;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:19;
+	unsigned int mantissa1:32;
+#else
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
+	unsigned int mantissa0:19;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+	unsigned int mantissa1:32;
+# else
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:19;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+# endif
+#endif
+      } ieee_nan;
+  };
+
+#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
+
+
+union ieee854_long_double
+  {
+    long double d;
+
+    /* This is the IEEE 854 double-extended-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:15;
+	unsigned int empty:16;
+	unsigned int mantissa0:32;
+	unsigned int mantissa1:32;
+#endif
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
+	unsigned int exponent:15;
+	unsigned int negative:1;
+	unsigned int empty:16;
+	unsigned int mantissa0:32;
+	unsigned int mantissa1:32;
+# else
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:32;
+	unsigned int exponent:15;
+	unsigned int negative:1;
+	unsigned int empty:16;
+# endif
+#endif
+      } ieee;
+
+    /* This is for NaNs in the IEEE 854 double-extended-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:15;
+	unsigned int empty:16;
+	unsigned int one:1;
+	unsigned int quiet_nan:1;
+	unsigned int mantissa0:30;
+	unsigned int mantissa1:32;
+#endif
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+# if	__FLOAT_WORD_ORDER == __BIG_ENDIAN
+	unsigned int exponent:15;
+	unsigned int negative:1;
+	unsigned int empty:16;
+	unsigned int mantissa0:30;
+	unsigned int quiet_nan:1;
+	unsigned int one:1;
+	unsigned int mantissa1:32;
+# else
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:30;
+	unsigned int quiet_nan:1;
+	unsigned int one:1;
+	unsigned int exponent:15;
+	unsigned int negative:1;
+	unsigned int empty:16;
+# endif
+#endif
+      } ieee_nan;
+  };
+
+#define IEEE854_LONG_DOUBLE_BIAS 0x3fff
+
+__END_DECLS
+
+#endif /* ieee754.h */
diff --git a/REORG.TODO/sysdeps/ieee754/k_standard.c b/REORG.TODO/sysdeps/ieee754/k_standard.c
new file mode 100644
index 0000000000..b100b3e351
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/k_standard.c
@@ -0,0 +1,943 @@
+/* @(#)k_standard.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: k_standard.c,v 1.6 1995/05/10 20:46:35 jtc Exp $";
+#endif
+
+#include <math.h>
+#include <math_private.h>
+#include <errno.h>
+
+#include <assert.h>
+
+#ifndef _USE_WRITE
+#include <stdio.h>			/* fputs(), stderr */
+#define	WRITE2(u,v)	fputs(u, stderr)
+#else	/* !defined(_USE_WRITE) */
+#include <unistd.h>			/* write */
+#define	WRITE2(u,v)	write(2, u, v)
+#undef fflush
+#endif	/* !defined(_USE_WRITE) */
+
+/* XXX gcc versions until now don't delay the 0.0/0.0 division until
+   runtime but produce NaN at compile time.  This is wrong since the
+   exceptions are not set correctly.  */
+#if 0
+static const double zero = 0.0;	/* used as const */
+#else
+static double zero = 0.0;	/* used as const */
+#endif
+
+/*
+ * Standard conformance (non-IEEE) on exception cases.
+ * Mapping:
+ *	1 -- acos(|x|>1)
+ *	2 -- asin(|x|>1)
+ *	3 -- atan2(+-0,+-0)
+ *	4 -- hypot overflow
+ *	5 -- cosh overflow
+ *	6 -- exp overflow
+ *	7 -- exp underflow
+ *	8 -- y0(0)
+ *	9 -- y0(-ve)
+ *	10-- y1(0)
+ *	11-- y1(-ve)
+ *	12-- yn(0)
+ *	13-- yn(-ve)
+ *	14-- lgamma(finite) overflow
+ *	15-- lgamma(-integer)
+ *	16-- log(0)
+ *	17-- log(x<0)
+ *	18-- log10(0)
+ *	19-- log10(x<0)
+ *	21-- pow(x,y) overflow
+ *	22-- pow(x,y) underflow
+ *	23-- pow(0,negative)
+ *	24-- pow(neg,non-integral)
+ *	25-- sinh(finite) overflow
+ *	26-- sqrt(negative)
+ *      27-- fmod(x,0)
+ *      28-- remainder(x,0)
+ *	29-- acosh(x<1)
+ *	30-- atanh(|x|>1)
+ *	31-- atanh(|x|=1)
+ *	32-- scalb overflow
+ *	33-- scalb underflow
+ *	34-- j0(|x|>X_TLOSS)
+ *	35-- y0(x>X_TLOSS)
+ *	36-- j1(|x|>X_TLOSS)
+ *	37-- y1(x>X_TLOSS)
+ *	38-- jn(|x|>X_TLOSS, n)
+ *	39-- yn(x>X_TLOSS, n)
+ *	40-- tgamma(finite) overflow
+ *	41-- tgamma(-integer)
+ *	43-- +0**neg
+ *	44-- exp2 overflow
+ *	45-- exp2 underflow
+ *	46-- exp10 overflow
+ *	47-- exp10 underflow
+ *	48-- log2(0)
+ *	49-- log2(x<0)
+ *	50-- tgamma(+-0)
+ */
+
+
+double
+__kernel_standard(double x, double y, int type)
+{
+	struct exception exc;
+#ifndef HUGE_VAL	/* this is the only routine that uses HUGE_VAL */
+#define HUGE_VAL inf
+	double inf = 0.0;
+
+	SET_HIGH_WORD(inf,0x7ff00000);	/* set inf to infinite */
+#endif
+
+	/* The SVID struct exception uses a field "char *name;".  */
+#define CSTR(func) ((char *) (type < 100				\
+			      ? func					\
+			      : (type < 200 ? func "f" : func "l")))
+
+#ifdef _USE_WRITE
+	(void) fflush(stdout);
+#endif
+	exc.arg1 = x;
+	exc.arg2 = y;
+	switch(type) {
+	    case 1:
+	    case 101:
+	    case 201:
+		/* acos(|x|>1) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("acos");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if(_LIB_VERSION == _SVID_) {
+		    (void) WRITE2("acos: DOMAIN error\n", 19);
+		  }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 2:
+	    case 102:
+	    case 202:
+		/* asin(|x|>1) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("asin");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = NAN;
+		if(_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if(_LIB_VERSION == _SVID_) {
+			(void) WRITE2("asin: DOMAIN error\n", 19);
+		  }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 3:
+	    case 103:
+	    case 203:
+		/* atan2(+-0,+-0) */
+		exc.arg1 = y;
+		exc.arg2 = x;
+		exc.type = DOMAIN;
+		exc.name = CSTR ("atan2");
+		assert (_LIB_VERSION == _SVID_);
+		exc.retval = HUGE;
+		if(_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if(_LIB_VERSION == _SVID_) {
+			(void) WRITE2("atan2: DOMAIN error\n", 20);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 4:
+	    case 104:
+	    case 204:
+		/* hypot(finite,finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("hypot");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 5:
+	    case 105:
+	    case 205:
+		/* cosh(finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("cosh");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 6:
+	    case 106:
+	    case 206:
+		/* exp(finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("exp");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 7:
+	    case 107:
+	    case 207:
+		/* exp(finite) underflow */
+		exc.type = UNDERFLOW;
+		exc.name = CSTR ("exp");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 8:
+	    case 108:
+	    case 208:
+		/* y0(0) = -inf */
+		exc.type = DOMAIN;	/* should be SING for IEEE */
+		exc.name = CSTR ("y0");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = -HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("y0: DOMAIN error\n", 17);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 9:
+	    case 109:
+	    case 209:
+		/* y0(x<0) = NaN */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("y0");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("y0: DOMAIN error\n", 17);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 10:
+	    case 110:
+	    case 210:
+		/* y1(0) = -inf */
+		exc.type = DOMAIN;	/* should be SING for IEEE */
+		exc.name = CSTR ("y1");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = -HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("y1: DOMAIN error\n", 17);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 11:
+	    case 111:
+	    case 211:
+		/* y1(x<0) = NaN */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("y1");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("y1: DOMAIN error\n", 17);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 12:
+	    case 112:
+	    case 212:
+		/* yn(n,0) = -inf */
+		exc.type = DOMAIN;	/* should be SING for IEEE */
+		exc.name = CSTR ("yn");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = ((x < 0 && ((int) x & 1) != 0)
+				? HUGE_VAL
+				: -HUGE_VAL);
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("yn: DOMAIN error\n", 17);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 13:
+	    case 113:
+	    case 213:
+		/* yn(x<0) = NaN */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("yn");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("yn: DOMAIN error\n", 17);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 14:
+	    case 114:
+	    case 214:
+		/* lgamma(finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("lgamma");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+			__set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 15:
+	    case 115:
+	    case 215:
+		/* lgamma(-integer) or lgamma(0) */
+		exc.type = SING;
+		exc.name = CSTR ("lgamma");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("lgamma: SING error\n", 19);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 16:
+	    case 116:
+	    case 216:
+		/* log(0) */
+		exc.type = SING;
+		exc.name = CSTR ("log");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = -HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("log: SING error\n", 16);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 17:
+	    case 117:
+	    case 217:
+		/* log(x<0) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("log");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("log: DOMAIN error\n", 18);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 18:
+	    case 118:
+	    case 218:
+		/* log10(0) */
+		exc.type = SING;
+		exc.name = CSTR ("log10");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = -HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("log10: SING error\n", 18);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 19:
+	    case 119:
+	    case 219:
+		/* log10(x<0) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("log10");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("log10: DOMAIN error\n", 20);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 21:
+	    case 121:
+	    case 221:
+		/* pow(x,y) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("pow");
+		if (_LIB_VERSION == _SVID_) {
+		  exc.retval = HUGE;
+		  y *= 0.5;
+		  if(x<zero&&__rint(y)!=y) exc.retval = -HUGE;
+		} else {
+		  exc.retval = HUGE_VAL;
+		  y *= 0.5;
+		  if(x<zero&&__rint(y)!=y) exc.retval = -HUGE_VAL;
+		}
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 22:
+	    case 122:
+	    case 222:
+		/* pow(x,y) underflow */
+		exc.type = UNDERFLOW;
+		exc.name = CSTR ("pow");
+		exc.retval =  zero;
+		y *= 0.5;
+		if (x < zero && __rint (y) != y)
+		  exc.retval = -zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 23:
+	    case 123:
+	    case 223:
+		/* -0**neg */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("pow");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = zero;
+		else
+		  exc.retval = -HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("pow(0,neg): DOMAIN error\n", 25);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 43:
+	    case 143:
+	    case 243:
+		/* +0**neg */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("pow");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = zero;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("pow(0,neg): DOMAIN error\n", 25);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 24:
+	    case 124:
+	    case 224:
+		/* neg**non-integral */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("pow");
+		if (_LIB_VERSION == _SVID_)
+		    exc.retval = zero;
+		else
+		    exc.retval = zero/zero;	/* X/Open allow NaN */
+		if (_LIB_VERSION == _POSIX_)
+		   __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("neg**non-integral: DOMAIN error\n", 32);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 25:
+	    case 125:
+	    case 225:
+		/* sinh(finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("sinh");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = ( (x>zero) ? HUGE : -HUGE);
+		else
+		  exc.retval = ( (x>zero) ? HUGE_VAL : -HUGE_VAL);
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 26:
+	    case 126:
+	    case 226:
+		/* sqrt(x<0) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("sqrt");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = zero;
+		else
+		  exc.retval = zero/zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("sqrt: DOMAIN error\n", 19);
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 27:
+	    case 127:
+	    case 227:
+		/* fmod(x,0) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("fmod");
+		if (_LIB_VERSION == _SVID_)
+		    exc.retval = x;
+		else
+		    exc.retval = zero/zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+		    (void) WRITE2("fmod:  DOMAIN error\n", 20);
+		  }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 28:
+	    case 128:
+	    case 228:
+		/* remainder(x,0) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("remainder");
+		exc.retval = zero/zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+		    (void) WRITE2("remainder: DOMAIN error\n", 24);
+		  }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 29:
+	    case 129:
+	    case 229:
+		/* acosh(x<1) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("acosh");
+		exc.retval = zero/zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+		    (void) WRITE2("acosh: DOMAIN error\n", 20);
+		  }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 30:
+	    case 130:
+	    case 230:
+		/* atanh(|x|>1) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("atanh");
+		exc.retval = zero/zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+		    (void) WRITE2("atanh: DOMAIN error\n", 20);
+		  }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 31:
+	    case 131:
+	    case 231:
+		/* atanh(|x|=1) */
+		exc.type = SING;
+		exc.name = CSTR ("atanh");
+		exc.retval = x/zero;	/* sign(x)*inf */
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+		    (void) WRITE2("atanh: SING error\n", 18);
+		  }
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 32:
+	    case 132:
+	    case 232:
+		/* scalb overflow; SVID also returns +-HUGE_VAL */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("scalb");
+		exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 33:
+	    case 133:
+	    case 233:
+		/* scalb underflow */
+		exc.type = UNDERFLOW;
+		exc.name = CSTR ("scalb");
+		exc.retval = __copysign(zero,x);
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 34:
+	    case 134:
+	    case 234:
+		/* j0(|x|>X_TLOSS) */
+		exc.type = TLOSS;
+		exc.name = CSTR ("j0");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+			__set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			if (_LIB_VERSION == _SVID_) {
+				(void) WRITE2(exc.name, 2);
+				(void) WRITE2(": TLOSS error\n", 14);
+			}
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 35:
+	    case 135:
+	    case 235:
+		/* y0(x>X_TLOSS) */
+		exc.type = TLOSS;
+		exc.name = CSTR ("y0");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+			__set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			if (_LIB_VERSION == _SVID_) {
+				(void) WRITE2(exc.name, 2);
+				(void) WRITE2(": TLOSS error\n", 14);
+			}
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 36:
+	    case 136:
+	    case 236:
+		/* j1(|x|>X_TLOSS) */
+		exc.type = TLOSS;
+		exc.name = CSTR ("j1");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+			__set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			if (_LIB_VERSION == _SVID_) {
+				(void) WRITE2(exc.name, 2);
+				(void) WRITE2(": TLOSS error\n", 14);
+			}
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 37:
+	    case 137:
+	    case 237:
+		/* y1(x>X_TLOSS) */
+		exc.type = TLOSS;
+		exc.name = CSTR ("y1");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+			__set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			if (_LIB_VERSION == _SVID_) {
+				(void) WRITE2(exc.name, 2);
+				(void) WRITE2(": TLOSS error\n", 14);
+			}
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 38:
+	    case 138:
+	    case 238:
+		/* jn(|x|>X_TLOSS) */
+		exc.type = TLOSS;
+		exc.name = CSTR ("jn");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+			__set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			if (_LIB_VERSION == _SVID_) {
+				(void) WRITE2(exc.name, 2);
+				(void) WRITE2(": TLOSS error\n", 14);
+			}
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 39:
+	    case 139:
+	    case 239:
+		/* yn(x>X_TLOSS) */
+		exc.type = TLOSS;
+		exc.name = CSTR ("yn");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+			__set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			if (_LIB_VERSION == _SVID_) {
+				(void) WRITE2(exc.name, 2);
+				(void) WRITE2(": TLOSS error\n", 14);
+			}
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 40:
+	    case 140:
+	    case 240:
+		/* tgamma(finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("tgamma");
+		exc.retval = __copysign (HUGE_VAL, x);
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  __set_errno (ERANGE);
+		}
+		break;
+	    case 41:
+	    case 141:
+	    case 241:
+		/* tgamma(-integer) */
+		exc.type = SING;
+		exc.name = CSTR ("tgamma");
+		exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_) {
+			(void) WRITE2("tgamma: SING error\n", 18);
+			exc.retval = HUGE_VAL;
+		      }
+		  __set_errno (EDOM);
+		}
+		break;
+
+	    case 44:
+	    case 144:
+	    case 244:
+		/* exp(finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("exp2");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 45:
+	    case 145:
+	    case 245:
+		/* exp(finite) underflow */
+		exc.type = UNDERFLOW;
+		exc.name = CSTR ("exp2");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+
+	    case 46:
+	    case 146:
+	    case 246:
+		/* exp(finite) overflow */
+		exc.type = OVERFLOW;
+		exc.name = CSTR ("exp10");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = HUGE;
+		else
+		  exc.retval = HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 47:
+	    case 147:
+	    case 247:
+		/* exp(finite) underflow */
+		exc.type = UNDERFLOW;
+		exc.name = CSTR ("exp10");
+		exc.retval = zero;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+			__set_errno (ERANGE);
+		}
+		break;
+	    case 48:
+	    case 148:
+	    case 248:
+		/* log2(0) */
+		exc.type = SING;
+		exc.name = CSTR ("log2");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = -HUGE_VAL;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 49:
+	    case 149:
+	    case 249:
+		/* log2(x<0) */
+		exc.type = DOMAIN;
+		exc.name = CSTR ("log2");
+		if (_LIB_VERSION == _SVID_)
+		  exc.retval = -HUGE;
+		else
+		  exc.retval = NAN;
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (EDOM);
+		else if (!matherr(&exc)) {
+		  __set_errno (EDOM);
+		}
+		break;
+	    case 50:
+	    case 150:
+	    case 250:
+		/* tgamma(+-0) */
+		exc.type = SING;
+		exc.name = CSTR ("tgamma");
+		exc.retval = __copysign (HUGE_VAL, x);
+		if (_LIB_VERSION == _POSIX_)
+		  __set_errno (ERANGE);
+		else if (!matherr(&exc)) {
+		  if (_LIB_VERSION == _SVID_)
+		    (void) WRITE2("tgamma: SING error\n", 18);
+		  __set_errno (ERANGE);
+		}
+		break;
+
+		/* #### Last used is 50/150/250 ### */
+	}
+	return exc.retval;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/k_standardf.c b/REORG.TODO/sysdeps/ieee754/k_standardf.c
new file mode 100644
index 0000000000..678b38d91a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/k_standardf.c
@@ -0,0 +1,31 @@
+/* Implement __kernel_standard_f.
+   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+
+/* Handle errors for a libm function as specified by TYPE (see
+   comments in k_standard.c for details), with arguments X and Y,
+   returning the appropriate return value for that function.  */
+
+float
+__kernel_standard_f (float x, float y, int type)
+{
+  return __kernel_standard (x, y, type);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/k_standardl.c b/REORG.TODO/sysdeps/ieee754/k_standardl.c
new file mode 100644
index 0000000000..08d789f942
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/k_standardl.c
@@ -0,0 +1,107 @@
+/* Implement __kernel_standard_l.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.
+
+   Parts based on k_standard.c from fdlibm: */
+
+/* @(#)k_standard.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <fenv.h>
+#include <float.h>
+#include <errno.h>
+
+
+static double zero = 0.0;
+
+/* Handle errors for a libm function as specified by TYPE (see
+   comments in k_standard.c for details), with arguments X and Y,
+   returning the appropriate return value for that function.  */
+
+long double
+__kernel_standard_l (long double x, long double y, int type)
+{
+  double dx, dy;
+  struct exception exc;
+  fenv_t env;
+
+  feholdexcept (&env);
+  dx = x;
+  dy = y;
+  math_force_eval (dx);
+  math_force_eval (dy);
+  fesetenv (&env);
+
+  switch (type)
+    {
+    case 221:
+      /* powl (x, y) overflow.  */
+      exc.arg1 = dx;
+      exc.arg2 = dy;
+      exc.type = OVERFLOW;
+      exc.name = (char *) "powl";
+      if (_LIB_VERSION == _SVID_)
+	{
+	  exc.retval = HUGE;
+	  y *= 0.5;
+	  if (x < zero && __rintl (y) != y)
+	    exc.retval = -HUGE;
+	}
+      else
+	{
+	  exc.retval = HUGE_VAL;
+	  y *= 0.5;
+	  if (x < zero && __rintl (y) != y)
+	    exc.retval = -HUGE_VAL;
+	}
+      if (_LIB_VERSION == _POSIX_)
+	__set_errno (ERANGE);
+      else if (!matherr (&exc))
+	__set_errno (ERANGE);
+      return exc.retval;
+
+    case 222:
+      /* powl (x, y) underflow.  */
+      exc.arg1 = dx;
+      exc.arg2 = dy;
+      exc.type = UNDERFLOW;
+      exc.name = (char *) "powl";
+      exc.retval = zero;
+      y *= 0.5;
+      if (x < zero && __rintl (y) != y)
+	exc.retval = -zero;
+      if (_LIB_VERSION == _POSIX_)
+	__set_errno (ERANGE);
+      else if (!matherr (&exc))
+	__set_errno (ERANGE);
+      return exc.retval;
+
+    default:
+      return __kernel_standard (dx, dy, type);
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/Makefile b/REORG.TODO/sysdeps/ieee754/ldbl-128/Makefile
new file mode 100644
index 0000000000..8fd6dad343
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/Makefile
@@ -0,0 +1 @@
+long-double-fcts = yes
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/bits/long-double.h b/REORG.TODO/sysdeps/ieee754/ldbl-128/bits/long-double.h
new file mode 100644
index 0000000000..baddb2a905
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/bits/long-double.h
@@ -0,0 +1,20 @@
+/* Properties of long double type.  ldbl-128 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License  published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* long double is distinct from double, so there is nothing to
+   define here.  */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_acoshl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_acoshl.c
new file mode 100644
index 0000000000..7c79d437a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_acoshl.c
@@ -0,0 +1,61 @@
+/* e_acoshl.c -- long double version of e_acosh.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_acoshl(x)
+ * Method :
+ *	Based on
+ *		acoshl(x) = logl [ x + sqrtl(x*x-1) ]
+ *	we have
+ *		acoshl(x) := logl(x)+ln2,	if x is large; else
+ *		acoshl(x) := logl(2x-1/(sqrtl(x*x-1)+x)) if x>2; else
+ *		acoshl(x) := log1pl(t+sqrtl(2.0*t+t*t)); where t=x-1.
+ *
+ * Special cases:
+ *	acoshl(x) is NaN with signal if x<1.
+ *	acoshl(NaN) is NaN without signal.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+one	= 1.0,
+ln2	= L(0.6931471805599453094172321214581766);
+
+_Float128
+__ieee754_acoshl(_Float128 x)
+{
+	_Float128 t;
+	u_int64_t lx;
+	int64_t hx;
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	if(hx<0x3fff000000000000LL) {		/* x < 1 */
+	    return (x-x)/(x-x);
+	} else if(hx >=0x4035000000000000LL) {	/* x > 2**54 */
+	    if(hx >=0x7fff000000000000LL) {	/* x is inf of NaN */
+		return x+x;
+	    } else
+		return __ieee754_logl(x)+ln2;	/* acoshl(huge)=logl(2x) */
+	} else if(((hx-0x3fff000000000000LL)|lx)==0) {
+	    return 0;			/* acosh(1) = 0 */
+	} else if (hx > 0x4000000000000000LL) {	/* 2**28 > x > 2 */
+	    t=x*x;
+	    return __ieee754_logl(2*x-one/(x+__ieee754_sqrtl(t-one)));
+	} else {			/* 1<x<2 */
+	    t = x-one;
+	    return __log1pl(t+__sqrtl(2*t+t*t));
+	}
+}
+strong_alias (__ieee754_acoshl, __acoshl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_acosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_acosl.c
new file mode 100644
index 0000000000..342ea5f47d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_acosl.c
@@ -0,0 +1,319 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+   Long double expansions are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_acosl(x)
+ * Method :
+ *      acos(x)  = pi/2 - asin(x)
+ *      acos(-x) = pi/2 + asin(x)
+ * For |x| <= 0.375
+ *      acos(x) = pi/2 - asin(x)
+ * Between .375 and .5 the approximation is
+ *      acos(0.4375 + x) = acos(0.4375) + x P(x) / Q(x)
+ * Between .5 and .625 the approximation is
+ *      acos(0.5625 + x) = acos(0.5625) + x rS(x) / sS(x)
+ * For x > 0.625,
+ *      acos(x) = 2 asin(sqrt((1-x)/2))
+ *      computed with an extended precision square root in the leading term.
+ * For x < -0.625
+ *      acos(x) = pi - 2 asin(sqrt((1-|x|)/2))
+ *
+ * Special cases:
+ *      if x is NaN, return x itself;
+ *      if |x|>1, return NaN with invalid signal.
+ *
+ * Functions needed: __ieee754_sqrtl.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+  one = 1,
+  pio2_hi = L(1.5707963267948966192313216916397514420986),
+  pio2_lo = L(4.3359050650618905123985220130216759843812E-35),
+
+  /* acos(0.5625 + x) = acos(0.5625) + x rS(x) / sS(x)
+     -0.0625 <= x <= 0.0625
+     peak relative error 3.3e-35  */
+
+  rS0 =  L(5.619049346208901520945464704848780243887E0),
+  rS1 = L(-4.460504162777731472539175700169871920352E1),
+  rS2 =  L(1.317669505315409261479577040530751477488E2),
+  rS3 = L(-1.626532582423661989632442410808596009227E2),
+  rS4 =  L(3.144806644195158614904369445440583873264E1),
+  rS5 =  L(9.806674443470740708765165604769099559553E1),
+  rS6 = L(-5.708468492052010816555762842394927806920E1),
+  rS7 = L(-1.396540499232262112248553357962639431922E1),
+  rS8 =  L(1.126243289311910363001762058295832610344E1),
+  rS9 =  L(4.956179821329901954211277873774472383512E-1),
+  rS10 = L(-3.313227657082367169241333738391762525780E-1),
+
+  sS0 = L(-4.645814742084009935700221277307007679325E0),
+  sS1 =  L(3.879074822457694323970438316317961918430E1),
+  sS2 = L(-1.221986588013474694623973554726201001066E2),
+  sS3 =  L(1.658821150347718105012079876756201905822E2),
+  sS4 = L(-4.804379630977558197953176474426239748977E1),
+  sS5 = L(-1.004296417397316948114344573811562952793E2),
+  sS6 =  L(7.530281592861320234941101403870010111138E1),
+  sS7 =  L(1.270735595411673647119592092304357226607E1),
+  sS8 = L(-1.815144839646376500705105967064792930282E1),
+  sS9 = L(-7.821597334910963922204235247786840828217E-2),
+  /* 1.000000000000000000000000000000000000000E0 */
+
+  acosr5625 = L(9.7338991014954640492751132535550279812151E-1),
+  pimacosr5625 = L(2.1682027434402468335351320579240000860757E0),
+
+  /* acos(0.4375 + x) = acos(0.4375) + x rS(x) / sS(x)
+     -0.0625 <= x <= 0.0625
+     peak relative error 2.1e-35  */
+
+  P0 =  L(2.177690192235413635229046633751390484892E0),
+  P1 = L(-2.848698225706605746657192566166142909573E1),
+  P2 =  L(1.040076477655245590871244795403659880304E2),
+  P3 = L(-1.400087608918906358323551402881238180553E2),
+  P4 =  L(2.221047917671449176051896400503615543757E1),
+  P5 =  L(9.643714856395587663736110523917499638702E1),
+  P6 = L(-5.158406639829833829027457284942389079196E1),
+  P7 = L(-1.578651828337585944715290382181219741813E1),
+  P8 =  L(1.093632715903802870546857764647931045906E1),
+  P9 =  L(5.448925479898460003048760932274085300103E-1),
+  P10 = L(-3.315886001095605268470690485170092986337E-1),
+  Q0 = L(-1.958219113487162405143608843774587557016E0),
+  Q1 =  L(2.614577866876185080678907676023269360520E1),
+  Q2 = L(-9.990858606464150981009763389881793660938E1),
+  Q3 =  L(1.443958741356995763628660823395334281596E2),
+  Q4 = L(-3.206441012484232867657763518369723873129E1),
+  Q5 = L(-1.048560885341833443564920145642588991492E2),
+  Q6 =  L(6.745883931909770880159915641984874746358E1),
+  Q7 =  L(1.806809656342804436118449982647641392951E1),
+  Q8 = L(-1.770150690652438294290020775359580915464E1),
+  Q9 = L(-5.659156469628629327045433069052560211164E-1),
+  /* 1.000000000000000000000000000000000000000E0 */
+
+  acosr4375 = L(1.1179797320499710475919903296900511518755E0),
+  pimacosr4375 = L(2.0236129215398221908706530535894517323217E0),
+
+  /* asin(x) = x + x^3 pS(x^2) / qS(x^2)
+     0 <= x <= 0.5
+     peak relative error 1.9e-35  */
+  pS0 = L(-8.358099012470680544198472400254596543711E2),
+  pS1 =  L(3.674973957689619490312782828051860366493E3),
+  pS2 = L(-6.730729094812979665807581609853656623219E3),
+  pS3 =  L(6.643843795209060298375552684423454077633E3),
+  pS4 = L(-3.817341990928606692235481812252049415993E3),
+  pS5 =  L(1.284635388402653715636722822195716476156E3),
+  pS6 = L(-2.410736125231549204856567737329112037867E2),
+  pS7 =  L(2.219191969382402856557594215833622156220E1),
+  pS8 = L(-7.249056260830627156600112195061001036533E-1),
+  pS9 =  L(1.055923570937755300061509030361395604448E-3),
+
+  qS0 = L(-5.014859407482408326519083440151745519205E3),
+  qS1 =  L(2.430653047950480068881028451580393430537E4),
+  qS2 = L(-4.997904737193653607449250593976069726962E4),
+  qS3 =  L(5.675712336110456923807959930107347511086E4),
+  qS4 = L(-3.881523118339661268482937768522572588022E4),
+  qS5 =  L(1.634202194895541569749717032234510811216E4),
+  qS6 = L(-4.151452662440709301601820849901296953752E3),
+  qS7 =  L(5.956050864057192019085175976175695342168E2),
+  qS8 = L(-4.175375777334867025769346564600396877176E1);
+  /* 1.000000000000000000000000000000000000000E0 */
+
+_Float128
+__ieee754_acosl (_Float128 x)
+{
+  _Float128 z, r, w, p, q, s, t, f2;
+  int32_t ix, sign;
+  ieee854_long_double_shape_type u;
+
+  u.value = x;
+  sign = u.parts32.w0;
+  ix = sign & 0x7fffffff;
+  u.parts32.w0 = ix;		/* |x| */
+  if (ix >= 0x3fff0000)		/* |x| >= 1 */
+    {
+      if (ix == 0x3fff0000
+	  && (u.parts32.w1 | u.parts32.w2 | u.parts32.w3) == 0)
+	{			/* |x| == 1 */
+	  if ((sign & 0x80000000) == 0)
+	    return 0.0;		/* acos(1) = 0  */
+	  else
+	    return (2.0 * pio2_hi) + (2.0 * pio2_lo);	/* acos(-1)= pi */
+	}
+      return (x - x) / (x - x);	/* acos(|x| > 1) is NaN */
+    }
+  else if (ix < 0x3ffe0000)	/* |x| < 0.5 */
+    {
+      if (ix < 0x3f8e0000)	/* |x| < 2**-113 */
+	return pio2_hi + pio2_lo;
+      if (ix < 0x3ffde000)	/* |x| < .4375 */
+	{
+	  /* Arcsine of x.  */
+	  z = x * x;
+	  p = (((((((((pS9 * z
+		       + pS8) * z
+		      + pS7) * z
+		     + pS6) * z
+		    + pS5) * z
+		   + pS4) * z
+		  + pS3) * z
+		 + pS2) * z
+		+ pS1) * z
+	       + pS0) * z;
+	  q = (((((((( z
+		       + qS8) * z
+		     + qS7) * z
+		    + qS6) * z
+		   + qS5) * z
+		  + qS4) * z
+		 + qS3) * z
+		+ qS2) * z
+	       + qS1) * z
+	    + qS0;
+	  r = x + x * p / q;
+	  z = pio2_hi - (r - pio2_lo);
+	  return z;
+	}
+      /* .4375 <= |x| < .5 */
+      t = u.value - L(0.4375);
+      p = ((((((((((P10 * t
+		    + P9) * t
+		   + P8) * t
+		  + P7) * t
+		 + P6) * t
+		+ P5) * t
+	       + P4) * t
+	      + P3) * t
+	     + P2) * t
+	    + P1) * t
+	   + P0) * t;
+
+      q = (((((((((t
+		   + Q9) * t
+		  + Q8) * t
+		 + Q7) * t
+		+ Q6) * t
+	       + Q5) * t
+	      + Q4) * t
+	     + Q3) * t
+	    + Q2) * t
+	   + Q1) * t
+	+ Q0;
+      r = p / q;
+      if (sign & 0x80000000)
+	r = pimacosr4375 - r;
+      else
+	r = acosr4375 + r;
+      return r;
+    }
+  else if (ix < 0x3ffe4000)	/* |x| < 0.625 */
+    {
+      t = u.value - L(0.5625);
+      p = ((((((((((rS10 * t
+		    + rS9) * t
+		   + rS8) * t
+		  + rS7) * t
+		 + rS6) * t
+		+ rS5) * t
+	       + rS4) * t
+	      + rS3) * t
+	     + rS2) * t
+	    + rS1) * t
+	   + rS0) * t;
+
+      q = (((((((((t
+		   + sS9) * t
+		  + sS8) * t
+		 + sS7) * t
+		+ sS6) * t
+	       + sS5) * t
+	      + sS4) * t
+	     + sS3) * t
+	    + sS2) * t
+	   + sS1) * t
+	+ sS0;
+      if (sign & 0x80000000)
+	r = pimacosr5625 - p / q;
+      else
+	r = acosr5625 + p / q;
+      return r;
+    }
+  else
+    {				/* |x| >= .625 */
+      z = (one - u.value) * 0.5;
+      s = __ieee754_sqrtl (z);
+      /* Compute an extended precision square root from
+	 the Newton iteration  s -> 0.5 * (s + z / s).
+	 The change w from s to the improved value is
+	    w = 0.5 * (s + z / s) - s  = (s^2 + z)/2s - s = (z - s^2)/2s.
+	  Express s = f1 + f2 where f1 * f1 is exactly representable.
+	  w = (z - s^2)/2s = (z - f1^2 - 2 f1 f2 - f2^2)/2s .
+	  s + w has extended precision.  */
+      u.value = s;
+      u.parts32.w2 = 0;
+      u.parts32.w3 = 0;
+      f2 = s - u.value;
+      w = z - u.value * u.value;
+      w = w - 2.0 * u.value * f2;
+      w = w - f2 * f2;
+      w = w / (2.0 * s);
+      /* Arcsine of s.  */
+      p = (((((((((pS9 * z
+		   + pS8) * z
+		  + pS7) * z
+		 + pS6) * z
+		+ pS5) * z
+	       + pS4) * z
+	      + pS3) * z
+	     + pS2) * z
+	    + pS1) * z
+	   + pS0) * z;
+      q = (((((((( z
+		   + qS8) * z
+		 + qS7) * z
+		+ qS6) * z
+	       + qS5) * z
+	      + qS4) * z
+	     + qS3) * z
+	    + qS2) * z
+	   + qS1) * z
+	+ qS0;
+      r = s + (w + s * p / q);
+
+      if (sign & 0x80000000)
+	w = pio2_hi + (pio2_lo - r);
+      else
+	w = r;
+      return 2.0 * w;
+    }
+}
+strong_alias (__ieee754_acosl, __acosl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_asinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_asinl.c
new file mode 100644
index 0000000000..1edf1c05a1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_asinl.c
@@ -0,0 +1,258 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+  Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under the
+  following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_asin(x)
+ * Method :
+ *	Since  asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
+ *	we approximate asin(x) on [0,0.5] by
+ *		asin(x) = x + x*x^2*R(x^2)
+ *      Between .5 and .625 the approximation is
+ *              asin(0.5625 + x) = asin(0.5625) + x rS(x) / sS(x)
+ *	For x in [0.625,1]
+ *		asin(x) = pi/2-2*asin(sqrt((1-x)/2))
+ *	Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2;
+ *	then for x>0.98
+ *		asin(x) = pi/2 - 2*(s+s*z*R(z))
+ *			= pio2_hi - (2*(s+s*z*R(z)) - pio2_lo)
+ *	For x<=0.98, let pio4_hi = pio2_hi/2, then
+ *		f = hi part of s;
+ *		c = sqrt(z) - f = (z-f*f)/(s+f) 	...f+c=sqrt(z)
+ *	and
+ *		asin(x) = pi/2 - 2*(s+s*z*R(z))
+ *			= pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo)
+ *			= pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c))
+ *
+ * Special cases:
+ *	if x is NaN, return x itself;
+ *	if |x|>1, return NaN with invalid signal.
+ *
+ */
+
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+  one = 1,
+  huge = L(1.0e+4932),
+  pio2_hi = L(1.5707963267948966192313216916397514420986),
+  pio2_lo = L(4.3359050650618905123985220130216759843812E-35),
+  pio4_hi = L(7.8539816339744830961566084581987569936977E-1),
+
+	/* coefficient for R(x^2) */
+
+  /* asin(x) = x + x^3 pS(x^2) / qS(x^2)
+     0 <= x <= 0.5
+     peak relative error 1.9e-35  */
+  pS0 = L(-8.358099012470680544198472400254596543711E2),
+  pS1 =  L(3.674973957689619490312782828051860366493E3),
+  pS2 = L(-6.730729094812979665807581609853656623219E3),
+  pS3 =  L(6.643843795209060298375552684423454077633E3),
+  pS4 = L(-3.817341990928606692235481812252049415993E3),
+  pS5 =  L(1.284635388402653715636722822195716476156E3),
+  pS6 = L(-2.410736125231549204856567737329112037867E2),
+  pS7 =  L(2.219191969382402856557594215833622156220E1),
+  pS8 = L(-7.249056260830627156600112195061001036533E-1),
+  pS9 =  L(1.055923570937755300061509030361395604448E-3),
+
+  qS0 = L(-5.014859407482408326519083440151745519205E3),
+  qS1 =  L(2.430653047950480068881028451580393430537E4),
+  qS2 = L(-4.997904737193653607449250593976069726962E4),
+  qS3 =  L(5.675712336110456923807959930107347511086E4),
+  qS4 = L(-3.881523118339661268482937768522572588022E4),
+  qS5 =  L(1.634202194895541569749717032234510811216E4),
+  qS6 = L(-4.151452662440709301601820849901296953752E3),
+  qS7 =  L(5.956050864057192019085175976175695342168E2),
+  qS8 = L(-4.175375777334867025769346564600396877176E1),
+  /* 1.000000000000000000000000000000000000000E0 */
+
+  /* asin(0.5625 + x) = asin(0.5625) + x rS(x) / sS(x)
+     -0.0625 <= x <= 0.0625
+     peak relative error 3.3e-35  */
+  rS0 = L(-5.619049346208901520945464704848780243887E0),
+  rS1 =  L(4.460504162777731472539175700169871920352E1),
+  rS2 = L(-1.317669505315409261479577040530751477488E2),
+  rS3 =  L(1.626532582423661989632442410808596009227E2),
+  rS4 = L(-3.144806644195158614904369445440583873264E1),
+  rS5 = L(-9.806674443470740708765165604769099559553E1),
+  rS6 =  L(5.708468492052010816555762842394927806920E1),
+  rS7 =  L(1.396540499232262112248553357962639431922E1),
+  rS8 = L(-1.126243289311910363001762058295832610344E1),
+  rS9 = L(-4.956179821329901954211277873774472383512E-1),
+  rS10 =  L(3.313227657082367169241333738391762525780E-1),
+
+  sS0 = L(-4.645814742084009935700221277307007679325E0),
+  sS1 =  L(3.879074822457694323970438316317961918430E1),
+  sS2 = L(-1.221986588013474694623973554726201001066E2),
+  sS3 =  L(1.658821150347718105012079876756201905822E2),
+  sS4 = L(-4.804379630977558197953176474426239748977E1),
+  sS5 = L(-1.004296417397316948114344573811562952793E2),
+  sS6 =  L(7.530281592861320234941101403870010111138E1),
+  sS7 =  L(1.270735595411673647119592092304357226607E1),
+  sS8 = L(-1.815144839646376500705105967064792930282E1),
+  sS9 = L(-7.821597334910963922204235247786840828217E-2),
+  /*  1.000000000000000000000000000000000000000E0 */
+
+ asinr5625 =  L(5.9740641664535021430381036628424864397707E-1);
+
+
+
+_Float128
+__ieee754_asinl (_Float128 x)
+{
+  _Float128 t, w, p, q, c, r, s;
+  int32_t ix, sign, flag;
+  ieee854_long_double_shape_type u;
+
+  flag = 0;
+  u.value = x;
+  sign = u.parts32.w0;
+  ix = sign & 0x7fffffff;
+  u.parts32.w0 = ix;    /* |x| */
+  if (ix >= 0x3fff0000)	/* |x|>= 1 */
+    {
+      if (ix == 0x3fff0000
+	  && (u.parts32.w1 | u.parts32.w2 | u.parts32.w3) == 0)
+	/* asin(1)=+-pi/2 with inexact */
+	return x * pio2_hi + x * pio2_lo;
+      return (x - x) / (x - x);	/* asin(|x|>1) is NaN */
+    }
+  else if (ix < 0x3ffe0000) /* |x| < 0.5 */
+    {
+      if (ix < 0x3fc60000) /* |x| < 2**-57 */
+	{
+	  math_check_force_underflow (x);
+	  _Float128 force_inexact = huge + x;
+	  math_force_eval (force_inexact);
+	  return x;		/* return x with inexact if x!=0 */
+	}
+      else
+	{
+	  t = x * x;
+	  /* Mark to use pS, qS later on.  */
+	  flag = 1;
+	}
+    }
+  else if (ix < 0x3ffe4000) /* 0.625 */
+    {
+      t = u.value - 0.5625;
+      p = ((((((((((rS10 * t
+		    + rS9) * t
+		   + rS8) * t
+		  + rS7) * t
+		 + rS6) * t
+		+ rS5) * t
+	       + rS4) * t
+	      + rS3) * t
+	     + rS2) * t
+	    + rS1) * t
+	   + rS0) * t;
+
+      q = ((((((((( t
+		    + sS9) * t
+		  + sS8) * t
+		 + sS7) * t
+		+ sS6) * t
+	       + sS5) * t
+	      + sS4) * t
+	     + sS3) * t
+	    + sS2) * t
+	   + sS1) * t
+	+ sS0;
+      t = asinr5625 + p / q;
+      if ((sign & 0x80000000) == 0)
+	return t;
+      else
+	return -t;
+    }
+  else
+    {
+      /* 1 > |x| >= 0.625 */
+      w = one - u.value;
+      t = w * 0.5;
+    }
+
+  p = (((((((((pS9 * t
+	       + pS8) * t
+	      + pS7) * t
+	     + pS6) * t
+	    + pS5) * t
+	   + pS4) * t
+	  + pS3) * t
+	 + pS2) * t
+	+ pS1) * t
+       + pS0) * t;
+
+  q = (((((((( t
+	      + qS8) * t
+	     + qS7) * t
+	    + qS6) * t
+	   + qS5) * t
+	  + qS4) * t
+	 + qS3) * t
+	+ qS2) * t
+       + qS1) * t
+    + qS0;
+
+  if (flag) /* 2^-57 < |x| < 0.5 */
+    {
+      w = p / q;
+      return x + x * w;
+    }
+
+  s = __ieee754_sqrtl (t);
+  if (ix >= 0x3ffef333) /* |x| > 0.975 */
+    {
+      w = p / q;
+      t = pio2_hi - (2.0 * (s + s * w) - pio2_lo);
+    }
+  else
+    {
+      u.value = s;
+      u.parts32.w3 = 0;
+      u.parts32.w2 = 0;
+      w = u.value;
+      c = (t - w * w) / (s + w);
+      r = p / q;
+      p = 2.0 * s * r - (pio2_lo - 2.0 * c);
+      q = pio4_hi - 2.0 * w;
+      t = pio4_hi - (p - q);
+    }
+
+  if ((sign & 0x80000000) == 0)
+    return t;
+  else
+    return -t;
+}
+strong_alias (__ieee754_asinl, __asinl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_atan2l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_atan2l.c
new file mode 100644
index 0000000000..faecd1a63b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_atan2l.c
@@ -0,0 +1,122 @@
+/* e_atan2l.c -- long double version of e_atan2.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_atan2l(y,x)
+ * Method :
+ *	1. Reduce y to positive by atan2l(y,x)=-atan2l(-y,x).
+ *	2. Reduce x to positive by (if x and y are unexceptional):
+ *		ARG (x+iy) = arctan(y/x)	   ... if x > 0,
+ *		ARG (x+iy) = pi - arctan[y/(-x)]   ... if x < 0,
+ *
+ * Special cases:
+ *
+ *	ATAN2((anything), NaN ) is NaN;
+ *	ATAN2(NAN , (anything) ) is NaN;
+ *	ATAN2(+-0, +(anything but NaN)) is +-0  ;
+ *	ATAN2(+-0, -(anything but NaN)) is +-pi ;
+ *	ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2;
+ *	ATAN2(+-(anything but INF and NaN), +INF) is +-0 ;
+ *	ATAN2(+-(anything but INF and NaN), -INF) is +-pi;
+ *	ATAN2(+-INF,+INF ) is +-pi/4 ;
+ *	ATAN2(+-INF,-INF ) is +-3pi/4;
+ *	ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2;
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+tiny  = L(1.0e-4900),
+zero  = 0.0,
+pi_o_4  = L(7.85398163397448309615660845819875699e-01), /* 3ffe921fb54442d18469898cc51701b8 */
+pi_o_2  = L(1.57079632679489661923132169163975140e+00), /* 3fff921fb54442d18469898cc51701b8 */
+pi      = L(3.14159265358979323846264338327950280e+00), /* 4000921fb54442d18469898cc51701b8 */
+pi_lo   = L(8.67181013012378102479704402604335225e-35); /* 3f8dcd129024e088a67cc74020bbea64 */
+
+_Float128
+__ieee754_atan2l(_Float128 y, _Float128 x)
+{
+	_Float128 z;
+	int64_t k,m,hx,hy,ix,iy;
+	u_int64_t lx,ly;
+
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	ix = hx&0x7fffffffffffffffLL;
+	GET_LDOUBLE_WORDS64(hy,ly,y);
+	iy = hy&0x7fffffffffffffffLL;
+	if(((ix|((lx|-lx)>>63))>0x7fff000000000000LL)||
+	   ((iy|((ly|-ly)>>63))>0x7fff000000000000LL))	/* x or y is NaN */
+	   return x+y;
+	if(((hx-0x3fff000000000000LL)|lx)==0) return __atanl(y);   /* x=1.0L */
+	m = ((hy>>63)&1)|((hx>>62)&2);	/* 2*sign(x)+sign(y) */
+
+    /* when y = 0 */
+	if((iy|ly)==0) {
+	    switch(m) {
+		case 0:
+		case 1: return y;	/* atan(+-0,+anything)=+-0 */
+		case 2: return  pi+tiny;/* atan(+0,-anything) = pi */
+		case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
+	    }
+	}
+    /* when x = 0 */
+	if((ix|lx)==0) return (hy<0)?  -pi_o_2-tiny: pi_o_2+tiny;
+
+    /* when x is INF */
+	if(ix==0x7fff000000000000LL) {
+	    if(iy==0x7fff000000000000LL) {
+		switch(m) {
+		    case 0: return  pi_o_4+tiny;/* atan(+INF,+INF) */
+		    case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
+		    case 2: return  3*pi_o_4+tiny;/*atan(+INF,-INF)*/
+		    case 3: return -3*pi_o_4-tiny;/*atan(-INF,-INF)*/
+		}
+	    } else {
+		switch(m) {
+		    case 0: return  zero  ;	/* atan(+...,+INF) */
+		    case 1: return -zero  ;	/* atan(-...,+INF) */
+		    case 2: return  pi+tiny  ;	/* atan(+...,-INF) */
+		    case 3: return -pi-tiny  ;	/* atan(-...,-INF) */
+		}
+	    }
+	}
+    /* when y is INF */
+	if(iy==0x7fff000000000000LL) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+
+    /* compute y/x */
+	k = (iy-ix)>>48;
+	if(k > 120) z=pi_o_2+L(0.5)*pi_lo;	/* |y/x| >  2**120 */
+	else if(hx<0&&k<-120) z=0;		/* |y|/x < -2**120 */
+	else z=__atanl(fabsl(y/x));		/* safe to do y/x */
+	switch (m) {
+	    case 0: return       z  ;	/* atan(+,+) */
+	    case 1: {
+		      u_int64_t zh;
+		      GET_LDOUBLE_MSW64(zh,z);
+		      SET_LDOUBLE_MSW64(z,zh ^ 0x8000000000000000ULL);
+		    }
+		    return       z  ;	/* atan(-,+) */
+	    case 2: return  pi-(z-pi_lo);/* atan(+,-) */
+	    default: /* case 3 */
+		    return  (z-pi_lo)-pi;/* atan(-,-) */
+	}
+}
+strong_alias (__ieee754_atan2l, __atan2l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_atanhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_atanhl.c
new file mode 100644
index 0000000000..3905af4dfc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_atanhl.c
@@ -0,0 +1,74 @@
+/* s_atanhl.c -- long double version of s_atan.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_atanhl(x)
+ * Method :
+ *    1.Reduced x to positive by atanh(-x) = -atanh(x)
+ *    2.For x>=0.5
+ *                   1              2x                          x
+ *	atanhl(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
+ *                   2             1 - x                      1 - x
+ *
+ *	For x<0.5
+ *	atanhl(x) = 0.5*log1pl(2x+2x*x/(1-x))
+ *
+ * Special cases:
+ *	atanhl(x) is NaN if |x| > 1 with signal;
+ *	atanhl(NaN) is that NaN with no signal;
+ *	atanhl(+-1) is +-INF with signal.
+ *
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 one = 1, huge = L(1e4900);
+
+static const _Float128 zero = 0;
+
+_Float128
+__ieee754_atanhl(_Float128 x)
+{
+	_Float128 t;
+	u_int32_t jx, ix;
+	ieee854_long_double_shape_type u;
+
+	u.value = x;
+	jx = u.parts32.w0;
+	ix = jx & 0x7fffffff;
+	u.parts32.w0 = ix;
+	if (ix >= 0x3fff0000) /* |x| >= 1.0 or infinity or NaN */
+	  {
+	    if (u.value == one)
+	      return x/zero;
+	    else
+	      return (x-x)/(x-x);
+	  }
+	if(ix<0x3fc60000 && (huge+x)>zero)	/* x < 2^-57 */
+	  {
+	    math_check_force_underflow (x);
+	    return x;
+	  }
+
+	if(ix<0x3ffe0000) {		/* x < 0.5 */
+	    t = u.value+u.value;
+	    t = 0.5*__log1pl(t+t*u.value/(one-u.value));
+	} else
+	    t = 0.5*__log1pl((u.value+u.value)/(one-u.value));
+	if(jx & 0x80000000) return -t; else return t;
+}
+strong_alias (__ieee754_atanhl, __atanhl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_coshl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_coshl.c
new file mode 100644
index 0000000000..70a2fe3e84
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_coshl.c
@@ -0,0 +1,110 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Changes for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_coshl(x)
+ * Method :
+ * mathematically coshl(x) if defined to be (exp(x)+exp(-x))/2
+ *      1. Replace x by |x| (coshl(x) = coshl(-x)).
+ *      2.
+ *                                                      [ exp(x) - 1 ]^2
+ *          0        <= x <= ln2/2  :  coshl(x) := 1 + -------------------
+ *                                                         2*exp(x)
+ *
+ *                                                 exp(x) +  1/exp(x)
+ *          ln2/2    <= x <= 22     :  coshl(x) := -------------------
+ *                                                         2
+ *          22       <= x <= lnovft :  coshl(x) := expl(x)/2
+ *          lnovft   <= x <= ln2ovft:  coshl(x) := expl(x/2)/2 * expl(x/2)
+ *          ln2ovft  <  x           :  coshl(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ *      coshl(x) is |x| if x is +INF, -INF, or NaN.
+ *      only coshl(0)=1 is exact for finite x.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 one = 1.0, half = 0.5, huge = L(1.0e4900),
+ovf_thresh = L(1.1357216553474703894801348310092223067821E4);
+
+_Float128
+__ieee754_coshl (_Float128 x)
+{
+  _Float128 t, w;
+  int32_t ex;
+  ieee854_long_double_shape_type u;
+
+  u.value = x;
+  ex = u.parts32.w0 & 0x7fffffff;
+
+  /* Absolute value of x.  */
+  u.parts32.w0 = ex;
+
+  /* x is INF or NaN */
+  if (ex >= 0x7fff0000)
+    return x * x;
+
+  /* |x| in [0,0.5*ln2], return 1+expm1l(|x|)^2/(2*expl(|x|)) */
+  if (ex < 0x3ffd62e4) /* 0.3465728759765625 */
+    {
+      if (ex < 0x3fb80000) /* |x| < 2^-116 */
+	return one;		/* cosh(tiny) = 1 */
+      t = __expm1l (u.value);
+      w = one + t;
+
+      return one + (t * t) / (w + w);
+    }
+
+  /* |x| in [0.5*ln2,40], return (exp(|x|)+1/exp(|x|)/2; */
+  if (ex < 0x40044000)
+    {
+      t = __ieee754_expl (u.value);
+      return half * t + half / t;
+    }
+
+  /* |x| in [22, ln(maxdouble)] return half*exp(|x|) */
+  if (ex <= 0x400c62e3) /* 11356.375 */
+    return half * __ieee754_expl (u.value);
+
+  /* |x| in [log(maxdouble), overflowthresold] */
+  if (u.value <= ovf_thresh)
+    {
+      w = __ieee754_expl (half * u.value);
+      t = half * w;
+      return t * w;
+    }
+
+  /* |x| > overflowthresold, cosh(x) overflow */
+  return huge * huge;
+}
+strong_alias (__ieee754_coshl, __coshl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_exp10l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_exp10l.c
new file mode 100644
index 0000000000..05a470fa39
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_exp10l.c
@@ -0,0 +1,49 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+static const _Float128 log10_high = L(0x2.4d763776aaa2bp0);
+static const _Float128 log10_low = L(0x5.ba95b58ae0b4c28a38a3fb3e7698p-60);
+
+_Float128
+__ieee754_exp10l (_Float128 arg)
+{
+  ieee854_long_double_shape_type u;
+  _Float128 arg_high, arg_low;
+  _Float128 exp_high, exp_low;
+
+  if (!isfinite (arg))
+    return __ieee754_expl (arg);
+  if (arg < LDBL_MIN_10_EXP - LDBL_DIG - 10)
+    return LDBL_MIN * LDBL_MIN;
+  else if (arg > LDBL_MAX_10_EXP + 1)
+    return LDBL_MAX * LDBL_MAX;
+  else if (fabsl (arg) < L(0x1p-116))
+    return 1;
+
+  u.value = arg;
+  u.parts64.lsw &= 0xfe00000000000000LL;
+  arg_high = u.value;
+  arg_low = arg - arg_high;
+  exp_high = arg_high * log10_high;
+  exp_low = arg_high * log10_low + arg_low * M_LN10l;
+  return __ieee754_expl (exp_high) * __ieee754_expl (exp_low);
+}
+strong_alias (__ieee754_exp10l, __exp10l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_expl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_expl.c
new file mode 100644
index 0000000000..15639d1da1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_expl.c
@@ -0,0 +1,253 @@
+/* Quad-precision floating point e^x.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+   Partly based on double-precision code
+   by Geoffrey Keating <geoffk@ozemail.com.au>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* The basic design here is from
+   Abraham Ziv, "Fast Evaluation of Elementary Mathematical Functions with
+   Correctly Rounded Last Bit", ACM Trans. Math. Soft., 17 (3), September 1991,
+   pp. 410-423.
+
+   We work with number pairs where the first number is the high part and
+   the second one is the low part. Arithmetic with the high part numbers must
+   be exact, without any roundoff errors.
+
+   The input value, X, is written as
+   X = n * ln(2)_0 + arg1[t1]_0 + arg2[t2]_0 + x
+       - n * ln(2)_1 + arg1[t1]_1 + arg2[t2]_1 + xl
+
+   where:
+   - n is an integer, 16384 >= n >= -16495;
+   - ln(2)_0 is the first 93 bits of ln(2), and |ln(2)_0-ln(2)-ln(2)_1| < 2^-205
+   - t1 is an integer, 89 >= t1 >= -89
+   - t2 is an integer, 65 >= t2 >= -65
+   - |arg1[t1]-t1/256.0| < 2^-53
+   - |arg2[t2]-t2/32768.0| < 2^-53
+   - x + xl is whatever is left, |x + xl| < 2^-16 + 2^-53
+
+   Then e^x is approximated as
+
+   e^x = 2^n_1 ( 2^n_0 e^(arg1[t1]_0 + arg1[t1]_1) e^(arg2[t2]_0 + arg2[t2]_1)
+	       + 2^n_0 e^(arg1[t1]_0 + arg1[t1]_1) e^(arg2[t2]_0 + arg2[t2]_1)
+		 * p (x + xl + n * ln(2)_1))
+   where:
+   - p(x) is a polynomial approximating e(x)-1
+   - e^(arg1[t1]_0 + arg1[t1]_1) is obtained from a table
+   - e^(arg2[t2]_0 + arg2[t2]_1) likewise
+   - n_1 + n_0 = n, so that |n_0| < -LDBL_MIN_EXP-1.
+
+   If it happens that n_1 == 0 (this is the usual case), that multiplication
+   is omitted.
+   */
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <float.h>
+#include <ieee754.h>
+#include <math.h>
+#include <fenv.h>
+#include <inttypes.h>
+#include <math_private.h>
+#include <stdlib.h>
+#include "t_expl.h"
+
+static const _Float128 C[] = {
+/* Smallest integer x for which e^x overflows.  */
+#define himark C[0]
+ L(11356.523406294143949491931077970765),
+
+/* Largest integer x for which e^x underflows.  */
+#define lomark C[1]
+L(-11433.4627433362978788372438434526231),
+
+/* 3x2^96 */
+#define THREEp96 C[2]
+ L(59421121885698253195157962752.0),
+
+/* 3x2^103 */
+#define THREEp103 C[3]
+ L(30423614405477505635920876929024.0),
+
+/* 3x2^111 */
+#define THREEp111 C[4]
+ L(7788445287802241442795744493830144.0),
+
+/* 1/ln(2) */
+#define M_1_LN2 C[5]
+ L(1.44269504088896340735992468100189204),
+
+/* first 93 bits of ln(2) */
+#define M_LN2_0 C[6]
+ L(0.693147180559945309417232121457981864),
+
+/* ln2_0 - ln(2) */
+#define M_LN2_1 C[7]
+L(-1.94704509238074995158795957333327386E-31),
+
+/* very small number */
+#define TINY C[8]
+ L(1.0e-4900),
+
+/* 2^16383 */
+#define TWO16383 C[9]
+ L(5.94865747678615882542879663314003565E+4931),
+
+/* 256 */
+#define TWO8 C[10]
+ 256,
+
+/* 32768 */
+#define TWO15 C[11]
+ 32768,
+
+/* Chebyshev polynom coefficients for (exp(x)-1)/x */
+#define P1 C[12]
+#define P2 C[13]
+#define P3 C[14]
+#define P4 C[15]
+#define P5 C[16]
+#define P6 C[17]
+ L(0.5),
+ L(1.66666666666666666666666666666666683E-01),
+ L(4.16666666666666666666654902320001674E-02),
+ L(8.33333333333333333333314659767198461E-03),
+ L(1.38888888889899438565058018857254025E-03),
+ L(1.98412698413981650382436541785404286E-04),
+};
+
+_Float128
+__ieee754_expl (_Float128 x)
+{
+  /* Check for usual case.  */
+  if (isless (x, himark) && isgreater (x, lomark))
+    {
+      int tval1, tval2, unsafe, n_i;
+      _Float128 x22, n, t, result, xl;
+      union ieee854_long_double ex2_u, scale_u;
+      fenv_t oldenv;
+
+      feholdexcept (&oldenv);
+#ifdef FE_TONEAREST
+      fesetround (FE_TONEAREST);
+#endif
+
+      /* Calculate n.  */
+      n = x * M_1_LN2 + THREEp111;
+      n -= THREEp111;
+      x = x - n * M_LN2_0;
+      xl = n * M_LN2_1;
+
+      /* Calculate t/256.  */
+      t = x + THREEp103;
+      t -= THREEp103;
+
+      /* Compute tval1 = t.  */
+      tval1 = (int) (t * TWO8);
+
+      x -= __expl_table[T_EXPL_ARG1+2*tval1];
+      xl -= __expl_table[T_EXPL_ARG1+2*tval1+1];
+
+      /* Calculate t/32768.  */
+      t = x + THREEp96;
+      t -= THREEp96;
+
+      /* Compute tval2 = t.  */
+      tval2 = (int) (t * TWO15);
+
+      x -= __expl_table[T_EXPL_ARG2+2*tval2];
+      xl -= __expl_table[T_EXPL_ARG2+2*tval2+1];
+
+      x = x + xl;
+
+      /* Compute ex2 = 2^n_0 e^(argtable[tval1]) e^(argtable[tval2]).  */
+      ex2_u.d = __expl_table[T_EXPL_RES1 + tval1]
+		* __expl_table[T_EXPL_RES2 + tval2];
+      n_i = (int)n;
+      /* 'unsafe' is 1 iff n_1 != 0.  */
+      unsafe = abs(n_i) >= 15000;
+      ex2_u.ieee.exponent += n_i >> unsafe;
+
+      /* Compute scale = 2^n_1.  */
+      scale_u.d = 1;
+      scale_u.ieee.exponent += n_i - (n_i >> unsafe);
+
+      /* Approximate e^x2 - 1, using a seventh-degree polynomial,
+	 with maximum error in [-2^-16-2^-53,2^-16+2^-53]
+	 less than 4.8e-39.  */
+      x22 = x + x*x*(P1+x*(P2+x*(P3+x*(P4+x*(P5+x*P6)))));
+
+      /* Return result.  */
+      fesetenv (&oldenv);
+
+      result = x22 * ex2_u.d + ex2_u.d;
+
+      /* Now we can test whether the result is ultimate or if we are unsure.
+	 In the later case we should probably call a mpn based routine to give
+	 the ultimate result.
+	 Empirically, this routine is already ultimate in about 99.9986% of
+	 cases, the test below for the round to nearest case will be false
+	 in ~ 99.9963% of cases.
+	 Without proc2 routine maximum error which has been seen is
+	 0.5000262 ulp.
+
+	  union ieee854_long_double ex3_u;
+
+	  #ifdef FE_TONEAREST
+	    fesetround (FE_TONEAREST);
+	  #endif
+	  ex3_u.d = (result - ex2_u.d) - x22 * ex2_u.d;
+	  ex2_u.d = result;
+	  ex3_u.ieee.exponent += LDBL_MANT_DIG + 15 + IEEE854_LONG_DOUBLE_BIAS
+				 - ex2_u.ieee.exponent;
+	  n_i = abs (ex3_u.d);
+	  n_i = (n_i + 1) / 2;
+	  fesetenv (&oldenv);
+	  #ifdef FE_TONEAREST
+	  if (fegetround () == FE_TONEAREST)
+	    n_i -= 0x4000;
+	  #endif
+	  if (!n_i) {
+	    return __ieee754_expl_proc2 (origx);
+	  }
+       */
+      if (!unsafe)
+	return result;
+      else
+	{
+	  result *= scale_u.d;
+	  math_check_force_underflow_nonneg (result);
+	  return result;
+	}
+    }
+  /* Exceptional cases:  */
+  else if (isless (x, himark))
+    {
+      if (isinf (x))
+	/* e^-inf == 0, with no error.  */
+	return 0;
+      else
+	/* Underflow */
+	return TINY * TINY;
+    }
+  else
+    /* Return x, if x is a NaN or Inf; or overflow, otherwise.  */
+    return TWO16383*x;
+}
+strong_alias (__ieee754_expl, __expl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_fmodl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_fmodl.c
new file mode 100644
index 0000000000..f27cd4f8ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_fmodl.c
@@ -0,0 +1,131 @@
+/* e_fmodl.c -- long double version of e_fmod.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+/*
+ * ====================================================
+ * Copyright (C) 1993, 2011 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_fmodl(x,y)
+ * Return x mod y in exact arithmetic
+ * Method: shift and subtract
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 one = 1.0, Zero[] = {0.0, -0.0,};
+
+_Float128
+__ieee754_fmodl (_Float128 x, _Float128 y)
+{
+	int64_t n,hx,hy,hz,ix,iy,sx,i;
+	u_int64_t lx,ly,lz;
+
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	GET_LDOUBLE_WORDS64(hy,ly,y);
+	sx = hx&0x8000000000000000ULL;		/* sign of x */
+	hx ^=sx;				/* |x| */
+	hy &= 0x7fffffffffffffffLL;		/* |y| */
+
+    /* purge off exception values */
+	if((hy|ly)==0||(hx>=0x7fff000000000000LL)|| /* y=0,or x not finite */
+	  ((hy|((ly|-ly)>>63))>0x7fff000000000000LL))	/* or y is NaN */
+	    return (x*y)/(x*y);
+	if(hx<=hy) {
+	    if((hx<hy)||(lx<ly)) return x;	/* |x|<|y| return x */
+	    if(lx==ly)
+		return Zero[(u_int64_t)sx>>63];	/* |x|=|y| return x*0*/
+	}
+
+    /* determine ix = ilogb(x) */
+	if(hx<0x0001000000000000LL) {	/* subnormal x */
+	    if(hx==0) {
+		for (ix = -16431, i=lx; i>0; i<<=1) ix -=1;
+	    } else {
+		for (ix = -16382, i=hx<<15; i>0; i<<=1) ix -=1;
+	    }
+	} else ix = (hx>>48)-0x3fff;
+
+    /* determine iy = ilogb(y) */
+	if(hy<0x0001000000000000LL) {	/* subnormal y */
+	    if(hy==0) {
+		for (iy = -16431, i=ly; i>0; i<<=1) iy -=1;
+	    } else {
+		for (iy = -16382, i=hy<<15; i>0; i<<=1) iy -=1;
+	    }
+	} else iy = (hy>>48)-0x3fff;
+
+    /* set up {hx,lx}, {hy,ly} and align y to x */
+	if(ix >= -16382)
+	    hx = 0x0001000000000000LL|(0x0000ffffffffffffLL&hx);
+	else {		/* subnormal x, shift x to normal */
+	    n = -16382-ix;
+	    if(n<=63) {
+		hx = (hx<<n)|(lx>>(64-n));
+		lx <<= n;
+	    } else {
+		hx = lx<<(n-64);
+		lx = 0;
+	    }
+	}
+	if(iy >= -16382)
+	    hy = 0x0001000000000000LL|(0x0000ffffffffffffLL&hy);
+	else {		/* subnormal y, shift y to normal */
+	    n = -16382-iy;
+	    if(n<=63) {
+		hy = (hy<<n)|(ly>>(64-n));
+		ly <<= n;
+	    } else {
+		hy = ly<<(n-64);
+		ly = 0;
+	    }
+	}
+
+    /* fix point fmod */
+	n = ix - iy;
+	while(n--) {
+	    hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
+	    if(hz<0){hx = hx+hx+(lx>>63); lx = lx+lx;}
+	    else {
+		if((hz|lz)==0)		/* return sign(x)*0 */
+		    return Zero[(u_int64_t)sx>>63];
+		hx = hz+hz+(lz>>63); lx = lz+lz;
+	    }
+	}
+	hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
+	if(hz>=0) {hx=hz;lx=lz;}
+
+    /* convert back to floating value and restore the sign */
+	if((hx|lx)==0)			/* return sign(x)*0 */
+	    return Zero[(u_int64_t)sx>>63];
+	while(hx<0x0001000000000000LL) {	/* normalize x */
+	    hx = hx+hx+(lx>>63); lx = lx+lx;
+	    iy -= 1;
+	}
+	if(iy>= -16382) {	/* normalize output */
+	    hx = ((hx-0x0001000000000000LL)|((iy+16383)<<48));
+	    SET_LDOUBLE_WORDS64(x,hx|sx,lx);
+	} else {		/* subnormal output */
+	    n = -16382 - iy;
+	    if(n<=48) {
+		lx = (lx>>n)|((u_int64_t)hx<<(64-n));
+		hx >>= n;
+	    } else if (n<=63) {
+		lx = (hx<<(64-n))|(lx>>n); hx = sx;
+	    } else {
+		lx = hx>>(n-64); hx = sx;
+	    }
+	    SET_LDOUBLE_WORDS64(x,hx|sx,lx);
+	    x *= one;		/* create necessary signal */
+	}
+	return x;		/* exact output */
+}
+strong_alias (__ieee754_fmodl, __fmodl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_gammal_r.c
new file mode 100644
index 0000000000..3a5317ade1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_gammal_r.c
@@ -0,0 +1,218 @@
+/* Implementation of gamma function according to ISO C.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+   approximation to gamma function.  */
+
+static const _Float128 gamma_coeff[] =
+  {
+    L(0x1.5555555555555555555555555555p-4),
+    L(-0xb.60b60b60b60b60b60b60b60b60b8p-12),
+    L(0x3.4034034034034034034034034034p-12),
+    L(-0x2.7027027027027027027027027028p-12),
+    L(0x3.72a3c5631fe46ae1d4e700dca8f2p-12),
+    L(-0x7.daac36664f1f207daac36664f1f4p-12),
+    L(0x1.a41a41a41a41a41a41a41a41a41ap-8),
+    L(-0x7.90a1b2c3d4e5f708192a3b4c5d7p-8),
+    L(0x2.dfd2c703c0cfff430edfd2c703cp-4),
+    L(-0x1.6476701181f39edbdb9ce625987dp+0),
+    L(0xd.672219167002d3a7a9c886459cp+0),
+    L(-0x9.cd9292e6660d55b3f712eb9e07c8p+4),
+    L(0x8.911a740da740da740da740da741p+8),
+    L(-0x8.d0cc570e255bf59ff6eec24b49p+12),
+  };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 1775, in the form R *
+   2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+   avoid overflow or underflow in intermediate calculations.  */
+
+static _Float128
+gammal_positive (_Float128 x, int *exp2_adj)
+{
+  int local_signgam;
+  if (x < L(0.5))
+    {
+      *exp2_adj = 0;
+      return __ieee754_expl (__ieee754_lgammal_r (x + 1, &local_signgam)) / x;
+    }
+  else if (x <= L(1.5))
+    {
+      *exp2_adj = 0;
+      return __ieee754_expl (__ieee754_lgammal_r (x, &local_signgam));
+    }
+  else if (x < L(12.5))
+    {
+      /* Adjust into the range for using exp (lgamma).  */
+      *exp2_adj = 0;
+      _Float128 n = __ceill (x - L(1.5));
+      _Float128 x_adj = x - n;
+      _Float128 eps;
+      _Float128 prod = __gamma_productl (x_adj, 0, n, &eps);
+      return (__ieee754_expl (__ieee754_lgammal_r (x_adj, &local_signgam))
+	      * prod * (1 + eps));
+    }
+  else
+    {
+      _Float128 eps = 0;
+      _Float128 x_eps = 0;
+      _Float128 x_adj = x;
+      _Float128 prod = 1;
+      if (x < 24)
+	{
+	  /* Adjust into the range for applying Stirling's
+	     approximation.  */
+	  _Float128 n = __ceill (24 - x);
+	  x_adj = x + n;
+	  x_eps = (x - (x_adj - n));
+	  prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
+	}
+      /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+	 Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+	 starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+	 factored out.  */
+      _Float128 exp_adj = -eps;
+      _Float128 x_adj_int = __roundl (x_adj);
+      _Float128 x_adj_frac = x_adj - x_adj_int;
+      int x_adj_log2;
+      _Float128 x_adj_mant = __frexpl (x_adj, &x_adj_log2);
+      if (x_adj_mant < M_SQRT1_2l)
+	{
+	  x_adj_log2--;
+	  x_adj_mant *= 2;
+	}
+      *exp2_adj = x_adj_log2 * (int) x_adj_int;
+      _Float128 ret = (__ieee754_powl (x_adj_mant, x_adj)
+		       * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
+		       * __ieee754_expl (-x_adj)
+		       * __ieee754_sqrtl (2 * M_PIl / x_adj)
+		       / prod);
+      exp_adj += x_eps * __ieee754_logl (x_adj);
+      _Float128 bsum = gamma_coeff[NCOEFF - 1];
+      _Float128 x_adj2 = x_adj * x_adj;
+      for (size_t i = 1; i <= NCOEFF - 1; i++)
+	bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+      exp_adj += bsum / x_adj;
+      return ret + ret * __expm1l (exp_adj);
+    }
+}
+
+_Float128
+__ieee754_gammal_r (_Float128 x, int *signgamp)
+{
+  int64_t hx;
+  u_int64_t lx;
+  _Float128 ret;
+
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+
+  if (((hx & 0x7fffffffffffffffLL) | lx) == 0)
+    {
+      /* Return value for x == 0 is Inf with divide by zero exception.  */
+      *signgamp = 0;
+      return 1.0 / x;
+    }
+  if (hx < 0 && (u_int64_t) hx < 0xffff000000000000ULL && __rintl (x) == x)
+    {
+      /* Return value for integer x < 0 is NaN with invalid exception.  */
+      *signgamp = 0;
+      return (x - x) / (x - x);
+    }
+  if (hx == 0xffff000000000000ULL && lx == 0)
+    {
+      /* x == -Inf.  According to ISO this is NaN.  */
+      *signgamp = 0;
+      return x - x;
+    }
+  if ((hx & 0x7fff000000000000ULL) == 0x7fff000000000000ULL)
+    {
+      /* Positive infinity (return positive infinity) or NaN (return
+	 NaN).  */
+      *signgamp = 0;
+      return x + x;
+    }
+
+  if (x >= 1756)
+    {
+      /* Overflow.  */
+      *signgamp = 0;
+      return LDBL_MAX * LDBL_MAX;
+    }
+  else
+    {
+      SET_RESTORE_ROUNDL (FE_TONEAREST);
+      if (x > 0)
+	{
+	  *signgamp = 0;
+	  int exp2_adj;
+	  ret = gammal_positive (x, &exp2_adj);
+	  ret = __scalbnl (ret, exp2_adj);
+	}
+      else if (x >= -LDBL_EPSILON / 4)
+	{
+	  *signgamp = 0;
+	  ret = 1 / x;
+	}
+      else
+	{
+	  _Float128 tx = __truncl (x);
+	  *signgamp = (tx == 2 * __truncl (tx / 2)) ? -1 : 1;
+	  if (x <= -1775)
+	    /* Underflow.  */
+	    ret = LDBL_MIN * LDBL_MIN;
+	  else
+	    {
+	      _Float128 frac = tx - x;
+	      if (frac > L(0.5))
+		frac = 1 - frac;
+	      _Float128 sinpix = (frac <= L(0.25)
+				  ? __sinl (M_PIl * frac)
+				  : __cosl (M_PIl * (L(0.5) - frac)));
+	      int exp2_adj;
+	      ret = M_PIl / (-x * sinpix
+			     * gammal_positive (-x, &exp2_adj));
+	      ret = __scalbnl (ret, -exp2_adj);
+	      math_check_force_underflow_nonneg (ret);
+	    }
+	}
+    }
+  if (isinf (ret) && x != 0)
+    {
+      if (*signgamp < 0)
+	return -(-__copysignl (LDBL_MAX, ret) * LDBL_MAX);
+      else
+	return __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+    }
+  else if (ret == 0)
+    {
+      if (*signgamp < 0)
+	return -(-__copysignl (LDBL_MIN, ret) * LDBL_MIN);
+      else
+	return __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+    }
+  else
+    return ret;
+}
+strong_alias (__ieee754_gammal_r, __gammal_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_hypotl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_hypotl.c
new file mode 100644
index 0000000000..6c4e178fbe
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_hypotl.c
@@ -0,0 +1,140 @@
+/* e_hypotl.c -- long double version of e_hypot.c.
+ * Conversion to long double by Jakub Jelinek, jakub@redhat.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_hypotl(x,y)
+ *
+ * Method :
+ *	If (assume round-to-nearest) z=x*x+y*y
+ *	has error less than sqrtl(2)/2 ulp, than
+ *	sqrtl(z) has error less than 1 ulp (exercise).
+ *
+ *	So, compute sqrtl(x*x+y*y) with some care as
+ *	follows to get the error below 1 ulp:
+ *
+ *	Assume x>y>0;
+ *	(if possible, set rounding to round-to-nearest)
+ *	1. if x > 2y  use
+ *		x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
+ *	where x1 = x with lower 64 bits cleared, x2 = x-x1; else
+ *	2. if x <= 2y use
+ *		t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
+ *	where t1 = 2x with lower 64 bits cleared, t2 = 2x-t1,
+ *	y1= y with lower 64 bits chopped, y2 = y-y1.
+ *
+ *	NOTE: scaling may be necessary if some argument is too
+ *	      large or too tiny
+ *
+ * Special cases:
+ *	hypotl(x,y) is INF if x or y is +INF or -INF; else
+ *	hypotl(x,y) is NAN if x or y is NAN.
+ *
+ * Accuracy:
+ *	hypotl(x,y) returns sqrtl(x^2+y^2) with error less
+ *	than 1 ulps (units in the last place)
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+_Float128
+__ieee754_hypotl(_Float128 x, _Float128 y)
+{
+	_Float128 a,b,t1,t2,y1,y2,w;
+	int64_t j,k,ha,hb;
+
+	GET_LDOUBLE_MSW64(ha,x);
+	ha &= 0x7fffffffffffffffLL;
+	GET_LDOUBLE_MSW64(hb,y);
+	hb &= 0x7fffffffffffffffLL;
+	if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
+	SET_LDOUBLE_MSW64(a,ha);	/* a <- |a| */
+	SET_LDOUBLE_MSW64(b,hb);	/* b <- |b| */
+	if((ha-hb)>0x78000000000000LL) {return a+b;} /* x/y > 2**120 */
+	k=0;
+	if(ha > 0x5f3f000000000000LL) {	/* a>2**8000 */
+	   if(ha >= 0x7fff000000000000LL) {	/* Inf or NaN */
+	       u_int64_t low;
+	       w = a+b;			/* for sNaN */
+	       if (issignaling (a) || issignaling (b))
+		 return w;
+	       GET_LDOUBLE_LSW64(low,a);
+	       if(((ha&0xffffffffffffLL)|low)==0) w = a;
+	       GET_LDOUBLE_LSW64(low,b);
+	       if(((hb^0x7fff000000000000LL)|low)==0) w = b;
+	       return w;
+	   }
+	   /* scale a and b by 2**-9600 */
+	   ha -= 0x2580000000000000LL;
+	   hb -= 0x2580000000000000LL;	k += 9600;
+	   SET_LDOUBLE_MSW64(a,ha);
+	   SET_LDOUBLE_MSW64(b,hb);
+	}
+	if(hb < 0x20bf000000000000LL) {	/* b < 2**-8000 */
+	    if(hb <= 0x0000ffffffffffffLL) {	/* subnormal b or 0 */
+		u_int64_t low;
+		GET_LDOUBLE_LSW64(low,b);
+		if((hb|low)==0) return a;
+		t1=0;
+		SET_LDOUBLE_MSW64(t1,0x7ffd000000000000LL); /* t1=2^16382 */
+		b *= t1;
+		a *= t1;
+		k -= 16382;
+		GET_LDOUBLE_MSW64 (ha, a);
+		GET_LDOUBLE_MSW64 (hb, b);
+		if (hb > ha)
+		  {
+		    t1 = a;
+		    a = b;
+		    b = t1;
+		    j = ha;
+		    ha = hb;
+		    hb = j;
+		  }
+	    } else {		/* scale a and b by 2^9600 */
+		ha += 0x2580000000000000LL;	/* a *= 2^9600 */
+		hb += 0x2580000000000000LL;	/* b *= 2^9600 */
+		k -= 9600;
+		SET_LDOUBLE_MSW64(a,ha);
+		SET_LDOUBLE_MSW64(b,hb);
+	    }
+	}
+    /* medium size a and b */
+	w = a-b;
+	if (w>b) {
+	    t1 = 0;
+	    SET_LDOUBLE_MSW64(t1,ha);
+	    t2 = a-t1;
+	    w  = __ieee754_sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
+	} else {
+	    a  = a+a;
+	    y1 = 0;
+	    SET_LDOUBLE_MSW64(y1,hb);
+	    y2 = b - y1;
+	    t1 = 0;
+	    SET_LDOUBLE_MSW64(t1,ha+0x0001000000000000LL);
+	    t2 = a - t1;
+	    w  = __ieee754_sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	}
+	if(k!=0) {
+	    u_int64_t high;
+	    t1 = 1;
+	    GET_LDOUBLE_MSW64(high,t1);
+	    SET_LDOUBLE_MSW64(t1,high+(k<<48));
+	    w *= t1;
+	    math_check_force_underflow_nonneg (w);
+	    return w;
+	} else return w;
+}
+strong_alias (__ieee754_hypotl, __hypotl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_ilogbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_ilogbl.c
new file mode 100644
index 0000000000..9effe6386a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_ilogbl.c
@@ -0,0 +1,56 @@
+/* s_ilogbl.c -- long double version of s_ilogb.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* ilogbl(long double x)
+ * return the binary exponent of non-zero x
+ * ilogbl(0) = FP_ILOGB0
+ * ilogbl(NaN) = FP_ILOGBNAN (no signal is raised)
+ * ilogbl(+-Inf) = INT_MAX (no signal is raised)
+ */
+
+#include <limits.h>
+#include <math.h>
+#include <math_private.h>
+
+int __ieee754_ilogbl (_Float128 x)
+{
+	int64_t hx,lx;
+	int ix;
+
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	hx &= 0x7fffffffffffffffLL;
+	if(hx <= 0x0001000000000000LL) {
+	    if((hx|lx)==0)
+		return FP_ILOGB0;	/* ilogbl(0) = FP_ILOGB0 */
+	    else			/* subnormal x */
+		if(hx==0) {
+		    for (ix = -16431; lx>0; lx<<=1) ix -=1;
+		} else {
+		    for (ix = -16382, hx<<=15; hx>0; hx<<=1) ix -=1;
+		}
+	    return ix;
+	}
+	else if (hx<0x7fff000000000000LL) return (hx>>48)-0x3fff;
+	else if (FP_ILOGBNAN != INT_MAX) {
+	    /* ISO C99 requires ilogbl(+-Inf) == INT_MAX.  */
+	    if (((hx^0x7fff000000000000LL)|lx) == 0)
+		return INT_MAX;
+	}
+	return FP_ILOGBNAN;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_j0l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_j0l.c
new file mode 100644
index 0000000000..fb8d3518ce
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_j0l.c
@@ -0,0 +1,937 @@
+/*							j0l.c
+ *
+ *	Bessel function of order zero
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, j0l();
+ *
+ * y = j0l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns Bessel function of first kind, order zero of the argument.
+ *
+ * The domain is divided into two major intervals [0, 2] and
+ * (2, infinity). In the first interval the rational approximation
+ * is J0(x) = 1 - x^2 / 4 + x^4 R(x^2)
+ * The second interval is further partitioned into eight equal segments
+ * of 1/x.
+ *
+ * J0(x) = sqrt(2/(pi x)) (P0(x) cos(X) - Q0(x) sin(X)),
+ * X = x - pi/4,
+ *
+ * and the auxiliary functions are given by
+ *
+ * J0(x)cos(X) + Y0(x)sin(X) = sqrt( 2/(pi x)) P0(x),
+ * P0(x) = 1 + 1/x^2 R(1/x^2)
+ *
+ * Y0(x)cos(X) - J0(x)sin(X) = sqrt( 2/(pi x)) Q0(x),
+ * Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Absolute error:
+ * arithmetic   domain      # trials      peak         rms
+ *    IEEE      0, 30       100000      1.7e-34      2.4e-35
+ *
+ *
+ */
+
+/*							y0l.c
+ *
+ *	Bessel function of the second kind, order zero
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * double x, y, y0l();
+ *
+ * y = y0l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns Bessel function of the second kind, of order
+ * zero, of the argument.
+ *
+ * The approximation is the same as for J0(x), and
+ * Y0(x) = sqrt(2/(pi x)) (P0(x) sin(X) + Q0(x) cos(X)).
+ *
+ * ACCURACY:
+ *
+ *  Absolute error, when y0(x) < 1; else relative error:
+ *
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      0, 30       100000      3.0e-34     2.7e-35
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier (moshier@na-net.ornl.gov).
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* 1 / sqrt(pi) */
+static const _Float128 ONEOSQPI = L(5.6418958354775628694807945156077258584405E-1);
+/* 2 / pi */
+static const _Float128 TWOOPI = L(6.3661977236758134307553505349005744813784E-1);
+static const _Float128 zero = 0;
+
+/* J0(x) = 1 - x^2/4 + x^2 x^2 R(x^2)
+   Peak relative error 3.4e-37
+   0 <= x <= 2  */
+#define NJ0_2N 6
+static const _Float128 J0_2N[NJ0_2N + 1] = {
+  L(3.133239376997663645548490085151484674892E16),
+ L(-5.479944965767990821079467311839107722107E14),
+  L(6.290828903904724265980249871997551894090E12),
+ L(-3.633750176832769659849028554429106299915E10),
+  L(1.207743757532429576399485415069244807022E8),
+ L(-2.107485999925074577174305650549367415465E5),
+  L(1.562826808020631846245296572935547005859E2),
+};
+#define NJ0_2D 6
+static const _Float128 J0_2D[NJ0_2D + 1] = {
+  L(2.005273201278504733151033654496928968261E18),
+  L(2.063038558793221244373123294054149790864E16),
+  L(1.053350447931127971406896594022010524994E14),
+  L(3.496556557558702583143527876385508882310E11),
+  L(8.249114511878616075860654484367133976306E8),
+  L(1.402965782449571800199759247964242790589E6),
+  L(1.619910762853439600957801751815074787351E3),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2),
+   0 <= 1/x <= .0625
+   Peak relative error 3.3e-36  */
+#define NP16_IN 9
+static const _Float128 P16_IN[NP16_IN + 1] = {
+  L(-1.901689868258117463979611259731176301065E-16),
+  L(-1.798743043824071514483008340803573980931E-13),
+  L(-6.481746687115262291873324132944647438959E-11),
+  L(-1.150651553745409037257197798528294248012E-8),
+  L(-1.088408467297401082271185599507222695995E-6),
+  L(-5.551996725183495852661022587879817546508E-5),
+  L(-1.477286941214245433866838787454880214736E-3),
+  L(-1.882877976157714592017345347609200402472E-2),
+  L(-9.620983176855405325086530374317855880515E-2),
+  L(-1.271468546258855781530458854476627766233E-1),
+};
+#define NP16_ID 9
+static const _Float128 P16_ID[NP16_ID + 1] = {
+  L(2.704625590411544837659891569420764475007E-15),
+  L(2.562526347676857624104306349421985403573E-12),
+  L(9.259137589952741054108665570122085036246E-10),
+  L(1.651044705794378365237454962653430805272E-7),
+  L(1.573561544138733044977714063100859136660E-5),
+  L(8.134482112334882274688298469629884804056E-4),
+  L(2.219259239404080863919375103673593571689E-2),
+  L(2.976990606226596289580242451096393862792E-1),
+  L(1.713895630454693931742734911930937246254E0),
+  L(3.231552290717904041465898249160757368855E0),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2)
+    0.0625 <= 1/x <= 0.125
+    Peak relative error 2.4e-35  */
+#define NP8_16N 10
+static const _Float128 P8_16N[NP8_16N + 1] = {
+  L(-2.335166846111159458466553806683579003632E-15),
+  L(-1.382763674252402720401020004169367089975E-12),
+  L(-3.192160804534716696058987967592784857907E-10),
+  L(-3.744199606283752333686144670572632116899E-8),
+  L(-2.439161236879511162078619292571922772224E-6),
+  L(-9.068436986859420951664151060267045346549E-5),
+  L(-1.905407090637058116299757292660002697359E-3),
+  L(-2.164456143936718388053842376884252978872E-2),
+  L(-1.212178415116411222341491717748696499966E-1),
+  L(-2.782433626588541494473277445959593334494E-1),
+  L(-1.670703190068873186016102289227646035035E-1),
+};
+#define NP8_16D 10
+static const _Float128 P8_16D[NP8_16D + 1] = {
+  L(3.321126181135871232648331450082662856743E-14),
+  L(1.971894594837650840586859228510007703641E-11),
+  L(4.571144364787008285981633719513897281690E-9),
+  L(5.396419143536287457142904742849052402103E-7),
+  L(3.551548222385845912370226756036899901549E-5),
+  L(1.342353874566932014705609788054598013516E-3),
+  L(2.899133293006771317589357444614157734385E-2),
+  L(3.455374978185770197704507681491574261545E-1),
+  L(2.116616964297512311314454834712634820514E0),
+  L(5.850768316827915470087758636881584174432E0),
+  L(5.655273858938766830855753983631132928968E0),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2)
+  0.125 <= 1/x <= 0.1875
+  Peak relative error 2.7e-35  */
+#define NP5_8N 10
+static const _Float128 P5_8N[NP5_8N + 1] = {
+  L(-1.270478335089770355749591358934012019596E-12),
+  L(-4.007588712145412921057254992155810347245E-10),
+  L(-4.815187822989597568124520080486652009281E-8),
+  L(-2.867070063972764880024598300408284868021E-6),
+  L(-9.218742195161302204046454768106063638006E-5),
+  L(-1.635746821447052827526320629828043529997E-3),
+  L(-1.570376886640308408247709616497261011707E-2),
+  L(-7.656484795303305596941813361786219477807E-2),
+  L(-1.659371030767513274944805479908858628053E-1),
+  L(-1.185340550030955660015841796219919804915E-1),
+  L(-8.920026499909994671248893388013790366712E-3),
+};
+#define NP5_8D 9
+static const _Float128 P5_8D[NP5_8D + 1] = {
+  L(1.806902521016705225778045904631543990314E-11),
+  L(5.728502760243502431663549179135868966031E-9),
+  L(6.938168504826004255287618819550667978450E-7),
+  L(4.183769964807453250763325026573037785902E-5),
+  L(1.372660678476925468014882230851637878587E-3),
+  L(2.516452105242920335873286419212708961771E-2),
+  L(2.550502712902647803796267951846557316182E-1),
+  L(1.365861559418983216913629123778747617072E0),
+  L(3.523825618308783966723472468855042541407E0),
+  L(3.656365803506136165615111349150536282434E0),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2)
+   Peak relative error 3.5e-35
+   0.1875 <= 1/x <= 0.25  */
+#define NP4_5N 9
+static const _Float128 P4_5N[NP4_5N + 1] = {
+  L(-9.791405771694098960254468859195175708252E-10),
+  L(-1.917193059944531970421626610188102836352E-7),
+  L(-1.393597539508855262243816152893982002084E-5),
+  L(-4.881863490846771259880606911667479860077E-4),
+  L(-8.946571245022470127331892085881699269853E-3),
+  L(-8.707474232568097513415336886103899434251E-2),
+  L(-4.362042697474650737898551272505525973766E-1),
+  L(-1.032712171267523975431451359962375617386E0),
+  L(-9.630502683169895107062182070514713702346E-1),
+  L(-2.251804386252969656586810309252357233320E-1),
+};
+#define NP4_5D 9
+static const _Float128 P4_5D[NP4_5D + 1] = {
+  L(1.392555487577717669739688337895791213139E-8),
+  L(2.748886559120659027172816051276451376854E-6),
+  L(2.024717710644378047477189849678576659290E-4),
+  L(7.244868609350416002930624752604670292469E-3),
+  L(1.373631762292244371102989739300382152416E-1),
+  L(1.412298581400224267910294815260613240668E0),
+  L(7.742495637843445079276397723849017617210E0),
+  L(2.138429269198406512028307045259503811861E1),
+  L(2.651547684548423476506826951831712762610E1),
+  L(1.167499382465291931571685222882909166935E1),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2)
+   Peak relative error 2.3e-36
+   0.25 <= 1/x <= 0.3125  */
+#define NP3r2_4N 9
+static const _Float128 P3r2_4N[NP3r2_4N + 1] = {
+  L(-2.589155123706348361249809342508270121788E-8),
+  L(-3.746254369796115441118148490849195516593E-6),
+  L(-1.985595497390808544622893738135529701062E-4),
+  L(-5.008253705202932091290132760394976551426E-3),
+  L(-6.529469780539591572179155511840853077232E-2),
+  L(-4.468736064761814602927408833818990271514E-1),
+  L(-1.556391252586395038089729428444444823380E0),
+  L(-2.533135309840530224072920725976994981638E0),
+  L(-1.605509621731068453869408718565392869560E0),
+  L(-2.518966692256192789269859830255724429375E-1),
+};
+#define NP3r2_4D 9
+static const _Float128 P3r2_4D[NP3r2_4D + 1] = {
+  L(3.682353957237979993646169732962573930237E-7),
+  L(5.386741661883067824698973455566332102029E-5),
+  L(2.906881154171822780345134853794241037053E-3),
+  L(7.545832595801289519475806339863492074126E-2),
+  L(1.029405357245594877344360389469584526654E0),
+  L(7.565706120589873131187989560509757626725E0),
+  L(2.951172890699569545357692207898667665796E1),
+  L(5.785723537170311456298467310529815457536E1),
+  L(5.095621464598267889126015412522773474467E1),
+  L(1.602958484169953109437547474953308401442E1),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2)
+   Peak relative error 1.0e-35
+   0.3125 <= 1/x <= 0.375  */
+#define NP2r7_3r2N 9
+static const _Float128 P2r7_3r2N[NP2r7_3r2N + 1] = {
+  L(-1.917322340814391131073820537027234322550E-7),
+  L(-1.966595744473227183846019639723259011906E-5),
+  L(-7.177081163619679403212623526632690465290E-4),
+  L(-1.206467373860974695661544653741899755695E-2),
+  L(-1.008656452188539812154551482286328107316E-1),
+  L(-4.216016116408810856620947307438823892707E-1),
+  L(-8.378631013025721741744285026537009814161E-1),
+  L(-6.973895635309960850033762745957946272579E-1),
+  L(-1.797864718878320770670740413285763554812E-1),
+  L(-4.098025357743657347681137871388402849581E-3),
+};
+#define NP2r7_3r2D 8
+static const _Float128 P2r7_3r2D[NP2r7_3r2D + 1] = {
+  L(2.726858489303036441686496086962545034018E-6),
+  L(2.840430827557109238386808968234848081424E-4),
+  L(1.063826772041781947891481054529454088832E-2),
+  L(1.864775537138364773178044431045514405468E-1),
+  L(1.665660052857205170440952607701728254211E0),
+  L(7.723745889544331153080842168958348568395E0),
+  L(1.810726427571829798856428548102077799835E1),
+  L(1.986460672157794440666187503833545388527E1),
+  L(8.645503204552282306364296517220055815488E0),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2)
+   Peak relative error 1.3e-36
+   0.3125 <= 1/x <= 0.4375  */
+#define NP2r3_2r7N 9
+static const _Float128 P2r3_2r7N[NP2r3_2r7N + 1] = {
+  L(-1.594642785584856746358609622003310312622E-6),
+  L(-1.323238196302221554194031733595194539794E-4),
+  L(-3.856087818696874802689922536987100372345E-3),
+  L(-5.113241710697777193011470733601522047399E-2),
+  L(-3.334229537209911914449990372942022350558E-1),
+  L(-1.075703518198127096179198549659283422832E0),
+  L(-1.634174803414062725476343124267110981807E0),
+  L(-1.030133247434119595616826842367268304880E0),
+  L(-1.989811539080358501229347481000707289391E-1),
+  L(-3.246859189246653459359775001466924610236E-3),
+};
+#define NP2r3_2r7D 8
+static const _Float128 P2r3_2r7D[NP2r3_2r7D + 1] = {
+  L(2.267936634217251403663034189684284173018E-5),
+  L(1.918112982168673386858072491437971732237E-3),
+  L(5.771704085468423159125856786653868219522E-2),
+  L(8.056124451167969333717642810661498890507E-1),
+  L(5.687897967531010276788680634413789328776E0),
+  L(2.072596760717695491085444438270778394421E1),
+  L(3.801722099819929988585197088613160496684E1),
+  L(3.254620235902912339534998592085115836829E1),
+  L(1.104847772130720331801884344645060675036E1),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J0(x)cosX + Y0(x)sinX = sqrt( 2/(pi x)) P0(x), P0(x) = 1 + 1/x^2 R(1/x^2)
+   Peak relative error 1.2e-35
+   0.4375 <= 1/x <= 0.5  */
+#define NP2_2r3N 8
+static const _Float128 P2_2r3N[NP2_2r3N + 1] = {
+  L(-1.001042324337684297465071506097365389123E-4),
+  L(-6.289034524673365824853547252689991418981E-3),
+  L(-1.346527918018624234373664526930736205806E-1),
+  L(-1.268808313614288355444506172560463315102E0),
+  L(-5.654126123607146048354132115649177406163E0),
+  L(-1.186649511267312652171775803270911971693E1),
+  L(-1.094032424931998612551588246779200724257E1),
+  L(-3.728792136814520055025256353193674625267E0),
+  L(-3.000348318524471807839934764596331810608E-1),
+};
+#define NP2_2r3D 8
+static const _Float128 P2_2r3D[NP2_2r3D + 1] = {
+  L(1.423705538269770974803901422532055612980E-3),
+  L(9.171476630091439978533535167485230575894E-2),
+  L(2.049776318166637248868444600215942828537E0),
+  L(2.068970329743769804547326701946144899583E1),
+  L(1.025103500560831035592731539565060347709E2),
+  L(2.528088049697570728252145557167066708284E2),
+  L(2.992160327587558573740271294804830114205E2),
+  L(1.540193761146551025832707739468679973036E2),
+  L(2.779516701986912132637672140709452502650E1),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 2.2e-35
+   0 <= 1/x <= .0625  */
+#define NQ16_IN 10
+static const _Float128 Q16_IN[NQ16_IN + 1] = {
+  L(2.343640834407975740545326632205999437469E-18),
+  L(2.667978112927811452221176781536278257448E-15),
+  L(1.178415018484555397390098879501969116536E-12),
+  L(2.622049767502719728905924701288614016597E-10),
+  L(3.196908059607618864801313380896308968673E-8),
+  L(2.179466154171673958770030655199434798494E-6),
+  L(8.139959091628545225221976413795645177291E-5),
+  L(1.563900725721039825236927137885747138654E-3),
+  L(1.355172364265825167113562519307194840307E-2),
+  L(3.928058355906967977269780046844768588532E-2),
+  L(1.107891967702173292405380993183694932208E-2),
+};
+#define NQ16_ID 9
+static const _Float128 Q16_ID[NQ16_ID + 1] = {
+  L(3.199850952578356211091219295199301766718E-17),
+  L(3.652601488020654842194486058637953363918E-14),
+  L(1.620179741394865258354608590461839031281E-11),
+  L(3.629359209474609630056463248923684371426E-9),
+  L(4.473680923894354600193264347733477363305E-7),
+  L(3.106368086644715743265603656011050476736E-5),
+  L(1.198239259946770604954664925153424252622E-3),
+  L(2.446041004004283102372887804475767568272E-2),
+  L(2.403235525011860603014707768815113698768E-1),
+  L(9.491006790682158612266270665136910927149E-1),
+ /* 1.000000000000000000000000000000000000000E0 */
+ };
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 5.1e-36
+   0.0625 <= 1/x <= 0.125  */
+#define NQ8_16N 11
+static const _Float128 Q8_16N[NQ8_16N + 1] = {
+  L(1.001954266485599464105669390693597125904E-17),
+  L(7.545499865295034556206475956620160007849E-15),
+  L(2.267838684785673931024792538193202559922E-12),
+  L(3.561909705814420373609574999542459912419E-10),
+  L(3.216201422768092505214730633842924944671E-8),
+  L(1.731194793857907454569364622452058554314E-6),
+  L(5.576944613034537050396518509871004586039E-5),
+  L(1.051787760316848982655967052985391418146E-3),
+  L(1.102852974036687441600678598019883746959E-2),
+  L(5.834647019292460494254225988766702933571E-2),
+  L(1.290281921604364618912425380717127576529E-1),
+  L(7.598886310387075708640370806458926458301E-2),
+};
+#define NQ8_16D 11
+static const _Float128 Q8_16D[NQ8_16D + 1] = {
+  L(1.368001558508338469503329967729951830843E-16),
+  L(1.034454121857542147020549303317348297289E-13),
+  L(3.128109209247090744354764050629381674436E-11),
+  L(4.957795214328501986562102573522064468671E-9),
+  L(4.537872468606711261992676606899273588899E-7),
+  L(2.493639207101727713192687060517509774182E-5),
+  L(8.294957278145328349785532236663051405805E-4),
+  L(1.646471258966713577374948205279380115839E-2),
+  L(1.878910092770966718491814497982191447073E-1),
+  L(1.152641605706170353727903052525652504075E0),
+  L(3.383550240669773485412333679367792932235E0),
+  L(3.823875252882035706910024716609908473970E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 3.9e-35
+   0.125 <= 1/x <= 0.1875  */
+#define NQ5_8N 10
+static const _Float128 Q5_8N[NQ5_8N + 1] = {
+  L(1.750399094021293722243426623211733898747E-13),
+  L(6.483426211748008735242909236490115050294E-11),
+  L(9.279430665656575457141747875716899958373E-9),
+  L(6.696634968526907231258534757736576340266E-7),
+  L(2.666560823798895649685231292142838188061E-5),
+  L(6.025087697259436271271562769707550594540E-4),
+  L(7.652807734168613251901945778921336353485E-3),
+  L(5.226269002589406461622551452343519078905E-2),
+  L(1.748390159751117658969324896330142895079E-1),
+  L(2.378188719097006494782174902213083589660E-1),
+  L(8.383984859679804095463699702165659216831E-2),
+};
+#define NQ5_8D 10
+static const _Float128 Q5_8D[NQ5_8D + 1] = {
+  L(2.389878229704327939008104855942987615715E-12),
+  L(8.926142817142546018703814194987786425099E-10),
+  L(1.294065862406745901206588525833274399038E-7),
+  L(9.524139899457666250828752185212769682191E-6),
+  L(3.908332488377770886091936221573123353489E-4),
+  L(9.250427033957236609624199884089916836748E-3),
+  L(1.263420066165922645975830877751588421451E-1),
+  L(9.692527053860420229711317379861733180654E-1),
+  L(3.937813834630430172221329298841520707954E0),
+  L(7.603126427436356534498908111445191312181E0),
+  L(5.670677653334105479259958485084550934305E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 3.2e-35
+   0.1875 <= 1/x <= 0.25  */
+#define NQ4_5N 10
+static const _Float128 Q4_5N[NQ4_5N + 1] = {
+  L(2.233870042925895644234072357400122854086E-11),
+  L(5.146223225761993222808463878999151699792E-9),
+  L(4.459114531468296461688753521109797474523E-7),
+  L(1.891397692931537975547242165291668056276E-5),
+  L(4.279519145911541776938964806470674565504E-4),
+  L(5.275239415656560634702073291768904783989E-3),
+  L(3.468698403240744801278238473898432608887E-2),
+  L(1.138773146337708415188856882915457888274E-1),
+  L(1.622717518946443013587108598334636458955E-1),
+  L(7.249040006390586123760992346453034628227E-2),
+  L(1.941595365256460232175236758506411486667E-3),
+};
+#define NQ4_5D 9
+static const _Float128 Q4_5D[NQ4_5D + 1] = {
+  L(3.049977232266999249626430127217988047453E-10),
+  L(7.120883230531035857746096928889676144099E-8),
+  L(6.301786064753734446784637919554359588859E-6),
+  L(2.762010530095069598480766869426308077192E-4),
+  L(6.572163250572867859316828886203406361251E-3),
+  L(8.752566114841221958200215255461843397776E-2),
+  L(6.487654992874805093499285311075289932664E-1),
+  L(2.576550017826654579451615283022812801435E0),
+  L(5.056392229924022835364779562707348096036E0),
+  L(4.179770081068251464907531367859072157773E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 1.4e-36
+   0.25 <= 1/x <= 0.3125  */
+#define NQ3r2_4N 10
+static const _Float128 Q3r2_4N[NQ3r2_4N + 1] = {
+  L(6.126167301024815034423262653066023684411E-10),
+  L(1.043969327113173261820028225053598975128E-7),
+  L(6.592927270288697027757438170153763220190E-6),
+  L(2.009103660938497963095652951912071336730E-4),
+  L(3.220543385492643525985862356352195896964E-3),
+  L(2.774405975730545157543417650436941650990E-2),
+  L(1.258114008023826384487378016636555041129E-1),
+  L(2.811724258266902502344701449984698323860E-1),
+  L(2.691837665193548059322831687432415014067E-1),
+  L(7.949087384900985370683770525312735605034E-2),
+  L(1.229509543620976530030153018986910810747E-3),
+};
+#define NQ3r2_4D 9
+static const _Float128 Q3r2_4D[NQ3r2_4D + 1] = {
+  L(8.364260446128475461539941389210166156568E-9),
+  L(1.451301850638956578622154585560759862764E-6),
+  L(9.431830010924603664244578867057141839463E-5),
+  L(3.004105101667433434196388593004526182741E-3),
+  L(5.148157397848271739710011717102773780221E-2),
+  L(4.901089301726939576055285374953887874895E-1),
+  L(2.581760991981709901216967665934142240346E0),
+  L(7.257105880775059281391729708630912791847E0),
+  L(1.006014717326362868007913423810737369312E1),
+  L(5.879416600465399514404064187445293212470E0),
+ /* 1.000000000000000000000000000000000000000E0*/
+};
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 3.8e-36
+   0.3125 <= 1/x <= 0.375  */
+#define NQ2r7_3r2N 9
+static const _Float128 Q2r7_3r2N[NQ2r7_3r2N + 1] = {
+  L(7.584861620402450302063691901886141875454E-8),
+  L(9.300939338814216296064659459966041794591E-6),
+  L(4.112108906197521696032158235392604947895E-4),
+  L(8.515168851578898791897038357239630654431E-3),
+  L(8.971286321017307400142720556749573229058E-2),
+  L(4.885856732902956303343015636331874194498E-1),
+  L(1.334506268733103291656253500506406045846E0),
+  L(1.681207956863028164179042145803851824654E0),
+  L(8.165042692571721959157677701625853772271E-1),
+  L(9.805848115375053300608712721986235900715E-2),
+};
+#define NQ2r7_3r2D 9
+static const _Float128 Q2r7_3r2D[NQ2r7_3r2D + 1] = {
+  L(1.035586492113036586458163971239438078160E-6),
+  L(1.301999337731768381683593636500979713689E-4),
+  L(5.993695702564527062553071126719088859654E-3),
+  L(1.321184892887881883489141186815457808785E-1),
+  L(1.528766555485015021144963194165165083312E0),
+  L(9.561463309176490874525827051566494939295E0),
+  L(3.203719484883967351729513662089163356911E1),
+  L(5.497294687660930446641539152123568668447E1),
+  L(4.391158169390578768508675452986948391118E1),
+  L(1.347836630730048077907818943625789418378E1),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 2.2e-35
+   0.375 <= 1/x <= 0.4375  */
+#define NQ2r3_2r7N 9
+static const _Float128 Q2r3_2r7N[NQ2r3_2r7N + 1] = {
+  L(4.455027774980750211349941766420190722088E-7),
+  L(4.031998274578520170631601850866780366466E-5),
+  L(1.273987274325947007856695677491340636339E-3),
+  L(1.818754543377448509897226554179659122873E-2),
+  L(1.266748858326568264126353051352269875352E-1),
+  L(4.327578594728723821137731555139472880414E-1),
+  L(6.892532471436503074928194969154192615359E-1),
+  L(4.490775818438716873422163588640262036506E-1),
+  L(8.649615949297322440032000346117031581572E-2),
+  L(7.261345286655345047417257611469066147561E-4),
+};
+#define NQ2r3_2r7D 8
+static const _Float128 Q2r3_2r7D[NQ2r3_2r7D + 1] = {
+  L(6.082600739680555266312417978064954793142E-6),
+  L(5.693622538165494742945717226571441747567E-4),
+  L(1.901625907009092204458328768129666975975E-2),
+  L(2.958689532697857335456896889409923371570E-1),
+  L(2.343124711045660081603809437993368799568E0),
+  L(9.665894032187458293568704885528192804376E0),
+  L(2.035273104990617136065743426322454881353E1),
+  L(2.044102010478792896815088858740075165531E1),
+  L(8.445937177863155827844146643468706599304E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y0(x)cosX - J0(x)sinX = sqrt( 2/(pi x)) Q0(x),
+   Q0(x) = 1/x (-.125 + 1/x^2 R(1/x^2))
+   Peak relative error 3.1e-36
+   0.4375 <= 1/x <= 0.5  */
+#define NQ2_2r3N 9
+static const _Float128 Q2_2r3N[NQ2_2r3N + 1] = {
+  L(2.817566786579768804844367382809101929314E-6),
+  L(2.122772176396691634147024348373539744935E-4),
+  L(5.501378031780457828919593905395747517585E-3),
+  L(6.355374424341762686099147452020466524659E-2),
+  L(3.539652320122661637429658698954748337223E-1),
+  L(9.571721066119617436343740541777014319695E-1),
+  L(1.196258777828426399432550698612171955305E0),
+  L(6.069388659458926158392384709893753793967E-1),
+  L(9.026746127269713176512359976978248763621E-2),
+  L(5.317668723070450235320878117210807236375E-4),
+};
+#define NQ2_2r3D 8
+static const _Float128 Q2_2r3D[NQ2_2r3D + 1] = {
+  L(3.846924354014260866793741072933159380158E-5),
+  L(3.017562820057704325510067178327449946763E-3),
+  L(8.356305620686867949798885808540444210935E-2),
+  L(1.068314930499906838814019619594424586273E0),
+  L(6.900279623894821067017966573640732685233E0),
+  L(2.307667390886377924509090271780839563141E1),
+  L(3.921043465412723970791036825401273528513E1),
+  L(3.167569478939719383241775717095729233436E1),
+  L(1.051023841699200920276198346301543665909E1),
+ /* 1.000000000000000000000000000000000000000E0*/
+};
+
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Bessel function of the first kind, order zero.  */
+
+_Float128
+__ieee754_j0l (_Float128 x)
+{
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
+
+  if (! isfinite (x))
+    {
+      if (x != x)
+	return x + x;
+      else
+	return 0;
+    }
+  if (x == 0)
+    return 1;
+
+  xx = fabsl (x);
+  if (xx <= 2)
+    {
+      if (xx < L(0x1p-57))
+	return 1;
+      /* 0 <= x <= 2 */
+      z = xx * xx;
+      p = z * z * neval (z, J0_2N, NJ0_2N) / deval (z, J0_2D, NJ0_2D);
+      p -= L(0.25) * z;
+      p += 1;
+      return p;
+    }
+
+  /* X = x - pi/4
+     cos(X) = cos(x) cos(pi/4) + sin(x) sin(pi/4)
+     = 1/sqrt(2) * (cos(x) + sin(x))
+     sin(X) = sin(x) cos(pi/4) - cos(x) sin(pi/4)
+     = 1/sqrt(2) * (sin(x) - cos(x))
+     sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+     cf. Fdlibm.  */
+  __sincosl (xx, &s, &c);
+  ss = s - c;
+  cc = s + c;
+  if (xx <= LDBL_MAX / 2)
+    {
+      z = -__cosl (xx + xx);
+      if ((s * c) < 0)
+	cc = z / ss;
+      else
+	ss = z / cc;
+    }
+
+  if (xx > L(0x1p256))
+    return ONEOSQPI * cc / __ieee754_sqrtl (xx);
+
+  xinv = 1 / xx;
+  z = xinv * xinv;
+  if (xinv <= 0.25)
+    {
+      if (xinv <= 0.125)
+	{
+	  if (xinv <= 0.0625)
+	    {
+	      p = neval (z, P16_IN, NP16_IN) / deval (z, P16_ID, NP16_ID);
+	      q = neval (z, Q16_IN, NQ16_IN) / deval (z, Q16_ID, NQ16_ID);
+	    }
+	  else
+	    {
+	      p = neval (z, P8_16N, NP8_16N) / deval (z, P8_16D, NP8_16D);
+	      q = neval (z, Q8_16N, NQ8_16N) / deval (z, Q8_16D, NQ8_16D);
+	    }
+	}
+      else if (xinv <= 0.1875)
+	{
+	  p = neval (z, P5_8N, NP5_8N) / deval (z, P5_8D, NP5_8D);
+	  q = neval (z, Q5_8N, NQ5_8N) / deval (z, Q5_8D, NQ5_8D);
+	}
+      else
+	{
+	  p = neval (z, P4_5N, NP4_5N) / deval (z, P4_5D, NP4_5D);
+	  q = neval (z, Q4_5N, NQ4_5N) / deval (z, Q4_5D, NQ4_5D);
+	}
+    }				/* .25 */
+  else /* if (xinv <= 0.5) */
+    {
+      if (xinv <= 0.375)
+	{
+	  if (xinv <= 0.3125)
+	    {
+	      p = neval (z, P3r2_4N, NP3r2_4N) / deval (z, P3r2_4D, NP3r2_4D);
+	      q = neval (z, Q3r2_4N, NQ3r2_4N) / deval (z, Q3r2_4D, NQ3r2_4D);
+	    }
+	  else
+	    {
+	      p = neval (z, P2r7_3r2N, NP2r7_3r2N)
+		  / deval (z, P2r7_3r2D, NP2r7_3r2D);
+	      q = neval (z, Q2r7_3r2N, NQ2r7_3r2N)
+		  / deval (z, Q2r7_3r2D, NQ2r7_3r2D);
+	    }
+	}
+      else if (xinv <= 0.4375)
+	{
+	  p = neval (z, P2r3_2r7N, NP2r3_2r7N)
+	      / deval (z, P2r3_2r7D, NP2r3_2r7D);
+	  q = neval (z, Q2r3_2r7N, NQ2r3_2r7N)
+	      / deval (z, Q2r3_2r7D, NQ2r3_2r7D);
+	}
+      else
+	{
+	  p = neval (z, P2_2r3N, NP2_2r3N) / deval (z, P2_2r3D, NP2_2r3D);
+	  q = neval (z, Q2_2r3N, NQ2_2r3N) / deval (z, Q2_2r3D, NQ2_2r3D);
+	}
+    }
+  p = 1 + z * p;
+  q = z * xinv * q;
+  q = q - L(0.125) * xinv;
+  z = ONEOSQPI * (p * cc - q * ss) / __ieee754_sqrtl (xx);
+  return z;
+}
+strong_alias (__ieee754_j0l, __j0l_finite)
+
+
+/* Y0(x) = 2/pi * log(x) * J0(x) + R(x^2)
+   Peak absolute error 1.7e-36 (relative where Y0 > 1)
+   0 <= x <= 2   */
+#define NY0_2N 7
+static _Float128 Y0_2N[NY0_2N + 1] = {
+ L(-1.062023609591350692692296993537002558155E19),
+  L(2.542000883190248639104127452714966858866E19),
+ L(-1.984190771278515324281415820316054696545E18),
+  L(4.982586044371592942465373274440222033891E16),
+ L(-5.529326354780295177243773419090123407550E14),
+  L(3.013431465522152289279088265336861140391E12),
+ L(-7.959436160727126750732203098982718347785E9),
+  L(8.230845651379566339707130644134372793322E6),
+};
+#define NY0_2D 7
+static _Float128 Y0_2D[NY0_2D + 1] = {
+  L(1.438972634353286978700329883122253752192E20),
+  L(1.856409101981569254247700169486907405500E18),
+  L(1.219693352678218589553725579802986255614E16),
+  L(5.389428943282838648918475915779958097958E13),
+  L(1.774125762108874864433872173544743051653E11),
+  L(4.522104832545149534808218252434693007036E8),
+  L(8.872187401232943927082914504125234454930E5),
+  L(1.251945613186787532055610876304669413955E3),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+static const _Float128 U0 = L(-7.3804295108687225274343927948483016310862e-02);
+
+/* Bessel function of the second kind, order zero.  */
+
+_Float128
+ __ieee754_y0l(_Float128 x)
+{
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
+
+  if (! isfinite (x))
+    return 1 / (x + x * x);
+  if (x <= 0)
+    {
+      if (x < 0)
+	return (zero / (zero * x));
+      return -1 / zero; /* -inf and divide by zero exception.  */
+    }
+  xx = fabsl (x);
+  if (xx <= 0x1p-57)
+    return U0 + TWOOPI * __ieee754_logl (x);
+  if (xx <= 2)
+    {
+      /* 0 <= x <= 2 */
+      z = xx * xx;
+      p = neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D);
+      p = TWOOPI * __ieee754_logl (x) * __ieee754_j0l (x) + p;
+      return p;
+    }
+
+  /* X = x - pi/4
+     cos(X) = cos(x) cos(pi/4) + sin(x) sin(pi/4)
+     = 1/sqrt(2) * (cos(x) + sin(x))
+     sin(X) = sin(x) cos(pi/4) - cos(x) sin(pi/4)
+     = 1/sqrt(2) * (sin(x) - cos(x))
+     sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+     cf. Fdlibm.  */
+  __sincosl (x, &s, &c);
+  ss = s - c;
+  cc = s + c;
+  if (xx <= LDBL_MAX / 2)
+    {
+      z = -__cosl (x + x);
+      if ((s * c) < 0)
+	cc = z / ss;
+      else
+	ss = z / cc;
+    }
+
+  if (xx > L(0x1p256))
+    return ONEOSQPI * ss / __ieee754_sqrtl (x);
+
+  xinv = 1 / xx;
+  z = xinv * xinv;
+  if (xinv <= 0.25)
+    {
+      if (xinv <= 0.125)
+	{
+	  if (xinv <= 0.0625)
+	    {
+	      p = neval (z, P16_IN, NP16_IN) / deval (z, P16_ID, NP16_ID);
+	      q = neval (z, Q16_IN, NQ16_IN) / deval (z, Q16_ID, NQ16_ID);
+	    }
+	  else
+	    {
+	      p = neval (z, P8_16N, NP8_16N) / deval (z, P8_16D, NP8_16D);
+	      q = neval (z, Q8_16N, NQ8_16N) / deval (z, Q8_16D, NQ8_16D);
+	    }
+	}
+      else if (xinv <= 0.1875)
+	{
+	  p = neval (z, P5_8N, NP5_8N) / deval (z, P5_8D, NP5_8D);
+	  q = neval (z, Q5_8N, NQ5_8N) / deval (z, Q5_8D, NQ5_8D);
+	}
+      else
+	{
+	  p = neval (z, P4_5N, NP4_5N) / deval (z, P4_5D, NP4_5D);
+	  q = neval (z, Q4_5N, NQ4_5N) / deval (z, Q4_5D, NQ4_5D);
+	}
+    }				/* .25 */
+  else /* if (xinv <= 0.5) */
+    {
+      if (xinv <= 0.375)
+	{
+	  if (xinv <= 0.3125)
+	    {
+	      p = neval (z, P3r2_4N, NP3r2_4N) / deval (z, P3r2_4D, NP3r2_4D);
+	      q = neval (z, Q3r2_4N, NQ3r2_4N) / deval (z, Q3r2_4D, NQ3r2_4D);
+	    }
+	  else
+	    {
+	      p = neval (z, P2r7_3r2N, NP2r7_3r2N)
+		  / deval (z, P2r7_3r2D, NP2r7_3r2D);
+	      q = neval (z, Q2r7_3r2N, NQ2r7_3r2N)
+		  / deval (z, Q2r7_3r2D, NQ2r7_3r2D);
+	    }
+	}
+      else if (xinv <= 0.4375)
+	{
+	  p = neval (z, P2r3_2r7N, NP2r3_2r7N)
+	      / deval (z, P2r3_2r7D, NP2r3_2r7D);
+	  q = neval (z, Q2r3_2r7N, NQ2r3_2r7N)
+	      / deval (z, Q2r3_2r7D, NQ2r3_2r7D);
+	}
+      else
+	{
+	  p = neval (z, P2_2r3N, NP2_2r3N) / deval (z, P2_2r3D, NP2_2r3D);
+	  q = neval (z, Q2_2r3N, NQ2_2r3N) / deval (z, Q2_2r3D, NQ2_2r3D);
+	}
+    }
+  p = 1 + z * p;
+  q = z * xinv * q;
+  q = q - L(0.125) * xinv;
+  z = ONEOSQPI * (p * ss + q * cc) / __ieee754_sqrtl (x);
+  return z;
+}
+strong_alias (__ieee754_y0l, __y0l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_j1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_j1l.c
new file mode 100644
index 0000000000..6fc69faa3c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_j1l.c
@@ -0,0 +1,961 @@
+/*							j1l.c
+ *
+ *	Bessel function of order one
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, j1l();
+ *
+ * y = j1l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns Bessel function of first kind, order one of the argument.
+ *
+ * The domain is divided into two major intervals [0, 2] and
+ * (2, infinity). In the first interval the rational approximation is
+ * J1(x) = .5x + x x^2 R(x^2)
+ *
+ * The second interval is further partitioned into eight equal segments
+ * of 1/x.
+ * J1(x) = sqrt(2/(pi x)) (P1(x) cos(X) - Q1(x) sin(X)),
+ * X = x - 3 pi / 4,
+ *
+ * and the auxiliary functions are given by
+ *
+ * J1(x)cos(X) + Y1(x)sin(X) = sqrt( 2/(pi x)) P1(x),
+ * P1(x) = 1 + 1/x^2 R(1/x^2)
+ *
+ * Y1(x)cos(X) - J1(x)sin(X) = sqrt( 2/(pi x)) Q1(x),
+ * Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)).
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Absolute error:
+ * arithmetic   domain      # trials      peak         rms
+ *    IEEE      0, 30       100000      2.8e-34      2.7e-35
+ *
+ *
+ */
+
+/*							y1l.c
+ *
+ *	Bessel function of the second kind, order one
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * double x, y, y1l();
+ *
+ * y = y1l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns Bessel function of the second kind, of order
+ * one, of the argument.
+ *
+ * The domain is divided into two major intervals [0, 2] and
+ * (2, infinity). In the first interval the rational approximation is
+ * Y1(x) = 2/pi * (log(x) * J1(x) - 1/x) + x R(x^2) .
+ * In the second interval the approximation is the same as for J1(x), and
+ * Y1(x) = sqrt(2/(pi x)) (P1(x) sin(X) + Q1(x) cos(X)),
+ * X = x - 3 pi / 4.
+ *
+ * ACCURACY:
+ *
+ *  Absolute error, when y0(x) < 1; else relative error:
+ *
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      0, 30       100000      2.7e-34     2.9e-35
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier (moshier@na-net.onrl.gov).
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* 1 / sqrt(pi) */
+static const _Float128 ONEOSQPI = L(5.6418958354775628694807945156077258584405E-1);
+/* 2 / pi */
+static const _Float128 TWOOPI = L(6.3661977236758134307553505349005744813784E-1);
+static const _Float128 zero = 0;
+
+/* J1(x) = .5x + x x^2 R(x^2)
+   Peak relative error 1.9e-35
+   0 <= x <= 2  */
+#define NJ0_2N 6
+static const _Float128 J0_2N[NJ0_2N + 1] = {
+ L(-5.943799577386942855938508697619735179660E16),
+  L(1.812087021305009192259946997014044074711E15),
+ L(-2.761698314264509665075127515729146460895E13),
+  L(2.091089497823600978949389109350658815972E11),
+ L(-8.546413231387036372945453565654130054307E8),
+  L(1.797229225249742247475464052741320612261E6),
+ L(-1.559552840946694171346552770008812083969E3)
+};
+#define NJ0_2D 6
+static const _Float128 J0_2D[NJ0_2D + 1] = {
+  L(9.510079323819108569501613916191477479397E17),
+  L(1.063193817503280529676423936545854693915E16),
+  L(5.934143516050192600795972192791775226920E13),
+  L(2.168000911950620999091479265214368352883E11),
+  L(5.673775894803172808323058205986256928794E8),
+  L(1.080329960080981204840966206372671147224E6),
+  L(1.411951256636576283942477881535283304912E3),
+ /* 1.000000000000000000000000000000000000000E0L */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+   0 <= 1/x <= .0625
+   Peak relative error 3.6e-36  */
+#define NP16_IN 9
+static const _Float128 P16_IN[NP16_IN + 1] = {
+  L(5.143674369359646114999545149085139822905E-16),
+  L(4.836645664124562546056389268546233577376E-13),
+  L(1.730945562285804805325011561498453013673E-10),
+  L(3.047976856147077889834905908605310585810E-8),
+  L(2.855227609107969710407464739188141162386E-6),
+  L(1.439362407936705484122143713643023998457E-4),
+  L(3.774489768532936551500999699815873422073E-3),
+  L(4.723962172984642566142399678920790598426E-2),
+  L(2.359289678988743939925017240478818248735E-1),
+  L(3.032580002220628812728954785118117124520E-1),
+};
+#define NP16_ID 9
+static const _Float128 P16_ID[NP16_ID + 1] = {
+  L(4.389268795186898018132945193912677177553E-15),
+  L(4.132671824807454334388868363256830961655E-12),
+  L(1.482133328179508835835963635130894413136E-9),
+  L(2.618941412861122118906353737117067376236E-7),
+  L(2.467854246740858470815714426201888034270E-5),
+  L(1.257192927368839847825938545925340230490E-3),
+  L(3.362739031941574274949719324644120720341E-2),
+  L(4.384458231338934105875343439265370178858E-1),
+  L(2.412830809841095249170909628197264854651E0),
+  L(4.176078204111348059102962617368214856874E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+    0.0625 <= 1/x <= 0.125
+    Peak relative error 1.9e-36  */
+#define NP8_16N 11
+static const _Float128 P8_16N[NP8_16N + 1] = {
+  L(2.984612480763362345647303274082071598135E-16),
+  L(1.923651877544126103941232173085475682334E-13),
+  L(4.881258879388869396043760693256024307743E-11),
+  L(6.368866572475045408480898921866869811889E-9),
+  L(4.684818344104910450523906967821090796737E-7),
+  L(2.005177298271593587095982211091300382796E-5),
+  L(4.979808067163957634120681477207147536182E-4),
+  L(6.946005761642579085284689047091173581127E-3),
+  L(5.074601112955765012750207555985299026204E-2),
+  L(1.698599455896180893191766195194231825379E-1),
+  L(1.957536905259237627737222775573623779638E-1),
+  L(2.991314703282528370270179989044994319374E-2),
+};
+#define NP8_16D 10
+static const _Float128 P8_16D[NP8_16D + 1] = {
+  L(2.546869316918069202079580939942463010937E-15),
+  L(1.644650111942455804019788382157745229955E-12),
+  L(4.185430770291694079925607420808011147173E-10),
+  L(5.485331966975218025368698195861074143153E-8),
+  L(4.062884421686912042335466327098932678905E-6),
+  L(1.758139661060905948870523641319556816772E-4),
+  L(4.445143889306356207566032244985607493096E-3),
+  L(6.391901016293512632765621532571159071158E-2),
+  L(4.933040207519900471177016015718145795434E-1),
+  L(1.839144086168947712971630337250761842976E0),
+  L(2.715120873995490920415616716916149586579E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+  0.125 <= 1/x <= 0.1875
+  Peak relative error 1.3e-36  */
+#define NP5_8N 10
+static const _Float128 P5_8N[NP5_8N + 1] = {
+  L(2.837678373978003452653763806968237227234E-12),
+  L(9.726641165590364928442128579282742354806E-10),
+  L(1.284408003604131382028112171490633956539E-7),
+  L(8.524624695868291291250573339272194285008E-6),
+  L(3.111516908953172249853673787748841282846E-4),
+  L(6.423175156126364104172801983096596409176E-3),
+  L(7.430220589989104581004416356260692450652E-2),
+  L(4.608315409833682489016656279567605536619E-1),
+  L(1.396870223510964882676225042258855977512E0),
+  L(1.718500293904122365894630460672081526236E0),
+  L(5.465927698800862172307352821870223855365E-1)
+};
+#define NP5_8D 10
+static const _Float128 P5_8D[NP5_8D + 1] = {
+  L(2.421485545794616609951168511612060482715E-11),
+  L(8.329862750896452929030058039752327232310E-9),
+  L(1.106137992233383429630592081375289010720E-6),
+  L(7.405786153760681090127497796448503306939E-5),
+  L(2.740364785433195322492093333127633465227E-3),
+  L(5.781246470403095224872243564165254652198E-2),
+  L(6.927711353039742469918754111511109983546E-1),
+  L(4.558679283460430281188304515922826156690E0),
+  L(1.534468499844879487013168065728837900009E1),
+  L(2.313927430889218597919624843161569422745E1),
+  L(1.194506341319498844336768473218382828637E1),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+   Peak relative error 1.4e-36
+   0.1875 <= 1/x <= 0.25  */
+#define NP4_5N 10
+static const _Float128 P4_5N[NP4_5N + 1] = {
+  L(1.846029078268368685834261260420933914621E-10),
+  L(3.916295939611376119377869680335444207768E-8),
+  L(3.122158792018920627984597530935323997312E-6),
+  L(1.218073444893078303994045653603392272450E-4),
+  L(2.536420827983485448140477159977981844883E-3),
+  L(2.883011322006690823959367922241169171315E-2),
+  L(1.755255190734902907438042414495469810830E-1),
+  L(5.379317079922628599870898285488723736599E-1),
+  L(7.284904050194300773890303361501726561938E-1),
+  L(3.270110346613085348094396323925000362813E-1),
+  L(1.804473805689725610052078464951722064757E-2),
+};
+#define NP4_5D 9
+static const _Float128 P4_5D[NP4_5D + 1] = {
+  L(1.575278146806816970152174364308980863569E-9),
+  L(3.361289173657099516191331123405675054321E-7),
+  L(2.704692281550877810424745289838790693708E-5),
+  L(1.070854930483999749316546199273521063543E-3),
+  L(2.282373093495295842598097265627962125411E-2),
+  L(2.692025460665354148328762368240343249830E-1),
+  L(1.739892942593664447220951225734811133759E0),
+  L(5.890727576752230385342377570386657229324E0),
+  L(9.517442287057841500750256954117735128153E0),
+  L(6.100616353935338240775363403030137736013E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+   Peak relative error 3.0e-36
+   0.25 <= 1/x <= 0.3125  */
+#define NP3r2_4N 9
+static const _Float128 P3r2_4N[NP3r2_4N + 1] = {
+  L(8.240803130988044478595580300846665863782E-8),
+  L(1.179418958381961224222969866406483744580E-5),
+  L(6.179787320956386624336959112503824397755E-4),
+  L(1.540270833608687596420595830747166658383E-2),
+  L(1.983904219491512618376375619598837355076E-1),
+  L(1.341465722692038870390470651608301155565E0),
+  L(4.617865326696612898792238245990854646057E0),
+  L(7.435574801812346424460233180412308000587E0),
+  L(4.671327027414635292514599201278557680420E0),
+  L(7.299530852495776936690976966995187714739E-1),
+};
+#define NP3r2_4D 9
+static const _Float128 P3r2_4D[NP3r2_4D + 1] = {
+  L(7.032152009675729604487575753279187576521E-7),
+  L(1.015090352324577615777511269928856742848E-4),
+  L(5.394262184808448484302067955186308730620E-3),
+  L(1.375291438480256110455809354836988584325E-1),
+  L(1.836247144461106304788160919310404376670E0),
+  L(1.314378564254376655001094503090935880349E1),
+  L(4.957184590465712006934452500894672343488E1),
+  L(9.287394244300647738855415178790263465398E1),
+  L(7.652563275535900609085229286020552768399E1),
+  L(2.147042473003074533150718117770093209096E1),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+   Peak relative error 1.0e-35
+   0.3125 <= 1/x <= 0.375  */
+#define NP2r7_3r2N 9
+static const _Float128 P2r7_3r2N[NP2r7_3r2N + 1] = {
+  L(4.599033469240421554219816935160627085991E-7),
+  L(4.665724440345003914596647144630893997284E-5),
+  L(1.684348845667764271596142716944374892756E-3),
+  L(2.802446446884455707845985913454440176223E-2),
+  L(2.321937586453963310008279956042545173930E-1),
+  L(9.640277413988055668692438709376437553804E-1),
+  L(1.911021064710270904508663334033003246028E0),
+  L(1.600811610164341450262992138893970224971E0),
+  L(4.266299218652587901171386591543457861138E-1),
+  L(1.316470424456061252962568223251247207325E-2),
+};
+#define NP2r7_3r2D 8
+static const _Float128 P2r7_3r2D[NP2r7_3r2D + 1] = {
+  L(3.924508608545520758883457108453520099610E-6),
+  L(4.029707889408829273226495756222078039823E-4),
+  L(1.484629715787703260797886463307469600219E-2),
+  L(2.553136379967180865331706538897231588685E-1),
+  L(2.229457223891676394409880026887106228740E0),
+  L(1.005708903856384091956550845198392117318E1),
+  L(2.277082659664386953166629360352385889558E1),
+  L(2.384726835193630788249826630376533988245E1),
+  L(9.700989749041320895890113781610939632410E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+   Peak relative error 1.7e-36
+   0.3125 <= 1/x <= 0.4375  */
+#define NP2r3_2r7N 9
+static const _Float128 P2r3_2r7N[NP2r3_2r7N + 1] = {
+  L(3.916766777108274628543759603786857387402E-6),
+  L(3.212176636756546217390661984304645137013E-4),
+  L(9.255768488524816445220126081207248947118E-3),
+  L(1.214853146369078277453080641911700735354E-1),
+  L(7.855163309847214136198449861311404633665E-1),
+  L(2.520058073282978403655488662066019816540E0),
+  L(3.825136484837545257209234285382183711466E0),
+  L(2.432569427554248006229715163865569506873E0),
+  L(4.877934835018231178495030117729800489743E-1),
+  L(1.109902737860249670981355149101343427885E-2),
+};
+#define NP2r3_2r7D 8
+static const _Float128 P2r3_2r7D[NP2r3_2r7D + 1] = {
+  L(3.342307880794065640312646341190547184461E-5),
+  L(2.782182891138893201544978009012096558265E-3),
+  L(8.221304931614200702142049236141249929207E-2),
+  L(1.123728246291165812392918571987858010949E0),
+  L(7.740482453652715577233858317133423434590E0),
+  L(2.737624677567945952953322566311201919139E1),
+  L(4.837181477096062403118304137851260715475E1),
+  L(3.941098643468580791437772701093795299274E1),
+  L(1.245821247166544627558323920382547533630E1),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* J1(x)cosX + Y1(x)sinX = sqrt( 2/(pi x)) P1(x), P1(x) = 1 + 1/x^2 R(1/x^2),
+   Peak relative error 1.7e-35
+   0.4375 <= 1/x <= 0.5  */
+#define NP2_2r3N 8
+static const _Float128 P2_2r3N[NP2_2r3N + 1] = {
+  L(3.397930802851248553545191160608731940751E-4),
+  L(2.104020902735482418784312825637833698217E-2),
+  L(4.442291771608095963935342749477836181939E-1),
+  L(4.131797328716583282869183304291833754967E0),
+  L(1.819920169779026500146134832455189917589E1),
+  L(3.781779616522937565300309684282401791291E1),
+  L(3.459605449728864218972931220783543410347E1),
+  L(1.173594248397603882049066603238568316561E1),
+  L(9.455702270242780642835086549285560316461E-1),
+};
+#define NP2_2r3D 8
+static const _Float128 P2_2r3D[NP2_2r3D + 1] = {
+  L(2.899568897241432883079888249845707400614E-3),
+  L(1.831107138190848460767699919531132426356E-1),
+  L(3.999350044057883839080258832758908825165E0),
+  L(3.929041535867957938340569419874195303712E1),
+  L(1.884245613422523323068802689915538908291E2),
+  L(4.461469948819229734353852978424629815929E2),
+  L(5.004998753999796821224085972610636347903E2),
+  L(2.386342520092608513170837883757163414100E2),
+  L(3.791322528149347975999851588922424189957E1),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 8.0e-36
+   0 <= 1/x <= .0625  */
+#define NQ16_IN 10
+static const _Float128 Q16_IN[NQ16_IN + 1] = {
+  L(-3.917420835712508001321875734030357393421E-18),
+  L(-4.440311387483014485304387406538069930457E-15),
+  L(-1.951635424076926487780929645954007139616E-12),
+  L(-4.318256438421012555040546775651612810513E-10),
+  L(-5.231244131926180765270446557146989238020E-8),
+  L(-3.540072702902043752460711989234732357653E-6),
+  L(-1.311017536555269966928228052917534882984E-4),
+  L(-2.495184669674631806622008769674827575088E-3),
+  L(-2.141868222987209028118086708697998506716E-2),
+  L(-6.184031415202148901863605871197272650090E-2),
+  L(-1.922298704033332356899546792898156493887E-2),
+};
+#define NQ16_ID 9
+static const _Float128 Q16_ID[NQ16_ID + 1] = {
+  L(3.820418034066293517479619763498400162314E-17),
+  L(4.340702810799239909648911373329149354911E-14),
+  L(1.914985356383416140706179933075303538524E-11),
+  L(4.262333682610888819476498617261895474330E-9),
+  L(5.213481314722233980346462747902942182792E-7),
+  L(3.585741697694069399299005316809954590558E-5),
+  L(1.366513429642842006385029778105539457546E-3),
+  L(2.745282599850704662726337474371355160594E-2),
+  L(2.637644521611867647651200098449903330074E-1),
+  L(1.006953426110765984590782655598680488746E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+ };
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 1.9e-36
+   0.0625 <= 1/x <= 0.125  */
+#define NQ8_16N 11
+static const _Float128 Q8_16N[NQ8_16N + 1] = {
+  L(-2.028630366670228670781362543615221542291E-17),
+  L(-1.519634620380959966438130374006858864624E-14),
+  L(-4.540596528116104986388796594639405114524E-12),
+  L(-7.085151756671466559280490913558388648274E-10),
+  L(-6.351062671323970823761883833531546885452E-8),
+  L(-3.390817171111032905297982523519503522491E-6),
+  L(-1.082340897018886970282138836861233213972E-4),
+  L(-2.020120801187226444822977006648252379508E-3),
+  L(-2.093169910981725694937457070649605557555E-2),
+  L(-1.092176538874275712359269481414448063393E-1),
+  L(-2.374790947854765809203590474789108718733E-1),
+  L(-1.365364204556573800719985118029601401323E-1),
+};
+#define NQ8_16D 11
+static const _Float128 Q8_16D[NQ8_16D + 1] = {
+  L(1.978397614733632533581207058069628242280E-16),
+  L(1.487361156806202736877009608336766720560E-13),
+  L(4.468041406888412086042576067133365913456E-11),
+  L(7.027822074821007443672290507210594648877E-9),
+  L(6.375740580686101224127290062867976007374E-7),
+  L(3.466887658320002225888644977076410421940E-5),
+  L(1.138625640905289601186353909213719596986E-3),
+  L(2.224470799470414663443449818235008486439E-2),
+  L(2.487052928527244907490589787691478482358E-1),
+  L(1.483927406564349124649083853892380899217E0),
+  L(4.182773513276056975777258788903489507705E0),
+  L(4.419665392573449746043880892524360870944E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 1.5e-35
+   0.125 <= 1/x <= 0.1875  */
+#define NQ5_8N 10
+static const _Float128 Q5_8N[NQ5_8N + 1] = {
+  L(-3.656082407740970534915918390488336879763E-13),
+  L(-1.344660308497244804752334556734121771023E-10),
+  L(-1.909765035234071738548629788698150760791E-8),
+  L(-1.366668038160120210269389551283666716453E-6),
+  L(-5.392327355984269366895210704976314135683E-5),
+  L(-1.206268245713024564674432357634540343884E-3),
+  L(-1.515456784370354374066417703736088291287E-2),
+  L(-1.022454301137286306933217746545237098518E-1),
+  L(-3.373438906472495080504907858424251082240E-1),
+  L(-4.510782522110845697262323973549178453405E-1),
+  L(-1.549000892545288676809660828213589804884E-1),
+};
+#define NQ5_8D 10
+static const _Float128 Q5_8D[NQ5_8D + 1] = {
+  L(3.565550843359501079050699598913828460036E-12),
+  L(1.321016015556560621591847454285330528045E-9),
+  L(1.897542728662346479999969679234270605975E-7),
+  L(1.381720283068706710298734234287456219474E-5),
+  L(5.599248147286524662305325795203422873725E-4),
+  L(1.305442352653121436697064782499122164843E-2),
+  L(1.750234079626943298160445750078631894985E-1),
+  L(1.311420542073436520965439883806946678491E0),
+  L(5.162757689856842406744504211089724926650E0),
+  L(9.527760296384704425618556332087850581308E0),
+  L(6.604648207463236667912921642545100248584E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 1.3e-35
+   0.1875 <= 1/x <= 0.25  */
+#define NQ4_5N 10
+static const _Float128 Q4_5N[NQ4_5N + 1] = {
+  L(-4.079513568708891749424783046520200903755E-11),
+  L(-9.326548104106791766891812583019664893311E-9),
+  L(-8.016795121318423066292906123815687003356E-7),
+  L(-3.372350544043594415609295225664186750995E-5),
+  L(-7.566238665947967882207277686375417983917E-4),
+  L(-9.248861580055565402130441618521591282617E-3),
+  L(-6.033106131055851432267702948850231270338E-2),
+  L(-1.966908754799996793730369265431584303447E-1),
+  L(-2.791062741179964150755788226623462207560E-1),
+  L(-1.255478605849190549914610121863534191666E-1),
+  L(-4.320429862021265463213168186061696944062E-3),
+};
+#define NQ4_5D 9
+static const _Float128 Q4_5D[NQ4_5D + 1] = {
+  L(3.978497042580921479003851216297330701056E-10),
+  L(9.203304163828145809278568906420772246666E-8),
+  L(8.059685467088175644915010485174545743798E-6),
+  L(3.490187375993956409171098277561669167446E-4),
+  L(8.189109654456872150100501732073810028829E-3),
+  L(1.072572867311023640958725265762483033769E-1),
+  L(7.790606862409960053675717185714576937994E-1),
+  L(3.016049768232011196434185423512777656328E0),
+  L(5.722963851442769787733717162314477949360E0),
+  L(4.510527838428473279647251350931380867663E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 2.1e-35
+   0.25 <= 1/x <= 0.3125  */
+#define NQ3r2_4N 9
+static const _Float128 Q3r2_4N[NQ3r2_4N + 1] = {
+  L(-1.087480809271383885936921889040388133627E-8),
+  L(-1.690067828697463740906962973479310170932E-6),
+  L(-9.608064416995105532790745641974762550982E-5),
+  L(-2.594198839156517191858208513873961837410E-3),
+  L(-3.610954144421543968160459863048062977822E-2),
+  L(-2.629866798251843212210482269563961685666E-1),
+  L(-9.709186825881775885917984975685752956660E-1),
+  L(-1.667521829918185121727268867619982417317E0),
+  L(-1.109255082925540057138766105229900943501E0),
+  L(-1.812932453006641348145049323713469043328E-1),
+};
+#define NQ3r2_4D 9
+static const _Float128 Q3r2_4D[NQ3r2_4D + 1] = {
+  L(1.060552717496912381388763753841473407026E-7),
+  L(1.676928002024920520786883649102388708024E-5),
+  L(9.803481712245420839301400601140812255737E-4),
+  L(2.765559874262309494758505158089249012930E-2),
+  L(4.117921827792571791298862613287549140706E-1),
+  L(3.323769515244751267093378361930279161413E0),
+  L(1.436602494405814164724810151689705353670E1),
+  L(3.163087869617098638064881410646782408297E1),
+  L(3.198181264977021649489103980298349589419E1),
+  L(1.203649258862068431199471076202897823272E1),
+ /* 1.000000000000000000000000000000000000000E0  */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 1.6e-36
+   0.3125 <= 1/x <= 0.375  */
+#define NQ2r7_3r2N 9
+static const _Float128 Q2r7_3r2N[NQ2r7_3r2N + 1] = {
+  L(-1.723405393982209853244278760171643219530E-7),
+  L(-2.090508758514655456365709712333460087442E-5),
+  L(-9.140104013370974823232873472192719263019E-4),
+  L(-1.871349499990714843332742160292474780128E-2),
+  L(-1.948930738119938669637865956162512983416E-1),
+  L(-1.048764684978978127908439526343174139788E0),
+  L(-2.827714929925679500237476105843643064698E0),
+  L(-3.508761569156476114276988181329773987314E0),
+  L(-1.669332202790211090973255098624488308989E0),
+  L(-1.930796319299022954013840684651016077770E-1),
+};
+#define NQ2r7_3r2D 9
+static const _Float128 Q2r7_3r2D[NQ2r7_3r2D + 1] = {
+  L(1.680730662300831976234547482334347983474E-6),
+  L(2.084241442440551016475972218719621841120E-4),
+  L(9.445316642108367479043541702688736295579E-3),
+  L(2.044637889456631896650179477133252184672E-1),
+  L(2.316091982244297350829522534435350078205E0),
+  L(1.412031891783015085196708811890448488865E1),
+  L(4.583830154673223384837091077279595496149E1),
+  L(7.549520609270909439885998474045974122261E1),
+  L(5.697605832808113367197494052388203310638E1),
+  L(1.601496240876192444526383314589371686234E1),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 9.5e-36
+   0.375 <= 1/x <= 0.4375  */
+#define NQ2r3_2r7N 9
+static const _Float128 Q2r3_2r7N[NQ2r3_2r7N + 1] = {
+  L(-8.603042076329122085722385914954878953775E-7),
+  L(-7.701746260451647874214968882605186675720E-5),
+  L(-2.407932004380727587382493696877569654271E-3),
+  L(-3.403434217607634279028110636919987224188E-2),
+  L(-2.348707332185238159192422084985713102877E-1),
+  L(-7.957498841538254916147095255700637463207E-1),
+  L(-1.258469078442635106431098063707934348577E0),
+  L(-8.162415474676345812459353639449971369890E-1),
+  L(-1.581783890269379690141513949609572806898E-1),
+  L(-1.890595651683552228232308756569450822905E-3),
+};
+#define NQ2r3_2r7D 8
+static const _Float128 Q2r3_2r7D[NQ2r3_2r7D + 1] = {
+  L(8.390017524798316921170710533381568175665E-6),
+  L(7.738148683730826286477254659973968763659E-4),
+  L(2.541480810958665794368759558791634341779E-2),
+  L(3.878879789711276799058486068562386244873E-1),
+  L(3.003783779325811292142957336802456109333E0),
+  L(1.206480374773322029883039064575464497400E1),
+  L(2.458414064785315978408974662900438351782E1),
+  L(2.367237826273668567199042088835448715228E1),
+  L(9.231451197519171090875569102116321676763E0),
+ /* 1.000000000000000000000000000000000000000E0 */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = 1/x (.375 + 1/x^2 R(1/x^2)),
+   Peak relative error 1.4e-36
+   0.4375 <= 1/x <= 0.5  */
+#define NQ2_2r3N 9
+static const _Float128 Q2_2r3N[NQ2_2r3N + 1] = {
+  L(-5.552507516089087822166822364590806076174E-6),
+  L(-4.135067659799500521040944087433752970297E-4),
+  L(-1.059928728869218962607068840646564457980E-2),
+  L(-1.212070036005832342565792241385459023801E-1),
+  L(-6.688350110633603958684302153362735625156E-1),
+  L(-1.793587878197360221340277951304429821582E0),
+  L(-2.225407682237197485644647380483725045326E0),
+  L(-1.123402135458940189438898496348239744403E0),
+  L(-1.679187241566347077204805190763597299805E-1),
+  L(-1.458550613639093752909985189067233504148E-3),
+};
+#define NQ2_2r3D 8
+static const _Float128 Q2_2r3D[NQ2_2r3D + 1] = {
+  L(5.415024336507980465169023996403597916115E-5),
+  L(4.179246497380453022046357404266022870788E-3),
+  L(1.136306384261959483095442402929502368598E-1),
+  L(1.422640343719842213484515445393284072830E0),
+  L(8.968786703393158374728850922289204805764E0),
+  L(2.914542473339246127533384118781216495934E1),
+  L(4.781605421020380669870197378210457054685E1),
+  L(3.693865837171883152382820584714795072937E1),
+  L(1.153220502744204904763115556224395893076E1),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Bessel function of the first kind, order one.  */
+
+_Float128
+__ieee754_j1l (_Float128 x)
+{
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
+
+  if (! isfinite (x))
+    {
+      if (x != x)
+	return x + x;
+      else
+	return 0;
+    }
+  if (x == 0)
+    return x;
+  xx = fabsl (x);
+  if (xx <= L(0x1p-58))
+    {
+      _Float128 ret = x * L(0.5);
+      math_check_force_underflow (ret);
+      if (ret == 0)
+	__set_errno (ERANGE);
+      return ret;
+    }
+  if (xx <= 2)
+    {
+      /* 0 <= x <= 2 */
+      z = xx * xx;
+      p = xx * z * neval (z, J0_2N, NJ0_2N) / deval (z, J0_2D, NJ0_2D);
+      p += L(0.5) * xx;
+      if (x < 0)
+	p = -p;
+      return p;
+    }
+
+  /* X = x - 3 pi/4
+     cos(X) = cos(x) cos(3 pi/4) + sin(x) sin(3 pi/4)
+     = 1/sqrt(2) * (-cos(x) + sin(x))
+     sin(X) = sin(x) cos(3 pi/4) - cos(x) sin(3 pi/4)
+     = -1/sqrt(2) * (sin(x) + cos(x))
+     cf. Fdlibm.  */
+  __sincosl (xx, &s, &c);
+  ss = -s - c;
+  cc = s - c;
+  if (xx <= LDBL_MAX / 2)
+    {
+      z = __cosl (xx + xx);
+      if ((s * c) > 0)
+	cc = z / ss;
+      else
+	ss = z / cc;
+    }
+
+  if (xx > L(0x1p256))
+    {
+      z = ONEOSQPI * cc / __ieee754_sqrtl (xx);
+      if (x < 0)
+	z = -z;
+      return z;
+    }
+
+  xinv = 1 / xx;
+  z = xinv * xinv;
+  if (xinv <= 0.25)
+    {
+      if (xinv <= 0.125)
+	{
+	  if (xinv <= 0.0625)
+	    {
+	      p = neval (z, P16_IN, NP16_IN) / deval (z, P16_ID, NP16_ID);
+	      q = neval (z, Q16_IN, NQ16_IN) / deval (z, Q16_ID, NQ16_ID);
+	    }
+	  else
+	    {
+	      p = neval (z, P8_16N, NP8_16N) / deval (z, P8_16D, NP8_16D);
+	      q = neval (z, Q8_16N, NQ8_16N) / deval (z, Q8_16D, NQ8_16D);
+	    }
+	}
+      else if (xinv <= 0.1875)
+	{
+	  p = neval (z, P5_8N, NP5_8N) / deval (z, P5_8D, NP5_8D);
+	  q = neval (z, Q5_8N, NQ5_8N) / deval (z, Q5_8D, NQ5_8D);
+	}
+      else
+	{
+	  p = neval (z, P4_5N, NP4_5N) / deval (z, P4_5D, NP4_5D);
+	  q = neval (z, Q4_5N, NQ4_5N) / deval (z, Q4_5D, NQ4_5D);
+	}
+    }				/* .25 */
+  else /* if (xinv <= 0.5) */
+    {
+      if (xinv <= 0.375)
+	{
+	  if (xinv <= 0.3125)
+	    {
+	      p = neval (z, P3r2_4N, NP3r2_4N) / deval (z, P3r2_4D, NP3r2_4D);
+	      q = neval (z, Q3r2_4N, NQ3r2_4N) / deval (z, Q3r2_4D, NQ3r2_4D);
+	    }
+	  else
+	    {
+	      p = neval (z, P2r7_3r2N, NP2r7_3r2N)
+		  / deval (z, P2r7_3r2D, NP2r7_3r2D);
+	      q = neval (z, Q2r7_3r2N, NQ2r7_3r2N)
+		  / deval (z, Q2r7_3r2D, NQ2r7_3r2D);
+	    }
+	}
+      else if (xinv <= 0.4375)
+	{
+	  p = neval (z, P2r3_2r7N, NP2r3_2r7N)
+	      / deval (z, P2r3_2r7D, NP2r3_2r7D);
+	  q = neval (z, Q2r3_2r7N, NQ2r3_2r7N)
+	      / deval (z, Q2r3_2r7D, NQ2r3_2r7D);
+	}
+      else
+	{
+	  p = neval (z, P2_2r3N, NP2_2r3N) / deval (z, P2_2r3D, NP2_2r3D);
+	  q = neval (z, Q2_2r3N, NQ2_2r3N) / deval (z, Q2_2r3D, NQ2_2r3D);
+	}
+    }
+  p = 1 + z * p;
+  q = z * q;
+  q = q * xinv + L(0.375) * xinv;
+  z = ONEOSQPI * (p * cc - q * ss) / __ieee754_sqrtl (xx);
+  if (x < 0)
+    z = -z;
+  return z;
+}
+strong_alias (__ieee754_j1l, __j1l_finite)
+
+
+/* Y1(x) = 2/pi * (log(x) * J1(x) - 1/x) + x R(x^2)
+   Peak relative error 6.2e-38
+   0 <= x <= 2   */
+#define NY0_2N 7
+static _Float128 Y0_2N[NY0_2N + 1] = {
+  L(-6.804415404830253804408698161694720833249E19),
+  L(1.805450517967019908027153056150465849237E19),
+  L(-8.065747497063694098810419456383006737312E17),
+  L(1.401336667383028259295830955439028236299E16),
+  L(-1.171654432898137585000399489686629680230E14),
+  L(5.061267920943853732895341125243428129150E11),
+  L(-1.096677850566094204586208610960870217970E9),
+  L(9.541172044989995856117187515882879304461E5),
+};
+#define NY0_2D 7
+static _Float128 Y0_2D[NY0_2D + 1] = {
+  L(3.470629591820267059538637461549677594549E20),
+  L(4.120796439009916326855848107545425217219E18),
+  L(2.477653371652018249749350657387030814542E16),
+  L(9.954678543353888958177169349272167762797E13),
+  L(2.957927997613630118216218290262851197754E11),
+  L(6.748421382188864486018861197614025972118E8),
+  L(1.173453425218010888004562071020305709319E6),
+  L(1.450335662961034949894009554536003377187E3),
+  /* 1.000000000000000000000000000000000000000E0 */
+};
+
+
+/* Bessel function of the second kind, order one.  */
+
+_Float128
+__ieee754_y1l (_Float128 x)
+{
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
+
+  if (! isfinite (x))
+    return 1 / (x + x * x);
+  if (x <= 0)
+    {
+      if (x < 0)
+	return (zero / (zero * x));
+      return -1 / zero; /* -inf and divide by zero exception.  */
+    }
+  xx = fabsl (x);
+  if (xx <= 0x1p-114)
+    {
+      z = -TWOOPI / x;
+      if (isinf (z))
+	__set_errno (ERANGE);
+      return z;
+    }
+  if (xx <= 2)
+    {
+      /* 0 <= x <= 2 */
+      SET_RESTORE_ROUNDL (FE_TONEAREST);
+      z = xx * xx;
+      p = xx * neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D);
+      p = -TWOOPI / xx + p;
+      p = TWOOPI * __ieee754_logl (x) * __ieee754_j1l (x) + p;
+      return p;
+    }
+
+  /* X = x - 3 pi/4
+     cos(X) = cos(x) cos(3 pi/4) + sin(x) sin(3 pi/4)
+     = 1/sqrt(2) * (-cos(x) + sin(x))
+     sin(X) = sin(x) cos(3 pi/4) - cos(x) sin(3 pi/4)
+     = -1/sqrt(2) * (sin(x) + cos(x))
+     cf. Fdlibm.  */
+  __sincosl (xx, &s, &c);
+  ss = -s - c;
+  cc = s - c;
+  if (xx <= LDBL_MAX / 2)
+    {
+      z = __cosl (xx + xx);
+      if ((s * c) > 0)
+	cc = z / ss;
+      else
+	ss = z / cc;
+    }
+
+  if (xx > L(0x1p256))
+    return ONEOSQPI * ss / __ieee754_sqrtl (xx);
+
+  xinv = 1 / xx;
+  z = xinv * xinv;
+  if (xinv <= 0.25)
+    {
+      if (xinv <= 0.125)
+	{
+	  if (xinv <= 0.0625)
+	    {
+	      p = neval (z, P16_IN, NP16_IN) / deval (z, P16_ID, NP16_ID);
+	      q = neval (z, Q16_IN, NQ16_IN) / deval (z, Q16_ID, NQ16_ID);
+	    }
+	  else
+	    {
+	      p = neval (z, P8_16N, NP8_16N) / deval (z, P8_16D, NP8_16D);
+	      q = neval (z, Q8_16N, NQ8_16N) / deval (z, Q8_16D, NQ8_16D);
+	    }
+	}
+      else if (xinv <= 0.1875)
+	{
+	  p = neval (z, P5_8N, NP5_8N) / deval (z, P5_8D, NP5_8D);
+	  q = neval (z, Q5_8N, NQ5_8N) / deval (z, Q5_8D, NQ5_8D);
+	}
+      else
+	{
+	  p = neval (z, P4_5N, NP4_5N) / deval (z, P4_5D, NP4_5D);
+	  q = neval (z, Q4_5N, NQ4_5N) / deval (z, Q4_5D, NQ4_5D);
+	}
+    }				/* .25 */
+  else /* if (xinv <= 0.5) */
+    {
+      if (xinv <= 0.375)
+	{
+	  if (xinv <= 0.3125)
+	    {
+	      p = neval (z, P3r2_4N, NP3r2_4N) / deval (z, P3r2_4D, NP3r2_4D);
+	      q = neval (z, Q3r2_4N, NQ3r2_4N) / deval (z, Q3r2_4D, NQ3r2_4D);
+	    }
+	  else
+	    {
+	      p = neval (z, P2r7_3r2N, NP2r7_3r2N)
+		  / deval (z, P2r7_3r2D, NP2r7_3r2D);
+	      q = neval (z, Q2r7_3r2N, NQ2r7_3r2N)
+		  / deval (z, Q2r7_3r2D, NQ2r7_3r2D);
+	    }
+	}
+      else if (xinv <= 0.4375)
+	{
+	  p = neval (z, P2r3_2r7N, NP2r3_2r7N)
+	      / deval (z, P2r3_2r7D, NP2r3_2r7D);
+	  q = neval (z, Q2r3_2r7N, NQ2r3_2r7N)
+	      / deval (z, Q2r3_2r7D, NQ2r3_2r7D);
+	}
+      else
+	{
+	  p = neval (z, P2_2r3N, NP2_2r3N) / deval (z, P2_2r3D, NP2_2r3D);
+	  q = neval (z, Q2_2r3N, NQ2_2r3N) / deval (z, Q2_2r3D, NQ2_2r3D);
+	}
+    }
+  p = 1 + z * p;
+  q = z * q;
+  q = q * xinv + L(0.375) * xinv;
+  z = ONEOSQPI * (p * ss + q * cc) / __ieee754_sqrtl (xx);
+  return z;
+}
+strong_alias (__ieee754_y1l, __y1l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_jnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_jnl.c
new file mode 100644
index 0000000000..470631e600
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_jnl.c
@@ -0,0 +1,419 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Modifications for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/*
+ * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * floating point Bessel's function of the 1st and 2nd kind
+ * of order n
+ *
+ * Special cases:
+ *	y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal;
+ *	y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
+ * Note 2. About jn(n,x), yn(n,x)
+ *	For n=0, j0(x) is called,
+ *	for n=1, j1(x) is called,
+ *	for n<x, forward recursion us used starting
+ *	from values of j0(x) and j1(x).
+ *	for n>x, a continued fraction approximation to
+ *	j(n,x)/j(n-1,x) is evaluated and then backward
+ *	recursion is used starting from a supposed value
+ *	for j(n,x). The resulting value of j(0,x) is
+ *	compared with the actual value to correct the
+ *	supposed value of j(n,x).
+ *
+ *	yn(n,x) is similar in all respects, except
+ *	that forward recursion is used for all
+ *	values of n>1.
+ *
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+  invsqrtpi = L(5.6418958354775628694807945156077258584405E-1),
+  two = 2,
+  one = 1,
+  zero = 0;
+
+
+_Float128
+__ieee754_jnl (int n, _Float128 x)
+{
+  u_int32_t se;
+  int32_t i, ix, sgn;
+  _Float128 a, b, temp, di, ret;
+  _Float128 z, w;
+  ieee854_long_double_shape_type u;
+
+
+  /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
+   * Thus, J(-n,x) = J(n,-x)
+   */
+
+  u.value = x;
+  se = u.parts32.w0;
+  ix = se & 0x7fffffff;
+
+  /* if J(n,NaN) is NaN */
+  if (ix >= 0x7fff0000)
+    {
+      if ((u.parts32.w0 & 0xffff) | u.parts32.w1 | u.parts32.w2 | u.parts32.w3)
+	return x + x;
+    }
+
+  if (n < 0)
+    {
+      n = -n;
+      x = -x;
+      se ^= 0x80000000;
+    }
+  if (n == 0)
+    return (__ieee754_j0l (x));
+  if (n == 1)
+    return (__ieee754_j1l (x));
+  sgn = (n & 1) & (se >> 31);	/* even n -- 0, odd n -- sign(x) */
+  x = fabsl (x);
+
+  {
+    SET_RESTORE_ROUNDL (FE_TONEAREST);
+    if (x == 0 || ix >= 0x7fff0000)	/* if x is 0 or inf */
+      return sgn == 1 ? -zero : zero;
+    else if ((_Float128) n <= x)
+      {
+	/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
+	if (ix >= 0x412D0000)
+	  {			/* x > 2**302 */
+
+	    /* ??? Could use an expansion for large x here.  */
+
+	    /* (x >> n**2)
+	     *      Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	     *      Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	     *      Let s=sin(x), c=cos(x),
+	     *          xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+	     *
+	     *             n    sin(xn)*sqt2    cos(xn)*sqt2
+	     *          ----------------------------------
+	     *             0     s-c             c+s
+	     *             1    -s-c            -c+s
+	     *             2    -s+c            -c-s
+	     *             3     s+c             c-s
+	     */
+	    _Float128 s;
+	    _Float128 c;
+	    __sincosl (x, &s, &c);
+	    switch (n & 3)
+	      {
+	      case 0:
+		temp = c + s;
+		break;
+	      case 1:
+		temp = -c + s;
+		break;
+	      case 2:
+		temp = -c - s;
+		break;
+	      case 3:
+		temp = c - s;
+		break;
+	      }
+	    b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	  }
+	else
+	  {
+	    a = __ieee754_j0l (x);
+	    b = __ieee754_j1l (x);
+	    for (i = 1; i < n; i++)
+	      {
+		temp = b;
+		b = b * ((_Float128) (i + i) / x) - a;	/* avoid underflow */
+		a = temp;
+	      }
+	  }
+      }
+    else
+      {
+	if (ix < 0x3fc60000)
+	  {			/* x < 2**-57 */
+	    /* x is tiny, return the first Taylor expansion of J(n,x)
+	     * J(n,x) = 1/n!*(x/2)^n  - ...
+	     */
+	    if (n >= 400)		/* underflow, result < 10^-4952 */
+	      b = zero;
+	    else
+	      {
+		temp = x * 0.5;
+		b = temp;
+		for (a = one, i = 2; i <= n; i++)
+		  {
+		    a *= (_Float128) i;	/* a = n! */
+		    b *= temp;	/* b = (x/2)^n */
+		  }
+		b = b / a;
+	      }
+	  }
+	else
+	  {
+	    /* use backward recurrence */
+	    /*                      x      x^2      x^2
+	     *  J(n,x)/J(n-1,x) =  ----   ------   ------   .....
+	     *                      2n  - 2(n+1) - 2(n+2)
+	     *
+	     *                      1      1        1
+	     *  (for large x)   =  ----  ------   ------   .....
+	     *                      2n   2(n+1)   2(n+2)
+	     *                      -- - ------ - ------ -
+	     *                       x     x         x
+	     *
+	     * Let w = 2n/x and h=2/x, then the above quotient
+	     * is equal to the continued fraction:
+	     *                  1
+	     *      = -----------------------
+	     *                     1
+	     *         w - -----------------
+	     *                        1
+	     *              w+h - ---------
+	     *                     w+2h - ...
+	     *
+	     * To determine how many terms needed, let
+	     * Q(0) = w, Q(1) = w(w+h) - 1,
+	     * Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
+	     * When Q(k) > 1e4      good for single
+	     * When Q(k) > 1e9      good for double
+	     * When Q(k) > 1e17     good for quadruple
+	     */
+	    /* determine k */
+	    _Float128 t, v;
+	    _Float128 q0, q1, h, tmp;
+	    int32_t k, m;
+	    w = (n + n) / (_Float128) x;
+	    h = 2 / (_Float128) x;
+	    q0 = w;
+	    z = w + h;
+	    q1 = w * z - 1;
+	    k = 1;
+	    while (q1 < L(1.0e17))
+	      {
+		k += 1;
+		z += h;
+		tmp = z * q1 - q0;
+		q0 = q1;
+		q1 = tmp;
+	      }
+	    m = n + n;
+	    for (t = zero, i = 2 * (n + k); i >= m; i -= 2)
+	      t = one / (i / x - t);
+	    a = t;
+	    b = one;
+	    /*  estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n)
+	     *  Hence, if n*(log(2n/x)) > ...
+	     *  single 8.8722839355e+01
+	     *  double 7.09782712893383973096e+02
+	     *  long double 1.1356523406294143949491931077970765006170e+04
+	     *  then recurrent value may overflow and the result is
+	     *  likely underflow to zero
+	     */
+	    tmp = n;
+	    v = two / x;
+	    tmp = tmp * __ieee754_logl (fabsl (v * tmp));
+
+	    if (tmp < L(1.1356523406294143949491931077970765006170e+04))
+	      {
+		for (i = n - 1, di = (_Float128) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		  }
+	      }
+	    else
+	      {
+		for (i = n - 1, di = (_Float128) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		    /* scale b to avoid spurious overflow */
+		    if (b > L(1e100))
+		      {
+			a /= b;
+			t /= b;
+			b = one;
+		      }
+		  }
+	      }
+	    /* j0() and j1() suffer enormous loss of precision at and
+	     * near zero; however, we know that their zero points never
+	     * coincide, so just choose the one further away from zero.
+	     */
+	    z = __ieee754_j0l (x);
+	    w = __ieee754_j1l (x);
+	    if (fabsl (z) >= fabsl (w))
+	      b = (t * z / b);
+	    else
+	      b = (t * w / a);
+	  }
+      }
+    if (sgn == 1)
+      ret = -b;
+    else
+      ret = b;
+  }
+  if (ret == 0)
+    {
+      ret = __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+      __set_errno (ERANGE);
+    }
+  else
+    math_check_force_underflow (ret);
+  return ret;
+}
+strong_alias (__ieee754_jnl, __jnl_finite)
+
+_Float128
+__ieee754_ynl (int n, _Float128 x)
+{
+  u_int32_t se;
+  int32_t i, ix;
+  int32_t sign;
+  _Float128 a, b, temp, ret;
+  ieee854_long_double_shape_type u;
+
+  u.value = x;
+  se = u.parts32.w0;
+  ix = se & 0x7fffffff;
+
+  /* if Y(n,NaN) is NaN */
+  if (ix >= 0x7fff0000)
+    {
+      if ((u.parts32.w0 & 0xffff) | u.parts32.w1 | u.parts32.w2 | u.parts32.w3)
+	return x + x;
+    }
+  if (x <= 0)
+    {
+      if (x == 0)
+	return ((n < 0 && (n & 1) != 0) ? 1 : -1) / L(0.0);
+      if (se & 0x80000000)
+	return zero / (zero * x);
+    }
+  sign = 1;
+  if (n < 0)
+    {
+      n = -n;
+      sign = 1 - ((n & 1) << 1);
+    }
+  if (n == 0)
+    return (__ieee754_y0l (x));
+  {
+    SET_RESTORE_ROUNDL (FE_TONEAREST);
+    if (n == 1)
+      {
+	ret = sign * __ieee754_y1l (x);
+	goto out;
+      }
+    if (ix >= 0x7fff0000)
+      return zero;
+    if (ix >= 0x412D0000)
+      {				/* x > 2**302 */
+
+	/* ??? See comment above on the possible futility of this.  */
+
+	/* (x >> n**2)
+	 *      Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *      Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *      Let s=sin(x), c=cos(x),
+	 *          xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+	 *
+	 *             n    sin(xn)*sqt2    cos(xn)*sqt2
+	 *          ----------------------------------
+	 *             0     s-c             c+s
+	 *             1    -s-c            -c+s
+	 *             2    -s+c            -c-s
+	 *             3     s+c             c-s
+	 */
+	_Float128 s;
+	_Float128 c;
+	__sincosl (x, &s, &c);
+	switch (n & 3)
+	  {
+	  case 0:
+	    temp = s - c;
+	    break;
+	  case 1:
+	    temp = -s - c;
+	    break;
+	  case 2:
+	    temp = -s + c;
+	    break;
+	  case 3:
+	    temp = s + c;
+	    break;
+	  }
+	b = invsqrtpi * temp / __ieee754_sqrtl (x);
+      }
+    else
+      {
+	a = __ieee754_y0l (x);
+	b = __ieee754_y1l (x);
+	/* quit if b is -inf */
+	u.value = b;
+	se = u.parts32.w0 & 0xffff0000;
+	for (i = 1; i < n && se != 0xffff0000; i++)
+	  {
+	    temp = b;
+	    b = ((_Float128) (i + i) / x) * b - a;
+	    u.value = b;
+	    se = u.parts32.w0 & 0xffff0000;
+	    a = temp;
+	  }
+      }
+    /* If B is +-Inf, set up errno accordingly.  */
+    if (! isfinite (b))
+      __set_errno (ERANGE);
+    if (sign > 0)
+      ret = b;
+    else
+      ret = -b;
+  }
+ out:
+  if (isinf (ret))
+    ret = __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+  return ret;
+}
+strong_alias (__ieee754_ynl, __ynl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
new file mode 100644
index 0000000000..bef2601bce
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
@@ -0,0 +1,1046 @@
+/*                                                      lgammal
+ *
+ *      Natural logarithm of gamma function
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, lgammal();
+ * extern int sgngam;
+ *
+ * y = lgammal(x);
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base e (2.718...) logarithm of the absolute
+ * value of the gamma function of the argument.
+ * The sign (+1 or -1) of the gamma function is returned in a
+ * global (extern) variable named sgngam.
+ *
+ * The positive domain is partitioned into numerous segments for approximation.
+ * For x > 10,
+ *   log gamma(x) = (x - 0.5) log(x) - x + log sqrt(2 pi) + 1/x R(1/x^2)
+ * Near the minimum at x = x0 = 1.46... the approximation is
+ *   log gamma(x0 + z) = log gamma(x0) + z^2 P(z)/Q(z)
+ * for small z.
+ * Elsewhere between 0 and 10,
+ *   log gamma(n + z) = log gamma(n) + z P(z)/Q(z)
+ * for various selected n and small z.
+ *
+ * The cosecant reflection formula is employed for negative arguments.
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *
+ * arithmetic      domain        # trials     peak         rms
+ *                                            Relative error:
+ *    IEEE         10, 30         100000     3.9e-34     9.8e-35
+ *    IEEE          0, 10         100000     3.8e-34     5.3e-35
+ *                                            Absolute error:
+ *    IEEE         -10, 0         100000     8.0e-34     8.0e-35
+ *    IEEE         -30, -10       100000     4.4e-34     1.0e-34
+ *    IEEE        -100, 100       100000                 1.0e-34
+ *
+ * The absolute error criterion is the same as relative error
+ * when the function magnitude is greater than one but it is absolute
+ * when the magnitude is less than one.
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+static const _Float128 PIL = L(3.1415926535897932384626433832795028841972E0);
+#if LDBL_MANT_DIG == 106
+static const _Float128 MAXLGM = L(0x5.d53649e2d469dbc1f01e99fd66p+1012);
+#else
+static const _Float128 MAXLGM = L(1.0485738685148938358098967157129705071571E4928);
+#endif
+static const _Float128 one = 1;
+static const _Float128 huge = LDBL_MAX;
+
+/* log gamma(x) = ( x - 0.5 ) * log(x) - x + LS2PI + 1/x P(1/x^2)
+   1/x <= 0.0741 (x >= 13.495...)
+   Peak relative error 1.5e-36  */
+static const _Float128 ls2pi = L(9.1893853320467274178032973640561763986140E-1);
+#define NRASY 12
+static const _Float128 RASY[NRASY + 1] =
+{
+  L(8.333333333333333333333333333310437112111E-2),
+ L(-2.777777777777777777777774789556228296902E-3),
+  L(7.936507936507936507795933938448586499183E-4),
+ L(-5.952380952380952041799269756378148574045E-4),
+  L(8.417508417507928904209891117498524452523E-4),
+ L(-1.917526917481263997778542329739806086290E-3),
+  L(6.410256381217852504446848671499409919280E-3),
+ L(-2.955064066900961649768101034477363301626E-2),
+  L(1.796402955865634243663453415388336954675E-1),
+ L(-1.391522089007758553455753477688592767741E0),
+  L(1.326130089598399157988112385013829305510E1),
+ L(-1.420412699593782497803472576479997819149E2),
+  L(1.218058922427762808938869872528846787020E3)
+};
+
+
+/* log gamma(x+13) = log gamma(13) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   12.5 <= x+13 <= 13.5
+   Peak relative error 1.1e-36  */
+static const _Float128 lgam13a = L(1.9987213134765625E1);
+static const _Float128 lgam13b = L(1.3608962611495173623870550785125024484248E-6);
+#define NRN13 7
+static const _Float128 RN13[NRN13 + 1] =
+{
+  L(8.591478354823578150238226576156275285700E11),
+  L(2.347931159756482741018258864137297157668E11),
+  L(2.555408396679352028680662433943000804616E10),
+  L(1.408581709264464345480765758902967123937E9),
+  L(4.126759849752613822953004114044451046321E7),
+  L(6.133298899622688505854211579222889943778E5),
+  L(3.929248056293651597987893340755876578072E3),
+  L(6.850783280018706668924952057996075215223E0)
+};
+#define NRD13 6
+static const _Float128 RD13[NRD13 + 1] =
+{
+  L(3.401225382297342302296607039352935541669E11),
+  L(8.756765276918037910363513243563234551784E10),
+  L(8.873913342866613213078554180987647243903E9),
+  L(4.483797255342763263361893016049310017973E8),
+  L(1.178186288833066430952276702931512870676E7),
+  L(1.519928623743264797939103740132278337476E5),
+  L(7.989298844938119228411117593338850892311E2)
+ /* 1.0E0L */
+};
+
+
+/* log gamma(x+12) = log gamma(12) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   11.5 <= x+12 <= 12.5
+   Peak relative error 4.1e-36  */
+static const _Float128 lgam12a = L(1.75023040771484375E1);
+static const _Float128 lgam12b = L(3.7687254483392876529072161996717039575982E-6);
+#define NRN12 7
+static const _Float128 RN12[NRN12 + 1] =
+{
+  L(4.709859662695606986110997348630997559137E11),
+  L(1.398713878079497115037857470168777995230E11),
+  L(1.654654931821564315970930093932954900867E10),
+  L(9.916279414876676861193649489207282144036E8),
+  L(3.159604070526036074112008954113411389879E7),
+  L(5.109099197547205212294747623977502492861E5),
+  L(3.563054878276102790183396740969279826988E3),
+  L(6.769610657004672719224614163196946862747E0)
+};
+#define NRD12 6
+static const _Float128 RD12[NRD12 + 1] =
+{
+  L(1.928167007860968063912467318985802726613E11),
+  L(5.383198282277806237247492369072266389233E10),
+  L(5.915693215338294477444809323037871058363E9),
+  L(3.241438287570196713148310560147925781342E8),
+  L(9.236680081763754597872713592701048455890E6),
+  L(1.292246897881650919242713651166596478850E5),
+  L(7.366532445427159272584194816076600211171E2)
+ /* 1.0E0L */
+};
+
+
+/* log gamma(x+11) = log gamma(11) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   10.5 <= x+11 <= 11.5
+   Peak relative error 1.8e-35  */
+static const _Float128 lgam11a = L(1.5104400634765625E1);
+static const _Float128 lgam11b = L(1.1938309890295225709329251070371882250744E-5);
+#define NRN11 7
+static const _Float128 RN11[NRN11 + 1] =
+{
+  L(2.446960438029415837384622675816736622795E11),
+  L(7.955444974446413315803799763901729640350E10),
+  L(1.030555327949159293591618473447420338444E10),
+  L(6.765022131195302709153994345470493334946E8),
+  L(2.361892792609204855279723576041468347494E7),
+  L(4.186623629779479136428005806072176490125E5),
+  L(3.202506022088912768601325534149383594049E3),
+  L(6.681356101133728289358838690666225691363E0)
+};
+#define NRD11 6
+static const _Float128 RD11[NRD11 + 1] =
+{
+  L(1.040483786179428590683912396379079477432E11),
+  L(3.172251138489229497223696648369823779729E10),
+  L(3.806961885984850433709295832245848084614E9),
+  L(2.278070344022934913730015420611609620171E8),
+  L(7.089478198662651683977290023829391596481E6),
+  L(1.083246385105903533237139380509590158658E5),
+  L(6.744420991491385145885727942219463243597E2)
+ /* 1.0E0L */
+};
+
+
+/* log gamma(x+10) = log gamma(10) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   9.5 <= x+10 <= 10.5
+   Peak relative error 5.4e-37  */
+static const _Float128 lgam10a = L(1.280181884765625E1);
+static const _Float128 lgam10b = L(8.6324252196112077178745667061642811492557E-6);
+#define NRN10 7
+static const _Float128 RN10[NRN10 + 1] =
+{
+  L(-1.239059737177249934158597996648808363783E14),
+  L(-4.725899566371458992365624673357356908719E13),
+  L(-7.283906268647083312042059082837754850808E12),
+  L(-5.802855515464011422171165179767478794637E11),
+  L(-2.532349691157548788382820303182745897298E10),
+  L(-5.884260178023777312587193693477072061820E8),
+  L(-6.437774864512125749845840472131829114906E6),
+  L(-2.350975266781548931856017239843273049384E4)
+};
+#define NRD10 7
+static const _Float128 RD10[NRD10 + 1] =
+{
+  L(-5.502645997581822567468347817182347679552E13),
+  L(-1.970266640239849804162284805400136473801E13),
+  L(-2.819677689615038489384974042561531409392E12),
+  L(-2.056105863694742752589691183194061265094E11),
+  L(-8.053670086493258693186307810815819662078E9),
+  L(-1.632090155573373286153427982504851867131E8),
+  L(-1.483575879240631280658077826889223634921E6),
+  L(-4.002806669713232271615885826373550502510E3)
+ /* 1.0E0L */
+};
+
+
+/* log gamma(x+9) = log gamma(9) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   8.5 <= x+9 <= 9.5
+   Peak relative error 3.6e-36  */
+static const _Float128 lgam9a = L(1.06045989990234375E1);
+static const _Float128 lgam9b = L(3.9037218127284172274007216547549861681400E-6);
+#define NRN9 7
+static const _Float128 RN9[NRN9 + 1] =
+{
+  L(-4.936332264202687973364500998984608306189E13),
+  L(-2.101372682623700967335206138517766274855E13),
+  L(-3.615893404644823888655732817505129444195E12),
+  L(-3.217104993800878891194322691860075472926E11),
+  L(-1.568465330337375725685439173603032921399E10),
+  L(-4.073317518162025744377629219101510217761E8),
+  L(-4.983232096406156139324846656819246974500E6),
+  L(-2.036280038903695980912289722995505277253E4)
+};
+#define NRD9 7
+static const _Float128 RD9[NRD9 + 1] =
+{
+  L(-2.306006080437656357167128541231915480393E13),
+  L(-9.183606842453274924895648863832233799950E12),
+  L(-1.461857965935942962087907301194381010380E12),
+  L(-1.185728254682789754150068652663124298303E11),
+  L(-5.166285094703468567389566085480783070037E9),
+  L(-1.164573656694603024184768200787835094317E8),
+  L(-1.177343939483908678474886454113163527909E6),
+  L(-3.529391059783109732159524500029157638736E3)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+8) = log gamma(8) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   7.5 <= x+8 <= 8.5
+   Peak relative error 2.4e-37  */
+static const _Float128 lgam8a = L(8.525146484375E0);
+static const _Float128 lgam8b = L(1.4876690414300165531036347125050759667737E-5);
+#define NRN8 8
+static const _Float128 RN8[NRN8 + 1] =
+{
+  L(6.600775438203423546565361176829139703289E11),
+  L(3.406361267593790705240802723914281025800E11),
+  L(7.222460928505293914746983300555538432830E10),
+  L(8.102984106025088123058747466840656458342E9),
+  L(5.157620015986282905232150979772409345927E8),
+  L(1.851445288272645829028129389609068641517E7),
+  L(3.489261702223124354745894067468953756656E5),
+  L(2.892095396706665774434217489775617756014E3),
+  L(6.596977510622195827183948478627058738034E0)
+};
+#define NRD8 7
+static const _Float128 RD8[NRD8 + 1] =
+{
+  L(3.274776546520735414638114828622673016920E11),
+  L(1.581811207929065544043963828487733970107E11),
+  L(3.108725655667825188135393076860104546416E10),
+  L(3.193055010502912617128480163681842165730E9),
+  L(1.830871482669835106357529710116211541839E8),
+  L(5.790862854275238129848491555068073485086E6),
+  L(9.305213264307921522842678835618803553589E4),
+  L(6.216974105861848386918949336819572333622E2)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+7) = log gamma(7) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   6.5 <= x+7 <= 7.5
+   Peak relative error 3.2e-36  */
+static const _Float128 lgam7a = L(6.5792388916015625E0);
+static const _Float128 lgam7b = L(1.2320408538495060178292903945321122583007E-5);
+#define NRN7 8
+static const _Float128 RN7[NRN7 + 1] =
+{
+  L(2.065019306969459407636744543358209942213E11),
+  L(1.226919919023736909889724951708796532847E11),
+  L(2.996157990374348596472241776917953749106E10),
+  L(3.873001919306801037344727168434909521030E9),
+  L(2.841575255593761593270885753992732145094E8),
+  L(1.176342515359431913664715324652399565551E7),
+  L(2.558097039684188723597519300356028511547E5),
+  L(2.448525238332609439023786244782810774702E3),
+  L(6.460280377802030953041566617300902020435E0)
+};
+#define NRD7 7
+static const _Float128 RD7[NRD7 + 1] =
+{
+  L(1.102646614598516998880874785339049304483E11),
+  L(6.099297512712715445879759589407189290040E10),
+  L(1.372898136289611312713283201112060238351E10),
+  L(1.615306270420293159907951633566635172343E9),
+  L(1.061114435798489135996614242842561967459E8),
+  L(3.845638971184305248268608902030718674691E6),
+  L(7.081730675423444975703917836972720495507E4),
+  L(5.423122582741398226693137276201344096370E2)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+6) = log gamma(6) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   5.5 <= x+6 <= 6.5
+   Peak relative error 6.2e-37  */
+static const _Float128 lgam6a = L(4.7874908447265625E0);
+static const _Float128 lgam6b = L(8.9805548349424770093452324304839959231517E-7);
+#define NRN6 8
+static const _Float128 RN6[NRN6 + 1] =
+{
+  L(-3.538412754670746879119162116819571823643E13),
+  L(-2.613432593406849155765698121483394257148E13),
+  L(-8.020670732770461579558867891923784753062E12),
+  L(-1.322227822931250045347591780332435433420E12),
+  L(-1.262809382777272476572558806855377129513E11),
+  L(-7.015006277027660872284922325741197022467E9),
+  L(-2.149320689089020841076532186783055727299E8),
+  L(-3.167210585700002703820077565539658995316E6),
+  L(-1.576834867378554185210279285358586385266E4)
+};
+#define NRD6 8
+static const _Float128 RD6[NRD6 + 1] =
+{
+  L(-2.073955870771283609792355579558899389085E13),
+  L(-1.421592856111673959642750863283919318175E13),
+  L(-4.012134994918353924219048850264207074949E12),
+  L(-6.013361045800992316498238470888523722431E11),
+  L(-5.145382510136622274784240527039643430628E10),
+  L(-2.510575820013409711678540476918249524123E9),
+  L(-6.564058379709759600836745035871373240904E7),
+  L(-7.861511116647120540275354855221373571536E5),
+  L(-2.821943442729620524365661338459579270561E3)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+5) = log gamma(5) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   4.5 <= x+5 <= 5.5
+   Peak relative error 3.4e-37  */
+static const _Float128 lgam5a = L(3.17803955078125E0);
+static const _Float128 lgam5b = L(1.4279566695619646941601297055408873990961E-5);
+#define NRN5 9
+static const _Float128 RN5[NRN5 + 1] =
+{
+  L(2.010952885441805899580403215533972172098E11),
+  L(1.916132681242540921354921906708215338584E11),
+  L(7.679102403710581712903937970163206882492E10),
+  L(1.680514903671382470108010973615268125169E10),
+  L(2.181011222911537259440775283277711588410E9),
+  L(1.705361119398837808244780667539728356096E8),
+  L(7.792391565652481864976147945997033946360E6),
+  L(1.910741381027985291688667214472560023819E5),
+  L(2.088138241893612679762260077783794329559E3),
+  L(6.330318119566998299106803922739066556550E0)
+};
+#define NRD5 8
+static const _Float128 RD5[NRD5 + 1] =
+{
+  L(1.335189758138651840605141370223112376176E11),
+  L(1.174130445739492885895466097516530211283E11),
+  L(4.308006619274572338118732154886328519910E10),
+  L(8.547402888692578655814445003283720677468E9),
+  L(9.934628078575618309542580800421370730906E8),
+  L(6.847107420092173812998096295422311820672E7),
+  L(2.698552646016599923609773122139463150403E6),
+  L(5.526516251532464176412113632726150253215E4),
+  L(4.772343321713697385780533022595450486932E2)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+4) = log gamma(4) +  x P(x)/Q(x)
+   -0.5 <= x <= 0.5
+   3.5 <= x+4 <= 4.5
+   Peak relative error 6.7e-37  */
+static const _Float128 lgam4a = L(1.791748046875E0);
+static const _Float128 lgam4b = L(1.1422353055000812477358380702272722990692E-5);
+#define NRN4 9
+static const _Float128 RN4[NRN4 + 1] =
+{
+  L(-1.026583408246155508572442242188887829208E13),
+  L(-1.306476685384622809290193031208776258809E13),
+  L(-7.051088602207062164232806511992978915508E12),
+  L(-2.100849457735620004967624442027793656108E12),
+  L(-3.767473790774546963588549871673843260569E11),
+  L(-4.156387497364909963498394522336575984206E10),
+  L(-2.764021460668011732047778992419118757746E9),
+  L(-1.036617204107109779944986471142938641399E8),
+  L(-1.895730886640349026257780896972598305443E6),
+  L(-1.180509051468390914200720003907727988201E4)
+};
+#define NRD4 9
+static const _Float128 RD4[NRD4 + 1] =
+{
+  L(-8.172669122056002077809119378047536240889E12),
+  L(-9.477592426087986751343695251801814226960E12),
+  L(-4.629448850139318158743900253637212801682E12),
+  L(-1.237965465892012573255370078308035272942E12),
+  L(-1.971624313506929845158062177061297598956E11),
+  L(-1.905434843346570533229942397763361493610E10),
+  L(-1.089409357680461419743730978512856675984E9),
+  L(-3.416703082301143192939774401370222822430E7),
+  L(-4.981791914177103793218433195857635265295E5),
+  L(-2.192507743896742751483055798411231453733E3)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+3) = log gamma(3) +  x P(x)/Q(x)
+   -0.25 <= x <= 0.5
+   2.75 <= x+3 <= 3.5
+   Peak relative error 6.0e-37  */
+static const _Float128 lgam3a = L(6.93145751953125E-1);
+static const _Float128 lgam3b = L(1.4286068203094172321214581765680755001344E-6);
+
+#define NRN3 9
+static const _Float128 RN3[NRN3 + 1] =
+{
+  L(-4.813901815114776281494823863935820876670E11),
+  L(-8.425592975288250400493910291066881992620E11),
+  L(-6.228685507402467503655405482985516909157E11),
+  L(-2.531972054436786351403749276956707260499E11),
+  L(-6.170200796658926701311867484296426831687E10),
+  L(-9.211477458528156048231908798456365081135E9),
+  L(-8.251806236175037114064561038908691305583E8),
+  L(-4.147886355917831049939930101151160447495E7),
+  L(-1.010851868928346082547075956946476932162E6),
+  L(-8.333374463411801009783402800801201603736E3)
+};
+#define NRD3 9
+static const _Float128 RD3[NRD3 + 1] =
+{
+  L(-5.216713843111675050627304523368029262450E11),
+  L(-8.014292925418308759369583419234079164391E11),
+  L(-5.180106858220030014546267824392678611990E11),
+  L(-1.830406975497439003897734969120997840011E11),
+  L(-3.845274631904879621945745960119924118925E10),
+  L(-4.891033385370523863288908070309417710903E9),
+  L(-3.670172254411328640353855768698287474282E8),
+  L(-1.505316381525727713026364396635522516989E7),
+  L(-2.856327162923716881454613540575964890347E5),
+  L(-1.622140448015769906847567212766206894547E3)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+2.5) = log gamma(2.5) +  x P(x)/Q(x)
+   -0.125 <= x <= 0.25
+   2.375 <= x+2.5 <= 2.75  */
+static const _Float128 lgam2r5a = L(2.8466796875E-1);
+static const _Float128 lgam2r5b = L(1.4901722919159632494669682701924320137696E-5);
+#define NRN2r5 8
+static const _Float128 RN2r5[NRN2r5 + 1] =
+{
+  L(-4.676454313888335499356699817678862233205E9),
+  L(-9.361888347911187924389905984624216340639E9),
+  L(-7.695353600835685037920815799526540237703E9),
+  L(-3.364370100981509060441853085968900734521E9),
+  L(-8.449902011848163568670361316804900559863E8),
+  L(-1.225249050950801905108001246436783022179E8),
+  L(-9.732972931077110161639900388121650470926E6),
+  L(-3.695711763932153505623248207576425983573E5),
+  L(-4.717341584067827676530426007495274711306E3)
+};
+#define NRD2r5 8
+static const _Float128 RD2r5[NRD2r5 + 1] =
+{
+  L(-6.650657966618993679456019224416926875619E9),
+  L(-1.099511409330635807899718829033488771623E10),
+  L(-7.482546968307837168164311101447116903148E9),
+  L(-2.702967190056506495988922973755870557217E9),
+  L(-5.570008176482922704972943389590409280950E8),
+  L(-6.536934032192792470926310043166993233231E7),
+  L(-4.101991193844953082400035444146067511725E6),
+  L(-1.174082735875715802334430481065526664020E5),
+  L(-9.932840389994157592102947657277692978511E2)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+2) = x P(x)/Q(x)
+   -0.125 <= x <= +0.375
+   1.875 <= x+2 <= 2.375
+   Peak relative error 4.6e-36  */
+#define NRN2 9
+static const _Float128 RN2[NRN2 + 1] =
+{
+  L(-3.716661929737318153526921358113793421524E9),
+  L(-1.138816715030710406922819131397532331321E10),
+  L(-1.421017419363526524544402598734013569950E10),
+  L(-9.510432842542519665483662502132010331451E9),
+  L(-3.747528562099410197957514973274474767329E9),
+  L(-8.923565763363912474488712255317033616626E8),
+  L(-1.261396653700237624185350402781338231697E8),
+  L(-9.918402520255661797735331317081425749014E6),
+  L(-3.753996255897143855113273724233104768831E5),
+  L(-4.778761333044147141559311805999540765612E3)
+};
+#define NRD2 9
+static const _Float128 RD2[NRD2 + 1] =
+{
+  L(-8.790916836764308497770359421351673950111E9),
+  L(-2.023108608053212516399197678553737477486E10),
+  L(-1.958067901852022239294231785363504458367E10),
+  L(-1.035515043621003101254252481625188704529E10),
+  L(-3.253884432621336737640841276619272224476E9),
+  L(-6.186383531162456814954947669274235815544E8),
+  L(-6.932557847749518463038934953605969951466E7),
+  L(-4.240731768287359608773351626528479703758E6),
+  L(-1.197343995089189188078944689846348116630E5),
+  L(-1.004622911670588064824904487064114090920E3)
+/* 1.0E0 */
+};
+
+
+/* log gamma(x+1.75) = log gamma(1.75) +  x P(x)/Q(x)
+   -0.125 <= x <= +0.125
+   1.625 <= x+1.75 <= 1.875
+   Peak relative error 9.2e-37 */
+static const _Float128 lgam1r75a = L(-8.441162109375E-2);
+static const _Float128 lgam1r75b = L(1.0500073264444042213965868602268256157604E-5);
+#define NRN1r75 8
+static const _Float128 RN1r75[NRN1r75 + 1] =
+{
+  L(-5.221061693929833937710891646275798251513E7),
+  L(-2.052466337474314812817883030472496436993E8),
+  L(-2.952718275974940270675670705084125640069E8),
+  L(-2.132294039648116684922965964126389017840E8),
+  L(-8.554103077186505960591321962207519908489E7),
+  L(-1.940250901348870867323943119132071960050E7),
+  L(-2.379394147112756860769336400290402208435E6),
+  L(-1.384060879999526222029386539622255797389E5),
+  L(-2.698453601378319296159355612094598695530E3)
+};
+#define NRD1r75 8
+static const _Float128 RD1r75[NRD1r75 + 1] =
+{
+  L(-2.109754689501705828789976311354395393605E8),
+  L(-5.036651829232895725959911504899241062286E8),
+  L(-4.954234699418689764943486770327295098084E8),
+  L(-2.589558042412676610775157783898195339410E8),
+  L(-7.731476117252958268044969614034776883031E7),
+  L(-1.316721702252481296030801191240867486965E7),
+  L(-1.201296501404876774861190604303728810836E6),
+  L(-5.007966406976106636109459072523610273928E4),
+  L(-6.155817990560743422008969155276229018209E2)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+x0) = y0 +  x^2 P(x)/Q(x)
+   -0.0867 <= x <= +0.1634
+   1.374932... <= x+x0 <= 1.625032...
+   Peak relative error 4.0e-36  */
+static const _Float128 x0a = L(1.4616241455078125);
+static const _Float128 x0b = L(7.9994605498412626595423257213002588621246E-6);
+static const _Float128 y0a = L(-1.21490478515625E-1);
+static const _Float128 y0b = L(4.1879797753919044854428223084178486438269E-6);
+#define NRN1r5 8
+static const _Float128 RN1r5[NRN1r5 + 1] =
+{
+  L(6.827103657233705798067415468881313128066E5),
+  L(1.910041815932269464714909706705242148108E6),
+  L(2.194344176925978377083808566251427771951E6),
+  L(1.332921400100891472195055269688876427962E6),
+  L(4.589080973377307211815655093824787123508E5),
+  L(8.900334161263456942727083580232613796141E4),
+  L(9.053840838306019753209127312097612455236E3),
+  L(4.053367147553353374151852319743594873771E2),
+  L(5.040631576303952022968949605613514584950E0)
+};
+#define NRD1r5 8
+static const _Float128 RD1r5[NRD1r5 + 1] =
+{
+  L(1.411036368843183477558773688484699813355E6),
+  L(4.378121767236251950226362443134306184849E6),
+  L(5.682322855631723455425929877581697918168E6),
+  L(3.999065731556977782435009349967042222375E6),
+  L(1.653651390456781293163585493620758410333E6),
+  L(4.067774359067489605179546964969435858311E5),
+  L(5.741463295366557346748361781768833633256E4),
+  L(4.226404539738182992856094681115746692030E3),
+  L(1.316980975410327975566999780608618774469E2),
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x+1.25) = log gamma(1.25) +  x P(x)/Q(x)
+   -.125 <= x <= +.125
+   1.125 <= x+1.25 <= 1.375
+   Peak relative error = 4.9e-36 */
+static const _Float128 lgam1r25a = L(-9.82818603515625E-2);
+static const _Float128 lgam1r25b = L(1.0023929749338536146197303364159774377296E-5);
+#define NRN1r25 9
+static const _Float128 RN1r25[NRN1r25 + 1] =
+{
+  L(-9.054787275312026472896002240379580536760E4),
+  L(-8.685076892989927640126560802094680794471E4),
+  L(2.797898965448019916967849727279076547109E5),
+  L(6.175520827134342734546868356396008898299E5),
+  L(5.179626599589134831538516906517372619641E5),
+  L(2.253076616239043944538380039205558242161E5),
+  L(5.312653119599957228630544772499197307195E4),
+  L(6.434329437514083776052669599834938898255E3),
+  L(3.385414416983114598582554037612347549220E2),
+  L(4.907821957946273805080625052510832015792E0)
+};
+#define NRD1r25 8
+static const _Float128 RD1r25[NRD1r25 + 1] =
+{
+  L(3.980939377333448005389084785896660309000E5),
+  L(1.429634893085231519692365775184490465542E6),
+  L(2.145438946455476062850151428438668234336E6),
+  L(1.743786661358280837020848127465970357893E6),
+  L(8.316364251289743923178092656080441655273E5),
+  L(2.355732939106812496699621491135458324294E5),
+  L(3.822267399625696880571810137601310855419E4),
+  L(3.228463206479133236028576845538387620856E3),
+  L(1.152133170470059555646301189220117965514E2)
+  /* 1.0E0L */
+};
+
+
+/* log gamma(x + 1) = x P(x)/Q(x)
+   0.0 <= x <= +0.125
+   1.0 <= x+1 <= 1.125
+   Peak relative error 1.1e-35  */
+#define NRN1 8
+static const _Float128 RN1[NRN1 + 1] =
+{
+  L(-9.987560186094800756471055681088744738818E3),
+  L(-2.506039379419574361949680225279376329742E4),
+  L(-1.386770737662176516403363873617457652991E4),
+  L(1.439445846078103202928677244188837130744E4),
+  L(2.159612048879650471489449668295139990693E4),
+  L(1.047439813638144485276023138173676047079E4),
+  L(2.250316398054332592560412486630769139961E3),
+  L(1.958510425467720733041971651126443864041E2),
+  L(4.516830313569454663374271993200291219855E0)
+};
+#define NRD1 7
+static const _Float128 RD1[NRD1 + 1] =
+{
+  L(1.730299573175751778863269333703788214547E4),
+  L(6.807080914851328611903744668028014678148E4),
+  L(1.090071629101496938655806063184092302439E5),
+  L(9.124354356415154289343303999616003884080E4),
+  L(4.262071638655772404431164427024003253954E4),
+  L(1.096981664067373953673982635805821283581E4),
+  L(1.431229503796575892151252708527595787588E3),
+  L(7.734110684303689320830401788262295992921E1)
+ /* 1.0E0 */
+};
+
+
+/* log gamma(x + 1) = x P(x)/Q(x)
+   -0.125 <= x <= 0
+   0.875 <= x+1 <= 1.0
+   Peak relative error 7.0e-37  */
+#define NRNr9 8
+static const _Float128 RNr9[NRNr9 + 1] =
+{
+  L(4.441379198241760069548832023257571176884E5),
+  L(1.273072988367176540909122090089580368732E6),
+  L(9.732422305818501557502584486510048387724E5),
+  L(-5.040539994443998275271644292272870348684E5),
+  L(-1.208719055525609446357448132109723786736E6),
+  L(-7.434275365370936547146540554419058907156E5),
+  L(-2.075642969983377738209203358199008185741E5),
+  L(-2.565534860781128618589288075109372218042E4),
+  L(-1.032901669542994124131223797515913955938E3),
+};
+#define NRDr9 8
+static const _Float128 RDr9[NRDr9 + 1] =
+{
+  L(-7.694488331323118759486182246005193998007E5),
+  L(-3.301918855321234414232308938454112213751E6),
+  L(-5.856830900232338906742924836032279404702E6),
+  L(-5.540672519616151584486240871424021377540E6),
+  L(-3.006530901041386626148342989181721176919E6),
+  L(-9.350378280513062139466966374330795935163E5),
+  L(-1.566179100031063346901755685375732739511E5),
+  L(-1.205016539620260779274902967231510804992E4),
+  L(-2.724583156305709733221564484006088794284E2)
+/* 1.0E0 */
+};
+
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+_Float128
+__ieee754_lgammal_r (_Float128 x, int *signgamp)
+{
+  _Float128 p, q, w, z, nx;
+  int i, nn;
+
+  *signgamp = 1;
+
+  if (! isfinite (x))
+    return x * x;
+
+  if (x == 0)
+    {
+      if (signbit (x))
+	*signgamp = -1;
+    }
+
+  if (x < 0)
+    {
+      if (x < -2 && x > (LDBL_MANT_DIG == 106 ? -48 : -50))
+	return __lgamma_negl (x, signgamp);
+      q = -x;
+      p = __floorl (q);
+      if (p == q)
+	return (one / __fabsl (p - p));
+      _Float128 halfp = p * L(0.5);
+      if (halfp == __floorl (halfp))
+	*signgamp = -1;
+      else
+	*signgamp = 1;
+      if (q < L(0x1p-120))
+	return -__logl (q);
+      z = q - p;
+      if (z > L(0.5))
+	{
+	  p += 1;
+	  z = p - q;
+	}
+      z = q * __sinl (PIL * z);
+      w = __ieee754_lgammal_r (q, &i);
+      z = __logl (PIL / z) - w;
+      return (z);
+    }
+
+  if (x < L(13.5))
+    {
+      p = 0;
+      nx = __floorl (x + L(0.5));
+      nn = nx;
+      switch (nn)
+	{
+	case 0:
+	  /* log gamma (x + 1) = log(x) + log gamma(x) */
+	  if (x < L(0x1p-120))
+	    return -__logl (x);
+	  else if (x <= 0.125)
+	    {
+	      p = x * neval (x, RN1, NRN1) / deval (x, RD1, NRD1);
+	    }
+	  else if (x <= 0.375)
+	    {
+	      z = x - L(0.25);
+	      p = z * neval (z, RN1r25, NRN1r25) / deval (z, RD1r25, NRD1r25);
+	      p += lgam1r25b;
+	      p += lgam1r25a;
+	    }
+	  else if (x <= 0.625)
+	    {
+	      z = x + (1 - x0a);
+	      z = z - x0b;
+	      p = neval (z, RN1r5, NRN1r5) / deval (z, RD1r5, NRD1r5);
+	      p = p * z * z;
+	      p = p + y0b;
+	      p = p + y0a;
+	    }
+	  else if (x <= 0.875)
+	    {
+	      z = x - L(0.75);
+	      p = z * neval (z, RN1r75, NRN1r75) / deval (z, RD1r75, NRD1r75);
+	      p += lgam1r75b;
+	      p += lgam1r75a;
+	    }
+	  else
+	    {
+	      z = x - 1;
+	      p = z * neval (z, RN2, NRN2) / deval (z, RD2, NRD2);
+	    }
+	  p = p - __logl (x);
+	  break;
+
+	case 1:
+	  if (x < L(0.875))
+	    {
+	      if (x <= 0.625)
+		{
+		  z = x + (1 - x0a);
+		  z = z - x0b;
+		  p = neval (z, RN1r5, NRN1r5) / deval (z, RD1r5, NRD1r5);
+		  p = p * z * z;
+		  p = p + y0b;
+		  p = p + y0a;
+		}
+	      else if (x <= 0.875)
+		{
+		  z = x - L(0.75);
+		  p = z * neval (z, RN1r75, NRN1r75)
+			/ deval (z, RD1r75, NRD1r75);
+		  p += lgam1r75b;
+		  p += lgam1r75a;
+		}
+	      else
+		{
+		  z = x - 1;
+		  p = z * neval (z, RN2, NRN2) / deval (z, RD2, NRD2);
+		}
+	      p = p - __logl (x);
+	    }
+	  else if (x < 1)
+	    {
+	      z = x - 1;
+	      p = z * neval (z, RNr9, NRNr9) / deval (z, RDr9, NRDr9);
+	    }
+	  else if (x == 1)
+	    p = 0;
+	  else if (x <= L(1.125))
+	    {
+	      z = x - 1;
+	      p = z * neval (z, RN1, NRN1) / deval (z, RD1, NRD1);
+	    }
+	  else if (x <= 1.375)
+	    {
+	      z = x - L(1.25);
+	      p = z * neval (z, RN1r25, NRN1r25) / deval (z, RD1r25, NRD1r25);
+	      p += lgam1r25b;
+	      p += lgam1r25a;
+	    }
+	  else
+	    {
+	      /* 1.375 <= x+x0 <= 1.625 */
+	      z = x - x0a;
+	      z = z - x0b;
+	      p = neval (z, RN1r5, NRN1r5) / deval (z, RD1r5, NRD1r5);
+	      p = p * z * z;
+	      p = p + y0b;
+	      p = p + y0a;
+	    }
+	  break;
+
+	case 2:
+	  if (x < L(1.625))
+	    {
+	      z = x - x0a;
+	      z = z - x0b;
+	      p = neval (z, RN1r5, NRN1r5) / deval (z, RD1r5, NRD1r5);
+	      p = p * z * z;
+	      p = p + y0b;
+	      p = p + y0a;
+	    }
+	  else if (x < L(1.875))
+	    {
+	      z = x - L(1.75);
+	      p = z * neval (z, RN1r75, NRN1r75) / deval (z, RD1r75, NRD1r75);
+	      p += lgam1r75b;
+	      p += lgam1r75a;
+	    }
+	  else if (x == 2)
+	    p = 0;
+	  else if (x < L(2.375))
+	    {
+	      z = x - 2;
+	      p = z * neval (z, RN2, NRN2) / deval (z, RD2, NRD2);
+	    }
+	  else
+	    {
+	      z = x - L(2.5);
+	      p = z * neval (z, RN2r5, NRN2r5) / deval (z, RD2r5, NRD2r5);
+	      p += lgam2r5b;
+	      p += lgam2r5a;
+	    }
+	  break;
+
+	case 3:
+	  if (x < 2.75)
+	    {
+	      z = x - L(2.5);
+	      p = z * neval (z, RN2r5, NRN2r5) / deval (z, RD2r5, NRD2r5);
+	      p += lgam2r5b;
+	      p += lgam2r5a;
+	    }
+	  else
+	    {
+	      z = x - 3;
+	      p = z * neval (z, RN3, NRN3) / deval (z, RD3, NRD3);
+	      p += lgam3b;
+	      p += lgam3a;
+	    }
+	  break;
+
+	case 4:
+	  z = x - 4;
+	  p = z * neval (z, RN4, NRN4) / deval (z, RD4, NRD4);
+	  p += lgam4b;
+	  p += lgam4a;
+	  break;
+
+	case 5:
+	  z = x - 5;
+	  p = z * neval (z, RN5, NRN5) / deval (z, RD5, NRD5);
+	  p += lgam5b;
+	  p += lgam5a;
+	  break;
+
+	case 6:
+	  z = x - 6;
+	  p = z * neval (z, RN6, NRN6) / deval (z, RD6, NRD6);
+	  p += lgam6b;
+	  p += lgam6a;
+	  break;
+
+	case 7:
+	  z = x - 7;
+	  p = z * neval (z, RN7, NRN7) / deval (z, RD7, NRD7);
+	  p += lgam7b;
+	  p += lgam7a;
+	  break;
+
+	case 8:
+	  z = x - 8;
+	  p = z * neval (z, RN8, NRN8) / deval (z, RD8, NRD8);
+	  p += lgam8b;
+	  p += lgam8a;
+	  break;
+
+	case 9:
+	  z = x - 9;
+	  p = z * neval (z, RN9, NRN9) / deval (z, RD9, NRD9);
+	  p += lgam9b;
+	  p += lgam9a;
+	  break;
+
+	case 10:
+	  z = x - 10;
+	  p = z * neval (z, RN10, NRN10) / deval (z, RD10, NRD10);
+	  p += lgam10b;
+	  p += lgam10a;
+	  break;
+
+	case 11:
+	  z = x - 11;
+	  p = z * neval (z, RN11, NRN11) / deval (z, RD11, NRD11);
+	  p += lgam11b;
+	  p += lgam11a;
+	  break;
+
+	case 12:
+	  z = x - 12;
+	  p = z * neval (z, RN12, NRN12) / deval (z, RD12, NRD12);
+	  p += lgam12b;
+	  p += lgam12a;
+	  break;
+
+	case 13:
+	  z = x - 13;
+	  p = z * neval (z, RN13, NRN13) / deval (z, RD13, NRD13);
+	  p += lgam13b;
+	  p += lgam13a;
+	  break;
+	}
+      return p;
+    }
+
+  if (x > MAXLGM)
+    return (*signgamp * huge * huge);
+
+  if (x > L(0x1p120))
+    return x * (__logl (x) - 1);
+  q = ls2pi - x;
+  q = (x - L(0.5)) * __logl (x) + q;
+  if (x > L(1.0e18))
+    return (q);
+
+  p = 1 / (x * x);
+  q += neval (p, RASY, NRASY) / x;
+  return (q);
+}
+strong_alias (__ieee754_lgammal_r, __lgammal_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_log10l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_log10l.c
new file mode 100644
index 0000000000..c992f6e5ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_log10l.c
@@ -0,0 +1,259 @@
+/*							log10l.c
+ *
+ *	Common logarithm, 128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, log10l();
+ *
+ * y = log10l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base 10 logarithm of x.
+ *
+ * The argument is separated into its exponent and fractional
+ * parts.  If the exponent is between -1 and +1, the logarithm
+ * of the fraction is approximated by
+ *
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x)/Q(x).
+ *
+ * Otherwise, setting  z = 2(x-1)/x+1),
+ *
+ *     log(x) = z + z^3 P(z)/Q(z).
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      0.5, 2.0     30000      2.3e-34     4.9e-35
+ *    IEEE     exp(+-10000)  30000      1.0e-34     4.1e-35
+ *
+ * In the tests over the interval exp(+-10000), the logarithms
+ * of the random arguments were uniformly distributed over
+ * [-10000, +10000].
+ *
+ */
+
+/*
+   Cephes Math Library Release 2.2:  January, 1991
+   Copyright 1984, 1991 by Stephen L. Moshier
+   Adapted for glibc November, 2001
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Coefficients for ln(1+x) = x - x**2/2 + x**3 P(x)/Q(x)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 5.3e-37,
+ * relative peak error spread = 2.3e-14
+ */
+static const _Float128 P[13] =
+{
+  L(1.313572404063446165910279910527789794488E4),
+  L(7.771154681358524243729929227226708890930E4),
+  L(2.014652742082537582487669938141683759923E5),
+  L(3.007007295140399532324943111654767187848E5),
+  L(2.854829159639697837788887080758954924001E5),
+  L(1.797628303815655343403735250238293741397E5),
+  L(7.594356839258970405033155585486712125861E4),
+  L(2.128857716871515081352991964243375186031E4),
+  L(3.824952356185897735160588078446136783779E3),
+  L(4.114517881637811823002128927449878962058E2),
+  L(2.321125933898420063925789532045674660756E1),
+  L(4.998469661968096229986658302195402690910E-1),
+  L(1.538612243596254322971797716843006400388E-6)
+};
+static const _Float128 Q[12] =
+{
+  L(3.940717212190338497730839731583397586124E4),
+  L(2.626900195321832660448791748036714883242E5),
+  L(7.777690340007566932935753241556479363645E5),
+  L(1.347518538384329112529391120390701166528E6),
+  L(1.514882452993549494932585972882995548426E6),
+  L(1.158019977462989115839826904108208787040E6),
+  L(6.132189329546557743179177159925690841200E5),
+  L(2.248234257620569139969141618556349415120E5),
+  L(5.605842085972455027590989944010492125825E4),
+  L(9.147150349299596453976674231612674085381E3),
+  L(9.104928120962988414618126155557301584078E2),
+  L(4.839208193348159620282142911143429644326E1)
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2),
+ * where z = 2(x-1)/(x+1)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 1.1e-35,
+ * relative peak error spread 1.1e-9
+ */
+static const _Float128 R[6] =
+{
+  L(1.418134209872192732479751274970992665513E5),
+ L(-8.977257995689735303686582344659576526998E4),
+  L(2.048819892795278657810231591630928516206E4),
+ L(-2.024301798136027039250415126250455056397E3),
+  L(8.057002716646055371965756206836056074715E1),
+ L(-8.828896441624934385266096344596648080902E-1)
+};
+static const _Float128 S[6] =
+{
+  L(1.701761051846631278975701529965589676574E6),
+ L(-1.332535117259762928288745111081235577029E6),
+  L(4.001557694070773974936904547424676279307E5),
+ L(-5.748542087379434595104154610899551484314E4),
+  L(3.998526750980007367835804959888064681098E3),
+ L(-1.186359407982897997337150403816839480438E2)
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const _Float128
+/* log10(2) */
+L102A = L(0.3125),
+L102B = L(-1.14700043360188047862611052755069732318101185E-2),
+/* log10(e) */
+L10EA = L(0.5),
+L10EB = L(-6.570551809674817234887108108339491770560299E-2),
+/* sqrt(2)/2 */
+SQRTH = L(7.071067811865475244008443621048490392848359E-1);
+
+
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+
+_Float128
+__ieee754_log10l (_Float128 x)
+{
+  _Float128 z;
+  _Float128 y;
+  int e;
+  int64_t hx, lx;
+
+/* Test for domain */
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  if (((hx & 0x7fffffffffffffffLL) | lx) == 0)
+    return (-1 / __fabsl (x));		/* log10l(+-0)=-inf  */
+  if (hx < 0)
+    return (x - x) / (x - x);
+  if (hx >= 0x7fff000000000000LL)
+    return (x + x);
+
+  if (x == 1)
+    return 0;
+
+/* separate mantissa from exponent */
+
+/* Note, frexp is used so that denormal numbers
+ * will be handled properly.
+ */
+  x = __frexpl (x, &e);
+
+
+/* logarithm using log(x) = z + z**3 P(z)/Q(z),
+ * where z = 2(x-1)/x+1)
+ */
+  if ((e > 2) || (e < -2))
+    {
+      if (x < SQRTH)
+	{			/* 2( 2x-1 )/( 2x+1 ) */
+	  e -= 1;
+	  z = x - L(0.5);
+	  y = L(0.5) * z + L(0.5);
+	}
+      else
+	{			/*  2 (x-1)/(x+1)   */
+	  z = x - L(0.5);
+	  z -= L(0.5);
+	  y = L(0.5) * x + L(0.5);
+	}
+      x = z / y;
+      z = x * x;
+      y = x * (z * neval (z, R, 5) / deval (z, S, 5));
+      goto done;
+    }
+
+
+/* logarithm using log(1+x) = x - .5x**2 + x**3 P(x)/Q(x) */
+
+  if (x < SQRTH)
+    {
+      e -= 1;
+      x = 2.0 * x - 1;	/*  2x - 1  */
+    }
+  else
+    {
+      x = x - 1;
+    }
+  z = x * x;
+  y = x * (z * neval (x, P, 12) / deval (x, Q, 11));
+  y = y - 0.5 * z;
+
+done:
+
+  /* Multiply log of fraction by log10(e)
+   * and base 2 exponent by log10(2).
+   */
+  z = y * L10EB;
+  z += x * L10EB;
+  z += e * L102B;
+  z += y * L10EA;
+  z += x * L10EA;
+  z += e * L102A;
+  return (z);
+}
+strong_alias (__ieee754_log10l, __log10l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_log2l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_log2l.c
new file mode 100644
index 0000000000..cf4a380f16
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_log2l.c
@@ -0,0 +1,252 @@
+/*                                                      log2l.c
+ *      Base 2 logarithm, 128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, log2l();
+ *
+ * y = log2l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base 2 logarithm of x.
+ *
+ * The argument is separated into its exponent and fractional
+ * parts.  If the exponent is between -1 and +1, the (natural)
+ * logarithm of the fraction is approximated by
+ *
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x)/Q(x).
+ *
+ * Otherwise, setting  z = 2(x-1)/x+1),
+ *
+ *     log(x) = z + z^3 P(z)/Q(z).
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      0.5, 2.0     100,000    2.6e-34     4.9e-35
+ *    IEEE     exp(+-10000)  100,000    9.6e-35     4.0e-35
+ *
+ * In the tests over the interval exp(+-10000), the logarithms
+ * of the random arguments were uniformly distributed over
+ * [-10000, +10000].
+ *
+ */
+
+/*
+   Cephes Math Library Release 2.2:  January, 1991
+   Copyright 1984, 1991 by Stephen L. Moshier
+   Adapted for glibc November, 2001
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Coefficients for ln(1+x) = x - x**2/2 + x**3 P(x)/Q(x)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 5.3e-37,
+ * relative peak error spread = 2.3e-14
+ */
+static const _Float128 P[13] =
+{
+  L(1.313572404063446165910279910527789794488E4),
+  L(7.771154681358524243729929227226708890930E4),
+  L(2.014652742082537582487669938141683759923E5),
+  L(3.007007295140399532324943111654767187848E5),
+  L(2.854829159639697837788887080758954924001E5),
+  L(1.797628303815655343403735250238293741397E5),
+  L(7.594356839258970405033155585486712125861E4),
+  L(2.128857716871515081352991964243375186031E4),
+  L(3.824952356185897735160588078446136783779E3),
+  L(4.114517881637811823002128927449878962058E2),
+  L(2.321125933898420063925789532045674660756E1),
+  L(4.998469661968096229986658302195402690910E-1),
+  L(1.538612243596254322971797716843006400388E-6)
+};
+static const _Float128 Q[12] =
+{
+  L(3.940717212190338497730839731583397586124E4),
+  L(2.626900195321832660448791748036714883242E5),
+  L(7.777690340007566932935753241556479363645E5),
+  L(1.347518538384329112529391120390701166528E6),
+  L(1.514882452993549494932585972882995548426E6),
+  L(1.158019977462989115839826904108208787040E6),
+  L(6.132189329546557743179177159925690841200E5),
+  L(2.248234257620569139969141618556349415120E5),
+  L(5.605842085972455027590989944010492125825E4),
+  L(9.147150349299596453976674231612674085381E3),
+  L(9.104928120962988414618126155557301584078E2),
+  L(4.839208193348159620282142911143429644326E1)
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2),
+ * where z = 2(x-1)/(x+1)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 1.1e-35,
+ * relative peak error spread 1.1e-9
+ */
+static const _Float128 R[6] =
+{
+  L(1.418134209872192732479751274970992665513E5),
+ L(-8.977257995689735303686582344659576526998E4),
+  L(2.048819892795278657810231591630928516206E4),
+ L(-2.024301798136027039250415126250455056397E3),
+  L(8.057002716646055371965756206836056074715E1),
+ L(-8.828896441624934385266096344596648080902E-1)
+};
+static const _Float128 S[6] =
+{
+  L(1.701761051846631278975701529965589676574E6),
+ L(-1.332535117259762928288745111081235577029E6),
+  L(4.001557694070773974936904547424676279307E5),
+ L(-5.748542087379434595104154610899551484314E4),
+  L(3.998526750980007367835804959888064681098E3),
+ L(-1.186359407982897997337150403816839480438E2)
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const _Float128
+/* log2(e) - 1 */
+LOG2EA = L(4.4269504088896340735992468100189213742664595E-1),
+/* sqrt(2)/2 */
+SQRTH = L(7.071067811865475244008443621048490392848359E-1);
+
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+
+_Float128
+__ieee754_log2l (_Float128 x)
+{
+  _Float128 z;
+  _Float128 y;
+  int e;
+  int64_t hx, lx;
+
+/* Test for domain */
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  if (((hx & 0x7fffffffffffffffLL) | lx) == 0)
+    return (-1 / __fabsl (x));		/* log2l(+-0)=-inf  */
+  if (hx < 0)
+    return (x - x) / (x - x);
+  if (hx >= 0x7fff000000000000LL)
+    return (x + x);
+
+  if (x == 1)
+    return 0;
+
+/* separate mantissa from exponent */
+
+/* Note, frexp is used so that denormal numbers
+ * will be handled properly.
+ */
+  x = __frexpl (x, &e);
+
+
+/* logarithm using log(x) = z + z**3 P(z)/Q(z),
+ * where z = 2(x-1)/x+1)
+ */
+  if ((e > 2) || (e < -2))
+    {
+      if (x < SQRTH)
+	{			/* 2( 2x-1 )/( 2x+1 ) */
+	  e -= 1;
+	  z = x - L(0.5);
+	  y = L(0.5) * z + L(0.5);
+	}
+      else
+	{			/*  2 (x-1)/(x+1)   */
+	  z = x - L(0.5);
+	  z -= L(0.5);
+	  y = L(0.5) * x + L(0.5);
+	}
+      x = z / y;
+      z = x * x;
+      y = x * (z * neval (z, R, 5) / deval (z, S, 5));
+      goto done;
+    }
+
+
+/* logarithm using log(1+x) = x - .5x**2 + x**3 P(x)/Q(x) */
+
+  if (x < SQRTH)
+    {
+      e -= 1;
+      x = 2.0 * x - 1;	/*  2x - 1  */
+    }
+  else
+    {
+      x = x - 1;
+    }
+  z = x * x;
+  y = x * (z * neval (x, P, 12) / deval (x, Q, 11));
+  y = y - 0.5 * z;
+
+done:
+
+/* Multiply log of fraction by log2(e)
+ * and base 2 exponent by 1
+ */
+  z = y * LOG2EA;
+  z += x * LOG2EA;
+  z += y;
+  z += x;
+  z += e;
+  return (z);
+}
+strong_alias (__ieee754_log2l, __log2l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_logl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_logl.c
new file mode 100644
index 0000000000..8672047e43
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_logl.c
@@ -0,0 +1,282 @@
+/*							logll.c
+ *
+ * Natural logarithm for 128-bit long double precision.
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, logl();
+ *
+ * y = logl( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base e (2.718...) logarithm of x.
+ *
+ * The argument is separated into its exponent and fractional
+ * parts.  Use of a lookup table increases the speed of the routine.
+ * The program uses logarithms tabulated at intervals of 1/128 to
+ * cover the domain from approximately 0.7 to 1.4.
+ *
+ * On the interval [-1/128, +1/128] the logarithm of 1+x is approximated by
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x) .
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE   0.875, 1.125   100000      1.2e-34    4.1e-35
+ *    IEEE   0.125, 8       100000      1.2e-34    4.1e-35
+ *
+ *
+ * WARNING:
+ *
+ * This program uses integer operations on bit fields of floating-point
+ * numbers.  It does not work with data structures other than the
+ * structure assumed.
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* log(1+x) = x - .5 x^2 + x^3 l(x)
+   -.0078125 <= x <= +.0078125
+   peak relative error 1.2e-37 */
+static const _Float128
+l3 =   L(3.333333333333333333333333333333336096926E-1),
+l4 =  L(-2.499999999999999999999999999486853077002E-1),
+l5 =   L(1.999999999999999999999999998515277861905E-1),
+l6 =  L(-1.666666666666666666666798448356171665678E-1),
+l7 =   L(1.428571428571428571428808945895490721564E-1),
+l8 =  L(-1.249999999999999987884655626377588149000E-1),
+l9 =   L(1.111111111111111093947834982832456459186E-1),
+l10 = L(-1.000000000000532974938900317952530453248E-1),
+l11 =  L(9.090909090915566247008015301349979892689E-2),
+l12 = L(-8.333333211818065121250921925397567745734E-2),
+l13 =  L(7.692307559897661630807048686258659316091E-2),
+l14 = L(-7.144242754190814657241902218399056829264E-2),
+l15 =  L(6.668057591071739754844678883223432347481E-2);
+
+/* Lookup table of ln(t) - (t-1)
+    t = 0.5 + (k+26)/128)
+    k = 0, ..., 91   */
+static const _Float128 logtbl[92] = {
+L(-5.5345593589352099112142921677820359632418E-2),
+L(-5.2108257402767124761784665198737642086148E-2),
+L(-4.8991686870576856279407775480686721935120E-2),
+L(-4.5993270766361228596215288742353061431071E-2),
+L(-4.3110481649613269682442058976885699556950E-2),
+L(-4.0340872319076331310838085093194799765520E-2),
+L(-3.7682072451780927439219005993827431503510E-2),
+L(-3.5131785416234343803903228503274262719586E-2),
+L(-3.2687785249045246292687241862699949178831E-2),
+L(-3.0347913785027239068190798397055267411813E-2),
+L(-2.8110077931525797884641940838507561326298E-2),
+L(-2.5972247078357715036426583294246819637618E-2),
+L(-2.3932450635346084858612873953407168217307E-2),
+L(-2.1988775689981395152022535153795155900240E-2),
+L(-2.0139364778244501615441044267387667496733E-2),
+L(-1.8382413762093794819267536615342902718324E-2),
+L(-1.6716169807550022358923589720001638093023E-2),
+L(-1.5138929457710992616226033183958974965355E-2),
+L(-1.3649036795397472900424896523305726435029E-2),
+L(-1.2244881690473465543308397998034325468152E-2),
+L(-1.0924898127200937840689817557742469105693E-2),
+L(-9.6875626072830301572839422532631079809328E-3),
+L(-8.5313926245226231463436209313499745894157E-3),
+L(-7.4549452072765973384933565912143044991706E-3),
+L(-6.4568155251217050991200599386801665681310E-3),
+L(-5.5356355563671005131126851708522185605193E-3),
+L(-4.6900728132525199028885749289712348829878E-3),
+L(-3.9188291218610470766469347968659624282519E-3),
+L(-3.2206394539524058873423550293617843896540E-3),
+L(-2.5942708080877805657374888909297113032132E-3),
+L(-2.0385211375711716729239156839929281289086E-3),
+L(-1.5522183228760777967376942769773768850872E-3),
+L(-1.1342191863606077520036253234446621373191E-3),
+L(-7.8340854719967065861624024730268350459991E-4),
+L(-4.9869831458030115699628274852562992756174E-4),
+L(-2.7902661731604211834685052867305795169688E-4),
+L(-1.2335696813916860754951146082826952093496E-4),
+L(-3.0677461025892873184042490943581654591817E-5),
+#define ZERO logtbl[38]
+ L(0.0000000000000000000000000000000000000000E0),
+L(-3.0359557945051052537099938863236321874198E-5),
+L(-1.2081346403474584914595395755316412213151E-4),
+L(-2.7044071846562177120083903771008342059094E-4),
+L(-4.7834133324631162897179240322783590830326E-4),
+L(-7.4363569786340080624467487620270965403695E-4),
+L(-1.0654639687057968333207323853366578860679E-3),
+L(-1.4429854811877171341298062134712230604279E-3),
+L(-1.8753781835651574193938679595797367137975E-3),
+L(-2.3618380914922506054347222273705859653658E-3),
+L(-2.9015787624124743013946600163375853631299E-3),
+L(-3.4938307889254087318399313316921940859043E-3),
+L(-4.1378413103128673800485306215154712148146E-3),
+L(-4.8328735414488877044289435125365629849599E-3),
+L(-5.5782063183564351739381962360253116934243E-3),
+L(-6.3731336597098858051938306767880719015261E-3),
+L(-7.2169643436165454612058905294782949315193E-3),
+L(-8.1090214990427641365934846191367315083867E-3),
+L(-9.0486422112807274112838713105168375482480E-3),
+L(-1.0035177140880864314674126398350812606841E-2),
+L(-1.1067990155502102718064936259435676477423E-2),
+L(-1.2146457974158024928196575103115488672416E-2),
+L(-1.3269969823361415906628825374158424754308E-2),
+L(-1.4437927104692837124388550722759686270765E-2),
+L(-1.5649743073340777659901053944852735064621E-2),
+L(-1.6904842527181702880599758489058031645317E-2),
+L(-1.8202661505988007336096407340750378994209E-2),
+L(-1.9542647000370545390701192438691126552961E-2),
+L(-2.0924256670080119637427928803038530924742E-2),
+L(-2.2346958571309108496179613803760727786257E-2),
+L(-2.3810230892650362330447187267648486279460E-2),
+L(-2.5313561699385640380910474255652501521033E-2),
+L(-2.6856448685790244233704909690165496625399E-2),
+L(-2.8438398935154170008519274953860128449036E-2),
+L(-3.0058928687233090922411781058956589863039E-2),
+L(-3.1717563112854831855692484086486099896614E-2),
+L(-3.3413836095418743219397234253475252001090E-2),
+L(-3.5147290019036555862676702093393332533702E-2),
+L(-3.6917475563073933027920505457688955423688E-2),
+L(-3.8723951502862058660874073462456610731178E-2),
+L(-4.0566284516358241168330505467000838017425E-2),
+L(-4.2444048996543693813649967076598766917965E-2),
+L(-4.4356826869355401653098777649745233339196E-2),
+L(-4.6304207416957323121106944474331029996141E-2),
+L(-4.8285787106164123613318093945035804818364E-2),
+L(-5.0301169421838218987124461766244507342648E-2),
+L(-5.2349964705088137924875459464622098310997E-2),
+L(-5.4431789996103111613753440311680967840214E-2),
+L(-5.6546268881465384189752786409400404404794E-2),
+L(-5.8693031345788023909329239565012647817664E-2),
+L(-6.0871713627532018185577188079210189048340E-2),
+L(-6.3081958078862169742820420185833800925568E-2),
+L(-6.5323413029406789694910800219643791556918E-2),
+L(-6.7595732653791419081537811574227049288168E-2)
+};
+
+/* ln(2) = ln2a + ln2b with extended precision. */
+static const _Float128
+  ln2a = L(6.93145751953125e-1),
+  ln2b = L(1.4286068203094172321214581765680755001344E-6);
+
+_Float128
+__ieee754_logl(_Float128 x)
+{
+  _Float128 z, y, w;
+  ieee854_long_double_shape_type u, t;
+  unsigned int m;
+  int k, e;
+
+  u.value = x;
+  m = u.parts32.w0;
+
+  /* Check for IEEE special cases.  */
+  k = m & 0x7fffffff;
+  /* log(0) = -infinity. */
+  if ((k | u.parts32.w1 | u.parts32.w2 | u.parts32.w3) == 0)
+    {
+      return L(-0.5) / ZERO;
+    }
+  /* log ( x < 0 ) = NaN */
+  if (m & 0x80000000)
+    {
+      return (x - x) / ZERO;
+    }
+  /* log (infinity or NaN) */
+  if (k >= 0x7fff0000)
+    {
+      return x + x;
+    }
+
+  /* Extract exponent and reduce domain to 0.703125 <= u < 1.40625  */
+  u.value = __frexpl (x, &e);
+  m = u.parts32.w0 & 0xffff;
+  m |= 0x10000;
+  /* Find lookup table index k from high order bits of the significand. */
+  if (m < 0x16800)
+    {
+      k = (m - 0xff00) >> 9;
+      /* t is the argument 0.5 + (k+26)/128
+	 of the nearest item to u in the lookup table.  */
+      t.parts32.w0 = 0x3fff0000 + (k << 9);
+      t.parts32.w1 = 0;
+      t.parts32.w2 = 0;
+      t.parts32.w3 = 0;
+      u.parts32.w0 += 0x10000;
+      e -= 1;
+      k += 64;
+    }
+  else
+    {
+      k = (m - 0xfe00) >> 10;
+      t.parts32.w0 = 0x3ffe0000 + (k << 10);
+      t.parts32.w1 = 0;
+      t.parts32.w2 = 0;
+      t.parts32.w3 = 0;
+    }
+  /* On this interval the table is not used due to cancellation error.  */
+  if ((x <= L(1.0078125)) && (x >= L(0.9921875)))
+    {
+      if (x == 1)
+	return 0;
+      z = x - 1;
+      k = 64;
+      t.value  = 1;
+      e = 0;
+    }
+  else
+    {
+      /* log(u) = log( t u/t ) = log(t) + log(u/t)
+	 log(t) is tabulated in the lookup table.
+	 Express log(u/t) = log(1+z),  where z = u/t - 1 = (u-t)/t.
+	 cf. Cody & Waite. */
+      z = (u.value - t.value) / t.value;
+    }
+  /* Series expansion of log(1+z).  */
+  w = z * z;
+  y = ((((((((((((l15 * z
+		  + l14) * z
+		 + l13) * z
+		+ l12) * z
+	       + l11) * z
+	      + l10) * z
+	     + l9) * z
+	    + l8) * z
+	   + l7) * z
+	  + l6) * z
+	 + l5) * z
+	+ l4) * z
+       + l3) * z * w;
+  y -= 0.5 * w;
+  y += e * ln2b;  /* Base 2 exponent offset times ln(2).  */
+  y += z;
+  y += logtbl[k-26]; /* log(t) - (t-1) */
+  y += (t.value - 1);
+  y += e * ln2a;
+  return y;
+}
+strong_alias (__ieee754_logl, __logl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_powl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_powl.c
new file mode 100644
index 0000000000..a344840090
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_powl.c
@@ -0,0 +1,451 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Expansions and modifications for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_powl(x,y) return x**y
+ *
+ *		      n
+ * Method:  Let x =  2   * (1+f)
+ *	1. Compute and return log2(x) in two pieces:
+ *		log2(x) = w1 + w2,
+ *	   where w1 has 113-53 = 60 bit trailing zeros.
+ *	2. Perform y*log2(x) = n+y' by simulating muti-precision
+ *	   arithmetic, where |y'|<=0.5.
+ *	3. Return x**y = 2**n*exp(y'*log2)
+ *
+ * Special cases:
+ *	1.  (anything) ** 0  is 1
+ *	2.  (anything) ** 1  is itself
+ *	3.  (anything) ** NAN is NAN
+ *	4.  NAN ** (anything except 0) is NAN
+ *	5.  +-(|x| > 1) **  +INF is +INF
+ *	6.  +-(|x| > 1) **  -INF is +0
+ *	7.  +-(|x| < 1) **  +INF is +0
+ *	8.  +-(|x| < 1) **  -INF is +INF
+ *	9.  +-1         ** +-INF is NAN
+ *	10. +0 ** (+anything except 0, NAN)               is +0
+ *	11. -0 ** (+anything except 0, NAN, odd integer)  is +0
+ *	12. +0 ** (-anything except 0, NAN)               is +INF
+ *	13. -0 ** (-anything except 0, NAN, odd integer)  is +INF
+ *	14. -0 ** (odd integer) = -( +0 ** (odd integer) )
+ *	15. +INF ** (+anything except 0,NAN) is +INF
+ *	16. +INF ** (-anything except 0,NAN) is +0
+ *	17. -INF ** (anything)  = -0 ** (-anything)
+ *	18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer)
+ *	19. (-anything except 0 and inf) ** (non-integer) is NAN
+ *
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 bp[] = {
+  1,
+  L(1.5),
+};
+
+/* log_2(1.5) */
+static const _Float128 dp_h[] = {
+  0.0,
+  L(5.8496250072115607565592654282227158546448E-1)
+};
+
+/* Low part of log_2(1.5) */
+static const _Float128 dp_l[] = {
+  0.0,
+  L(1.0579781240112554492329533686862998106046E-16)
+};
+
+static const _Float128 zero = 0,
+  one = 1,
+  two = 2,
+  two113 = L(1.0384593717069655257060992658440192E34),
+  huge = L(1.0e3000),
+  tiny = L(1.0e-3000);
+
+/* 3/2 log x = 3 z + z^3 + z^3 (z^2 R(z^2))
+   z = (x-1)/(x+1)
+   1 <= x <= 1.25
+   Peak relative error 2.3e-37 */
+static const _Float128 LN[] =
+{
+ L(-3.0779177200290054398792536829702930623200E1),
+  L(6.5135778082209159921251824580292116201640E1),
+ L(-4.6312921812152436921591152809994014413540E1),
+  L(1.2510208195629420304615674658258363295208E1),
+ L(-9.9266909031921425609179910128531667336670E-1)
+};
+static const _Float128 LD[] =
+{
+ L(-5.129862866715009066465422805058933131960E1),
+  L(1.452015077564081884387441590064272782044E2),
+ L(-1.524043275549860505277434040464085593165E2),
+  L(7.236063513651544224319663428634139768808E1),
+ L(-1.494198912340228235853027849917095580053E1)
+  /* 1.0E0 */
+};
+
+/* exp(x) = 1 + x - x / (1 - 2 / (x - x^2 R(x^2)))
+   0 <= x <= 0.5
+   Peak relative error 5.7e-38  */
+static const _Float128 PN[] =
+{
+  L(5.081801691915377692446852383385968225675E8),
+  L(9.360895299872484512023336636427675327355E6),
+  L(4.213701282274196030811629773097579432957E4),
+  L(5.201006511142748908655720086041570288182E1),
+  L(9.088368420359444263703202925095675982530E-3),
+};
+static const _Float128 PD[] =
+{
+  L(3.049081015149226615468111430031590411682E9),
+  L(1.069833887183886839966085436512368982758E8),
+  L(8.259257717868875207333991924545445705394E5),
+  L(1.872583833284143212651746812884298360922E3),
+  /* 1.0E0 */
+};
+
+static const _Float128
+  /* ln 2 */
+  lg2 = L(6.9314718055994530941723212145817656807550E-1),
+  lg2_h = L(6.9314718055994528622676398299518041312695E-1),
+  lg2_l = L(2.3190468138462996154948554638754786504121E-17),
+  ovt = L(8.0085662595372944372e-0017),
+  /* 2/(3*log(2)) */
+  cp = L(9.6179669392597560490661645400126142495110E-1),
+  cp_h = L(9.6179669392597555432899980587535537779331E-1),
+  cp_l = L(5.0577616648125906047157785230014751039424E-17);
+
+_Float128
+__ieee754_powl (_Float128 x, _Float128 y)
+{
+  _Float128 z, ax, z_h, z_l, p_h, p_l;
+  _Float128 y1, t1, t2, r, s, sgn, t, u, v, w;
+  _Float128 s2, s_h, s_l, t_h, t_l, ay;
+  int32_t i, j, k, yisint, n;
+  u_int32_t ix, iy;
+  int32_t hx, hy;
+  ieee854_long_double_shape_type o, p, q;
+
+  p.value = x;
+  hx = p.parts32.w0;
+  ix = hx & 0x7fffffff;
+
+  q.value = y;
+  hy = q.parts32.w0;
+  iy = hy & 0x7fffffff;
+
+
+  /* y==zero: x**0 = 1 */
+  if ((iy | q.parts32.w1 | q.parts32.w2 | q.parts32.w3) == 0
+      && !issignaling (x))
+    return one;
+
+  /* 1.0**y = 1; -1.0**+-Inf = 1 */
+  if (x == one && !issignaling (y))
+    return one;
+  if (x == -1 && iy == 0x7fff0000
+      && (q.parts32.w1 | q.parts32.w2 | q.parts32.w3) == 0)
+    return one;
+
+  /* +-NaN return x+y */
+  if ((ix > 0x7fff0000)
+      || ((ix == 0x7fff0000)
+	  && ((p.parts32.w1 | p.parts32.w2 | p.parts32.w3) != 0))
+      || (iy > 0x7fff0000)
+      || ((iy == 0x7fff0000)
+	  && ((q.parts32.w1 | q.parts32.w2 | q.parts32.w3) != 0)))
+    return x + y;
+
+  /* determine if y is an odd int when x < 0
+   * yisint = 0       ... y is not an integer
+   * yisint = 1       ... y is an odd int
+   * yisint = 2       ... y is an even int
+   */
+  yisint = 0;
+  if (hx < 0)
+    {
+      if (iy >= 0x40700000)	/* 2^113 */
+	yisint = 2;		/* even integer y */
+      else if (iy >= 0x3fff0000)	/* 1.0 */
+	{
+	  if (__floorl (y) == y)
+	    {
+	      z = 0.5 * y;
+	      if (__floorl (z) == z)
+		yisint = 2;
+	      else
+		yisint = 1;
+	    }
+	}
+    }
+
+  /* special value of y */
+  if ((q.parts32.w1 | q.parts32.w2 | q.parts32.w3) == 0)
+    {
+      if (iy == 0x7fff0000)	/* y is +-inf */
+	{
+	  if (((ix - 0x3fff0000) | p.parts32.w1 | p.parts32.w2 | p.parts32.w3)
+	      == 0)
+	    return y - y;	/* +-1**inf is NaN */
+	  else if (ix >= 0x3fff0000)	/* (|x|>1)**+-inf = inf,0 */
+	    return (hy >= 0) ? y : zero;
+	  else			/* (|x|<1)**-,+inf = inf,0 */
+	    return (hy < 0) ? -y : zero;
+	}
+      if (iy == 0x3fff0000)
+	{			/* y is  +-1 */
+	  if (hy < 0)
+	    return one / x;
+	  else
+	    return x;
+	}
+      if (hy == 0x40000000)
+	return x * x;		/* y is  2 */
+      if (hy == 0x3ffe0000)
+	{			/* y is  0.5 */
+	  if (hx >= 0)		/* x >= +0 */
+	    return __ieee754_sqrtl (x);
+	}
+    }
+
+  ax = fabsl (x);
+  /* special value of x */
+  if ((p.parts32.w1 | p.parts32.w2 | p.parts32.w3) == 0)
+    {
+      if (ix == 0x7fff0000 || ix == 0 || ix == 0x3fff0000)
+	{
+	  z = ax;		/*x is +-0,+-inf,+-1 */
+	  if (hy < 0)
+	    z = one / z;	/* z = (1/|x|) */
+	  if (hx < 0)
+	    {
+	      if (((ix - 0x3fff0000) | yisint) == 0)
+		{
+		  z = (z - z) / (z - z);	/* (-1)**non-int is NaN */
+		}
+	      else if (yisint == 1)
+		z = -z;		/* (x<0)**odd = -(|x|**odd) */
+	    }
+	  return z;
+	}
+    }
+
+  /* (x<0)**(non-int) is NaN */
+  if (((((u_int32_t) hx >> 31) - 1) | yisint) == 0)
+    return (x - x) / (x - x);
+
+  /* sgn (sign of result -ve**odd) = -1 else = 1 */
+  sgn = one;
+  if (((((u_int32_t) hx >> 31) - 1) | (yisint - 1)) == 0)
+    sgn = -one;			/* (-ve)**(odd int) */
+
+  /* |y| is huge.
+     2^-16495 = 1/2 of smallest representable value.
+     If (1 - 1/131072)^y underflows, y > 1.4986e9 */
+  if (iy > 0x401d654b)
+    {
+      /* if (1 - 2^-113)^y underflows, y > 1.1873e38 */
+      if (iy > 0x407d654b)
+	{
+	  if (ix <= 0x3ffeffff)
+	    return (hy < 0) ? huge * huge : tiny * tiny;
+	  if (ix >= 0x3fff0000)
+	    return (hy > 0) ? huge * huge : tiny * tiny;
+	}
+      /* over/underflow if x is not close to one */
+      if (ix < 0x3ffeffff)
+	return (hy < 0) ? sgn * huge * huge : sgn * tiny * tiny;
+      if (ix > 0x3fff0000)
+	return (hy > 0) ? sgn * huge * huge : sgn * tiny * tiny;
+    }
+
+  ay = y > 0 ? y : -y;
+  if (ay < 0x1p-128)
+    y = y < 0 ? -0x1p-128 : 0x1p-128;
+
+  n = 0;
+  /* take care subnormal number */
+  if (ix < 0x00010000)
+    {
+      ax *= two113;
+      n -= 113;
+      o.value = ax;
+      ix = o.parts32.w0;
+    }
+  n += ((ix) >> 16) - 0x3fff;
+  j = ix & 0x0000ffff;
+  /* determine interval */
+  ix = j | 0x3fff0000;		/* normalize ix */
+  if (j <= 0x3988)
+    k = 0;			/* |x|<sqrt(3/2) */
+  else if (j < 0xbb67)
+    k = 1;			/* |x|<sqrt(3)   */
+  else
+    {
+      k = 0;
+      n += 1;
+      ix -= 0x00010000;
+    }
+
+  o.value = ax;
+  o.parts32.w0 = ix;
+  ax = o.value;
+
+  /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
+  u = ax - bp[k];		/* bp[0]=1.0, bp[1]=1.5 */
+  v = one / (ax + bp[k]);
+  s = u * v;
+  s_h = s;
+
+  o.value = s_h;
+  o.parts32.w3 = 0;
+  o.parts32.w2 &= 0xf8000000;
+  s_h = o.value;
+  /* t_h=ax+bp[k] High */
+  t_h = ax + bp[k];
+  o.value = t_h;
+  o.parts32.w3 = 0;
+  o.parts32.w2 &= 0xf8000000;
+  t_h = o.value;
+  t_l = ax - (t_h - bp[k]);
+  s_l = v * ((u - s_h * t_h) - s_h * t_l);
+  /* compute log(ax) */
+  s2 = s * s;
+  u = LN[0] + s2 * (LN[1] + s2 * (LN[2] + s2 * (LN[3] + s2 * LN[4])));
+  v = LD[0] + s2 * (LD[1] + s2 * (LD[2] + s2 * (LD[3] + s2 * (LD[4] + s2))));
+  r = s2 * s2 * u / v;
+  r += s_l * (s_h + s);
+  s2 = s_h * s_h;
+  t_h = 3.0 + s2 + r;
+  o.value = t_h;
+  o.parts32.w3 = 0;
+  o.parts32.w2 &= 0xf8000000;
+  t_h = o.value;
+  t_l = r - ((t_h - 3.0) - s2);
+  /* u+v = s*(1+...) */
+  u = s_h * t_h;
+  v = s_l * t_h + t_l * s;
+  /* 2/(3log2)*(s+...) */
+  p_h = u + v;
+  o.value = p_h;
+  o.parts32.w3 = 0;
+  o.parts32.w2 &= 0xf8000000;
+  p_h = o.value;
+  p_l = v - (p_h - u);
+  z_h = cp_h * p_h;		/* cp_h+cp_l = 2/(3*log2) */
+  z_l = cp_l * p_h + p_l * cp + dp_l[k];
+  /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
+  t = (_Float128) n;
+  t1 = (((z_h + z_l) + dp_h[k]) + t);
+  o.value = t1;
+  o.parts32.w3 = 0;
+  o.parts32.w2 &= 0xf8000000;
+  t1 = o.value;
+  t2 = z_l - (((t1 - t) - dp_h[k]) - z_h);
+
+  /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
+  y1 = y;
+  o.value = y1;
+  o.parts32.w3 = 0;
+  o.parts32.w2 &= 0xf8000000;
+  y1 = o.value;
+  p_l = (y - y1) * t1 + y * t2;
+  p_h = y1 * t1;
+  z = p_l + p_h;
+  o.value = z;
+  j = o.parts32.w0;
+  if (j >= 0x400d0000) /* z >= 16384 */
+    {
+      /* if z > 16384 */
+      if (((j - 0x400d0000) | o.parts32.w1 | o.parts32.w2 | o.parts32.w3) != 0)
+	return sgn * huge * huge;	/* overflow */
+      else
+	{
+	  if (p_l + ovt > z - p_h)
+	    return sgn * huge * huge;	/* overflow */
+	}
+    }
+  else if ((j & 0x7fffffff) >= 0x400d01b9)	/* z <= -16495 */
+    {
+      /* z < -16495 */
+      if (((j - 0xc00d01bc) | o.parts32.w1 | o.parts32.w2 | o.parts32.w3)
+	  != 0)
+	return sgn * tiny * tiny;	/* underflow */
+      else
+	{
+	  if (p_l <= z - p_h)
+	    return sgn * tiny * tiny;	/* underflow */
+	}
+    }
+  /* compute 2**(p_h+p_l) */
+  i = j & 0x7fffffff;
+  k = (i >> 16) - 0x3fff;
+  n = 0;
+  if (i > 0x3ffe0000)
+    {				/* if |z| > 0.5, set n = [z+0.5] */
+      n = __floorl (z + L(0.5));
+      t = n;
+      p_h -= t;
+    }
+  t = p_l + p_h;
+  o.value = t;
+  o.parts32.w3 = 0;
+  o.parts32.w2 &= 0xf8000000;
+  t = o.value;
+  u = t * lg2_h;
+  v = (p_l - (t - p_h)) * lg2 + t * lg2_l;
+  z = u + v;
+  w = v - (z - u);
+  /*  exp(z) */
+  t = z * z;
+  u = PN[0] + t * (PN[1] + t * (PN[2] + t * (PN[3] + t * PN[4])));
+  v = PD[0] + t * (PD[1] + t * (PD[2] + t * (PD[3] + t)));
+  t1 = z - t * u / v;
+  r = (z * t1) / (t1 - two) - (w + z * w);
+  z = one - (r - z);
+  o.value = z;
+  j = o.parts32.w0;
+  j += (n << 16);
+  if ((j >> 16) <= 0)
+    {
+      z = __scalbnl (z, n);	/* subnormal output */
+      _Float128 force_underflow = z * z;
+      math_force_eval (force_underflow);
+    }
+  else
+    {
+      o.parts32.w0 = j;
+      z = o.value;
+    }
+  return sgn * z;
+}
+strong_alias (__ieee754_powl, __powl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
new file mode 100644
index 0000000000..21b440762f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
@@ -0,0 +1,273 @@
+/* Quad-precision floating point argument reduction.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/*
+ * Table of constants for 2/pi, 5628 hexadecimal digits of 2/pi
+ */
+static const int32_t two_over_pi[] = {
+0xa2f983, 0x6e4e44, 0x1529fc, 0x2757d1, 0xf534dd, 0xc0db62,
+0x95993c, 0x439041, 0xfe5163, 0xabdebb, 0xc561b7, 0x246e3a,
+0x424dd2, 0xe00649, 0x2eea09, 0xd1921c, 0xfe1deb, 0x1cb129,
+0xa73ee8, 0x8235f5, 0x2ebb44, 0x84e99c, 0x7026b4, 0x5f7e41,
+0x3991d6, 0x398353, 0x39f49c, 0x845f8b, 0xbdf928, 0x3b1ff8,
+0x97ffde, 0x05980f, 0xef2f11, 0x8b5a0a, 0x6d1f6d, 0x367ecf,
+0x27cb09, 0xb74f46, 0x3f669e, 0x5fea2d, 0x7527ba, 0xc7ebe5,
+0xf17b3d, 0x0739f7, 0x8a5292, 0xea6bfb, 0x5fb11f, 0x8d5d08,
+0x560330, 0x46fc7b, 0x6babf0, 0xcfbc20, 0x9af436, 0x1da9e3,
+0x91615e, 0xe61b08, 0x659985, 0x5f14a0, 0x68408d, 0xffd880,
+0x4d7327, 0x310606, 0x1556ca, 0x73a8c9, 0x60e27b, 0xc08c6b,
+0x47c419, 0xc367cd, 0xdce809, 0x2a8359, 0xc4768b, 0x961ca6,
+0xddaf44, 0xd15719, 0x053ea5, 0xff0705, 0x3f7e33, 0xe832c2,
+0xde4f98, 0x327dbb, 0xc33d26, 0xef6b1e, 0x5ef89f, 0x3a1f35,
+0xcaf27f, 0x1d87f1, 0x21907c, 0x7c246a, 0xfa6ed5, 0x772d30,
+0x433b15, 0xc614b5, 0x9d19c3, 0xc2c4ad, 0x414d2c, 0x5d000c,
+0x467d86, 0x2d71e3, 0x9ac69b, 0x006233, 0x7cd2b4, 0x97a7b4,
+0xd55537, 0xf63ed7, 0x1810a3, 0xfc764d, 0x2a9d64, 0xabd770,
+0xf87c63, 0x57b07a, 0xe71517, 0x5649c0, 0xd9d63b, 0x3884a7,
+0xcb2324, 0x778ad6, 0x23545a, 0xb91f00, 0x1b0af1, 0xdfce19,
+0xff319f, 0x6a1e66, 0x615799, 0x47fbac, 0xd87f7e, 0xb76522,
+0x89e832, 0x60bfe6, 0xcdc4ef, 0x09366c, 0xd43f5d, 0xd7de16,
+0xde3b58, 0x929bde, 0x2822d2, 0xe88628, 0x4d58e2, 0x32cac6,
+0x16e308, 0xcb7de0, 0x50c017, 0xa71df3, 0x5be018, 0x34132e,
+0x621283, 0x014883, 0x5b8ef5, 0x7fb0ad, 0xf2e91e, 0x434a48,
+0xd36710, 0xd8ddaa, 0x425fae, 0xce616a, 0xa4280a, 0xb499d3,
+0xf2a606, 0x7f775c, 0x83c2a3, 0x883c61, 0x78738a, 0x5a8caf,
+0xbdd76f, 0x63a62d, 0xcbbff4, 0xef818d, 0x67c126, 0x45ca55,
+0x36d9ca, 0xd2a828, 0x8d61c2, 0x77c912, 0x142604, 0x9b4612,
+0xc459c4, 0x44c5c8, 0x91b24d, 0xf31700, 0xad43d4, 0xe54929,
+0x10d5fd, 0xfcbe00, 0xcc941e, 0xeece70, 0xf53e13, 0x80f1ec,
+0xc3e7b3, 0x28f8c7, 0x940593, 0x3e71c1, 0xb3092e, 0xf3450b,
+0x9c1288, 0x7b20ab, 0x9fb52e, 0xc29247, 0x2f327b, 0x6d550c,
+0x90a772, 0x1fe76b, 0x96cb31, 0x4a1679, 0xe27941, 0x89dff4,
+0x9794e8, 0x84e6e2, 0x973199, 0x6bed88, 0x365f5f, 0x0efdbb,
+0xb49a48, 0x6ca467, 0x427271, 0x325d8d, 0xb8159f, 0x09e5bc,
+0x25318d, 0x3974f7, 0x1c0530, 0x010c0d, 0x68084b, 0x58ee2c,
+0x90aa47, 0x02e774, 0x24d6bd, 0xa67df7, 0x72486e, 0xef169f,
+0xa6948e, 0xf691b4, 0x5153d1, 0xf20acf, 0x339820, 0x7e4bf5,
+0x6863b2, 0x5f3edd, 0x035d40, 0x7f8985, 0x295255, 0xc06437,
+0x10d86d, 0x324832, 0x754c5b, 0xd4714e, 0x6e5445, 0xc1090b,
+0x69f52a, 0xd56614, 0x9d0727, 0x50045d, 0xdb3bb4, 0xc576ea,
+0x17f987, 0x7d6b49, 0xba271d, 0x296996, 0xacccc6, 0x5414ad,
+0x6ae290, 0x89d988, 0x50722c, 0xbea404, 0x940777, 0x7030f3,
+0x27fc00, 0xa871ea, 0x49c266, 0x3de064, 0x83dd97, 0x973fa3,
+0xfd9443, 0x8c860d, 0xde4131, 0x9d3992, 0x8c70dd, 0xe7b717,
+0x3bdf08, 0x2b3715, 0xa0805c, 0x93805a, 0x921110, 0xd8e80f,
+0xaf806c, 0x4bffdb, 0x0f9038, 0x761859, 0x15a562, 0xbbcb61,
+0xb989c7, 0xbd4010, 0x04f2d2, 0x277549, 0xf6b6eb, 0xbb22db,
+0xaa140a, 0x2f2689, 0x768364, 0x333b09, 0x1a940e, 0xaa3a51,
+0xc2a31d, 0xaeedaf, 0x12265c, 0x4dc26d, 0x9c7a2d, 0x9756c0,
+0x833f03, 0xf6f009, 0x8c402b, 0x99316d, 0x07b439, 0x15200c,
+0x5bc3d8, 0xc492f5, 0x4badc6, 0xa5ca4e, 0xcd37a7, 0x36a9e6,
+0x9492ab, 0x6842dd, 0xde6319, 0xef8c76, 0x528b68, 0x37dbfc,
+0xaba1ae, 0x3115df, 0xa1ae00, 0xdafb0c, 0x664d64, 0xb705ed,
+0x306529, 0xbf5657, 0x3aff47, 0xb9f96a, 0xf3be75, 0xdf9328,
+0x3080ab, 0xf68c66, 0x15cb04, 0x0622fa, 0x1de4d9, 0xa4b33d,
+0x8f1b57, 0x09cd36, 0xe9424e, 0xa4be13, 0xb52333, 0x1aaaf0,
+0xa8654f, 0xa5c1d2, 0x0f3f0b, 0xcd785b, 0x76f923, 0x048b7b,
+0x721789, 0x53a6c6, 0xe26e6f, 0x00ebef, 0x584a9b, 0xb7dac4,
+0xba66aa, 0xcfcf76, 0x1d02d1, 0x2df1b1, 0xc1998c, 0x77adc3,
+0xda4886, 0xa05df7, 0xf480c6, 0x2ff0ac, 0x9aecdd, 0xbc5c3f,
+0x6dded0, 0x1fc790, 0xb6db2a, 0x3a25a3, 0x9aaf00, 0x9353ad,
+0x0457b6, 0xb42d29, 0x7e804b, 0xa707da, 0x0eaa76, 0xa1597b,
+0x2a1216, 0x2db7dc, 0xfde5fa, 0xfedb89, 0xfdbe89, 0x6c76e4,
+0xfca906, 0x70803e, 0x156e85, 0xff87fd, 0x073e28, 0x336761,
+0x86182a, 0xeabd4d, 0xafe7b3, 0x6e6d8f, 0x396795, 0x5bbf31,
+0x48d784, 0x16df30, 0x432dc7, 0x356125, 0xce70c9, 0xb8cb30,
+0xfd6cbf, 0xa200a4, 0xe46c05, 0xa0dd5a, 0x476f21, 0xd21262,
+0x845cb9, 0x496170, 0xe0566b, 0x015299, 0x375550, 0xb7d51e,
+0xc4f133, 0x5f6e13, 0xe4305d, 0xa92e85, 0xc3b21d, 0x3632a1,
+0xa4b708, 0xd4b1ea, 0x21f716, 0xe4698f, 0x77ff27, 0x80030c,
+0x2d408d, 0xa0cd4f, 0x99a520, 0xd3a2b3, 0x0a5d2f, 0x42f9b4,
+0xcbda11, 0xd0be7d, 0xc1db9b, 0xbd17ab, 0x81a2ca, 0x5c6a08,
+0x17552e, 0x550027, 0xf0147f, 0x8607e1, 0x640b14, 0x8d4196,
+0xdebe87, 0x2afdda, 0xb6256b, 0x34897b, 0xfef305, 0x9ebfb9,
+0x4f6a68, 0xa82a4a, 0x5ac44f, 0xbcf82d, 0x985ad7, 0x95c7f4,
+0x8d4d0d, 0xa63a20, 0x5f57a4, 0xb13f14, 0x953880, 0x0120cc,
+0x86dd71, 0xb6dec9, 0xf560bf, 0x11654d, 0x6b0701, 0xacb08c,
+0xd0c0b2, 0x485551, 0x0efb1e, 0xc37295, 0x3b06a3, 0x3540c0,
+0x7bdc06, 0xcc45e0, 0xfa294e, 0xc8cad6, 0x41f3e8, 0xde647c,
+0xd8649b, 0x31bed9, 0xc397a4, 0xd45877, 0xc5e369, 0x13daf0,
+0x3c3aba, 0x461846, 0x5f7555, 0xf5bdd2, 0xc6926e, 0x5d2eac,
+0xed440e, 0x423e1c, 0x87c461, 0xe9fd29, 0xf3d6e7, 0xca7c22,
+0x35916f, 0xc5e008, 0x8dd7ff, 0xe26a6e, 0xc6fdb0, 0xc10893,
+0x745d7c, 0xb2ad6b, 0x9d6ecd, 0x7b723e, 0x6a11c6, 0xa9cff7,
+0xdf7329, 0xbac9b5, 0x5100b7, 0x0db2e2, 0x24ba74, 0x607de5,
+0x8ad874, 0x2c150d, 0x0c1881, 0x94667e, 0x162901, 0x767a9f,
+0xbefdfd, 0xef4556, 0x367ed9, 0x13d9ec, 0xb9ba8b, 0xfc97c4,
+0x27a831, 0xc36ef1, 0x36c594, 0x56a8d8, 0xb5a8b4, 0x0ecccf,
+0x2d8912, 0x34576f, 0x89562c, 0xe3ce99, 0xb920d6, 0xaa5e6b,
+0x9c2a3e, 0xcc5f11, 0x4a0bfd, 0xfbf4e1, 0x6d3b8e, 0x2c86e2,
+0x84d4e9, 0xa9b4fc, 0xd1eeef, 0xc9352e, 0x61392f, 0x442138,
+0xc8d91b, 0x0afc81, 0x6a4afb, 0xd81c2f, 0x84b453, 0x8c994e,
+0xcc2254, 0xdc552a, 0xd6c6c0, 0x96190b, 0xb8701a, 0x649569,
+0x605a26, 0xee523f, 0x0f117f, 0x11b5f4, 0xf5cbfc, 0x2dbc34,
+0xeebc34, 0xcc5de8, 0x605edd, 0x9b8e67, 0xef3392, 0xb817c9,
+0x9b5861, 0xbc57e1, 0xc68351, 0x103ed8, 0x4871dd, 0xdd1c2d,
+0xa118af, 0x462c21, 0xd7f359, 0x987ad9, 0xc0549e, 0xfa864f,
+0xfc0656, 0xae79e5, 0x362289, 0x22ad38, 0xdc9367, 0xaae855,
+0x382682, 0x9be7ca, 0xa40d51, 0xb13399, 0x0ed7a9, 0x480569,
+0xf0b265, 0xa7887f, 0x974c88, 0x36d1f9, 0xb39221, 0x4a827b,
+0x21cf98, 0xdc9f40, 0x5547dc, 0x3a74e1, 0x42eb67, 0xdf9dfe,
+0x5fd45e, 0xa4677b, 0x7aacba, 0xa2f655, 0x23882b, 0x55ba41,
+0x086e59, 0x862a21, 0x834739, 0xe6e389, 0xd49ee5, 0x40fb49,
+0xe956ff, 0xca0f1c, 0x8a59c5, 0x2bfa94, 0xc5c1d3, 0xcfc50f,
+0xae5adb, 0x86c547, 0x624385, 0x3b8621, 0x94792c, 0x876110,
+0x7b4c2a, 0x1a2c80, 0x12bf43, 0x902688, 0x893c78, 0xe4c4a8,
+0x7bdbe5, 0xc23ac4, 0xeaf426, 0x8a67f7, 0xbf920d, 0x2ba365,
+0xb1933d, 0x0b7cbd, 0xdc51a4, 0x63dd27, 0xdde169, 0x19949a,
+0x9529a8, 0x28ce68, 0xb4ed09, 0x209f44, 0xca984e, 0x638270,
+0x237c7e, 0x32b90f, 0x8ef5a7, 0xe75614, 0x08f121, 0x2a9db5,
+0x4d7e6f, 0x5119a5, 0xabf9b5, 0xd6df82, 0x61dd96, 0x023616,
+0x9f3ac4, 0xa1a283, 0x6ded72, 0x7a8d39, 0xa9b882, 0x5c326b,
+0x5b2746, 0xed3400, 0x7700d2, 0x55f4fc, 0x4d5901, 0x8071e0,
+0xe13f89, 0xb295f3, 0x64a8f1, 0xaea74b, 0x38fc4c, 0xeab2bb,
+0x47270b, 0xabc3a7, 0x34ba60, 0x52dd34, 0xf8563a, 0xeb7e8a,
+0x31bb36, 0x5895b7, 0x47f7a9, 0x94c3aa, 0xd39225, 0x1e7f3e,
+0xd8974e, 0xbba94f, 0xd8ae01, 0xe661b4, 0x393d8e, 0xa523aa,
+0x33068e, 0x1633b5, 0x3bb188, 0x1d3a9d, 0x4013d0, 0xcc1be5,
+0xf862e7, 0x3bf28f, 0x39b5bf, 0x0bc235, 0x22747e, 0xa247c0,
+0xd52d1f, 0x19add3, 0x9094df, 0x9311d0, 0xb42b25, 0x496db2,
+0xe264b2, 0x5ef135, 0x3bc6a4, 0x1a4ad0, 0xaac92e, 0x64e886,
+0x573091, 0x982cfb, 0x311b1a, 0x08728b, 0xbdcee1, 0x60e142,
+0xeb641d, 0xd0bba3, 0xe559d4, 0x597b8c, 0x2a4483, 0xf332ba,
+0xf84867, 0x2c8d1b, 0x2fa9b0, 0x50f3dd, 0xf9f573, 0xdb61b4,
+0xfe233e, 0x6c41a6, 0xeea318, 0x775a26, 0xbc5e5c, 0xcea708,
+0x94dc57, 0xe20196, 0xf1e839, 0xbe4851, 0x5d2d2f, 0x4e9555,
+0xd96ec2, 0xe7d755, 0x6304e0, 0xc02e0e, 0xfc40a0, 0xbbf9b3,
+0x7125a7, 0x222dfb, 0xf619d8, 0x838c1c, 0x6619e6, 0xb20d55,
+0xbb5137, 0x79e809, 0xaf9149, 0x0d73de, 0x0b0da5, 0xce7f58,
+0xac1934, 0x724667, 0x7a1a13, 0x9e26bc, 0x4555e7, 0x585cb5,
+0x711d14, 0x486991, 0x480d60, 0x56adab, 0xd62f64, 0x96ee0c,
+0x212ff3, 0x5d6d88, 0xa67684, 0x95651e, 0xab9e0a, 0x4ddefe,
+0x571010, 0x836a39, 0xf8ea31, 0x9e381d, 0xeac8b1, 0xcac96b,
+0x37f21e, 0xd505e9, 0x984743, 0x9fc56c, 0x0331b7, 0x3b8bf8,
+0x86e56a, 0x8dc343, 0x6230e7, 0x93cfd5, 0x6a8f2d, 0x733005,
+0x1af021, 0xa09fcb, 0x7415a1, 0xd56b23, 0x6ff725, 0x2f4bc7,
+0xb8a591, 0x7fac59, 0x5c55de, 0x212c38, 0xb13296, 0x5cff50,
+0x366262, 0xfa7b16, 0xf4d9a6, 0x2acfe7, 0xf07403, 0xd4d604,
+0x6fd916, 0x31b1bf, 0xcbb450, 0x5bd7c8, 0x0ce194, 0x6bd643,
+0x4fd91c, 0xdf4543, 0x5f3453, 0xe2b5aa, 0xc9aec8, 0x131485,
+0xf9d2bf, 0xbadb9e, 0x76f5b9, 0xaf15cf, 0xca3182, 0x14b56d,
+0xe9fe4d, 0x50fc35, 0xf5aed5, 0xa2d0c1, 0xc96057, 0x192eb6,
+0xe91d92, 0x07d144, 0xaea3c6, 0x343566, 0x26d5b4, 0x3161e2,
+0x37f1a2, 0x209eff, 0x958e23, 0x493798, 0x35f4a6, 0x4bdc02,
+0xc2be13, 0xbe80a0, 0x0b72a3, 0x115c5f, 0x1e1bd1, 0x0db4d3,
+0x869e85, 0x96976b, 0x2ac91f, 0x8a26c2, 0x3070f0, 0x041412,
+0xfc9fa5, 0xf72a38, 0x9c6878, 0xe2aa76, 0x50cfe1, 0x559274,
+0x934e38, 0x0a92f7, 0x5533f0, 0xa63db4, 0x399971, 0xe2b755,
+0xa98a7c, 0x008f19, 0xac54d2, 0x2ea0b4, 0xf5f3e0, 0x60c849,
+0xffd269, 0xae52ce, 0x7a5fdd, 0xe9ce06, 0xfb0ae8, 0xa50cce,
+0xea9d3e, 0x3766dd, 0xb834f5, 0x0da090, 0x846f88, 0x4ae3d5,
+0x099a03, 0x2eae2d, 0xfcb40a, 0xfb9b33, 0xe281dd, 0x1b16ba,
+0xd8c0af, 0xd96b97, 0xb52dc9, 0x9c277f, 0x5951d5, 0x21ccd6,
+0xb6496b, 0x584562, 0xb3baf2, 0xa1a5c4, 0x7ca2cf, 0xa9b93d,
+0x7b7b89, 0x483d38,
+};
+
+static const _Float128 c[] = {
+/* 113 bits of pi/2 */
+#define PI_2_1 c[0]
+ L(0x1.921fb54442d18469898cc51701b8p+0),
+
+/* pi/2 - PI_2_1 */
+#define PI_2_1t c[1]
+ L(0x3.9a252049c1114cf98e804177d4c8p-116),
+};
+
+int32_t __ieee754_rem_pio2l(_Float128 x, _Float128 *y)
+{
+  _Float128 z, w, t;
+  double tx[8];
+  int64_t exp, n, ix, hx;
+  u_int64_t lx;
+
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  ix = hx & 0x7fffffffffffffffLL;
+  if (ix <= 0x3ffe921fb54442d1LL)	/* x in <-pi/4, pi/4> */
+    {
+      y[0] = x;
+      y[1] = 0;
+      return 0;
+    }
+
+  if (ix < 0x40002d97c7f3321dLL)	/* |x| in <pi/4, 3pi/4) */
+    {
+      if (hx > 0)
+	{
+	  /* 113 + 113 bit PI is ok */
+	  z = x - PI_2_1;
+	  y[0] = z - PI_2_1t;
+	  y[1] = (z - y[0]) - PI_2_1t;
+	  return 1;
+	}
+      else
+        {
+	  /* 113 + 113 bit PI is ok */
+	  z = x + PI_2_1;
+	  y[0] = z + PI_2_1t;
+	  y[1] = (z - y[0]) + PI_2_1t;
+	  return -1;
+	}
+    }
+
+  if (ix >= 0x7fff000000000000LL)	/* x is +=oo or NaN */
+    {
+      y[0] = x - x;
+      y[1] = y[0];
+      return 0;
+    }
+
+  /* Handle large arguments.
+     We split the 113 bits of the mantissa into 5 24bit integers
+     stored in a double array.  */
+  exp = (ix >> 48) - 16383 - 23;
+
+  /* This is faster than doing this in floating point, because we
+     have to convert it to integers anyway and like this we can keep
+     both integer and floating point units busy.  */
+  tx [0] = (double)(((ix >> 25) & 0x7fffff) | 0x800000);
+  tx [1] = (double)((ix >> 1) & 0xffffff);
+  tx [2] = (double)(((ix << 23) | (lx >> 41)) & 0xffffff);
+  tx [3] = (double)((lx >> 17) & 0xffffff);
+  tx [4] = (double)((lx << 7) & 0xffffff);
+
+  n = __kernel_rem_pio2 (tx, tx + 5, exp, ((lx << 7) & 0xffffff) ? 5 : 4,
+			 3, two_over_pi);
+
+  /* The result is now stored in 3 double values, we need to convert it into
+     two long double values.  */
+  t = (_Float128) tx [6] + (_Float128) tx [7];
+  w = (_Float128) tx [5];
+
+  if (hx >= 0)
+    {
+      y[0] = w + t;
+      y[1] = t - (y[0] - w);
+      return n;
+    }
+  else
+    {
+      y[0] = -(w + t);
+      y[1] = -t - (y[0] + w);
+      return -n;
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_remainderl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_remainderl.c
new file mode 100644
index 0000000000..c1c196ca9a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_remainderl.c
@@ -0,0 +1,71 @@
+/* e_fmodl.c -- long double version of e_fmod.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_remainderl(x,p)
+ * Return :
+ *	returns  x REM p  =  x - [x/p]*p as if in infinite
+ *	precise arithmetic, where [x/p] is the (infinite bit)
+ *	integer nearest x/p (in half way case choose the even one).
+ * Method :
+ *	Based on fmodl() return x-[x/p]chopped*p exactlp.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 zero = 0;
+
+
+_Float128
+__ieee754_remainderl(_Float128 x, _Float128 p)
+{
+	int64_t hx,hp;
+	u_int64_t sx,lx,lp;
+	_Float128 p_half;
+
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	GET_LDOUBLE_WORDS64(hp,lp,p);
+	sx = hx&0x8000000000000000ULL;
+	hp &= 0x7fffffffffffffffLL;
+	hx &= 0x7fffffffffffffffLL;
+
+    /* purge off exception values */
+	if((hp|lp)==0) return (x*p)/(x*p);	/* p = 0 */
+	if((hx>=0x7fff000000000000LL)||			/* x not finite */
+	  ((hp>=0x7fff000000000000LL)&&			/* p is NaN */
+	  (((hp-0x7fff000000000000LL)|lp)!=0)))
+	    return (x*p)/(x*p);
+
+
+	if (hp<=0x7ffdffffffffffffLL) x = __ieee754_fmodl(x,p+p);	/* now x < 2p */
+	if (((hx-hp)|(lx-lp))==0) return zero*x;
+	x  = fabsl(x);
+	p  = fabsl(p);
+	if (hp<0x0002000000000000LL) {
+	    if(x+x>p) {
+		x-=p;
+		if(x+x>=p) x -= p;
+	    }
+	} else {
+	    p_half = L(0.5)*p;
+	    if(x>p_half) {
+		x-=p;
+		if(x>=p_half) x -= p;
+	    }
+	}
+	GET_LDOUBLE_MSW64(hx,x);
+	SET_LDOUBLE_MSW64(x,hx^sx);
+	return x;
+}
+strong_alias (__ieee754_remainderl, __remainderl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/e_sinhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_sinhl.c
new file mode 100644
index 0000000000..a2b30c2190
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/e_sinhl.c
@@ -0,0 +1,117 @@
+/* e_sinhl.c -- long double version of e_sinh.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Changes for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_sinhl(x)
+ * Method :
+ * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2
+ *      1. Replace x by |x| (sinhl(-x) = -sinhl(x)).
+ *      2.
+ *                                                   E + E/(E+1)
+ *          0        <= x <= 25     :  sinhl(x) := --------------, E=expm1l(x)
+ *                                                       2
+ *
+ *          25       <= x <= lnovft :  sinhl(x) := expl(x)/2
+ *          lnovft   <= x <= ln2ovft:  sinhl(x) := expl(x/2)/2 * expl(x/2)
+ *          ln2ovft  <  x           :  sinhl(x) := x*shuge (overflow)
+ *
+ * Special cases:
+ *      sinhl(x) is |x| if x is +INF, -INF, or NaN.
+ *      only sinhl(0)=0 is exact for finite x.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 one = 1.0, shuge = L(1.0e4931),
+ovf_thresh = L(1.1357216553474703894801348310092223067821E4);
+
+_Float128
+__ieee754_sinhl (_Float128 x)
+{
+  _Float128 t, w, h;
+  u_int32_t jx, ix;
+  ieee854_long_double_shape_type u;
+
+  /* Words of |x|. */
+  u.value = x;
+  jx = u.parts32.w0;
+  ix = jx & 0x7fffffff;
+
+  /* x is INF or NaN */
+  if (ix >= 0x7fff0000)
+    return x + x;
+
+  h = 0.5;
+  if (jx & 0x80000000)
+    h = -h;
+
+  /* Absolute value of x.  */
+  u.parts32.w0 = ix;
+
+  /* |x| in [0,40], return sign(x)*0.5*(E+E/(E+1))) */
+  if (ix <= 0x40044000)
+    {
+      if (ix < 0x3fc60000) /* |x| < 2^-57 */
+	{
+	  math_check_force_underflow (x);
+	  if (shuge + x > one)
+	    return x;		/* sinh(tiny) = tiny with inexact */
+	}
+      t = __expm1l (u.value);
+      if (ix < 0x3fff0000)
+	return h * (2.0 * t - t * t / (t + one));
+      return h * (t + t / (t + one));
+    }
+
+  /* |x| in [40, log(maxdouble)] return 0.5*exp(|x|) */
+  if (ix <= 0x400c62e3) /* 11356.375 */
+    return h * __ieee754_expl (u.value);
+
+  /* |x| in [log(maxdouble), overflowthreshold]
+     Overflow threshold is log(2 * maxdouble).  */
+  if (u.value <= ovf_thresh)
+    {
+      w = __ieee754_expl (0.5 * u.value);
+      t = h * w;
+      return t * w;
+    }
+
+  /* |x| > overflowthreshold, sinhl(x) overflow */
+  return x * shuge;
+}
+strong_alias (__ieee754_sinhl, __sinhl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/gamma_productl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/gamma_productl.c
new file mode 100644
index 0000000000..319a45119e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/gamma_productl.c
@@ -0,0 +1,45 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_splitl.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+   - 1, in the form R * (1 + *EPS) where the return value R is an
+   approximation to the product and *EPS is set to indicate the
+   approximate error in the return value.  X is such that all the
+   values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+   X is small enough that factors quadratic in it can be
+   neglected.  */
+
+_Float128
+__gamma_productl (_Float128 x, _Float128 x_eps, int n, _Float128 *eps)
+{
+  SET_RESTORE_ROUNDL (FE_TONEAREST);
+  _Float128 ret = x;
+  *eps = x_eps / x;
+  for (int i = 1; i < n; i++)
+    {
+      *eps += x_eps / (x + i);
+      _Float128 lo;
+      mul_splitl (&ret, &lo, ret, x + i);
+      *eps += lo / ret;
+    }
+  return ret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/ieee754.h b/REORG.TODO/sysdeps/ieee754/ldbl-128/ieee754.h
new file mode 100644
index 0000000000..94662a350f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/ieee754.h
@@ -0,0 +1,170 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _IEEE754_H
+
+#define _IEEE754_H 1
+#include <features.h>
+
+#include <endian.h>
+
+__BEGIN_DECLS
+
+union ieee754_float
+  {
+    float f;
+
+    /* This is the IEEE 754 single-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:8;
+	unsigned int mantissa:23;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	unsigned int mantissa:23;
+	unsigned int exponent:8;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:8;
+	unsigned int quiet_nan:1;
+	unsigned int mantissa:22;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	unsigned int mantissa:22;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:8;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee_nan;
+  };
+
+#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
+
+
+union ieee754_double
+  {
+    double d;
+
+    /* This is the IEEE 754 double-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:11;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:20;
+	unsigned int mantissa1:32;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:20;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:11;
+	unsigned int quiet_nan:1;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:19;
+	unsigned int mantissa1:32;
+#else
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:19;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+#endif
+      } ieee_nan;
+  };
+
+#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
+
+
+union ieee854_long_double
+  {
+    long double d;
+
+    /* This is the IEEE 854 quad-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:15;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:16;
+	unsigned int mantissa1:32;
+	unsigned int mantissa2:32;
+	unsigned int mantissa3:32;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa3:32;
+	unsigned int mantissa2:32;
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:16;
+	unsigned int exponent:15;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:15;
+	unsigned int quiet_nan:1;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:15;
+	unsigned int mantissa1:32;
+	unsigned int mantissa2:32;
+	unsigned int mantissa3:32;
+#else
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa3:32;
+	unsigned int mantissa2:32;
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:15;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:15;
+	unsigned int negative:1;
+#endif
+      } ieee_nan;
+  };
+
+#define IEEE854_LONG_DOUBLE_BIAS 0x3fff /* Added to exponent.  */
+
+__END_DECLS
+
+#endif /* ieee754.h */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/k_cosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_cosl.c
new file mode 100644
index 0000000000..b7c606379e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_cosl.c
@@ -0,0 +1,131 @@
+/* Quad-precision floating point cosine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 c[] = {
+#define ONE c[0]
+ L(1.00000000000000000000000000000000000E+00), /* 3fff0000000000000000000000000000 */
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+L(-5.00000000000000000000000000000000000E-01), /* bffe0000000000000000000000000000 */
+ L(4.16666666666666666666666666556146073E-02), /* 3ffa5555555555555555555555395023 */
+L(-1.38888888888888888888309442601939728E-03), /* bff56c16c16c16c16c16a566e42c0375 */
+ L(2.48015873015862382987049502531095061E-05), /* 3fefa01a01a019ee02dcf7da2d6d5444 */
+L(-2.75573112601362126593516899592158083E-07), /* bfe927e4f5dce637cb0b54908754bde0 */
+
+/* cos x ~ ONE + x^2 ( COS1 + COS2 * x^2 + ... + COS7 * x^12 + COS8 * x^14 )
+   x in <0,0.1484375>  */
+#define COS1 c[6]
+#define COS2 c[7]
+#define COS3 c[8]
+#define COS4 c[9]
+#define COS5 c[10]
+#define COS6 c[11]
+#define COS7 c[12]
+#define COS8 c[13]
+L(-4.99999999999999999999999999999999759E-01), /* bffdfffffffffffffffffffffffffffb */
+ L(4.16666666666666666666666666651287795E-02), /* 3ffa5555555555555555555555516f30 */
+L(-1.38888888888888888888888742314300284E-03), /* bff56c16c16c16c16c16c16a463dfd0d */
+ L(2.48015873015873015867694002851118210E-05), /* 3fefa01a01a01a01a0195cebe6f3d3a5 */
+L(-2.75573192239858811636614709689300351E-07), /* bfe927e4fb7789f5aa8142a22044b51f */
+ L(2.08767569877762248667431926878073669E-09), /* 3fe21eed8eff881d1e9262d7adff4373 */
+L(-1.14707451049343817400420280514614892E-11), /* bfda9397496922a9601ed3d4ca48944b */
+ L(4.77810092804389587579843296923533297E-14), /* 3fd2ae5f8197cbcdcaf7c3fb4523414c */
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+L(-1.66666666666666666666666666666666659E-01), /* bffc5555555555555555555555555555 */
+ L(8.33333333333333333333333333146298442E-03), /* 3ff81111111111111111111110fe195d */
+L(-1.98412698412698412697726277416810661E-04), /* bff2a01a01a01a01a019e7121e080d88 */
+ L(2.75573192239848624174178393552189149E-06), /* 3fec71de3a556c640c6aaa51aa02ab41 */
+L(-2.50521016467996193495359189395805639E-08), /* bfe5ae644ee90c47dc71839de75b2787 */
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const _Float128 __sincosl_table[];
+
+_Float128
+__kernel_cosl(_Float128 x, _Float128 y)
+{
+  _Float128 h, l, z, sin_l, cos_l_m1;
+  int64_t ix;
+  u_int32_t tix, hix, index;
+  GET_LDOUBLE_MSW64 (ix, x);
+  tix = ((u_int64_t)ix) >> 32;
+  tix &= ~0x80000000;			/* tix = |x|'s high 32 bits */
+  if (tix < 0x3ffc3000)			/* |x| < 0.1484375 */
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 16.  */
+      if (tix < 0x3fc60000)		/* |x| < 2^-57 */
+	if (!((int)x)) return ONE;	/* generate inexact */
+      z = x * x;
+      return ONE + (z*(COS1+z*(COS2+z*(COS3+z*(COS4+
+		    z*(COS5+z*(COS6+z*(COS7+z*COS8))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 cosl(h+l) = cosl(h)cosl(l) - sinl(h)sinl(l).  */
+      index = 0x3ffe - (tix >> 16);
+      hix = (tix + (0x200 << index)) & (0xfffffc00 << index);
+      if (signbit (x))
+	{
+	  x = -x;
+	  y = -y;
+	}
+      switch (index)
+	{
+	case 0: index = ((45 << 10) + hix - 0x3ffe0000) >> 8; break;
+	case 1: index = ((13 << 11) + hix - 0x3ffd0000) >> 9; break;
+	default:
+	case 2: index = (hix - 0x3ffc3000) >> 10; break;
+	}
+
+      SET_LDOUBLE_WORDS64(h, ((u_int64_t)hix) << 32, 0);
+      l = y - (h - x);
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      return __sincosl_table [index + SINCOSL_COS_HI]
+	     + (__sincosl_table [index + SINCOSL_COS_LO]
+		- (__sincosl_table [index + SINCOSL_SIN_HI] * sin_l
+		   - __sincosl_table [index + SINCOSL_COS_HI] * cos_l_m1));
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/k_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_sincosl.c
new file mode 100644
index 0000000000..03710f9e3a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_sincosl.c
@@ -0,0 +1,170 @@
+/* Quad-precision floating point sine and cosine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 c[] = {
+#define ONE c[0]
+ L(1.00000000000000000000000000000000000E+00), /* 3fff0000000000000000000000000000 */
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+L(-5.00000000000000000000000000000000000E-01), /* bffe0000000000000000000000000000 */
+ L(4.16666666666666666666666666556146073E-02), /* 3ffa5555555555555555555555395023 */
+L(-1.38888888888888888888309442601939728E-03), /* bff56c16c16c16c16c16a566e42c0375 */
+ L(2.48015873015862382987049502531095061E-05), /* 3fefa01a01a019ee02dcf7da2d6d5444 */
+L(-2.75573112601362126593516899592158083E-07), /* bfe927e4f5dce637cb0b54908754bde0 */
+
+/* cos x ~ ONE + x^2 ( COS1 + COS2 * x^2 + ... + COS7 * x^12 + COS8 * x^14 )
+   x in <0,0.1484375>  */
+#define COS1 c[6]
+#define COS2 c[7]
+#define COS3 c[8]
+#define COS4 c[9]
+#define COS5 c[10]
+#define COS6 c[11]
+#define COS7 c[12]
+#define COS8 c[13]
+L(-4.99999999999999999999999999999999759E-01), /* bffdfffffffffffffffffffffffffffb */
+ L(4.16666666666666666666666666651287795E-02), /* 3ffa5555555555555555555555516f30 */
+L(-1.38888888888888888888888742314300284E-03), /* bff56c16c16c16c16c16c16a463dfd0d */
+ L(2.48015873015873015867694002851118210E-05), /* 3fefa01a01a01a01a0195cebe6f3d3a5 */
+L(-2.75573192239858811636614709689300351E-07), /* bfe927e4fb7789f5aa8142a22044b51f */
+ L(2.08767569877762248667431926878073669E-09), /* 3fe21eed8eff881d1e9262d7adff4373 */
+L(-1.14707451049343817400420280514614892E-11), /* bfda9397496922a9601ed3d4ca48944b */
+ L(4.77810092804389587579843296923533297E-14), /* 3fd2ae5f8197cbcdcaf7c3fb4523414c */
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+L(-1.66666666666666666666666666666666659E-01), /* bffc5555555555555555555555555555 */
+ L(8.33333333333333333333333333146298442E-03), /* 3ff81111111111111111111110fe195d */
+L(-1.98412698412698412697726277416810661E-04), /* bff2a01a01a01a01a019e7121e080d88 */
+ L(2.75573192239848624174178393552189149E-06), /* 3fec71de3a556c640c6aaa51aa02ab41 */
+L(-2.50521016467996193495359189395805639E-08), /* bfe5ae644ee90c47dc71839de75b2787 */
+
+/* sin x ~ ONE * x + x^3 ( SIN1 + SIN2 * x^2 + ... + SIN7 * x^12 + SIN8 * x^14 )
+   x in <0,0.1484375>  */
+#define SIN1 c[19]
+#define SIN2 c[20]
+#define SIN3 c[21]
+#define SIN4 c[22]
+#define SIN5 c[23]
+#define SIN6 c[24]
+#define SIN7 c[25]
+#define SIN8 c[26]
+L(-1.66666666666666666666666666666666538e-01), /* bffc5555555555555555555555555550 */
+ L(8.33333333333333333333333333307532934e-03), /* 3ff811111111111111111111110e7340 */
+L(-1.98412698412698412698412534478712057e-04), /* bff2a01a01a01a01a01a019e7a626296 */
+ L(2.75573192239858906520896496653095890e-06), /* 3fec71de3a556c7338fa38527474b8f5 */
+L(-2.50521083854417116999224301266655662e-08), /* bfe5ae64567f544e16c7de65c2ea551f */
+ L(1.60590438367608957516841576404938118e-10), /* 3fde6124613a811480538a9a41957115 */
+L(-7.64716343504264506714019494041582610e-13), /* bfd6ae7f3d5aef30c7bc660b060ef365 */
+ L(2.81068754939739570236322404393398135e-15), /* 3fce9510115aabf87aceb2022a9a9180 */
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const _Float128 __sincosl_table[];
+
+void
+__kernel_sincosl(_Float128 x, _Float128 y, _Float128 *sinx, _Float128 *cosx, int iy)
+{
+  _Float128 h, l, z, sin_l, cos_l_m1;
+  int64_t ix;
+  u_int32_t tix, hix, index;
+  GET_LDOUBLE_MSW64 (ix, x);
+  tix = ((u_int64_t)ix) >> 32;
+  tix &= ~0x80000000;			/* tix = |x|'s high 32 bits */
+  if (tix < 0x3ffc3000)			/* |x| < 0.1484375 */
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 16(17).  */
+      if (tix < 0x3fc60000)		/* |x| < 2^-57 */
+	{
+	  math_check_force_underflow (x);
+	  if (!((int)x))			/* generate inexact */
+	    {
+	      *sinx = x;
+	      *cosx = ONE;
+	      return;
+	    }
+	}
+      z = x * x;
+      *sinx = x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
+			z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
+      *cosx = ONE + (z*(COS1+z*(COS2+z*(COS3+z*(COS4+
+		     z*(COS5+z*(COS6+z*(COS7+z*COS8))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 sinl(h+l) = sinl(h)cosl(l) + cosl(h)sinl(l) and
+	 cosl(h+l) = cosl(h)cosl(l) - sinl(h)sinl(l).  */
+      index = 0x3ffe - (tix >> 16);
+      hix = (tix + (0x200 << index)) & (0xfffffc00 << index);
+      if (signbit (x))
+	{
+	  x = -x;
+	  y = -y;
+	}
+      switch (index)
+	{
+	case 0: index = ((45 << 10) + hix - 0x3ffe0000) >> 8; break;
+	case 1: index = ((13 << 11) + hix - 0x3ffd0000) >> 9; break;
+	default:
+	case 2: index = (hix - 0x3ffc3000) >> 10; break;
+	}
+
+      SET_LDOUBLE_WORDS64(h, ((u_int64_t)hix) << 32, 0);
+      if (iy)
+	l = y - (h - x);
+      else
+	l = x - h;
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      z = __sincosl_table [index + SINCOSL_SIN_HI]
+	  + (__sincosl_table [index + SINCOSL_SIN_LO]
+	     + (__sincosl_table [index + SINCOSL_SIN_HI] * cos_l_m1)
+	     + (__sincosl_table [index + SINCOSL_COS_HI] * sin_l));
+      *sinx = (ix < 0) ? -z : z;
+      *cosx = __sincosl_table [index + SINCOSL_COS_HI]
+	      + (__sincosl_table [index + SINCOSL_COS_LO]
+		 - (__sincosl_table [index + SINCOSL_SIN_HI] * sin_l
+		    - __sincosl_table [index + SINCOSL_COS_HI] * cos_l_m1));
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/k_sinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_sinl.c
new file mode 100644
index 0000000000..4107eeb9f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_sinl.c
@@ -0,0 +1,135 @@
+/* Quad-precision floating point sine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 c[] = {
+#define ONE c[0]
+ L(1.00000000000000000000000000000000000E+00), /* 3fff0000000000000000000000000000 */
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+L(-5.00000000000000000000000000000000000E-01), /* bffe0000000000000000000000000000 */
+ L(4.16666666666666666666666666556146073E-02), /* 3ffa5555555555555555555555395023 */
+L(-1.38888888888888888888309442601939728E-03), /* bff56c16c16c16c16c16a566e42c0375 */
+ L(2.48015873015862382987049502531095061E-05), /* 3fefa01a01a019ee02dcf7da2d6d5444 */
+L(-2.75573112601362126593516899592158083E-07), /* bfe927e4f5dce637cb0b54908754bde0 */
+
+/* sin x ~ ONE * x + x^3 ( SIN1 + SIN2 * x^2 + ... + SIN7 * x^12 + SIN8 * x^14 )
+   x in <0,0.1484375>  */
+#define SIN1 c[6]
+#define SIN2 c[7]
+#define SIN3 c[8]
+#define SIN4 c[9]
+#define SIN5 c[10]
+#define SIN6 c[11]
+#define SIN7 c[12]
+#define SIN8 c[13]
+L(-1.66666666666666666666666666666666538e-01), /* bffc5555555555555555555555555550 */
+ L(8.33333333333333333333333333307532934e-03), /* 3ff811111111111111111111110e7340 */
+L(-1.98412698412698412698412534478712057e-04), /* bff2a01a01a01a01a01a019e7a626296 */
+ L(2.75573192239858906520896496653095890e-06), /* 3fec71de3a556c7338fa38527474b8f5 */
+L(-2.50521083854417116999224301266655662e-08), /* bfe5ae64567f544e16c7de65c2ea551f */
+ L(1.60590438367608957516841576404938118e-10), /* 3fde6124613a811480538a9a41957115 */
+L(-7.64716343504264506714019494041582610e-13), /* bfd6ae7f3d5aef30c7bc660b060ef365 */
+ L(2.81068754939739570236322404393398135e-15), /* 3fce9510115aabf87aceb2022a9a9180 */
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+L(-1.66666666666666666666666666666666659E-01), /* bffc5555555555555555555555555555 */
+ L(8.33333333333333333333333333146298442E-03), /* 3ff81111111111111111111110fe195d */
+L(-1.98412698412698412697726277416810661E-04), /* bff2a01a01a01a01a019e7121e080d88 */
+ L(2.75573192239848624174178393552189149E-06), /* 3fec71de3a556c640c6aaa51aa02ab41 */
+L(-2.50521016467996193495359189395805639E-08), /* bfe5ae644ee90c47dc71839de75b2787 */
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const _Float128 __sincosl_table[];
+
+_Float128
+__kernel_sinl(_Float128 x, _Float128 y, int iy)
+{
+  _Float128 h, l, z, sin_l, cos_l_m1;
+  int64_t ix;
+  u_int32_t tix, hix, index;
+  GET_LDOUBLE_MSW64 (ix, x);
+  tix = ((u_int64_t)ix) >> 32;
+  tix &= ~0x80000000;			/* tix = |x|'s high 32 bits */
+  if (tix < 0x3ffc3000)			/* |x| < 0.1484375 */
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 17.  */
+      if (tix < 0x3fc60000)		/* |x| < 2^-57 */
+	{
+	  math_check_force_underflow (x);
+	  if (!((int)x)) return x;	/* generate inexact */
+	}
+      z = x * x;
+      return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
+		       z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 sinl(h+l) = sinl(h)cosl(l) + cosl(h)sinl(l).  */
+      index = 0x3ffe - (tix >> 16);
+      hix = (tix + (0x200 << index)) & (0xfffffc00 << index);
+      x = fabsl (x);
+      switch (index)
+	{
+	case 0: index = ((45 << 10) + hix - 0x3ffe0000) >> 8; break;
+	case 1: index = ((13 << 11) + hix - 0x3ffd0000) >> 9; break;
+	default:
+	case 2: index = (hix - 0x3ffc3000) >> 10; break;
+	}
+
+      SET_LDOUBLE_WORDS64(h, ((u_int64_t)hix) << 32, 0);
+      if (iy)
+	l = (ix < 0 ? -y : y) - (h - x);
+      else
+	l = x - h;
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      z = __sincosl_table [index + SINCOSL_SIN_HI]
+	  + (__sincosl_table [index + SINCOSL_SIN_LO]
+	     + (__sincosl_table [index + SINCOSL_SIN_HI] * cos_l_m1)
+	     + (__sincosl_table [index + SINCOSL_COS_HI] * sin_l));
+      return (ix < 0) ? -z : z;
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/k_tanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_tanl.c
new file mode 100644
index 0000000000..e79023c69a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -0,0 +1,168 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+  Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __kernel_tanl( x, y, k )
+ * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input k indicates whether tan (if k=1) or
+ * -1/tan (if k= -1) is returned.
+ *
+ * Algorithm
+ *	1. Since tan(-x) = -tan(x), we need only to consider positive x.
+ *	2. if x < 2^-57, return x with inexact if x!=0.
+ *	3. tan(x) is approximated by a rational form x + x^3 / 3 + x^5 R(x^2)
+ *          on [0,0.67433].
+ *
+ *	   Note: tan(x+y) = tan(x) + tan'(x)*y
+ *		          ~ tan(x) + (1+x*x)*y
+ *	   Therefore, for better accuracy in computing tan(x+y), let
+ *		r = x^3 * R(x^2)
+ *	   then
+ *		tan(x+y) = x + (x^3 / 3 + (x^2 *(r+y)+y))
+ *
+ *      4. For x in [0.67433,pi/4],  let y = pi/4 - x, then
+ *		tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
+ *		       = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+static const _Float128
+  one = 1,
+  pio4hi = L(7.8539816339744830961566084581987569936977E-1),
+  pio4lo = L(2.1679525325309452561992610065108379921906E-35),
+
+  /* tan x = x + x^3 / 3 + x^5 T(x^2)/U(x^2)
+     0 <= x <= 0.6743316650390625
+     Peak relative error 8.0e-36  */
+ TH =  L(3.333333333333333333333333333333333333333E-1),
+ T0 = L(-1.813014711743583437742363284336855889393E7),
+ T1 =  L(1.320767960008972224312740075083259247618E6),
+ T2 = L(-2.626775478255838182468651821863299023956E4),
+ T3 =  L(1.764573356488504935415411383687150199315E2),
+ T4 = L(-3.333267763822178690794678978979803526092E-1),
+
+ U0 = L(-1.359761033807687578306772463253710042010E8),
+ U1 =  L(6.494370630656893175666729313065113194784E7),
+ U2 = L(-4.180787672237927475505536849168729386782E6),
+ U3 =  L(8.031643765106170040139966622980914621521E4),
+ U4 = L(-5.323131271912475695157127875560667378597E2);
+  /* 1.000000000000000000000000000000000000000E0 */
+
+
+_Float128
+__kernel_tanl (_Float128 x, _Float128 y, int iy)
+{
+  _Float128 z, r, v, w, s;
+  int32_t ix, sign;
+  ieee854_long_double_shape_type u, u1;
+
+  u.value = x;
+  ix = u.parts32.w0 & 0x7fffffff;
+  if (ix < 0x3fc60000)		/* x < 2**-57 */
+    {
+      if ((int) x == 0)
+	{			/* generate inexact */
+	  if ((ix | u.parts32.w1 | u.parts32.w2 | u.parts32.w3
+	       | (iy + 1)) == 0)
+	    return one / fabsl (x);
+	  else if (iy == 1)
+	    {
+	      math_check_force_underflow (x);
+	      return x;
+	    }
+	  else
+	    return -one / x;
+	}
+    }
+  if (ix >= 0x3ffe5942) /* |x| >= 0.6743316650390625 */
+    {
+      if ((u.parts32.w0 & 0x80000000) != 0)
+	{
+	  x = -x;
+	  y = -y;
+	  sign = -1;
+	}
+      else
+	sign = 1;
+      z = pio4hi - x;
+      w = pio4lo - y;
+      x = z + w;
+      y = 0.0;
+    }
+  z = x * x;
+  r = T0 + z * (T1 + z * (T2 + z * (T3 + z * T4)));
+  v = U0 + z * (U1 + z * (U2 + z * (U3 + z * (U4 + z))));
+  r = r / v;
+
+  s = z * x;
+  r = y + z * (s * r + y);
+  r += TH * s;
+  w = x + r;
+  if (ix >= 0x3ffe5942)
+    {
+      v = (_Float128) iy;
+      w = (v - 2.0 * (x - (w * w / (w + v) - r)));
+      /* SIGN is set for arguments that reach this code, but not
+	 otherwise, resulting in warnings that it may be used
+	 uninitialized although in the cases where it is used it has
+	 always been set.  */
+      DIAG_PUSH_NEEDS_COMMENT;
+      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      if (sign < 0)
+	w = -w;
+      DIAG_POP_NEEDS_COMMENT;
+      return w;
+    }
+  if (iy == 1)
+    return w;
+  else
+    {				/* if allow error up to 2 ulp,
+				   simply return -1.0/(x+r) here */
+      /*  compute -1.0/(x+r) accurately */
+      u1.value = w;
+      u1.parts32.w2 = 0;
+      u1.parts32.w3 = 0;
+      v = r - (u1.value - x);		/* u1+v = r+x */
+      z = -1.0 / w;
+      u.value = z;
+      u.parts32.w2 = 0;
+      u.parts32.w3 = 0;
+      s = 1.0 + u.value * u1.value;
+      return u.value + z * (s + u.value * v);
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/ldbl2mpn.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
new file mode 100644
index 0000000000..1c79a5dbe5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/ldbl2mpn.c
@@ -0,0 +1,140 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include "longlong.h"
+#include <ieee754.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdlib.h>
+
+/* Convert a `long double' in IEEE854 quad-precision format to a
+   multi-precision integer representing the significand scaled up by its
+   number of bits (113 for long double) and an integral power of two
+   (MPN frexpl). */
+
+mp_size_t
+__mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
+			   int *expt, int *is_neg,
+			   _Float128 value)
+{
+  union ieee854_long_double u;
+  u.d = value;
+
+  *is_neg = u.ieee.negative;
+  *expt = (int) u.ieee.exponent - IEEE854_LONG_DOUBLE_BIAS;
+
+#if BITS_PER_MP_LIMB == 32
+  res_ptr[0] = u.ieee.mantissa3; /* Low-order 32 bits of fraction.  */
+  res_ptr[1] = u.ieee.mantissa2;
+  res_ptr[2] = u.ieee.mantissa1;
+  res_ptr[3] = u.ieee.mantissa0; /* High-order 32 bits.  */
+  #define N 4
+#elif BITS_PER_MP_LIMB == 64
+  /* Hopefully the compiler will combine the two bitfield extracts
+     and this composition into just the original quadword extract.  */
+  res_ptr[0] = ((mp_limb_t) u.ieee.mantissa2 << 32) | u.ieee.mantissa3;
+  res_ptr[1] = ((mp_limb_t) u.ieee.mantissa0 << 32) | u.ieee.mantissa1;
+  #define N 2
+#else
+  #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+/* The format does not fill the last limb.  There are some zeros.  */
+#define NUM_LEADING_ZEROS (BITS_PER_MP_LIMB \
+			   - (LDBL_MANT_DIG - ((N - 1) * BITS_PER_MP_LIMB)))
+
+  if (u.ieee.exponent == 0)
+    {
+      /* A biased exponent of zero is a special case.
+	 Either it is a zero or it is a denormal number.  */
+      if (res_ptr[0] == 0 && res_ptr[1] == 0
+          && res_ptr[N - 2] == 0 && res_ptr[N - 1] == 0) /* Assumes N<=4.  */
+	/* It's zero.  */
+	*expt = 0;
+      else
+	{
+          /* It is a denormal number, meaning it has no implicit leading
+	     one bit, and its exponent is in fact the format minimum.  */
+	  int cnt;
+
+#if N == 2
+	  if (res_ptr[N - 1] != 0)
+	    {
+	      count_leading_zeros (cnt, res_ptr[N - 1]);
+	      cnt -= NUM_LEADING_ZEROS;
+	      res_ptr[N - 1] = res_ptr[N - 1] << cnt
+			       | (res_ptr[0] >> (BITS_PER_MP_LIMB - cnt));
+	      res_ptr[0] <<= cnt;
+	      *expt = LDBL_MIN_EXP - 1 - cnt;
+	    }
+	  else
+	    {
+	      count_leading_zeros (cnt, res_ptr[0]);
+	      if (cnt >= NUM_LEADING_ZEROS)
+		{
+		  res_ptr[N - 1] = res_ptr[0] << (cnt - NUM_LEADING_ZEROS);
+		  res_ptr[0] = 0;
+		}
+	      else
+		{
+		  res_ptr[N - 1] = res_ptr[0] >> (NUM_LEADING_ZEROS - cnt);
+		  res_ptr[0] <<= BITS_PER_MP_LIMB - (NUM_LEADING_ZEROS - cnt);
+		}
+	      *expt = LDBL_MIN_EXP - 1
+		- (BITS_PER_MP_LIMB - NUM_LEADING_ZEROS) - cnt;
+	    }
+#else
+	  int j, k, l;
+
+	  for (j = N - 1; j > 0; j--)
+	    if (res_ptr[j] != 0)
+	      break;
+
+	  count_leading_zeros (cnt, res_ptr[j]);
+	  cnt -= NUM_LEADING_ZEROS;
+	  l = N - 1 - j;
+	  if (cnt < 0)
+	    {
+	      cnt += BITS_PER_MP_LIMB;
+	      l--;
+	    }
+	  if (!cnt)
+	    for (k = N - 1; k >= l; k--)
+	      res_ptr[k] = res_ptr[k-l];
+	  else
+	    {
+	      for (k = N - 1; k > l; k--)
+		res_ptr[k] = res_ptr[k-l] << cnt
+			     | res_ptr[k-l-1] >> (BITS_PER_MP_LIMB - cnt);
+	      res_ptr[k--] = res_ptr[0] << cnt;
+	    }
+
+	  for (; k >= 0; k--)
+	    res_ptr[k] = 0;
+	  *expt = LDBL_MIN_EXP - 1 - l * BITS_PER_MP_LIMB - cnt;
+#endif
+	}
+    }
+  else
+    /* Add the implicit leading one bit for a normalized number.  */
+    res_ptr[N - 1] |= (mp_limb_t) 1 << (LDBL_MANT_DIG - 1
+					- ((N - 1) * BITS_PER_MP_LIMB));
+
+  return N;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_negl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_negl.c
new file mode 100644
index 0000000000..17dc4f5bfe
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_negl.c
@@ -0,0 +1,551 @@
+/* lgammal expanding around zeros.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 lgamma_zeros[][2] =
+  {
+    { L(-0x2.74ff92c01f0d82abec9f315f1a08p+0), L(0xe.d3ccb7fb2658634a2b9f6b2ba81p-116) },
+    { L(-0x2.bf6821437b20197995a4b4641eaep+0), L(-0xb.f4b00b4829f961e428533e6ad048p-116) },
+    { L(-0x3.24c1b793cb35efb8be699ad3d9bap+0), L(-0x6.5454cb7fac60e3f16d9d7840c2ep-116) },
+    { L(-0x3.f48e2a8f85fca170d4561291236cp+0), L(-0xc.320a4887d1cb4c711828a75d5758p-116) },
+    { L(-0x4.0a139e16656030c39f0b0de18114p+0), L(0x1.53e84029416e1242006b2b3d1cfp-112) },
+    { L(-0x4.fdd5de9bbabf3510d0aa40769884p+0), L(-0x1.01d7d78125286f78d1e501f14966p-112) },
+    { L(-0x5.021a95fc2db6432a4c56e595394cp+0), L(-0x1.ecc6af0430d4fe5746fa7233356fp-112) },
+    { L(-0x5.ffa4bd647d0357dd4ed62cbd31ecp+0), L(-0x1.f8e3f8e5deba2d67dbd70dd96ce1p-112) },
+    { L(-0x6.005ac9625f233b607c2d96d16384p+0), L(-0x1.cb86ac569340cf1e5f24df7aab7bp-112) },
+    { L(-0x6.fff2fddae1bbff3d626b65c23fd4p+0), L(0x1.e0bfcff5c457ebcf4d3ad9674167p-112) },
+    { L(-0x7.000cff7b7f87adf4482dcdb98784p+0), L(0x1.54d99e35a74d6407b80292df199fp-112) },
+    { L(-0x7.fffe5fe05673c3ca9e82b522b0ccp+0), L(0x1.62d177c832e0eb42c2faffd1b145p-112) },
+    { L(-0x8.0001a01459fc9f60cb3cec1cec88p+0), L(0x2.8998835ac7277f7bcef67c47f188p-112) },
+    { L(-0x8.ffffd1c425e80ffc864e95749258p+0), L(-0x1.e7e20210e7f81cf781b44e9d2b02p-112) },
+    { L(-0x9.00002e3bb47d86d6d843fedc352p+0), L(0x2.14852f613a16291751d2ab751f7ep-112) },
+    { L(-0x9.fffffb606bdfdcd062ae77a50548p+0), L(0x3.962d1490cc2e8f031c7007eaa1ap-116) },
+    { L(-0xa.0000049f93bb9927b45d95e1544p+0), L(-0x1.e03086db9146a9287bd4f2172d5ap-112) },
+    { L(-0xa.ffffff9466e9f1b36dacd2adbd18p+0), L(-0xd.05a4e458062f3f95345a4d9c9b6p-116) },
+    { L(-0xb.0000006b9915315d965a6ffea41p+0), L(0x1.b415c6fff233e7b7fdc3a094246fp-112) },
+    { L(-0xb.fffffff7089387387de41acc3d4p+0), L(0x3.687427c6373bd74a10306e10a28ep-112) },
+    { L(-0xc.00000008f76c7731567c0f0250fp+0), L(-0x3.87920df5675833859190eb128ef6p-112) },
+    { L(-0xc.ffffffff4f6dcf617f97a5ffc758p+0), L(0x2.ab72d76f32eaee2d1a42ed515d3ap-116) },
+    { L(-0xd.00000000b092309c06683dd1b9p+0), L(-0x3.e3700857a15c19ac5a611de9688ap-112) },
+    { L(-0xd.fffffffff36345ab9e184a3e09dp+0), L(-0x1.176dc48e47f62d917973dd44e553p-112) },
+    { L(-0xe.000000000c9cba545e94e75ec57p+0), L(-0x1.8f753e2501e757a17cf2ecbeeb89p-112) },
+    { L(-0xe.ffffffffff28c060c6604ef3037p+0), L(-0x1.f89d37357c9e3dc17c6c6e63becap-112) },
+    { L(-0xf.0000000000d73f9f399bd0e420f8p+0), L(-0x5.e9ee31b0b890744fc0e3fbc01048p-116) },
+    { L(-0xf.fffffffffff28c060c6621f512e8p+0), L(0xd.1b2eec9d960bd9adc5be5f5fa5p-116) },
+    { L(-0x1.000000000000d73f9f399da1424cp+4), L(0x6.c46e0e88305d2800f0e414c506a8p-116) },
+    { L(-0x1.0ffffffffffff3569c47e7a93e1cp+4), L(-0x4.6a08a2e008a998ebabb8087efa2cp-112) },
+    { L(-0x1.1000000000000ca963b818568887p+4), L(-0x6.ca5a3a64ec15db0a95caf2c9ffb4p-112) },
+    { L(-0x1.1fffffffffffff4bec3ce234132dp+4), L(-0x8.b2b726187c841cb92cd5221e444p-116) },
+    { L(-0x1.20000000000000b413c31dcbeca5p+4), L(0x3.c4d005344b6cd0e7231120294abcp-112) },
+    { L(-0x1.2ffffffffffffff685b25cbf5f54p+4), L(-0x5.ced932e38485f7dd296b8fa41448p-112) },
+    { L(-0x1.30000000000000097a4da340a0acp+4), L(0x7.e484e0e0ffe38d406ebebe112f88p-112) },
+    { L(-0x1.3fffffffffffffff86af516ff7f7p+4), L(-0x6.bd67e720d57854502b7db75e1718p-112) },
+    { L(-0x1.40000000000000007950ae900809p+4), L(0x6.bec33375cac025d9c073168c5d9p-112) },
+    { L(-0x1.4ffffffffffffffffa391c4248c3p+4), L(0x5.c63022b62b5484ba346524db607p-112) },
+    { L(-0x1.500000000000000005c6e3bdb73dp+4), L(-0x5.c62f55ed5322b2685c5e9a51e6a8p-112) },
+    { L(-0x1.5fffffffffffffffffbcc71a492p+4), L(-0x1.eb5aeb96c74d7ad25e060528fb5p-112) },
+    { L(-0x1.6000000000000000004338e5b6ep+4), L(0x1.eb5aec04b2f2eb663e4e3d8a018cp-112) },
+    { L(-0x1.6ffffffffffffffffffd13c97d9dp+4), L(-0x3.8fcc4d08d6fe5aa56ab04307ce7ep-112) },
+    { L(-0x1.70000000000000000002ec368263p+4), L(0x3.8fcc4d090cee2f5d0b69a99c353cp-112) },
+    { L(-0x1.7fffffffffffffffffffe0d30fe7p+4), L(0x7.2f577cca4b4c8cb1dc14001ac5ecp-112) },
+    { L(-0x1.800000000000000000001f2cf019p+4), L(-0x7.2f577cca4b3442e35f0040b3b9e8p-112) },
+    { L(-0x1.8ffffffffffffffffffffec0c332p+4), L(-0x2.e9a0572b1bb5b95f346a92d67a6p-112) },
+    { L(-0x1.90000000000000000000013f3ccep+4), L(0x2.e9a0572b1bb5c371ddb3561705ap-112) },
+    { L(-0x1.9ffffffffffffffffffffff3b8bdp+4), L(-0x1.cad8d32e386fd783e97296d63dcbp-116) },
+    { L(-0x1.a0000000000000000000000c4743p+4), L(0x1.cad8d32e386fd7c1ab8c1fe34c0ep-116) },
+    { L(-0x1.afffffffffffffffffffffff8b95p+4), L(-0x3.8f48cc5737d5979c39db806c5406p-112) },
+    { L(-0x1.b00000000000000000000000746bp+4), L(0x3.8f48cc5737d5979c3b3a6bda06f6p-112) },
+    { L(-0x1.bffffffffffffffffffffffffbd8p+4), L(0x6.2898d42174dcf171470d8c8c6028p-112) },
+    { L(-0x1.c000000000000000000000000428p+4), L(-0x6.2898d42174dcf171470d18ba412cp-112) },
+    { L(-0x1.cfffffffffffffffffffffffffdbp+4), L(-0x4.c0ce9794ea50a839e311320bde94p-112) },
+    { L(-0x1.d000000000000000000000000025p+4), L(0x4.c0ce9794ea50a839e311322f7cf8p-112) },
+    { L(-0x1.dfffffffffffffffffffffffffffp+4), L(0x3.932c5047d60e60caded4c298a174p-112) },
+    { L(-0x1.e000000000000000000000000001p+4), L(-0x3.932c5047d60e60caded4c298973ap-112) },
+    { L(-0x1.fp+4), L(0xa.1a6973c1fade2170f7237d35fe3p-116) },
+    { L(-0x1.fp+4), L(-0xa.1a6973c1fade2170f7237d35fe08p-116) },
+    { L(-0x2p+4), L(0x5.0d34b9e0fd6f10b87b91be9aff1p-120) },
+    { L(-0x2p+4), L(-0x5.0d34b9e0fd6f10b87b91be9aff0cp-120) },
+    { L(-0x2.1p+4), L(0x2.73024a9ba1aa36a7059bff52e844p-124) },
+    { L(-0x2.1p+4), L(-0x2.73024a9ba1aa36a7059bff52e844p-124) },
+    { L(-0x2.2p+4), L(0x1.2710231c0fd7a13f8a2b4af9d6b7p-128) },
+    { L(-0x2.2p+4), L(-0x1.2710231c0fd7a13f8a2b4af9d6b7p-128) },
+    { L(-0x2.3p+4), L(0x8.6e2ce38b6c8f9419e3fad3f0312p-136) },
+    { L(-0x2.3p+4), L(-0x8.6e2ce38b6c8f9419e3fad3f0312p-136) },
+    { L(-0x2.4p+4), L(0x3.bf30652185952560d71a254e4eb8p-140) },
+    { L(-0x2.4p+4), L(-0x3.bf30652185952560d71a254e4eb8p-140) },
+    { L(-0x2.5p+4), L(0x1.9ec8d1c94e85af4c78b15c3d89d3p-144) },
+    { L(-0x2.5p+4), L(-0x1.9ec8d1c94e85af4c78b15c3d89d3p-144) },
+    { L(-0x2.6p+4), L(0xa.ea565ce061d57489e9b85276274p-152) },
+    { L(-0x2.6p+4), L(-0xa.ea565ce061d57489e9b85276274p-152) },
+    { L(-0x2.7p+4), L(0x4.7a6512692eb37804111dabad30ecp-156) },
+    { L(-0x2.7p+4), L(-0x4.7a6512692eb37804111dabad30ecp-156) },
+    { L(-0x2.8p+4), L(0x1.ca8ed42a12ae3001a07244abad2bp-160) },
+    { L(-0x2.8p+4), L(-0x1.ca8ed42a12ae3001a07244abad2bp-160) },
+    { L(-0x2.9p+4), L(0xb.2f30e1ce812063f12e7e8d8d96e8p-168) },
+    { L(-0x2.9p+4), L(-0xb.2f30e1ce812063f12e7e8d8d96e8p-168) },
+    { L(-0x2.ap+4), L(0x4.42bd49d4c37a0db136489772e428p-172) },
+    { L(-0x2.ap+4), L(-0x4.42bd49d4c37a0db136489772e428p-172) },
+    { L(-0x2.bp+4), L(0x1.95db45257e5122dcbae56def372p-176) },
+    { L(-0x2.bp+4), L(-0x1.95db45257e5122dcbae56def372p-176) },
+    { L(-0x2.cp+4), L(0x9.3958d81ff63527ecf993f3fb6f48p-184) },
+    { L(-0x2.cp+4), L(-0x9.3958d81ff63527ecf993f3fb6f48p-184) },
+    { L(-0x2.dp+4), L(0x3.47970e4440c8f1c058bd238c9958p-188) },
+    { L(-0x2.dp+4), L(-0x3.47970e4440c8f1c058bd238c9958p-188) },
+    { L(-0x2.ep+4), L(0x1.240804f65951062ca46e4f25c608p-192) },
+    { L(-0x2.ep+4), L(-0x1.240804f65951062ca46e4f25c608p-192) },
+    { L(-0x2.fp+4), L(0x6.36a382849fae6de2d15362d8a394p-200) },
+    { L(-0x2.fp+4), L(-0x6.36a382849fae6de2d15362d8a394p-200) },
+    { L(-0x3p+4), L(0x2.123680d6dfe4cf4b9b1bcb9d8bdcp-204) },
+    { L(-0x3p+4), L(-0x2.123680d6dfe4cf4b9b1bcb9d8bdcp-204) },
+    { L(-0x3.1p+4), L(0xa.d21786ff5842eca51fea0870919p-212) },
+    { L(-0x3.1p+4), L(-0xa.d21786ff5842eca51fea0870919p-212) },
+    { L(-0x3.2p+4), L(0x3.766dedc259af040be140a68a6c04p-216) },
+  };
+
+static const _Float128 e_hi = L(0x2.b7e151628aed2a6abf7158809cf4p+0);
+static const _Float128 e_lo = L(0xf.3c762e7160f38b4da56a784d9048p-116);
+
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
+   approximation to lgamma function.  */
+
+static const _Float128 lgamma_coeff[] =
+  {
+    L(0x1.5555555555555555555555555555p-4),
+    L(-0xb.60b60b60b60b60b60b60b60b60b8p-12),
+    L(0x3.4034034034034034034034034034p-12),
+    L(-0x2.7027027027027027027027027028p-12),
+    L(0x3.72a3c5631fe46ae1d4e700dca8f2p-12),
+    L(-0x7.daac36664f1f207daac36664f1f4p-12),
+    L(0x1.a41a41a41a41a41a41a41a41a41ap-8),
+    L(-0x7.90a1b2c3d4e5f708192a3b4c5d7p-8),
+    L(0x2.dfd2c703c0cfff430edfd2c703cp-4),
+    L(-0x1.6476701181f39edbdb9ce625987dp+0),
+    L(0xd.672219167002d3a7a9c886459cp+0),
+    L(-0x9.cd9292e6660d55b3f712eb9e07c8p+4),
+    L(0x8.911a740da740da740da740da741p+8),
+    L(-0x8.d0cc570e255bf59ff6eec24b49p+12),
+    L(0xa.8d1044d3708d1c219ee4fdc446ap+16),
+    L(-0xe.8844d8a169abbc406169abbc406p+20),
+    L(0x1.6d29a0f6433b79890cede62433b8p+28),
+    L(-0x2.88a233b3c8cddaba9809357125d8p+32),
+    L(0x5.0dde6f27500939a85c40939a85c4p+36),
+    L(-0xb.4005bde03d4642a243581714af68p+40),
+    L(0x1.bc8cd6f8f1f755c78753cdb5d5c9p+48),
+    L(-0x4.bbebb143bb94de5a0284fa7ec424p+52),
+    L(0xe.2e1337f5af0bed90b6b0a352d4fp+56),
+    L(-0x2.e78250162b62405ad3e4bfe61b38p+64),
+    L(0xa.5f7eef9e71ac7c80326ab4cc8bfp+68),
+    L(-0x2.83be0395e550213369924971b21ap+76),
+    L(0xa.8ebfe48da17dd999790760b0cep+80),
+  };
+
+#define NCOEFF (sizeof (lgamma_coeff) / sizeof (lgamma_coeff[0]))
+
+/* Polynomial approximations to (|gamma(x)|-1)(x-n)/(x-x0), where n is
+   the integer end-point of the half-integer interval containing x and
+   x0 is the zero of lgamma in that half-integer interval.  Each
+   polynomial is expressed in terms of x-xm, where xm is the midpoint
+   of the interval for which the polynomial applies.  */
+
+static const _Float128 poly_coeff[] =
+  {
+    /* Interval [-2.125, -2] (polynomial degree 23).  */
+    L(-0x1.0b71c5c54d42eb6c17f30b7aa8f5p+0),
+    L(-0xc.73a1dc05f34951602554c6d7506p-4),
+    L(-0x1.ec841408528b51473e6c425ee5ffp-4),
+    L(-0xe.37c9da26fc3c9a3c1844c8c7f1cp-4),
+    L(-0x1.03cd87c519305703b021fa33f827p-4),
+    L(-0xe.ae9ada65e09aa7f1c75216128f58p-4),
+    L(0x9.b11855a4864b5731cf85736015a8p-8),
+    L(-0xe.f28c133e697a95c28607c9701dep-4),
+    L(0x2.6ec14a1c586a72a7cc33ee569d6ap-4),
+    L(-0xf.57cab973e14464a262fc24723c38p-4),
+    L(0x4.5b0fc25f16e52997b2886bbae808p-4),
+    L(-0xf.f50e59f1a9b56e76e988dac9ccf8p-4),
+    L(0x6.5f5eae15e9a93369e1d85146c6fcp-4),
+    L(-0x1.0d2422daac459e33e0994325ed23p+0),
+    L(0x8.82000a0e7401fb1117a0e6606928p-4),
+    L(-0x1.1f492f178a3f1b19f58a2ca68e55p+0),
+    L(0xa.cb545f949899a04c160b19389abp-4),
+    L(-0x1.36165a1b155ba3db3d1b77caf498p+0),
+    L(0xd.44c5d5576f74302e5cf79e183eep-4),
+    L(-0x1.51f22e0cdd33d3d481e326c02f3ep+0),
+    L(0xf.f73a349c08244ac389c007779bfp-4),
+    L(-0x1.73317bf626156ba716747c4ca866p+0),
+    L(0x1.379c3c97b9bc71e1c1c4802dd657p+0),
+    L(-0x1.a72a351c54f902d483052000f5dfp+0),
+    /* Interval [-2.25, -2.125] (polynomial degree 24).  */
+    L(-0xf.2930890d7d675a80c36afb0fd5e8p-4),
+    L(-0xc.a5cfde054eab5c6770daeca577f8p-4),
+    L(0x3.9c9e0fdebb07cdf89c61d41c9238p-4),
+    L(-0x1.02a5ad35605fcf4af65a6dbacb84p+0),
+    L(0x9.6e9b1185bb48be9de1918e00a2e8p-4),
+    L(-0x1.4d8332f3cfbfa116fd611e9ce90dp+0),
+    L(0x1.1c0c8cb4d9f4b1d490e1a41fae4dp+0),
+    L(-0x1.c9a6f5ae9130cd0299e293a42714p+0),
+    L(0x1.d7e9307fd58a2ea997f29573a112p+0),
+    L(-0x2.921cb3473d96178ca2a11d2a8d46p+0),
+    L(0x2.e8d59113b6f3409ff8db226e9988p+0),
+    L(-0x3.cbab931625a1ae2b26756817f264p+0),
+    L(0x4.7d9f0f05d5296d18663ca003912p+0),
+    L(-0x5.ade9cba12a14ea485667b7135bbp+0),
+    L(0x6.dc983a5da74fb48e767b7fec0a3p+0),
+    L(-0x8.8d9ed454ae31d9e138dd8ee0d1a8p+0),
+    L(0xa.6fa099d4e7c202e0c0fd6ed8492p+0),
+    L(-0xc.ebc552a8090a0f0115e92d4ebbc8p+0),
+    L(0xf.d695e4772c0d829b53fba9ca5568p+0),
+    L(-0x1.38c32ae38e5e9eb79b2a4c5570a9p+4),
+    L(0x1.8035145646cfab49306d0999a51bp+4),
+    L(-0x1.d930adbb03dd342a4c2a8c4e1af6p+4),
+    L(0x2.45c2edb1b4943ddb3686cd9c6524p+4),
+    L(-0x2.e818ebbfafe2f916fa21abf7756p+4),
+    L(0x3.9804ce51d0fb9a430a711fd7307p+4),
+    /* Interval [-2.375, -2.25] (polynomial degree 25).  */
+    L(-0xd.7d28d505d6181218a25f31d5e45p-4),
+    L(-0xe.69649a3040985140cdf946829fap-4),
+    L(0xb.0d74a2827d053a8d44595012484p-4),
+    L(-0x1.924b0922853617cac181afbc08ddp+0),
+    L(0x1.d49b12bccf0a568582e2d3c410f3p+0),
+    L(-0x3.0898bb7d8c4093e636279c791244p+0),
+    L(0x4.207a6cac711cb53868e8a5057eep+0),
+    L(-0x6.39ee63ea4fb1dcab0c9144bf3ddcp+0),
+    L(0x8.e2e2556a797b649bf3f53bd26718p+0),
+    L(-0xd.0e83ac82552ef12af508589e7a8p+0),
+    L(0x1.2e4525e0ce6670563c6484a82b05p+4),
+    L(-0x1.b8e350d6a8f2b222fa390a57c23dp+4),
+    L(0x2.805cd69b919087d8a80295892c2cp+4),
+    L(-0x3.a42585424a1b7e64c71743ab014p+4),
+    L(0x5.4b4f409f98de49f7bfb03c05f984p+4),
+    L(-0x7.b3c5827fbe934bc820d6832fb9fcp+4),
+    L(0xb.33b7b90cc96c425526e0d0866e7p+4),
+    L(-0x1.04b77047ac4f59ee3775ca10df0dp+8),
+    L(0x1.7b366f5e94a34f41386eac086313p+8),
+    L(-0x2.2797338429385c9849ca6355bfc2p+8),
+    L(0x3.225273cf92a27c9aac1b35511256p+8),
+    L(-0x4.8f078aa48afe6cb3a4e89690f898p+8),
+    L(0x6.9f311d7b6654fc1d0b5195141d04p+8),
+    L(-0x9.a0c297b6b4621619ca9bacc48ed8p+8),
+    L(0xe.ce1f06b6f90d92138232a76e4cap+8),
+    L(-0x1.5b0e6806fa064daf011613e43b17p+12),
+    /* Interval [-2.5, -2.375] (polynomial degree 27).  */
+    L(-0xb.74ea1bcfff94b2c01afba9daa7d8p-4),
+    L(-0x1.2a82bd590c37538cab143308de4dp+0),
+    L(0x1.88020f828b966fec66b8649fd6fcp+0),
+    L(-0x3.32279f040eb694970e9db24863dcp+0),
+    L(0x5.57ac82517767e68a721005853864p+0),
+    L(-0x9.c2aedcfe22833de43834a0a6cc4p+0),
+    L(0x1.12c132f1f5577f99e1a0ed3538e1p+4),
+    L(-0x1.ea94e26628a3de3597f7bb55a948p+4),
+    L(0x3.66b4ac4fa582f58b59f96b2f7c7p+4),
+    L(-0x6.0cf746a9cf4cba8c39afcc73fc84p+4),
+    L(0xa.c102ef2c20d75a342197df7fedf8p+4),
+    L(-0x1.31ebff06e8f14626782df58db3b6p+8),
+    L(0x2.1fd6f0c0e710994e059b9dbdb1fep+8),
+    L(-0x3.c6d76040407f447f8b5074f07706p+8),
+    L(0x6.b6d18e0d8feb4c2ef5af6a40ed18p+8),
+    L(-0xb.efaf542c529f91e34217f24ae6a8p+8),
+    L(0x1.53852d873210e7070f5d9eb2296p+12),
+    L(-0x2.5b977c0ddc6d540717173ac29fc8p+12),
+    L(0x4.310d452ae05100eff1e02343a724p+12),
+    L(-0x7.73a5d8f20c4f986a7dd1912b2968p+12),
+    L(0xd.3f5ea2484f3fca15eab1f4d1a218p+12),
+    L(-0x1.78d18aac156d1d93a2ffe7e08d3fp+16),
+    L(0x2.9df49ca75e5b567f5ea3e47106cp+16),
+    L(-0x4.a7149af8961a08aa7c3233b5bb94p+16),
+    L(0x8.3db10ffa742c707c25197d989798p+16),
+    L(-0xe.a26d6dd023cadd02041a049ec368p+16),
+    L(0x1.c825d90514e7c57c7fa5316f947cp+20),
+    L(-0x3.34bb81e5a0952df8ca1abdc6684cp+20),
+    /* Interval [-2.625, -2.5] (polynomial degree 28).  */
+    L(-0x3.d10108c27ebafad533c20eac32bp-4),
+    L(0x1.cd557caff7d2b2085f41dbec5106p+0),
+    L(0x3.819b4856d399520dad9776ea2cacp+0),
+    L(0x6.8505cbad03dc34c5e42e8b12eb78p+0),
+    L(0xb.c1b2e653a9e38f82b399c94e7f08p+0),
+    L(0x1.50a53a38f148138105124df65419p+4),
+    L(0x2.57ae00cbe5232cbeeed34d89727ap+4),
+    L(0x4.2b156301b8604db85a601544bfp+4),
+    L(0x7.6989ed23ca3ca7579b3462592b5cp+4),
+    L(0xd.2dd2976557939517f831f5552cc8p+4),
+    L(0x1.76e1c3430eb860969bce40cd494p+8),
+    L(0x2.9a77bf5488742466db3a2c7c1ec6p+8),
+    L(0x4.a0d62ed7266e8eb36f725a8ebcep+8),
+    L(0x8.3a6184dd3021067df2f8b91e99c8p+8),
+    L(0xe.a0ade1538245bf55d39d7e436b1p+8),
+    L(0x1.a01359fae8617b5826dd74428e9p+12),
+    L(0x2.e3b0a32caae77251169acaca1ad4p+12),
+    L(0x5.2301257c81589f62b38fb5993ee8p+12),
+    L(0x9.21c9275db253d4e719b73b18cb9p+12),
+    L(0x1.03c104bc96141cda3f3fa4b112bcp+16),
+    L(0x1.cdc8ed65119196a08b0c78f1445p+16),
+    L(0x3.34f31d2eaacf34382cdb0073572ap+16),
+    L(0x5.b37628cadf12bf0000907d0ef294p+16),
+    L(0xa.22d8b332c0b1e6a616f425dfe5ap+16),
+    L(0x1.205b01444804c3ff922cd78b4c42p+20),
+    L(0x1.fe8f0cea9d1e0ff25be2470b4318p+20),
+    L(0x3.8872aebeb368399aee02b39340aep+20),
+    L(0x6.ebd560d351e84e26a4381f5b293cp+20),
+    L(0xc.c3644d094b0dae2fbcbf682cd428p+20),
+    /* Interval [-2.75, -2.625] (polynomial degree 26).  */
+    L(-0x6.b5d252a56e8a75458a27ed1c2dd4p-4),
+    L(0x1.28d60383da3ac721aed3c5794da9p+0),
+    L(0x1.db6513ada8a66ea77d87d9a8827bp+0),
+    L(0x2.e217118f9d348a27f7506a707e6ep+0),
+    L(0x4.450112c5cbf725a0fb9802396c9p+0),
+    L(0x6.4af99151eae7810a75df2a0303c4p+0),
+    L(0x9.2db598b4a97a7f69aeef32aec758p+0),
+    L(0xd.62bef9c22471f5ee47ea1b9c0b5p+0),
+    L(0x1.379f294e412bd62328326d4222f9p+4),
+    L(0x1.c5827349d8865f1e8825c37c31c6p+4),
+    L(0x2.93a7e7a75b7568cc8cbe8c016c12p+4),
+    L(0x3.bf9bb882afe57edb383d41879d3ap+4),
+    L(0x5.73c737828cee095c43a5566731c8p+4),
+    L(0x7.ee4653493a7f81e0442062b3823cp+4),
+    L(0xb.891c6b83fc8b55bd973b5d962d6p+4),
+    L(0x1.0c775d7de3bf9b246c0208e0207ep+8),
+    L(0x1.867ee43ec4bd4f4fd56abc05110ap+8),
+    L(0x2.37fe9ba6695821e9822d8c8af0a6p+8),
+    L(0x3.3a2c667e37c942f182cd3223a936p+8),
+    L(0x4.b1b500eb59f3f782c7ccec88754p+8),
+    L(0x6.d3efd3b65b3d0d8488d30b79fa4cp+8),
+    L(0x9.ee8224e65bed5ced8b75eaec609p+8),
+    L(0xe.72416e510cca77d53fc615c1f3dp+8),
+    L(0x1.4fb538b0a2dfe567a8904b7e0445p+12),
+    L(0x1.e7f56a9266cf525a5b8cf4cb76cep+12),
+    L(0x2.f0365c983f68c597ee49d099cce8p+12),
+    L(0x4.53aa229e1b9f5b5e59625265951p+12),
+    /* Interval [-2.875, -2.75] (polynomial degree 24).  */
+    L(-0x8.a41b1e4f36ff88dc820815607d68p-4),
+    L(0xc.da87d3b69dc0f2f9c6f368b8ca1p-4),
+    L(0x1.1474ad5c36158a7bea04fd2f98c6p+0),
+    L(0x1.761ecb90c555df6555b7dba955b6p+0),
+    L(0x1.d279bff9ae291caf6c4b4bcb3202p+0),
+    L(0x2.4e5d00559a6e2b9b5d7fe1f6689cp+0),
+    L(0x2.d57545a75cee8743ae2b17bc8d24p+0),
+    L(0x3.8514eee3aac88b89bec2307021bap+0),
+    L(0x4.5235e3b6e1891ffeb87fed9f8a24p+0),
+    L(0x5.562acdb10eef3c9a773b3e27a864p+0),
+    L(0x6.8ec8965c76efe03c26bff60b1194p+0),
+    L(0x8.15251aca144877af32658399f9b8p+0),
+    L(0x9.f08d56aba174d844138af782c0f8p+0),
+    L(0xc.3dbbeda2679e8a1346ccc3f6da88p+0),
+    L(0xf.0f5bfd5eacc26db308ffa0556fa8p+0),
+    L(0x1.28a6ccd84476fbc713d6bab49ac9p+4),
+    L(0x1.6d0a3ae2a3b1c8ff400641a3a21fp+4),
+    L(0x1.c15701b28637f87acfb6a91d33b5p+4),
+    L(0x2.28fbe0eccf472089b017651ca55ep+4),
+    L(0x2.a8a453004f6e8ffaacd1603bc3dp+4),
+    L(0x3.45ae4d9e1e7cd1a5dba0e4ec7f6cp+4),
+    L(0x4.065fbfacb7fad3e473cb577a61e8p+4),
+    L(0x4.f3d1473020927acac1944734a39p+4),
+    L(0x6.54bb091245815a36fb74e314dd18p+4),
+    L(0x7.d7f445129f7fb6c055e582d3f6ep+4),
+    /* Interval [-3, -2.875] (polynomial degree 23).  */
+    L(-0xa.046d667e468f3e44dcae1afcc648p-4),
+    L(0x9.70b88dcc006c214d8d996fdf5ccp-4),
+    L(0xa.a8a39421c86d3ff24931a0929fp-4),
+    L(0xd.2f4d1363f324da2b357c8b6ec94p-4),
+    L(0xd.ca9aa1a3a5c00de11bf60499a97p-4),
+    L(0xf.cf09c31eeb52a45dfa7ebe3778dp-4),
+    L(0x1.04b133a39ed8a09691205660468bp+0),
+    L(0x1.22b547a06edda944fcb12fd9b5ecp+0),
+    L(0x1.2c57fce7db86a91df09602d344b3p+0),
+    L(0x1.4aade4894708f84795212fe257eep+0),
+    L(0x1.579c8b7b67ec4afed5b28c8bf787p+0),
+    L(0x1.776820e7fc80ae5284239733078ap+0),
+    L(0x1.883ab28c7301fde4ca6b8ec26ec8p+0),
+    L(0x1.aa2ef6e1ae52eb42c9ee83b206e3p+0),
+    L(0x1.bf4ad50f0a9a9311300cf0c51ee7p+0),
+    L(0x1.e40206e0e96b1da463814dde0d09p+0),
+    L(0x1.fdcbcffef3a21b29719c2bd9feb1p+0),
+    L(0x2.25e2e8948939c4d42cf108fae4bep+0),
+    L(0x2.44ce14d2b59c1c0e6bf2cfa81018p+0),
+    L(0x2.70ee80bbd0387162be4861c43622p+0),
+    L(0x2.954b64d2c2ebf3489b949c74476p+0),
+    L(0x2.c616e133a811c1c9446105208656p+0),
+    L(0x3.05a69dfe1a9ba1079f90fcf26bd4p+0),
+    L(0x3.410d2ad16a0506de29736e6aafdap+0),
+  };
+
+static const size_t poly_deg[] =
+  {
+    23,
+    24,
+    25,
+    27,
+    28,
+    26,
+    24,
+    23,
+  };
+
+static const size_t poly_end[] =
+  {
+    23,
+    48,
+    74,
+    102,
+    131,
+    158,
+    183,
+    207,
+  };
+
+/* Compute sin (pi * X) for -0.25 <= X <= 0.5.  */
+
+static _Float128
+lg_sinpi (_Float128 x)
+{
+  if (x <= L(0.25))
+    return __sinl (M_PIl * x);
+  else
+    return __cosl (M_PIl * (L(0.5) - x));
+}
+
+/* Compute cos (pi * X) for -0.25 <= X <= 0.5.  */
+
+static _Float128
+lg_cospi (_Float128 x)
+{
+  if (x <= L(0.25))
+    return __cosl (M_PIl * x);
+  else
+    return __sinl (M_PIl * (L(0.5) - x));
+}
+
+/* Compute cot (pi * X) for -0.25 <= X <= 0.5.  */
+
+static _Float128
+lg_cotpi (_Float128 x)
+{
+  return lg_cospi (x) / lg_sinpi (x);
+}
+
+/* Compute lgamma of a negative argument -50 < X < -2, setting
+   *SIGNGAMP accordingly.  */
+
+_Float128
+__lgamma_negl (_Float128 x, int *signgamp)
+{
+  /* Determine the half-integer region X lies in, handle exact
+     integers and determine the sign of the result.  */
+  int i = __floorl (-2 * x);
+  if ((i & 1) == 0 && i == -2 * x)
+    return L(1.0) / L(0.0);
+  _Float128 xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
+  i -= 4;
+  *signgamp = ((i & 2) == 0 ? -1 : 1);
+
+  SET_RESTORE_ROUNDL (FE_TONEAREST);
+
+  /* Expand around the zero X0 = X0_HI + X0_LO.  */
+  _Float128 x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
+  _Float128 xdiff = x - x0_hi - x0_lo;
+
+  /* For arguments in the range -3 to -2, use polynomial
+     approximations to an adjusted version of the gamma function.  */
+  if (i < 2)
+    {
+      int j = __floorl (-8 * x) - 16;
+      _Float128 xm = (-33 - 2 * j) * L(0.0625);
+      _Float128 x_adj = x - xm;
+      size_t deg = poly_deg[j];
+      size_t end = poly_end[j];
+      _Float128 g = poly_coeff[end];
+      for (size_t j = 1; j <= deg; j++)
+	g = g * x_adj + poly_coeff[end - j];
+      return __log1pl (g * xdiff / (x - xn));
+    }
+
+  /* The result we want is log (sinpi (X0) / sinpi (X))
+     + log (gamma (1 - X0) / gamma (1 - X)).  */
+  _Float128 x_idiff = fabsl (xn - x), x0_idiff = fabsl (xn - x0_hi - x0_lo);
+  _Float128 log_sinpi_ratio;
+  if (x0_idiff < x_idiff * L(0.5))
+    /* Use log not log1p to avoid inaccuracy from log1p of arguments
+       close to -1.  */
+    log_sinpi_ratio = __ieee754_logl (lg_sinpi (x0_idiff)
+				      / lg_sinpi (x_idiff));
+  else
+    {
+      /* Use log1p not log to avoid inaccuracy from log of arguments
+	 close to 1.  X0DIFF2 has positive sign if X0 is further from
+	 XN than X is from XN, negative sign otherwise.  */
+      _Float128 x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * L(0.5);
+      _Float128 sx0d2 = lg_sinpi (x0diff2);
+      _Float128 cx0d2 = lg_cospi (x0diff2);
+      log_sinpi_ratio = __log1pl (2 * sx0d2
+				  * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
+    }
+
+  _Float128 log_gamma_ratio;
+  _Float128 y0 = 1 - x0_hi;
+  _Float128 y0_eps = -x0_hi + (1 - y0) - x0_lo;
+  _Float128 y = 1 - x;
+  _Float128 y_eps = -x + (1 - y);
+  /* We now wish to compute LOG_GAMMA_RATIO
+     = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)).  XDIFF
+     accurately approximates the difference Y0 + Y0_EPS - Y -
+     Y_EPS.  Use Stirling's approximation.  First, we may need to
+     adjust into the range where Stirling's approximation is
+     sufficiently accurate.  */
+  _Float128 log_gamma_adj = 0;
+  if (i < 20)
+    {
+      int n_up = (21 - i) / 2;
+      _Float128 ny0, ny0_eps, ny, ny_eps;
+      ny0 = y0 + n_up;
+      ny0_eps = y0 - (ny0 - n_up) + y0_eps;
+      y0 = ny0;
+      y0_eps = ny0_eps;
+      ny = y + n_up;
+      ny_eps = y - (ny - n_up) + y_eps;
+      y = ny;
+      y_eps = ny_eps;
+      _Float128 prodm1 = __lgamma_productl (xdiff, y - n_up, y_eps, n_up);
+      log_gamma_adj = -__log1pl (prodm1);
+    }
+  _Float128 log_gamma_high
+    = (xdiff * __log1pl ((y0 - e_hi - e_lo + y0_eps) / e_hi)
+       + (y - L(0.5) + y_eps) * __log1pl (xdiff / y) + log_gamma_adj);
+  /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)).  */
+  _Float128 y0r = 1 / y0, yr = 1 / y;
+  _Float128 y0r2 = y0r * y0r, yr2 = yr * yr;
+  _Float128 rdiff = -xdiff / (y * y0);
+  _Float128 bterm[NCOEFF];
+  _Float128 dlast = rdiff, elast = rdiff * yr * (yr + y0r);
+  bterm[0] = dlast * lgamma_coeff[0];
+  for (size_t j = 1; j < NCOEFF; j++)
+    {
+      _Float128 dnext = dlast * y0r2 + elast;
+      _Float128 enext = elast * yr2;
+      bterm[j] = dnext * lgamma_coeff[j];
+      dlast = dnext;
+      elast = enext;
+    }
+  _Float128 log_gamma_low = 0;
+  for (size_t j = 0; j < NCOEFF; j++)
+    log_gamma_low += bterm[NCOEFF - 1 - j];
+  log_gamma_ratio = log_gamma_high + log_gamma_low;
+
+  return log_sinpi_ratio + log_gamma_ratio;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_productl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_productl.c
new file mode 100644
index 0000000000..212c26a960
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/lgamma_productl.c
@@ -0,0 +1,52 @@
+/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_splitl.h>
+
+/* Compute the product of 1 + (T / (X + X_EPS)), 1 + (T / (X + X_EPS +
+   1)), ..., 1 + (T / (X + X_EPS + N - 1)), minus 1.  X is such that
+   all the values X + 1, ..., X + N - 1 are exactly representable, and
+   X_EPS / X is small enough that factors quadratic in it can be
+   neglected.  */
+
+_Float128
+__lgamma_productl (_Float128 t, _Float128 x, _Float128 x_eps, int n)
+{
+  _Float128 ret = 0, ret_eps = 0;
+  for (int i = 0; i < n; i++)
+    {
+      _Float128 xi = x + i;
+      _Float128 quot = t / xi;
+      _Float128 mhi, mlo;
+      mul_splitl (&mhi, &mlo, quot, xi);
+      _Float128 quot_lo = (t - mhi - mlo) / xi - t * x_eps / (xi * xi);
+      /* We want (1 + RET + RET_EPS) * (1 + QUOT + QUOT_LO) - 1.  */
+      _Float128 rhi, rlo;
+      mul_splitl (&rhi, &rlo, ret, quot);
+      _Float128 rpq = ret + quot;
+      _Float128 rpq_eps = (ret - rpq) + quot;
+      _Float128 nret = rpq + rhi;
+      _Float128 nret_eps = (rpq - nret) + rhi;
+      ret_eps += (rpq_eps + nret_eps + rlo + ret_eps * quot
+		  + quot_lo + quot_lo * (ret + ret_eps));
+      ret = nret;
+    }
+  return ret + ret_eps;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/math_ldbl.h b/REORG.TODO/sysdeps/ieee754/ldbl-128/math_ldbl.h
new file mode 100644
index 0000000000..bb5cce2a36
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/math_ldbl.h
@@ -0,0 +1,120 @@
+/* Manipulation of the bit representation of 'long double' quantities.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_LDBL_H_
+#define _MATH_LDBL_H_ 1
+
+#include <stdint.h>
+#include <endian.h>
+
+/* A union which permits us to convert between a long double and
+   four 32 bit ints or two 64 bit ints.  */
+
+#if __FLOAT_WORD_ORDER == __BIG_ENDIAN
+
+typedef union
+{
+  long double value;
+  struct
+  {
+    uint64_t msw;
+    uint64_t lsw;
+  } parts64;
+  struct
+  {
+    uint32_t w0, w1, w2, w3;
+  } parts32;
+} ieee854_long_double_shape_type;
+
+#endif
+
+#if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN
+
+typedef union
+{
+  long double value;
+  struct
+  {
+    uint64_t lsw;
+    uint64_t msw;
+  } parts64;
+  struct
+  {
+    uint32_t w3, w2, w1, w0;
+  } parts32;
+} ieee854_long_double_shape_type;
+
+#endif
+
+/* Get two 64 bit ints from a long double.  */
+
+#define GET_LDOUBLE_WORDS64(ix0,ix1,d)				\
+do {								\
+  ieee854_long_double_shape_type qw_u;				\
+  qw_u.value = (d);						\
+  (ix0) = qw_u.parts64.msw;					\
+  (ix1) = qw_u.parts64.lsw;					\
+} while (0)
+
+/* Set a long double from two 64 bit ints.  */
+
+#define SET_LDOUBLE_WORDS64(d,ix0,ix1)				\
+do {								\
+  ieee854_long_double_shape_type qw_u;				\
+  qw_u.parts64.msw = (ix0);					\
+  qw_u.parts64.lsw = (ix1);					\
+  (d) = qw_u.value;						\
+} while (0)
+
+/* Get the more significant 64 bits of a long double mantissa.  */
+
+#define GET_LDOUBLE_MSW64(v,d)					\
+do {								\
+  ieee854_long_double_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  (v) = sh_u.parts64.msw;					\
+} while (0)
+
+/* Set the more significant 64 bits of a long double mantissa from an int.  */
+
+#define SET_LDOUBLE_MSW64(d,v)					\
+do {								\
+  ieee854_long_double_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  sh_u.parts64.msw = (v);					\
+  (d) = sh_u.value;						\
+} while (0)
+
+/* Get the least significant 64 bits of a long double mantissa.  */
+
+#define GET_LDOUBLE_LSW64(v,d)					\
+do {								\
+  ieee854_long_double_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  (v) = sh_u.parts64.lsw;					\
+} while (0)
+
+/*
+   On a platform already supporting a binary128 long double,
+   _Float128 will alias to long double.  This transformation
+   makes aliasing *l functions to *f128 trivial.
+*/
+#define _Float128 long double
+#define L(x) x##L
+
+#endif /* math_ldbl.h */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/mpn2ldbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
new file mode 100644
index 0000000000..625186fdc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/mpn2ldbl.c
@@ -0,0 +1,52 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include <ieee754.h>
+#include <float.h>
+#include <math.h>
+
+/* Convert a multi-precision integer of the needed number of bits (113 for
+   long double) and an integral power of two to a `long double' in IEEE854
+   quad-precision format.  */
+
+long double
+__mpn_construct_long_double (mp_srcptr frac_ptr, int expt, int sign)
+{
+  union ieee854_long_double u;
+
+  u.ieee.negative = sign;
+  u.ieee.exponent = expt + IEEE854_LONG_DOUBLE_BIAS;
+#if BITS_PER_MP_LIMB == 32
+  u.ieee.mantissa3 = frac_ptr[0];
+  u.ieee.mantissa2 = frac_ptr[1];
+  u.ieee.mantissa1 = frac_ptr[2];
+  u.ieee.mantissa0 = frac_ptr[3] & (((mp_limb_t) 1
+				     << (LDBL_MANT_DIG - 96)) - 1);
+#elif BITS_PER_MP_LIMB == 64
+  u.ieee.mantissa3 = frac_ptr[0] & (((mp_limb_t) 1 << 32) - 1);
+  u.ieee.mantissa2 = frac_ptr[0] >> 32;
+  u.ieee.mantissa1 = frac_ptr[1] & (((mp_limb_t) 1 << 32) - 1);
+  u.ieee.mantissa0 = (frac_ptr[1] >> 32) & (((mp_limb_t) 1
+					     << (LDBL_MANT_DIG - 96)) - 1);
+#else
+  #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+
+  return u.d;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex.c
new file mode 100644
index 0000000000..294464ecff
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex.c
@@ -0,0 +1,25 @@
+/* Print floating point number in hexadecimal notation according to
+   ISO C99.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ldbl-128/printf_fphex_macros.h>
+#define PRINT_FPHEX_LONG_DOUBLE \
+  PRINT_FPHEX (long double, fpnum.ldbl, ieee854_long_double, \
+	       IEEE854_LONG_DOUBLE_BIAS)
+
+#include <stdio-common/printf_fphex.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h b/REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
new file mode 100644
index 0000000000..86681c4c1e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/printf_fphex_macros.h
@@ -0,0 +1,104 @@
+/* Macro to print floating point numbers in hexadecimal notation.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define PRINT_FPHEX(FLOAT, VAR, IEEE854_UNION, IEEE854_BIAS)		      \
+do {									      \
+      /* We have 112 bits of mantissa plus one implicit digit.  Since	      \
+	 112 bits are representable without rest using hexadecimal	      \
+	 digits we use only the implicit digits for the number before	      \
+	 the decimal point.  */						      \
+      unsigned long long int num0, num1;				      \
+      union IEEE854_UNION u;						      \
+      u.d = VAR;							      \
+									      \
+      assert (sizeof (FLOAT) == 16);					      \
+									      \
+      num0 = (((unsigned long long int) u.ieee.mantissa0) << 32		      \
+	     | u.ieee.mantissa1);					      \
+      num1 = (((unsigned long long int) u.ieee.mantissa2) << 32		      \
+	     | u.ieee.mantissa3);					      \
+									      \
+      zero_mantissa = (num0|num1) == 0;					      \
+									      \
+      if (sizeof (unsigned long int) > 6)				      \
+	{								      \
+	  numstr = _itoa_word (num1, numbuf + sizeof numbuf, 16,	      \
+			       info->spec == 'A');			      \
+	  wnumstr = _itowa_word (num1,					      \
+				 wnumbuf + sizeof (wnumbuf) / sizeof (wchar_t),\
+				 16, info->spec == 'A');		      \
+	}								      \
+      else								      \
+	{								      \
+	  numstr = _itoa (num1, numbuf + sizeof numbuf, 16,		      \
+			  info->spec == 'A');				      \
+	  wnumstr = _itowa (num1,					      \
+			    wnumbuf + sizeof (wnumbuf) / sizeof (wchar_t),    \
+			    16, info->spec == 'A');			      \
+	}								      \
+									      \
+      while (numstr > numbuf + (sizeof numbuf - 64 / 4))		      \
+	{								      \
+	  *--numstr = '0';						      \
+	  *--wnumstr = L'0';						      \
+	}								      \
+									      \
+      if (sizeof (unsigned long int) > 6)				      \
+	{								      \
+	  numstr = _itoa_word (num0, numstr, 16, info->spec == 'A');	      \
+	  wnumstr = _itowa_word (num0, wnumstr, 16, info->spec == 'A');	      \
+	}								      \
+      else								      \
+	{								      \
+	  numstr = _itoa (num0, numstr, 16, info->spec == 'A');		      \
+	  wnumstr = _itowa (num0, wnumstr, 16, info->spec == 'A');	      \
+	}								      \
+									      \
+      /* Fill with zeroes.  */						      \
+      while (numstr > numbuf + (sizeof numbuf - 112 / 4))		      \
+	{								      \
+	  *--numstr = '0';						      \
+	  *--wnumstr = L'0';						      \
+	}								      \
+									      \
+      leading = u.ieee.exponent == 0 ? '0' : '1';			      \
+									      \
+      exponent = u.ieee.exponent;					      \
+									      \
+      if (exponent == 0)						      \
+	{								      \
+	  if (zero_mantissa)						      \
+	    expnegative = 0;						      \
+	  else								      \
+	    {								      \
+	      /* This is a denormalized number.  */			      \
+	      expnegative = 1;						      \
+	      exponent = IEEE854_BIAS - 1;				      \
+	    }								      \
+	}								      \
+      else if (exponent >= IEEE854_BIAS)				      \
+	{								      \
+	  expnegative = 0;						      \
+	  exponent -= IEEE854_BIAS;					      \
+	}								      \
+      else								      \
+	{								      \
+	  expnegative = 1;						      \
+	  exponent = -(exponent - IEEE854_BIAS);			      \
+	}								      \
+} while (0)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_asinhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_asinhl.c
new file mode 100644
index 0000000000..83efb34447
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_asinhl.c
@@ -0,0 +1,79 @@
+/* s_asinhl.c -- long double version of s_asinh.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* asinhl(x)
+ * Method :
+ *      Based on
+ *              asinhl(x) = signl(x) * logl [ |x| + sqrtl(x*x+1) ]
+ *      we have
+ *      asinhl(x) := x  if  1+x*x=1,
+ *                := signl(x)*(logl(x)+ln2)) for large |x|, else
+ *                := signl(x)*logl(2|x|+1/(|x|+sqrtl(x*x+1))) if|x|>2, else
+ *                := signl(x)*log1pl(|x| + x^2/(1 + sqrtl(1+x^2)))
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+  one = 1,
+  ln2 = L(6.931471805599453094172321214581765681e-1),
+  huge = L(1.0e+4900);
+
+_Float128
+__asinhl (_Float128 x)
+{
+  _Float128 t, w;
+  int32_t ix, sign;
+  ieee854_long_double_shape_type u;
+
+  u.value = x;
+  sign = u.parts32.w0;
+  ix = sign & 0x7fffffff;
+  if (ix == 0x7fff0000)
+    return x + x;		/* x is inf or NaN */
+  if (ix < 0x3fc70000)
+    {				/* |x| < 2^ -56 */
+      math_check_force_underflow (x);
+      if (huge + x > one)
+	return x;		/* return x inexact except 0 */
+    }
+  u.parts32.w0 = ix;
+  if (ix > 0x40350000)
+    {				/* |x| > 2 ^ 54 */
+      w = __ieee754_logl (u.value) + ln2;
+    }
+  else if (ix >0x40000000)
+    {				/* 2^ 54 > |x| > 2.0 */
+      t = u.value;
+      w = __ieee754_logl (2.0 * t + one / (__ieee754_sqrtl (x * x + one) + t));
+    }
+  else
+    {				/* 2.0 > |x| > 2 ^ -56 */
+      t = x * x;
+      w = __log1pl (u.value + t / (one + __ieee754_sqrtl (one + t)));
+    }
+  if (sign & 0x80000000)
+    return -w;
+  else
+    return w;
+}
+weak_alias (__asinhl, asinhl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_atanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_atanl.c
new file mode 100644
index 0000000000..6f2cd549ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_atanl.c
@@ -0,0 +1,253 @@
+/*							s_atanl.c
+ *
+ *	Inverse circular tangent for 128-bit long double precision
+ *      (arctangent)
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, atanl();
+ *
+ * y = atanl( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns radian angle between -pi/2 and +pi/2 whose tangent is x.
+ *
+ * The function uses a rational approximation of the form
+ * t + t^3 P(t^2)/Q(t^2), optimized for |t| < 0.09375.
+ *
+ * The argument is reduced using the identity
+ *    arctan x - arctan u  =  arctan ((x-u)/(1 + ux))
+ * and an 83-entry lookup table for arctan u, with u = 0, 1/8, ..., 10.25.
+ * Use of the table improves the execution speed of the routine.
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      -19, 19       4e5       1.7e-34     5.4e-35
+ *
+ *
+ * WARNING:
+ *
+ * This program uses integer operations on bit fields of floating-point
+ * numbers.  It does not work with data structures other than the
+ * structure assumed.
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+/* arctan(k/8), k = 0, ..., 82 */
+static const _Float128 atantbl[84] = {
+  L(0.0000000000000000000000000000000000000000E0),
+  L(1.2435499454676143503135484916387102557317E-1), /* arctan(0.125)  */
+  L(2.4497866312686415417208248121127581091414E-1),
+  L(3.5877067027057222039592006392646049977698E-1),
+  L(4.6364760900080611621425623146121440202854E-1),
+  L(5.5859931534356243597150821640166127034645E-1),
+  L(6.4350110879328438680280922871732263804151E-1),
+  L(7.1882999962162450541701415152590465395142E-1),
+  L(7.8539816339744830961566084581987572104929E-1),
+  L(8.4415398611317100251784414827164750652594E-1),
+  L(8.9605538457134395617480071802993782702458E-1),
+  L(9.4200004037946366473793717053459358607166E-1),
+  L(9.8279372324732906798571061101466601449688E-1),
+  L(1.0191413442663497346383429170230636487744E0),
+  L(1.0516502125483736674598673120862998296302E0),
+  L(1.0808390005411683108871567292171998202703E0),
+  L(1.1071487177940905030170654601785370400700E0),
+  L(1.1309537439791604464709335155363278047493E0),
+  L(1.1525719972156675180401498626127513797495E0),
+  L(1.1722738811284763866005949441337046149712E0),
+  L(1.1902899496825317329277337748293183376012E0),
+  L(1.2068173702852525303955115800565576303133E0),
+  L(1.2220253232109896370417417439225704908830E0),
+  L(1.2360594894780819419094519711090786987027E0),
+  L(1.2490457723982544258299170772810901230778E0),
+  L(1.2610933822524404193139408812473357720101E0),
+  L(1.2722973952087173412961937498224804940684E0),
+  L(1.2827408797442707473628852511364955306249E0),
+  L(1.2924966677897852679030914214070816845853E0),
+  L(1.3016288340091961438047858503666855921414E0),
+  L(1.3101939350475556342564376891719053122733E0),
+  L(1.3182420510168370498593302023271362531155E0),
+  L(1.3258176636680324650592392104284756311844E0),
+  L(1.3329603993374458675538498697331558093700E0),
+  L(1.3397056595989995393283037525895557411039E0),
+  L(1.3460851583802539310489409282517796256512E0),
+  L(1.3521273809209546571891479413898128509842E0),
+  L(1.3578579772154994751124898859640585287459E0),
+  L(1.3633001003596939542892985278250991189943E0),
+  L(1.3684746984165928776366381936948529556191E0),
+  L(1.3734007669450158608612719264449611486510E0),
+  L(1.3780955681325110444536609641291551522494E0),
+  L(1.3825748214901258580599674177685685125566E0),
+  L(1.3868528702577214543289381097042486034883E0),
+  L(1.3909428270024183486427686943836432060856E0),
+  L(1.3948567013423687823948122092044222644895E0),
+  L(1.3986055122719575950126700816114282335732E0),
+  L(1.4021993871854670105330304794336492676944E0),
+  L(1.4056476493802697809521934019958079881002E0),
+  L(1.4089588955564736949699075250792569287156E0),
+  L(1.4121410646084952153676136718584891599630E0),
+  L(1.4152014988178669079462550975833894394929E0),
+  L(1.4181469983996314594038603039700989523716E0),
+  L(1.4209838702219992566633046424614466661176E0),
+  L(1.4237179714064941189018190466107297503086E0),
+  L(1.4263547484202526397918060597281265695725E0),
+  L(1.4288992721907326964184700745371983590908E0),
+  L(1.4313562697035588982240194668401779312122E0),
+  L(1.4337301524847089866404719096698873648610E0),
+  L(1.4360250423171655234964275337155008780675E0),
+  L(1.4382447944982225979614042479354815855386E0),
+  L(1.4403930189057632173997301031392126865694E0),
+  L(1.4424730991091018200252920599377292525125E0),
+  L(1.4444882097316563655148453598508037025938E0),
+  L(1.4464413322481351841999668424758804165254E0),
+  L(1.4483352693775551917970437843145232637695E0),
+  L(1.4501726582147939000905940595923466567576E0),
+  L(1.4519559822271314199339700039142990228105E0),
+  L(1.4536875822280323362423034480994649820285E0),
+  L(1.4553696664279718992423082296859928222270E0),
+  L(1.4570043196511885530074841089245667532358E0),
+  L(1.4585935117976422128825857356750737658039E0),
+  L(1.4601391056210009726721818194296893361233E0),
+  L(1.4616428638860188872060496086383008594310E0),
+  L(1.4631064559620759326975975316301202111560E0),
+  L(1.4645314639038178118428450961503371619177E0),
+  L(1.4659193880646627234129855241049975398470E0),
+  L(1.4672716522843522691530527207287398276197E0),
+  L(1.4685896086876430842559640450619880951144E0),
+  L(1.4698745421276027686510391411132998919794E0),
+  L(1.4711276743037345918528755717617308518553E0),
+  L(1.4723501675822635384916444186631899205983E0),
+  L(1.4735431285433308455179928682541563973416E0), /* arctan(10.25) */
+  L(1.5707963267948966192313216916397514420986E0)  /* pi/2 */
+};
+
+
+/* arctan t = t + t^3 p(t^2) / q(t^2)
+   |t| <= 0.09375
+   peak relative error 5.3e-37 */
+
+static const _Float128
+  p0 = L(-4.283708356338736809269381409828726405572E1),
+  p1 = L(-8.636132499244548540964557273544599863825E1),
+  p2 = L(-5.713554848244551350855604111031839613216E1),
+  p3 = L(-1.371405711877433266573835355036413750118E1),
+  p4 = L(-8.638214309119210906997318946650189640184E-1),
+  q0 = L(1.285112506901621042780814422948906537959E2),
+  q1 = L(3.361907253914337187957855834229672347089E2),
+  q2 = L(3.180448303864130128268191635189365331680E2),
+  q3 = L(1.307244136980865800160844625025280344686E2),
+  q4 = L(2.173623741810414221251136181221172551416E1);
+  /* q5 = 1.000000000000000000000000000000000000000E0 */
+
+static const _Float128 huge = L(1.0e4930);
+
+_Float128
+__atanl (_Float128 x)
+{
+  int k, sign;
+  _Float128 t, u, p, q;
+  ieee854_long_double_shape_type s;
+
+  s.value = x;
+  k = s.parts32.w0;
+  if (k & 0x80000000)
+    sign = 1;
+  else
+    sign = 0;
+
+  /* Check for IEEE special cases.  */
+  k &= 0x7fffffff;
+  if (k >= 0x7fff0000)
+    {
+      /* NaN. */
+      if ((k & 0xffff) | s.parts32.w1 | s.parts32.w2 | s.parts32.w3)
+	return (x + x);
+
+      /* Infinity. */
+      if (sign)
+	return -atantbl[83];
+      else
+	return atantbl[83];
+    }
+
+  if (k <= 0x3fc50000) /* |x| < 2**-58 */
+    {
+      math_check_force_underflow (x);
+      /* Raise inexact. */
+      if (huge + x > 0.0)
+	return x;
+    }
+
+  if (k >= 0x40720000) /* |x| > 2**115 */
+    {
+      /* Saturate result to {-,+}pi/2 */
+      if (sign)
+	return -atantbl[83];
+      else
+	return atantbl[83];
+    }
+
+  if (sign)
+      x = -x;
+
+  if (k >= 0x40024800) /* 10.25 */
+    {
+      k = 83;
+      t = -1.0/x;
+    }
+  else
+    {
+      /* Index of nearest table element.
+	 Roundoff to integer is asymmetrical to avoid cancellation when t < 0
+         (cf. fdlibm). */
+      k = 8.0 * x + 0.25;
+      u = L(0.125) * k;
+      /* Small arctan argument.  */
+      t = (x - u) / (1.0 + x * u);
+    }
+
+  /* Arctan of small argument t.  */
+  u = t * t;
+  p =     ((((p4 * u) + p3) * u + p2) * u + p1) * u + p0;
+  q = ((((u + q4) * u + q3) * u + q2) * u + q1) * u + q0;
+  u = t * u * p / q  +  t;
+
+  /* arctan x = arctan u  +  arctan t */
+  u = atantbl[k] + u;
+  if (sign)
+    return (-u);
+  else
+    return u;
+}
+
+weak_alias (__atanl, atanl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_cbrtl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_cbrtl.c
new file mode 100644
index 0000000000..eb88d29fc9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_cbrtl.c
@@ -0,0 +1,135 @@
+/*							cbrtl.c
+ *
+ *	Cube root, long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, cbrtl();
+ *
+ * y = cbrtl( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the cube root of the argument, which may be negative.
+ *
+ * Range reduction involves determining the power of 2 of
+ * the argument.  A polynomial of degree 2 applied to the
+ * mantissa, and multiplication by the cube root of 1, 2, or 4
+ * approximates the root to within about 0.1%.  Then Newton's
+ * iteration is used three times to converge to an accurate
+ * result.
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE       -8,8       100000      1.3e-34     3.9e-35
+ *    IEEE    exp(+-707)    100000      1.3e-34     4.3e-35
+ *
+ */
+
+/*
+Cephes Math Library Release 2.2: January, 1991
+Copyright 1984, 1991 by Stephen L. Moshier
+Adapted for glibc October, 2001.
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 CBRT2 = L(1.259921049894873164767210607278228350570251);
+static const _Float128 CBRT4 = L(1.587401051968199474751705639272308260391493);
+static const _Float128 CBRT2I = L(0.7937005259840997373758528196361541301957467);
+static const _Float128 CBRT4I = L(0.6299605249474365823836053036391141752851257);
+
+
+_Float128
+__cbrtl (_Float128 x)
+{
+  int e, rem, sign;
+  _Float128 z;
+
+  if (!isfinite (x))
+    return x + x;
+
+  if (x == 0)
+    return (x);
+
+  if (x > 0)
+    sign = 1;
+  else
+    {
+      sign = -1;
+      x = -x;
+    }
+
+  z = x;
+ /* extract power of 2, leaving mantissa between 0.5 and 1  */
+  x = __frexpl (x, &e);
+
+  /* Approximate cube root of number between .5 and 1,
+     peak relative error = 1.2e-6  */
+  x = ((((L(1.3584464340920900529734e-1) * x
+	  - L(6.3986917220457538402318e-1)) * x
+	 + L(1.2875551670318751538055e0)) * x
+	- L(1.4897083391357284957891e0)) * x
+       + L(1.3304961236013647092521e0)) * x + L(3.7568280825958912391243e-1);
+
+  /* exponent divided by 3 */
+  if (e >= 0)
+    {
+      rem = e;
+      e /= 3;
+      rem -= 3 * e;
+      if (rem == 1)
+	x *= CBRT2;
+      else if (rem == 2)
+	x *= CBRT4;
+    }
+  else
+    {				/* argument less than 1 */
+      e = -e;
+      rem = e;
+      e /= 3;
+      rem -= 3 * e;
+      if (rem == 1)
+	x *= CBRT2I;
+      else if (rem == 2)
+	x *= CBRT4I;
+      e = -e;
+    }
+
+  /* multiply by power of 2 */
+  x = __ldexpl (x, e);
+
+  /* Newton iteration */
+  x -= (x - (z / (x * x))) * L(0.3333333333333333333333333333333333333333);
+  x -= (x - (z / (x * x))) * L(0.3333333333333333333333333333333333333333);
+  x -= (x - (z / (x * x))) * L(0.3333333333333333333333333333333333333333);
+
+  if (sign < 0)
+    x = -x;
+  return (x);
+}
+
+weak_alias (__cbrtl, cbrtl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ceill.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ceill.c
new file mode 100644
index 0000000000..8034795072
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ceill.c
@@ -0,0 +1,66 @@
+/* s_ceill.c -- long double version of s_ceil.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * ceill(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ *	Bit twiddling.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __ceill(_Float128 x)
+{
+	int64_t i0,i1,j0;
+	u_int64_t i,j;
+	GET_LDOUBLE_WORDS64(i0,i1,x);
+	j0 = ((i0>>48)&0x7fff)-0x3fff;
+	if(j0<48) {
+	    if(j0<0) {
+		/* return 0*sign(x) if |x|<1 */
+		if(i0<0) {i0=0x8000000000000000ULL;i1=0;}
+		else if((i0|i1)!=0) { i0=0x3fff000000000000ULL;i1=0;}
+	    } else {
+		i = (0x0000ffffffffffffULL)>>j0;
+		if(((i0&i)|i1)==0) return x; /* x is integral */
+		if(i0>0) i0 += (0x0001000000000000LL)>>j0;
+		i0 &= (~i); i1=0;
+	    }
+	} else if (j0>111) {
+	    if(j0==0x4000) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	} else {
+	    i = -1ULL>>(j0-48);
+	    if((i1&i)==0) return x;	/* x is integral */
+	    if(i0>0) {
+		if(j0==48) i0+=1;
+		else {
+		    j = i1+(1LL<<(112-j0));
+		    if(j<i1) i0 +=1 ; 	/* got a carry */
+		    i1=j;
+		}
+	    }
+	    i1 &= (~i);
+	}
+	SET_LDOUBLE_WORDS64(x,i0,i1);
+	return x;
+}
+weak_alias (__ceill, ceill)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_copysignl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_copysignl.c
new file mode 100644
index 0000000000..8ee85ea8f7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_copysignl.c
@@ -0,0 +1,38 @@
+/* s_copysignl.c -- long double version of s_copysign.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * copysignl(long double x, long double y)
+ * copysignl(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __copysignl(_Float128 x, _Float128 y)
+{
+	u_int64_t hx,hy;
+	GET_LDOUBLE_MSW64(hx,x);
+	GET_LDOUBLE_MSW64(hy,y);
+	SET_LDOUBLE_MSW64(x,(hx&0x7fffffffffffffffULL)
+			    |(hy&0x8000000000000000ULL));
+        return x;
+}
+weak_alias (__copysignl, copysignl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_cosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_cosl.c
new file mode 100644
index 0000000000..ed3e77d0db
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_cosl.c
@@ -0,0 +1,86 @@
+/* s_cosl.c -- long double version of s_cos.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* cosl(x)
+ * Return cosine function of x.
+ *
+ * kernel function:
+ *	__kernel_sinl		... sine function on [-pi/4,pi/4]
+ *	__kernel_cosl		... cosine function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __cosl(_Float128 x)
+{
+	_Float128 y[2],z=0;
+	int64_t n, ix;
+
+    /* High word of x. */
+	GET_LDOUBLE_MSW64(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffffffffffffLL;
+	if(ix <= 0x3ffe921fb54442d1LL)
+	  return __kernel_cosl(x,z);
+
+    /* cos(Inf or NaN) is NaN */
+	else if (ix>=0x7fff000000000000LL) {
+	    if (ix == 0x7fff000000000000LL) {
+		GET_LDOUBLE_LSW64(n,x);
+		if (n == 0)
+		    __set_errno (EDOM);
+	    }
+	    return x-x;
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_cosl(y[0],y[1]);
+		case 1: return -__kernel_sinl(y[0],y[1],1);
+		case 2: return -__kernel_cosl(y[0],y[1]);
+		default:
+		        return  __kernel_sinl(y[0],y[1],1);
+	    }
+	}
+}
+weak_alias (__cosl, cosl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_erfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_erfl.c
new file mode 100644
index 0000000000..e5dfae9636
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_erfl.c
@@ -0,0 +1,948 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Modifications and expansions for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* double erf(double x)
+ * double erfc(double x)
+ *			     x
+ *		      2      |\
+ *     erf(x)  =  ---------  | exp(-t*t)dt
+ *		   sqrt(pi) \|
+ *			     0
+ *
+ *     erfc(x) =  1-erf(x)
+ *  Note that
+ *		erf(-x) = -erf(x)
+ *		erfc(-x) = 2 - erfc(x)
+ *
+ * Method:
+ *	1.  erf(x)  = x + x*R(x^2) for |x| in [0, 7/8]
+ *	   Remark. The formula is derived by noting
+ *          erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
+ *	   and that
+ *          2/sqrt(pi) = 1.128379167095512573896158903121545171688
+ *	   is close to one.
+ *
+ *      1a. erf(x)  = 1 - erfc(x), for |x| > 1.0
+ *          erfc(x) = 1 - erf(x)  if |x| < 1/4
+ *
+ *      2. For |x| in [7/8, 1], let s = |x| - 1, and
+ *         c = 0.84506291151 rounded to single (24 bits)
+ *	erf(s + c)  = sign(x) * (c  + P1(s)/Q1(s))
+ *	   Remark: here we use the taylor series expansion at x=1.
+ *		erf(1+s) = erf(1) + s*Poly(s)
+ *			 = 0.845.. + P1(s)/Q1(s)
+ *	   Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
+ *
+ *      3. For x in [1/4, 5/4],
+ *	erfc(s + const)  = erfc(const)  + s P1(s)/Q1(s)
+ *              for const = 1/4, 3/8, ..., 9/8
+ *              and 0 <= s <= 1/8 .
+ *
+ *      4. For x in [5/4, 107],
+ *	erfc(x) = (1/x)*exp(-x*x-0.5625 + R(z))
+ *              z=1/x^2
+ *         The interval is partitioned into several segments
+ *         of width 1/8 in 1/x.
+ *
+ *      Note1:
+ *	   To compute exp(-x*x-0.5625+R/S), let s be a single
+ *	   precision number and s := x; then
+ *		-x*x = -s*s + (s-x)*(s+x)
+ *	        exp(-x*x-0.5626+R/S) =
+ *			exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
+ *      Note2:
+ *	   Here 4 and 5 make use of the asymptotic series
+ *			  exp(-x*x)
+ *		erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
+ *			  x*sqrt(pi)
+ *
+ *      5. For inf > x >= 107
+ *	erf(x)  = sign(x) *(1 - tiny)  (raise inexact)
+ *	erfc(x) = tiny*tiny (raise underflow) if x > 0
+ *			= 2 - tiny if x<0
+ *
+ *      7. Special case:
+ *	erf(0)  = 0, erf(inf)  = 1, erf(-inf) = -1,
+ *	erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
+ *		erfc/erf(NaN) is NaN
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
+{
+  _Float128 y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+
+static const _Float128
+tiny = L(1e-4931),
+  one = 1,
+  two = 2,
+  /* 2/sqrt(pi) - 1 */
+  efx = L(1.2837916709551257389615890312154517168810E-1);
+
+
+/* erf(x)  = x  + x R(x^2)
+   0 <= x <= 7/8
+   Peak relative error 1.8e-35  */
+#define NTN1 8
+static const _Float128 TN1[NTN1 + 1] =
+{
+ L(-3.858252324254637124543172907442106422373E10),
+  L(9.580319248590464682316366876952214879858E10),
+  L(1.302170519734879977595901236693040544854E10),
+  L(2.922956950426397417800321486727032845006E9),
+  L(1.764317520783319397868923218385468729799E8),
+  L(1.573436014601118630105796794840834145120E7),
+  L(4.028077380105721388745632295157816229289E5),
+  L(1.644056806467289066852135096352853491530E4),
+  L(3.390868480059991640235675479463287886081E1)
+};
+#define NTD1 8
+static const _Float128 TD1[NTD1 + 1] =
+{
+  L(-3.005357030696532927149885530689529032152E11),
+  L(-1.342602283126282827411658673839982164042E11),
+  L(-2.777153893355340961288511024443668743399E10),
+  L(-3.483826391033531996955620074072768276974E9),
+  L(-2.906321047071299585682722511260895227921E8),
+  L(-1.653347985722154162439387878512427542691E7),
+  L(-6.245520581562848778466500301865173123136E5),
+  L(-1.402124304177498828590239373389110545142E4),
+  L(-1.209368072473510674493129989468348633579E2)
+/* 1.0E0 */
+};
+
+
+/* erf(z+1)  = erf_const + P(z)/Q(z)
+   -.125 <= z <= 0
+   Peak relative error 7.3e-36  */
+static const _Float128 erf_const = L(0.845062911510467529296875);
+#define NTN2 8
+static const _Float128 TN2[NTN2 + 1] =
+{
+ L(-4.088889697077485301010486931817357000235E1),
+  L(7.157046430681808553842307502826960051036E3),
+ L(-2.191561912574409865550015485451373731780E3),
+  L(2.180174916555316874988981177654057337219E3),
+  L(2.848578658049670668231333682379720943455E2),
+  L(1.630362490952512836762810462174798925274E2),
+  L(6.317712353961866974143739396865293596895E0),
+  L(2.450441034183492434655586496522857578066E1),
+  L(5.127662277706787664956025545897050896203E-1)
+};
+#define NTD2 8
+static const _Float128 TD2[NTD2 + 1] =
+{
+  L(1.731026445926834008273768924015161048885E4),
+  L(1.209682239007990370796112604286048173750E4),
+  L(1.160950290217993641320602282462976163857E4),
+  L(5.394294645127126577825507169061355698157E3),
+  L(2.791239340533632669442158497532521776093E3),
+  L(8.989365571337319032943005387378993827684E2),
+  L(2.974016493766349409725385710897298069677E2),
+  L(6.148192754590376378740261072533527271947E1),
+  L(1.178502892490738445655468927408440847480E1)
+ /* 1.0E0 */
+};
+
+
+/* erfc(x + 0.25) = erfc(0.25) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.4e-35  */
+#define NRNr13 8
+static const _Float128 RNr13[NRNr13 + 1] =
+{
+ L(-2.353707097641280550282633036456457014829E3),
+  L(3.871159656228743599994116143079870279866E2),
+ L(-3.888105134258266192210485617504098426679E2),
+ L(-2.129998539120061668038806696199343094971E1),
+ L(-8.125462263594034672468446317145384108734E1),
+  L(8.151549093983505810118308635926270319660E0),
+ L(-5.033362032729207310462422357772568553670E0),
+ L(-4.253956621135136090295893547735851168471E-2),
+ L(-8.098602878463854789780108161581050357814E-2)
+};
+#define NRDr13 7
+static const _Float128 RDr13[NRDr13 + 1] =
+{
+  L(2.220448796306693503549505450626652881752E3),
+  L(1.899133258779578688791041599040951431383E2),
+  L(1.061906712284961110196427571557149268454E3),
+  L(7.497086072306967965180978101974566760042E1),
+  L(2.146796115662672795876463568170441327274E2),
+  L(1.120156008362573736664338015952284925592E1),
+  L(2.211014952075052616409845051695042741074E1),
+  L(6.469655675326150785692908453094054988938E-1)
+ /* 1.0E0 */
+};
+/* erfc(0.25) = C13a + C13b to extra precision.  */
+static const _Float128 C13a = L(0.723663330078125);
+static const _Float128 C13b = L(1.0279753638067014931732235184287934646022E-5);
+
+
+/* erfc(x + 0.375) = erfc(0.375) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.2e-35  */
+#define NRNr14 8
+static const _Float128 RNr14[NRNr14 + 1] =
+{
+ L(-2.446164016404426277577283038988918202456E3),
+  L(6.718753324496563913392217011618096698140E2),
+ L(-4.581631138049836157425391886957389240794E2),
+ L(-2.382844088987092233033215402335026078208E1),
+ L(-7.119237852400600507927038680970936336458E1),
+  L(1.313609646108420136332418282286454287146E1),
+ L(-6.188608702082264389155862490056401365834E0),
+ L(-2.787116601106678287277373011101132659279E-2),
+ L(-2.230395570574153963203348263549700967918E-2)
+};
+#define NRDr14 7
+static const _Float128 RDr14[NRDr14 + 1] =
+{
+  L(2.495187439241869732696223349840963702875E3),
+  L(2.503549449872925580011284635695738412162E2),
+  L(1.159033560988895481698051531263861842461E3),
+  L(9.493751466542304491261487998684383688622E1),
+  L(2.276214929562354328261422263078480321204E2),
+  L(1.367697521219069280358984081407807931847E1),
+  L(2.276988395995528495055594829206582732682E1),
+  L(7.647745753648996559837591812375456641163E-1)
+ /* 1.0E0 */
+};
+/* erfc(0.375) = C14a + C14b to extra precision.  */
+static const _Float128 C14a = L(0.5958709716796875);
+static const _Float128 C14b = L(1.2118885490201676174914080878232469565953E-5);
+
+/* erfc(x + 0.5) = erfc(0.5) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 4.7e-36  */
+#define NRNr15 8
+static const _Float128 RNr15[NRNr15 + 1] =
+{
+ L(-2.624212418011181487924855581955853461925E3),
+  L(8.473828904647825181073831556439301342756E2),
+ L(-5.286207458628380765099405359607331669027E2),
+ L(-3.895781234155315729088407259045269652318E1),
+ L(-6.200857908065163618041240848728398496256E1),
+  L(1.469324610346924001393137895116129204737E1),
+ L(-6.961356525370658572800674953305625578903E0),
+  L(5.145724386641163809595512876629030548495E-3),
+  L(1.990253655948179713415957791776180406812E-2)
+};
+#define NRDr15 7
+static const _Float128 RDr15[NRDr15 + 1] =
+{
+  L(2.986190760847974943034021764693341524962E3),
+  L(5.288262758961073066335410218650047725985E2),
+  L(1.363649178071006978355113026427856008978E3),
+  L(1.921707975649915894241864988942255320833E2),
+  L(2.588651100651029023069013885900085533226E2),
+  L(2.628752920321455606558942309396855629459E1),
+  L(2.455649035885114308978333741080991380610E1),
+  L(1.378826653595128464383127836412100939126E0)
+  /* 1.0E0 */
+};
+/* erfc(0.5) = C15a + C15b to extra precision.  */
+static const _Float128 C15a = L(0.4794921875);
+static const _Float128 C15b = L(7.9346869534623172533461080354712635484242E-6);
+
+/* erfc(x + 0.625) = erfc(0.625) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 5.1e-36  */
+#define NRNr16 8
+static const _Float128 RNr16[NRNr16 + 1] =
+{
+ L(-2.347887943200680563784690094002722906820E3),
+  L(8.008590660692105004780722726421020136482E2),
+ L(-5.257363310384119728760181252132311447963E2),
+ L(-4.471737717857801230450290232600243795637E1),
+ L(-4.849540386452573306708795324759300320304E1),
+  L(1.140885264677134679275986782978655952843E1),
+ L(-6.731591085460269447926746876983786152300E0),
+  L(1.370831653033047440345050025876085121231E-1),
+  L(2.022958279982138755020825717073966576670E-2),
+};
+#define NRDr16 7
+static const _Float128 RDr16[NRDr16 + 1] =
+{
+  L(3.075166170024837215399323264868308087281E3),
+  L(8.730468942160798031608053127270430036627E2),
+  L(1.458472799166340479742581949088453244767E3),
+  L(3.230423687568019709453130785873540386217E2),
+  L(2.804009872719893612081109617983169474655E2),
+  L(4.465334221323222943418085830026979293091E1),
+  L(2.612723259683205928103787842214809134746E1),
+  L(2.341526751185244109722204018543276124997E0),
+  /* 1.0E0 */
+};
+/* erfc(0.625) = C16a + C16b to extra precision.  */
+static const _Float128 C16a = L(0.3767547607421875);
+static const _Float128 C16b = L(4.3570693945275513594941232097252997287766E-6);
+
+/* erfc(x + 0.75) = erfc(0.75) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.7e-35  */
+#define NRNr17 8
+static const _Float128 RNr17[NRNr17 + 1] =
+{
+  L(-1.767068734220277728233364375724380366826E3),
+  L(6.693746645665242832426891888805363898707E2),
+  L(-4.746224241837275958126060307406616817753E2),
+  L(-2.274160637728782675145666064841883803196E1),
+  L(-3.541232266140939050094370552538987982637E1),
+  L(6.988950514747052676394491563585179503865E0),
+  L(-5.807687216836540830881352383529281215100E0),
+  L(3.631915988567346438830283503729569443642E-1),
+  L(-1.488945487149634820537348176770282391202E-2)
+};
+#define NRDr17 7
+static const _Float128 RDr17[NRDr17 + 1] =
+{
+  L(2.748457523498150741964464942246913394647E3),
+  L(1.020213390713477686776037331757871252652E3),
+  L(1.388857635935432621972601695296561952738E3),
+  L(3.903363681143817750895999579637315491087E2),
+  L(2.784568344378139499217928969529219886578E2),
+  L(5.555800830216764702779238020065345401144E1),
+  L(2.646215470959050279430447295801291168941E1),
+  L(2.984905282103517497081766758550112011265E0),
+  /* 1.0E0 */
+};
+/* erfc(0.75) = C17a + C17b to extra precision.  */
+static const _Float128 C17a = L(0.2888336181640625);
+static const _Float128 C17b = L(1.0748182422368401062165408589222625794046E-5);
+
+
+/* erfc(x + 0.875) = erfc(0.875) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 2.2e-35  */
+#define NRNr18 8
+static const _Float128 RNr18[NRNr18 + 1] =
+{
+ L(-1.342044899087593397419622771847219619588E3),
+  L(6.127221294229172997509252330961641850598E2),
+ L(-4.519821356522291185621206350470820610727E2),
+  L(1.223275177825128732497510264197915160235E1),
+ L(-2.730789571382971355625020710543532867692E1),
+  L(4.045181204921538886880171727755445395862E0),
+ L(-4.925146477876592723401384464691452700539E0),
+  L(5.933878036611279244654299924101068088582E-1),
+ L(-5.557645435858916025452563379795159124753E-2)
+};
+#define NRDr18 7
+static const _Float128 RDr18[NRDr18 + 1] =
+{
+  L(2.557518000661700588758505116291983092951E3),
+  L(1.070171433382888994954602511991940418588E3),
+  L(1.344842834423493081054489613250688918709E3),
+  L(4.161144478449381901208660598266288188426E2),
+  L(2.763670252219855198052378138756906980422E2),
+  L(5.998153487868943708236273854747564557632E1),
+  L(2.657695108438628847733050476209037025318E1),
+  L(3.252140524394421868923289114410336976512E0),
+  /* 1.0E0 */
+};
+/* erfc(0.875) = C18a + C18b to extra precision.  */
+static const _Float128 C18a = L(0.215911865234375);
+static const _Float128 C18b = L(1.3073705765341685464282101150637224028267E-5);
+
+/* erfc(x + 1.0) = erfc(1.0) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.6e-35  */
+#define NRNr19 8
+static const _Float128 RNr19[NRNr19 + 1] =
+{
+ L(-1.139180936454157193495882956565663294826E3),
+  L(6.134903129086899737514712477207945973616E2),
+ L(-4.628909024715329562325555164720732868263E2),
+  L(4.165702387210732352564932347500364010833E1),
+ L(-2.286979913515229747204101330405771801610E1),
+  L(1.870695256449872743066783202326943667722E0),
+ L(-4.177486601273105752879868187237000032364E0),
+  L(7.533980372789646140112424811291782526263E-1),
+ L(-8.629945436917752003058064731308767664446E-2)
+};
+#define NRDr19 7
+static const _Float128 RDr19[NRDr19 + 1] =
+{
+  L(2.744303447981132701432716278363418643778E3),
+  L(1.266396359526187065222528050591302171471E3),
+  L(1.466739461422073351497972255511919814273E3),
+  L(4.868710570759693955597496520298058147162E2),
+  L(2.993694301559756046478189634131722579643E2),
+  L(6.868976819510254139741559102693828237440E1),
+  L(2.801505816247677193480190483913753613630E1),
+  L(3.604439909194350263552750347742663954481E0),
+  /* 1.0E0 */
+};
+/* erfc(1.0) = C19a + C19b to extra precision.  */
+static const _Float128 C19a = L(0.15728759765625);
+static const _Float128 C19b = L(1.1609394035130658779364917390740703933002E-5);
+
+/* erfc(x + 1.125) = erfc(1.125) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 3.6e-36  */
+#define NRNr20 8
+static const _Float128 RNr20[NRNr20 + 1] =
+{
+ L(-9.652706916457973956366721379612508047640E2),
+  L(5.577066396050932776683469951773643880634E2),
+ L(-4.406335508848496713572223098693575485978E2),
+  L(5.202893466490242733570232680736966655434E1),
+ L(-1.931311847665757913322495948705563937159E1),
+ L(-9.364318268748287664267341457164918090611E-2),
+ L(-3.306390351286352764891355375882586201069E0),
+  L(7.573806045289044647727613003096916516475E-1),
+ L(-9.611744011489092894027478899545635991213E-2)
+};
+#define NRDr20 7
+static const _Float128 RDr20[NRDr20 + 1] =
+{
+  L(3.032829629520142564106649167182428189014E3),
+  L(1.659648470721967719961167083684972196891E3),
+  L(1.703545128657284619402511356932569292535E3),
+  L(6.393465677731598872500200253155257708763E2),
+  L(3.489131397281030947405287112726059221934E2),
+  L(8.848641738570783406484348434387611713070E1),
+  L(3.132269062552392974833215844236160958502E1),
+  L(4.430131663290563523933419966185230513168E0)
+ /* 1.0E0 */
+};
+/* erfc(1.125) = C20a + C20b to extra precision.  */
+static const _Float128 C20a = L(0.111602783203125);
+static const _Float128 C20b = L(8.9850951672359304215530728365232161564636E-6);
+
+/* erfc(1/x) = 1/x exp (-1/x^2 - 0.5625 + R(1/x^2))
+   7/8 <= 1/x < 1
+   Peak relative error 1.4e-35  */
+#define NRNr8 9
+static const _Float128 RNr8[NRNr8 + 1] =
+{
+  L(3.587451489255356250759834295199296936784E1),
+  L(5.406249749087340431871378009874875889602E2),
+  L(2.931301290625250886238822286506381194157E3),
+  L(7.359254185241795584113047248898753470923E3),
+  L(9.201031849810636104112101947312492532314E3),
+  L(5.749697096193191467751650366613289284777E3),
+  L(1.710415234419860825710780802678697889231E3),
+  L(2.150753982543378580859546706243022719599E2),
+  L(8.740953582272147335100537849981160931197E0),
+  L(4.876422978828717219629814794707963640913E-2)
+};
+#define NRDr8 8
+static const _Float128 RDr8[NRDr8 + 1] =
+{
+  L(6.358593134096908350929496535931630140282E1),
+  L(9.900253816552450073757174323424051765523E2),
+  L(5.642928777856801020545245437089490805186E3),
+  L(1.524195375199570868195152698617273739609E4),
+  L(2.113829644500006749947332935305800887345E4),
+  L(1.526438562626465706267943737310282977138E4),
+  L(5.561370922149241457131421914140039411782E3),
+  L(9.394035530179705051609070428036834496942E2),
+  L(6.147019596150394577984175188032707343615E1)
+  /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp (-1/x^2 - 0.5625 + R(1/x^2))
+   0.75 <= 1/x <= 0.875
+   Peak relative error 2.0e-36  */
+#define NRNr7 9
+static const _Float128 RNr7[NRNr7 + 1] =
+{
+ L(1.686222193385987690785945787708644476545E1),
+ L(1.178224543567604215602418571310612066594E3),
+ L(1.764550584290149466653899886088166091093E4),
+ L(1.073758321890334822002849369898232811561E5),
+ L(3.132840749205943137619839114451290324371E5),
+ L(4.607864939974100224615527007793867585915E5),
+ L(3.389781820105852303125270837910972384510E5),
+ L(1.174042187110565202875011358512564753399E5),
+ L(1.660013606011167144046604892622504338313E4),
+ L(6.700393957480661937695573729183733234400E2)
+};
+#define NRDr7 9
+static const _Float128 RDr7[NRDr7 + 1] =
+{
+L(-1.709305024718358874701575813642933561169E3),
+L(-3.280033887481333199580464617020514788369E4),
+L(-2.345284228022521885093072363418750835214E5),
+L(-8.086758123097763971926711729242327554917E5),
+L(-1.456900414510108718402423999575992450138E6),
+L(-1.391654264881255068392389037292702041855E6),
+L(-6.842360801869939983674527468509852583855E5),
+L(-1.597430214446573566179675395199807533371E5),
+L(-1.488876130609876681421645314851760773480E4),
+L(-3.511762950935060301403599443436465645703E2)
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   5/8 <= 1/x < 3/4
+   Peak relative error 1.9e-35  */
+#define NRNr6 9
+static const _Float128 RNr6[NRNr6 + 1] =
+{
+ L(1.642076876176834390623842732352935761108E0),
+ L(1.207150003611117689000664385596211076662E2),
+ L(2.119260779316389904742873816462800103939E3),
+ L(1.562942227734663441801452930916044224174E4),
+ L(5.656779189549710079988084081145693580479E4),
+ L(1.052166241021481691922831746350942786299E5),
+ L(9.949798524786000595621602790068349165758E4),
+ L(4.491790734080265043407035220188849562856E4),
+ L(8.377074098301530326270432059434791287601E3),
+ L(4.506934806567986810091824791963991057083E2)
+};
+#define NRDr6 9
+static const _Float128 RDr6[NRDr6 + 1] =
+{
+L(-1.664557643928263091879301304019826629067E2),
+L(-3.800035902507656624590531122291160668452E3),
+L(-3.277028191591734928360050685359277076056E4),
+L(-1.381359471502885446400589109566587443987E5),
+L(-3.082204287382581873532528989283748656546E5),
+L(-3.691071488256738343008271448234631037095E5),
+L(-2.300482443038349815750714219117566715043E5),
+L(-6.873955300927636236692803579555752171530E4),
+L(-8.262158817978334142081581542749986845399E3),
+L(-2.517122254384430859629423488157361983661E2)
+ /* 1.00 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/2 <= 1/x < 5/8
+   Peak relative error 4.6e-36  */
+#define NRNr5 10
+static const _Float128 RNr5[NRNr5 + 1] =
+{
+L(-3.332258927455285458355550878136506961608E-3),
+L(-2.697100758900280402659586595884478660721E-1),
+L(-6.083328551139621521416618424949137195536E0),
+L(-6.119863528983308012970821226810162441263E1),
+L(-3.176535282475593173248810678636522589861E2),
+L(-8.933395175080560925809992467187963260693E2),
+L(-1.360019508488475978060917477620199499560E3),
+L(-1.075075579828188621541398761300910213280E3),
+L(-4.017346561586014822824459436695197089916E2),
+L(-5.857581368145266249509589726077645791341E1),
+L(-2.077715925587834606379119585995758954399E0)
+};
+#define NRDr5 9
+static const _Float128 RDr5[NRDr5 + 1] =
+{
+ L(3.377879570417399341550710467744693125385E-1),
+ L(1.021963322742390735430008860602594456187E1),
+ L(1.200847646592942095192766255154827011939E2),
+ L(7.118915528142927104078182863387116942836E2),
+ L(2.318159380062066469386544552429625026238E3),
+ L(4.238729853534009221025582008928765281620E3),
+ L(4.279114907284825886266493994833515580782E3),
+ L(2.257277186663261531053293222591851737504E3),
+ L(5.570475501285054293371908382916063822957E2),
+ L(5.142189243856288981145786492585432443560E1)
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   3/8 <= 1/x < 1/2
+   Peak relative error 2.0e-36  */
+#define NRNr4 10
+static const _Float128 RNr4[NRNr4 + 1] =
+{
+ L(3.258530712024527835089319075288494524465E-3),
+ L(2.987056016877277929720231688689431056567E-1),
+ L(8.738729089340199750734409156830371528862E0),
+ L(1.207211160148647782396337792426311125923E2),
+ L(8.997558632489032902250523945248208224445E2),
+ L(3.798025197699757225978410230530640879762E3),
+ L(9.113203668683080975637043118209210146846E3),
+ L(1.203285891339933238608683715194034900149E4),
+ L(8.100647057919140328536743641735339740855E3),
+ L(2.383888249907144945837976899822927411769E3),
+ L(2.127493573166454249221983582495245662319E2)
+};
+#define NRDr4 10
+static const _Float128 RDr4[NRDr4 + 1] =
+{
+L(-3.303141981514540274165450687270180479586E-1),
+L(-1.353768629363605300707949368917687066724E1),
+L(-2.206127630303621521950193783894598987033E2),
+L(-1.861800338758066696514480386180875607204E3),
+L(-8.889048775872605708249140016201753255599E3),
+L(-2.465888106627948210478692168261494857089E4),
+L(-3.934642211710774494879042116768390014289E4),
+L(-3.455077258242252974937480623730228841003E4),
+L(-1.524083977439690284820586063729912653196E4),
+L(-2.810541887397984804237552337349093953857E3),
+L(-1.343929553541159933824901621702567066156E2)
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/4 <= 1/x < 3/8
+   Peak relative error 8.4e-37  */
+#define NRNr3 11
+static const _Float128 RNr3[NRNr3 + 1] =
+{
+L(-1.952401126551202208698629992497306292987E-6),
+L(-2.130881743066372952515162564941682716125E-4),
+L(-8.376493958090190943737529486107282224387E-3),
+L(-1.650592646560987700661598877522831234791E-1),
+L(-1.839290818933317338111364667708678163199E0),
+L(-1.216278715570882422410442318517814388470E1),
+L(-4.818759344462360427612133632533779091386E1),
+L(-1.120994661297476876804405329172164436784E2),
+L(-1.452850765662319264191141091859300126931E2),
+L(-9.485207851128957108648038238656777241333E1),
+L(-2.563663855025796641216191848818620020073E1),
+L(-1.787995944187565676837847610706317833247E0)
+};
+#define NRDr3 10
+static const _Float128 RDr3[NRDr3 + 1] =
+{
+ L(1.979130686770349481460559711878399476903E-4),
+ L(1.156941716128488266238105813374635099057E-2),
+ L(2.752657634309886336431266395637285974292E-1),
+ L(3.482245457248318787349778336603569327521E0),
+ L(2.569347069372696358578399521203959253162E1),
+ L(1.142279000180457419740314694631879921561E2),
+ L(3.056503977190564294341422623108332700840E2),
+ L(4.780844020923794821656358157128719184422E2),
+ L(4.105972727212554277496256802312730410518E2),
+ L(1.724072188063746970865027817017067646246E2),
+ L(2.815939183464818198705278118326590370435E1)
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/8 <= 1/x < 1/4
+   Peak relative error 1.5e-36  */
+#define NRNr2 11
+static const _Float128 RNr2[NRNr2 + 1] =
+{
+L(-2.638914383420287212401687401284326363787E-8),
+L(-3.479198370260633977258201271399116766619E-6),
+L(-1.783985295335697686382487087502222519983E-4),
+L(-4.777876933122576014266349277217559356276E-3),
+L(-7.450634738987325004070761301045014986520E-2),
+L(-7.068318854874733315971973707247467326619E-1),
+L(-4.113919921935944795764071670806867038732E0),
+L(-1.440447573226906222417767283691888875082E1),
+L(-2.883484031530718428417168042141288943905E1),
+L(-2.990886974328476387277797361464279931446E1),
+L(-1.325283914915104866248279787536128997331E1),
+L(-1.572436106228070195510230310658206154374E0)
+};
+#define NRDr2 10
+static const _Float128 RDr2[NRDr2 + 1] =
+{
+ L(2.675042728136731923554119302571867799673E-6),
+ L(2.170997868451812708585443282998329996268E-4),
+ L(7.249969752687540289422684951196241427445E-3),
+ L(1.302040375859768674620410563307838448508E-1),
+ L(1.380202483082910888897654537144485285549E0),
+ L(8.926594113174165352623847870299170069350E0),
+ L(3.521089584782616472372909095331572607185E1),
+ L(8.233547427533181375185259050330809105570E1),
+ L(1.072971579885803033079469639073292840135E2),
+ L(6.943803113337964469736022094105143158033E1),
+ L(1.775695341031607738233608307835017282662E1)
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/128 <= 1/x < 1/8
+   Peak relative error 2.2e-36  */
+#define NRNr1 9
+static const _Float128 RNr1[NRNr1 + 1] =
+{
+L(-4.250780883202361946697751475473042685782E-8),
+L(-5.375777053288612282487696975623206383019E-6),
+L(-2.573645949220896816208565944117382460452E-4),
+L(-6.199032928113542080263152610799113086319E-3),
+L(-8.262721198693404060380104048479916247786E-2),
+L(-6.242615227257324746371284637695778043982E-1),
+L(-2.609874739199595400225113299437099626386E0),
+L(-5.581967563336676737146358534602770006970E0),
+L(-5.124398923356022609707490956634280573882E0),
+L(-1.290865243944292370661544030414667556649E0)
+};
+#define NRDr1 8
+static const _Float128 RDr1[NRDr1 + 1] =
+{
+ L(4.308976661749509034845251315983612976224E-6),
+ L(3.265390126432780184125233455960049294580E-4),
+ L(9.811328839187040701901866531796570418691E-3),
+ L(1.511222515036021033410078631914783519649E-1),
+ L(1.289264341917429958858379585970225092274E0),
+ L(6.147640356182230769548007536914983522270E0),
+ L(1.573966871337739784518246317003956180750E1),
+ L(1.955534123435095067199574045529218238263E1),
+ L(9.472613121363135472247929109615785855865E0)
+  /* 1.0E0 */
+};
+
+
+_Float128
+__erfl (_Float128 x)
+{
+  _Float128 a, y, z;
+  int32_t i, ix, sign;
+  ieee854_long_double_shape_type u;
+
+  u.value = x;
+  sign = u.parts32.w0;
+  ix = sign & 0x7fffffff;
+
+  if (ix >= 0x7fff0000)
+    {				/* erf(nan)=nan */
+      i = ((sign & 0xffff0000) >> 31) << 1;
+      return (_Float128) (1 - i) + one / x;	/* erf(+-inf)=+-1 */
+    }
+
+  if (ix >= 0x3fff0000) /* |x| >= 1.0 */
+    {
+      if (ix >= 0x40030000 && sign > 0)
+	return one; /* x >= 16, avoid spurious underflow from erfc.  */
+      y = __erfcl (x);
+      return (one - y);
+      /*    return (one - __erfcl (x)); */
+    }
+  u.parts32.w0 = ix;
+  a = u.value;
+  z = x * x;
+  if (ix < 0x3ffec000)  /* a < 0.875 */
+    {
+      if (ix < 0x3fc60000) /* |x|<2**-57 */
+	{
+	  if (ix < 0x00080000)
+	    {
+	      /* Avoid spurious underflow.  */
+	      _Float128 ret =  0.0625 * (16.0 * x + (16.0 * efx) * x);
+	      math_check_force_underflow (ret);
+	      return ret;
+	    }
+	  return x + efx * x;
+	}
+      y = a + a * neval (z, TN1, NTN1) / deval (z, TD1, NTD1);
+    }
+  else
+    {
+      a = a - one;
+      y = erf_const + neval (a, TN2, NTN2) / deval (a, TD2, NTD2);
+    }
+
+  if (sign & 0x80000000) /* x < 0 */
+    y = -y;
+  return( y );
+}
+
+weak_alias (__erfl, erfl)
+_Float128
+__erfcl (_Float128 x)
+{
+  _Float128 y, z, p, r;
+  int32_t i, ix, sign;
+  ieee854_long_double_shape_type u;
+
+  u.value = x;
+  sign = u.parts32.w0;
+  ix = sign & 0x7fffffff;
+  u.parts32.w0 = ix;
+
+  if (ix >= 0x7fff0000)
+    {				/* erfc(nan)=nan */
+      /* erfc(+-inf)=0,2 */
+      return (_Float128) (((u_int32_t) sign >> 31) << 1) + one / x;
+    }
+
+  if (ix < 0x3ffd0000) /* |x| <1/4 */
+    {
+      if (ix < 0x3f8d0000) /* |x|<2**-114 */
+	return one - x;
+      return one - __erfl (x);
+    }
+  if (ix < 0x3fff4000) /* 1.25 */
+    {
+      x = u.value;
+      i = 8.0 * x;
+      switch (i)
+	{
+	case 2:
+	  z = x - L(0.25);
+	  y = C13b + z * neval (z, RNr13, NRNr13) / deval (z, RDr13, NRDr13);
+	  y += C13a;
+	  break;
+	case 3:
+	  z = x - L(0.375);
+	  y = C14b + z * neval (z, RNr14, NRNr14) / deval (z, RDr14, NRDr14);
+	  y += C14a;
+	  break;
+	case 4:
+	  z = x - L(0.5);
+	  y = C15b + z * neval (z, RNr15, NRNr15) / deval (z, RDr15, NRDr15);
+	  y += C15a;
+	  break;
+	case 5:
+	  z = x - L(0.625);
+	  y = C16b + z * neval (z, RNr16, NRNr16) / deval (z, RDr16, NRDr16);
+	  y += C16a;
+	  break;
+	case 6:
+	  z = x - L(0.75);
+	  y = C17b + z * neval (z, RNr17, NRNr17) / deval (z, RDr17, NRDr17);
+	  y += C17a;
+	  break;
+	case 7:
+	  z = x - L(0.875);
+	  y = C18b + z * neval (z, RNr18, NRNr18) / deval (z, RDr18, NRDr18);
+	  y += C18a;
+	  break;
+	case 8:
+	  z = x - 1;
+	  y = C19b + z * neval (z, RNr19, NRNr19) / deval (z, RDr19, NRDr19);
+	  y += C19a;
+	  break;
+	default: /* i == 9.  */
+	  z = x - L(1.125);
+	  y = C20b + z * neval (z, RNr20, NRNr20) / deval (z, RDr20, NRDr20);
+	  y += C20a;
+	  break;
+	}
+      if (sign & 0x80000000)
+	y = 2 - y;
+      return y;
+    }
+  /* 1.25 < |x| < 107 */
+  if (ix < 0x4005ac00)
+    {
+      /* x < -9 */
+      if ((ix >= 0x40022000) && (sign & 0x80000000))
+	return two - tiny;
+
+      x = fabsl (x);
+      z = one / (x * x);
+      i = 8.0 / x;
+      switch (i)
+	{
+	default:
+	case 0:
+	  p = neval (z, RNr1, NRNr1) / deval (z, RDr1, NRDr1);
+	  break;
+	case 1:
+	  p = neval (z, RNr2, NRNr2) / deval (z, RDr2, NRDr2);
+	  break;
+	case 2:
+	  p = neval (z, RNr3, NRNr3) / deval (z, RDr3, NRDr3);
+	  break;
+	case 3:
+	  p = neval (z, RNr4, NRNr4) / deval (z, RDr4, NRDr4);
+	  break;
+	case 4:
+	  p = neval (z, RNr5, NRNr5) / deval (z, RDr5, NRDr5);
+	  break;
+	case 5:
+	  p = neval (z, RNr6, NRNr6) / deval (z, RDr6, NRDr6);
+	  break;
+	case 6:
+	  p = neval (z, RNr7, NRNr7) / deval (z, RDr7, NRDr7);
+	  break;
+	case 7:
+	  p = neval (z, RNr8, NRNr8) / deval (z, RDr8, NRDr8);
+	  break;
+	}
+      u.value = x;
+      u.parts32.w3 = 0;
+      u.parts32.w2 &= 0xfe000000;
+      z = u.value;
+      r = __ieee754_expl (-z * z - 0.5625) *
+	__ieee754_expl ((z - x) * (z + x) + p);
+      if ((sign & 0x80000000) == 0)
+	{
+	  _Float128 ret = r / x;
+	  if (ret == 0)
+	    __set_errno (ERANGE);
+	  return ret;
+	}
+      else
+	return two - r / x;
+    }
+  else
+    {
+      if ((sign & 0x80000000) == 0)
+	{
+	  __set_errno (ERANGE);
+	  return tiny * tiny;
+	}
+      else
+	return two - tiny;
+    }
+}
+
+weak_alias (__erfcl, erfcl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_expm1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_expm1l.c
new file mode 100644
index 0000000000..46d078b77b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_expm1l.c
@@ -0,0 +1,166 @@
+/*							expm1l.c
+ *
+ *	Exponential function, minus 1
+ *      128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, expm1l();
+ *
+ * y = expm1l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns e (2.71828...) raised to the x power, minus one.
+ *
+ * Range reduction is accomplished by separating the argument
+ * into an integer k and fraction f such that
+ *
+ *     x    k  f
+ *    e  = 2  e.
+ *
+ * An expansion x + .5 x^2 + x^3 R(x) approximates exp(f) - 1
+ * in the basic range [-0.5 ln 2, 0.5 ln 2].
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE    -79,+MAXLOG    100,000     1.7e-34     4.5e-35
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+/* exp(x) - 1 = x + 0.5 x^2 + x^3 P(x)/Q(x)
+   -.5 ln 2  <  x  <  .5 ln 2
+   Theoretical peak relative error = 8.1e-36  */
+
+static const _Float128
+  P0 = L(2.943520915569954073888921213330863757240E8),
+  P1 = L(-5.722847283900608941516165725053359168840E7),
+  P2 = L(8.944630806357575461578107295909719817253E6),
+  P3 = L(-7.212432713558031519943281748462837065308E5),
+  P4 = L(4.578962475841642634225390068461943438441E4),
+  P5 = L(-1.716772506388927649032068540558788106762E3),
+  P6 = L(4.401308817383362136048032038528753151144E1),
+  P7 = L(-4.888737542888633647784737721812546636240E-1),
+  Q0 = L(1.766112549341972444333352727998584753865E9),
+  Q1 = L(-7.848989743695296475743081255027098295771E8),
+  Q2 = L(1.615869009634292424463780387327037251069E8),
+  Q3 = L(-2.019684072836541751428967854947019415698E7),
+  Q4 = L(1.682912729190313538934190635536631941751E6),
+  Q5 = L(-9.615511549171441430850103489315371768998E4),
+  Q6 = L(3.697714952261803935521187272204485251835E3),
+  Q7 = L(-8.802340681794263968892934703309274564037E1),
+  /* Q8 = 1.000000000000000000000000000000000000000E0 */
+/* C1 + C2 = ln 2 */
+
+  C1 = L(6.93145751953125E-1),
+  C2 = L(1.428606820309417232121458176568075500134E-6),
+/* ln 2^-114 */
+  minarg = L(-7.9018778583833765273564461846232128760607E1), big = L(1e4932);
+
+
+_Float128
+__expm1l (_Float128 x)
+{
+  _Float128 px, qx, xx;
+  int32_t ix, sign;
+  ieee854_long_double_shape_type u;
+  int k;
+
+  /* Detect infinity and NaN.  */
+  u.value = x;
+  ix = u.parts32.w0;
+  sign = ix & 0x80000000;
+  ix &= 0x7fffffff;
+  if (!sign && ix >= 0x40060000)
+    {
+      /* If num is positive and exp >= 6 use plain exp.  */
+      return __expl (x);
+    }
+  if (ix >= 0x7fff0000)
+    {
+      /* Infinity (which must be negative infinity). */
+      if (((ix & 0xffff) | u.parts32.w1 | u.parts32.w2 | u.parts32.w3) == 0)
+	return -1;
+      /* NaN.  Invalid exception if signaling.  */
+      return x + x;
+    }
+
+  /* expm1(+- 0) = +- 0.  */
+  if ((ix == 0) && (u.parts32.w1 | u.parts32.w2 | u.parts32.w3) == 0)
+    return x;
+
+  /* Minimum value.  */
+  if (x < minarg)
+    return (4.0/big - 1);
+
+  /* Avoid internal underflow when result does not underflow, while
+     ensuring underflow (without returning a zero of the wrong sign)
+     when the result does underflow.  */
+  if (fabsl (x) < L(0x1p-113))
+    {
+      math_check_force_underflow (x);
+      return x;
+    }
+
+  /* Express x = ln 2 (k + remainder), remainder not exceeding 1/2. */
+  xx = C1 + C2;			/* ln 2. */
+  px = __floorl (0.5 + x / xx);
+  k = px;
+  /* remainder times ln 2 */
+  x -= px * C1;
+  x -= px * C2;
+
+  /* Approximate exp(remainder ln 2).  */
+  px = (((((((P7 * x
+	      + P6) * x
+	     + P5) * x + P4) * x + P3) * x + P2) * x + P1) * x + P0) * x;
+
+  qx = (((((((x
+	      + Q7) * x
+	     + Q6) * x + Q5) * x + Q4) * x + Q3) * x + Q2) * x + Q1) * x + Q0;
+
+  xx = x * x;
+  qx = x + (0.5 * xx + xx * px / qx);
+
+  /* exp(x) = exp(k ln 2) exp(remainder ln 2) = 2^k exp(remainder ln 2).
+
+  We have qx = exp(remainder ln 2) - 1, so
+  exp(x) - 1 = 2^k (qx + 1) - 1
+             = 2^k qx + 2^k - 1.  */
+
+  px = __ldexpl (1, k);
+  x = px * qx + (px - 1.0);
+  return x;
+}
+libm_hidden_def (__expm1l)
+weak_alias (__expm1l, expm1l)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fabsl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fabsl.c
new file mode 100644
index 0000000000..0ce6f734cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fabsl.c
@@ -0,0 +1,34 @@
+/* s_fabsl.c -- long double version of s_fabs.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * fabsl(x) returns the absolute value of x.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __fabsl(_Float128 x)
+{
+	u_int64_t hx;
+	GET_LDOUBLE_MSW64(hx,x);
+	SET_LDOUBLE_MSW64(x,hx&0x7fffffffffffffffLL);
+        return x;
+}
+weak_alias (__fabsl, fabsl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_finitel.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_finitel.c
new file mode 100644
index 0000000000..7c699688fe
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_finitel.c
@@ -0,0 +1,36 @@
+/* s_finitel.c -- long double version of s_finite.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * finitel(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+int __finitel(_Float128 x)
+{
+	int64_t hx;
+	GET_LDOUBLE_MSW64(hx,x);
+	return (int)((u_int64_t)((hx&0x7fff000000000000LL)
+				 -0x7fff000000000000LL)>>63);
+}
+mathx_hidden_def (__finitel)
+weak_alias (__finitel, finitel)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_floorl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_floorl.c
new file mode 100644
index 0000000000..13ad0848a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_floorl.c
@@ -0,0 +1,67 @@
+/* s_floorl.c -- long double version of s_floor.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * floorl(x)
+ * Return x rounded toward -inf to integral value
+ * Method:
+ *	Bit twiddling.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __floorl(_Float128 x)
+{
+	int64_t i0,i1,j0;
+	u_int64_t i,j;
+	GET_LDOUBLE_WORDS64(i0,i1,x);
+	j0 = ((i0>>48)&0x7fff)-0x3fff;
+	if(j0<48) {
+	    if(j0<0) {
+		/* return 0*sign(x) if |x|<1 */
+		if(i0>=0) {i0=i1=0;}
+		else if(((i0&0x7fffffffffffffffLL)|i1)!=0)
+		    { i0=0xbfff000000000000ULL;i1=0;}
+	    } else {
+		i = (0x0000ffffffffffffULL)>>j0;
+		if(((i0&i)|i1)==0) return x; /* x is integral */
+		if(i0<0) i0 += (0x0001000000000000LL)>>j0;
+		i0 &= (~i); i1=0;
+	    }
+	} else if (j0>111) {
+	    if(j0==0x4000) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	} else {
+	    i = -1ULL>>(j0-48);
+	    if((i1&i)==0) return x;	/* x is integral */
+	    if(i0<0) {
+		if(j0==48) i0+=1;
+		else {
+		    j = i1+(1LL<<(112-j0));
+		    if(j<i1) i0 +=1 ; 	/* got a carry */
+		    i1=j;
+		}
+	    }
+	    i1 &= (~i);
+	}
+	SET_LDOUBLE_WORDS64(x,i0,i1);
+	return x;
+}
+weak_alias (__floorl, floorl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fma.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fma.c
new file mode 100644
index 0000000000..13da2904f4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fma.c
@@ -0,0 +1,55 @@
+/* Compute x * y + z as ternary operation.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <fenv.h>
+#include <ieee754.h>
+
+/* This implementation relies on long double being more than twice as
+   precise as double and uses rounding to odd in order to avoid problems
+   with double rounding.
+   See a paper by Boldo and Melquiond:
+   http://www.lri.fr/~melquion/doc/08-tc.pdf  */
+
+double
+__fma (double x, double y, double z)
+{
+  fenv_t env;
+  /* Multiplication is always exact.  */
+  long double temp = (long double) x * (long double) y;
+
+  /* Ensure correct sign of an exact zero result by performing the
+     addition in the original rounding mode in that case.  */
+  if (temp == -z)
+    return (double) temp + z;
+
+  union ieee854_long_double u;
+  feholdexcept (&env);
+  fesetround (FE_TOWARDZERO);
+  /* Perform addition with round to odd.  */
+  u.d = temp + (long double) z;
+  if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
+    u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
+  feupdateenv (&env);
+  /* And finally truncation with round to nearest.  */
+  return (double) u.d;
+}
+#ifndef __fma
+weak_alias (__fma, fma)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fmal.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fmal.c
new file mode 100644
index 0000000000..40c4e73d2b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fmal.c
@@ -0,0 +1,298 @@
+/* Compute x * y + z as ternary operation.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <fenv.h>
+#include <ieee754.h>
+#include <math_private.h>
+#include <tininess.h>
+
+/* This implementation uses rounding to odd to avoid problems with
+   double rounding.  See a paper by Boldo and Melquiond:
+   http://www.lri.fr/~melquion/doc/08-tc.pdf  */
+
+_Float128
+__fmal (_Float128 x, _Float128 y, _Float128 z)
+{
+  union ieee854_long_double u, v, w;
+  int adjust = 0;
+  u.d = x;
+  v.d = y;
+  w.d = z;
+  if (__builtin_expect (u.ieee.exponent + v.ieee.exponent
+			>= 0x7fff + IEEE854_LONG_DOUBLE_BIAS
+			   - LDBL_MANT_DIG, 0)
+      || __builtin_expect (u.ieee.exponent >= 0x7fff - LDBL_MANT_DIG, 0)
+      || __builtin_expect (v.ieee.exponent >= 0x7fff - LDBL_MANT_DIG, 0)
+      || __builtin_expect (w.ieee.exponent >= 0x7fff - LDBL_MANT_DIG, 0)
+      || __builtin_expect (u.ieee.exponent + v.ieee.exponent
+			   <= IEEE854_LONG_DOUBLE_BIAS + LDBL_MANT_DIG, 0))
+    {
+      /* If z is Inf, but x and y are finite, the result should be
+	 z rather than NaN.  */
+      if (w.ieee.exponent == 0x7fff
+	  && u.ieee.exponent != 0x7fff
+          && v.ieee.exponent != 0x7fff)
+	return (z + x) + y;
+      /* If z is zero and x are y are nonzero, compute the result
+	 as x * y to avoid the wrong sign of a zero result if x * y
+	 underflows to 0.  */
+      if (z == 0 && x != 0 && y != 0)
+	return x * y;
+      /* If x or y or z is Inf/NaN, or if x * y is zero, compute as
+	 x * y + z.  */
+      if (u.ieee.exponent == 0x7fff
+	  || v.ieee.exponent == 0x7fff
+	  || w.ieee.exponent == 0x7fff
+	  || x == 0
+	  || y == 0)
+	return x * y + z;
+      /* If fma will certainly overflow, compute as x * y.  */
+      if (u.ieee.exponent + v.ieee.exponent
+	  > 0x7fff + IEEE854_LONG_DOUBLE_BIAS)
+	return x * y;
+      /* If x * y is less than 1/4 of LDBL_TRUE_MIN, neither the
+	 result nor whether there is underflow depends on its exact
+	 value, only on its sign.  */
+      if (u.ieee.exponent + v.ieee.exponent
+	  < IEEE854_LONG_DOUBLE_BIAS - LDBL_MANT_DIG - 2)
+	{
+	  int neg = u.ieee.negative ^ v.ieee.negative;
+	  _Float128 tiny = neg ? L(-0x1p-16494) : L(0x1p-16494);
+	  if (w.ieee.exponent >= 3)
+	    return tiny + z;
+	  /* Scaling up, adding TINY and scaling down produces the
+	     correct result, because in round-to-nearest mode adding
+	     TINY has no effect and in other modes double rounding is
+	     harmless.  But it may not produce required underflow
+	     exceptions.  */
+	  v.d = z * L(0x1p114) + tiny;
+	  if (TININESS_AFTER_ROUNDING
+	      ? v.ieee.exponent < 115
+	      : (w.ieee.exponent == 0
+		 || (w.ieee.exponent == 1
+		     && w.ieee.negative != neg
+		     && w.ieee.mantissa3 == 0
+		     && w.ieee.mantissa2 == 0
+		     && w.ieee.mantissa1 == 0
+		     && w.ieee.mantissa0 == 0)))
+	    {
+	      _Float128 force_underflow = x * y;
+	      math_force_eval (force_underflow);
+	    }
+	  return v.d * L(0x1p-114);
+	}
+      if (u.ieee.exponent + v.ieee.exponent
+	  >= 0x7fff + IEEE854_LONG_DOUBLE_BIAS - LDBL_MANT_DIG)
+	{
+	  /* Compute 1p-113 times smaller result and multiply
+	     at the end.  */
+	  if (u.ieee.exponent > v.ieee.exponent)
+	    u.ieee.exponent -= LDBL_MANT_DIG;
+	  else
+	    v.ieee.exponent -= LDBL_MANT_DIG;
+	  /* If x + y exponent is very large and z exponent is very small,
+	     it doesn't matter if we don't adjust it.  */
+	  if (w.ieee.exponent > LDBL_MANT_DIG)
+	    w.ieee.exponent -= LDBL_MANT_DIG;
+	  adjust = 1;
+	}
+      else if (w.ieee.exponent >= 0x7fff - LDBL_MANT_DIG)
+	{
+	  /* Similarly.
+	     If z exponent is very large and x and y exponents are
+	     very small, adjust them up to avoid spurious underflows,
+	     rather than down.  */
+	  if (u.ieee.exponent + v.ieee.exponent
+	      <= IEEE854_LONG_DOUBLE_BIAS + 2 * LDBL_MANT_DIG)
+	    {
+	      if (u.ieee.exponent > v.ieee.exponent)
+		u.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	      else
+		v.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	    }
+	  else if (u.ieee.exponent > v.ieee.exponent)
+	    {
+	      if (u.ieee.exponent > LDBL_MANT_DIG)
+		u.ieee.exponent -= LDBL_MANT_DIG;
+	    }
+	  else if (v.ieee.exponent > LDBL_MANT_DIG)
+	    v.ieee.exponent -= LDBL_MANT_DIG;
+	  w.ieee.exponent -= LDBL_MANT_DIG;
+	  adjust = 1;
+	}
+      else if (u.ieee.exponent >= 0x7fff - LDBL_MANT_DIG)
+	{
+	  u.ieee.exponent -= LDBL_MANT_DIG;
+	  if (v.ieee.exponent)
+	    v.ieee.exponent += LDBL_MANT_DIG;
+	  else
+	    v.d *= L(0x1p113);
+	}
+      else if (v.ieee.exponent >= 0x7fff - LDBL_MANT_DIG)
+	{
+	  v.ieee.exponent -= LDBL_MANT_DIG;
+	  if (u.ieee.exponent)
+	    u.ieee.exponent += LDBL_MANT_DIG;
+	  else
+	    u.d *= L(0x1p113);
+	}
+      else /* if (u.ieee.exponent + v.ieee.exponent
+		  <= IEEE854_LONG_DOUBLE_BIAS + LDBL_MANT_DIG) */
+	{
+	  if (u.ieee.exponent > v.ieee.exponent)
+	    u.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	  else
+	    v.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	  if (w.ieee.exponent <= 4 * LDBL_MANT_DIG + 6)
+	    {
+	      if (w.ieee.exponent)
+		w.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	      else
+		w.d *= L(0x1p228);
+	      adjust = -1;
+	    }
+	  /* Otherwise x * y should just affect inexact
+	     and nothing else.  */
+	}
+      x = u.d;
+      y = v.d;
+      z = w.d;
+    }
+
+  /* Ensure correct sign of exact 0 + 0.  */
+  if (__glibc_unlikely ((x == 0 || y == 0) && z == 0))
+    {
+      x = math_opt_barrier (x);
+      return x * y + z;
+    }
+
+  fenv_t env;
+  feholdexcept (&env);
+  fesetround (FE_TONEAREST);
+
+  /* Multiplication m1 + m2 = x * y using Dekker's algorithm.  */
+#define C ((1LL << (LDBL_MANT_DIG + 1) / 2) + 1)
+  _Float128 x1 = x * C;
+  _Float128 y1 = y * C;
+  _Float128 m1 = x * y;
+  x1 = (x - x1) + x1;
+  y1 = (y - y1) + y1;
+  _Float128 x2 = x - x1;
+  _Float128 y2 = y - y1;
+  _Float128 m2 = (((x1 * y1 - m1) + x1 * y2) + x2 * y1) + x2 * y2;
+
+  /* Addition a1 + a2 = z + m1 using Knuth's algorithm.  */
+  _Float128 a1 = z + m1;
+  _Float128 t1 = a1 - z;
+  _Float128 t2 = a1 - t1;
+  t1 = m1 - t1;
+  t2 = z - t2;
+  _Float128 a2 = t1 + t2;
+  /* Ensure the arithmetic is not scheduled after feclearexcept call.  */
+  math_force_eval (m2);
+  math_force_eval (a2);
+  feclearexcept (FE_INEXACT);
+
+  /* If the result is an exact zero, ensure it has the correct sign.  */
+  if (a1 == 0 && m2 == 0)
+    {
+      feupdateenv (&env);
+      /* Ensure that round-to-nearest value of z + m1 is not reused.  */
+      z = math_opt_barrier (z);
+      return z + m1;
+    }
+
+  fesetround (FE_TOWARDZERO);
+  /* Perform m2 + a2 addition with round to odd.  */
+  u.d = a2 + m2;
+
+  if (__glibc_likely (adjust == 0))
+    {
+      if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
+	u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
+      feupdateenv (&env);
+      /* Result is a1 + u.d.  */
+      return a1 + u.d;
+    }
+  else if (__glibc_likely (adjust > 0))
+    {
+      if ((u.ieee.mantissa3 & 1) == 0 && u.ieee.exponent != 0x7fff)
+	u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
+      feupdateenv (&env);
+      /* Result is a1 + u.d, scaled up.  */
+      return (a1 + u.d) * L(0x1p113);
+    }
+  else
+    {
+      if ((u.ieee.mantissa3 & 1) == 0)
+	u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0;
+      v.d = a1 + u.d;
+      /* Ensure the addition is not scheduled after fetestexcept call.  */
+      math_force_eval (v.d);
+      int j = fetestexcept (FE_INEXACT) != 0;
+      feupdateenv (&env);
+      /* Ensure the following computations are performed in default rounding
+	 mode instead of just reusing the round to zero computation.  */
+      asm volatile ("" : "=m" (u) : "m" (u));
+      /* If a1 + u.d is exact, the only rounding happens during
+	 scaling down.  */
+      if (j == 0)
+	return v.d * L(0x1p-228);
+      /* If result rounded to zero is not subnormal, no double
+	 rounding will occur.  */
+      if (v.ieee.exponent > 228)
+	return (a1 + u.d) * L(0x1p-228);
+      /* If v.d * 0x1p-228L with round to zero is a subnormal above
+	 or equal to LDBL_MIN / 2, then v.d * 0x1p-228L shifts mantissa
+	 down just by 1 bit, which means v.ieee.mantissa3 |= j would
+	 change the round bit, not sticky or guard bit.
+	 v.d * 0x1p-228L never normalizes by shifting up,
+	 so round bit plus sticky bit should be already enough
+	 for proper rounding.  */
+      if (v.ieee.exponent == 228)
+	{
+	  /* If the exponent would be in the normal range when
+	     rounding to normal precision with unbounded exponent
+	     range, the exact result is known and spurious underflows
+	     must be avoided on systems detecting tininess after
+	     rounding.  */
+	  if (TININESS_AFTER_ROUNDING)
+	    {
+	      w.d = a1 + u.d;
+	      if (w.ieee.exponent == 229)
+		return w.d * L(0x1p-228);
+	    }
+	  /* v.ieee.mantissa3 & 2 is LSB bit of the result before rounding,
+	     v.ieee.mantissa3 & 1 is the round bit and j is our sticky
+	     bit.  */
+	  w.d = 0;
+	  w.ieee.mantissa3 = ((v.ieee.mantissa3 & 3) << 1) | j;
+	  w.ieee.negative = v.ieee.negative;
+	  v.ieee.mantissa3 &= ~3U;
+	  v.d *= L(0x1p-228);
+	  w.d *= L(0x1p-2);
+	  return v.d + w.d;
+	}
+      v.ieee.mantissa3 |= j;
+      return v.d * L(0x1p-228);
+    }
+}
+weak_alias (__fmal, fmal)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
new file mode 100644
index 0000000000..daa7d79ec2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
@@ -0,0 +1,44 @@
+/* Return classification value corresponding to argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+int
+__fpclassifyl (_Float128 x)
+{
+  u_int64_t hx, lx;
+  int retval = FP_NORMAL;
+
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  lx |= (hx & 0x0000ffffffffffffLL);
+  hx &= 0x7fff000000000000LL;
+  if ((hx | lx) == 0)
+    retval = FP_ZERO;
+  else if (hx == 0)
+    retval = FP_SUBNORMAL;
+  else if (hx == 0x7fff000000000000LL)
+    retval = lx != 0 ? FP_NAN : FP_INFINITE;
+
+  return retval;
+}
+libm_hidden_def (__fpclassifyl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_frexpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_frexpl.c
new file mode 100644
index 0000000000..47a171f551
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_frexpl.c
@@ -0,0 +1,54 @@
+/* s_frexpl.c -- long double version of s_frexp.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * for non-zero x
+ *	x = frexpl(arg,&exp);
+ * return a long double fp quantity x such that 0.5 <= |x| <1.0
+ * and the corresponding binary exponent "exp". That is
+ *	arg = x*2^exp.
+ * If arg is inf, 0.0, or NaN, then frexpl(arg,&exp) returns arg
+ * with *exp=0.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+two114 = L(2.0769187434139310514121985316880384E+34); /* 0x4071000000000000, 0 */
+
+_Float128 __frexpl(_Float128 x, int *eptr)
+{
+	u_int64_t hx, lx, ix;
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	ix = 0x7fffffffffffffffULL&hx;
+	*eptr = 0;
+	if(ix>=0x7fff000000000000ULL||((ix|lx)==0)) return x + x;/* 0,inf,nan */
+	if (ix<0x0001000000000000ULL) {		/* subnormal */
+	    x *= two114;
+	    GET_LDOUBLE_MSW64(hx,x);
+	    ix = hx&0x7fffffffffffffffULL;
+	    *eptr = -114;
+	}
+	*eptr += (ix>>48)-16382;
+	hx = (hx&0x8000ffffffffffffULL) | 0x3ffe000000000000ULL;
+	SET_LDOUBLE_MSW64(x,hx);
+	return x;
+}
+weak_alias (__frexpl, frexpl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl.c
new file mode 100644
index 0000000000..e323b4c25b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 0
+#define FUNC fromfpl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
new file mode 100644
index 0000000000..7dc507111b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpl_main.c
@@ -0,0 +1,90 @@
+/* Round to integer type.  ldbl-128 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#define BIAS 0x3fff
+#define MANT_DIG 113
+
+#if UNSIGNED
+# define RET_TYPE uintmax_t
+#else
+# define RET_TYPE intmax_t
+#endif
+
+#include <fromfp.h>
+
+RET_TYPE
+FUNC (_Float128 x, int round, unsigned int width)
+{
+  if (width > INTMAX_WIDTH)
+    width = INTMAX_WIDTH;
+  uint64_t hx, lx;
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  bool negative = (hx & 0x8000000000000000ULL) != 0;
+  if (width == 0)
+    return fromfp_domain_error (negative, width);
+  hx &= 0x7fffffffffffffffULL;
+  if ((hx | lx) == 0)
+    return 0;
+  int exponent = hx >> (MANT_DIG - 1 - 64);
+  exponent -= BIAS;
+  int max_exponent = fromfp_max_exponent (negative, width);
+  if (exponent > max_exponent)
+    return fromfp_domain_error (negative, width);
+
+  hx &= ((1ULL << (MANT_DIG - 1 - 64)) - 1);
+  hx |= 1ULL << (MANT_DIG - 1 - 64);
+  uintmax_t uret;
+  bool half_bit, more_bits;
+  /* The exponent is at most 63, so we are shifting right by at least
+     49 bits.  */
+  if (exponent >= -1)
+    {
+      int shift = MANT_DIG - 1 - exponent;
+      if (shift <= 64)
+	{
+	  uint64_t h = 1ULL << (shift - 1);
+	  half_bit = (lx & h) != 0;
+	  more_bits = (lx & (h - 1)) != 0;
+	  uret = hx << (64 - shift);
+	  if (shift != 64)
+	    uret |= lx >> shift;
+	}
+      else
+	{
+	  uint64_t h = 1ULL << (shift - 1 - 64);
+	  half_bit = (hx & h) != 0;
+	  more_bits = ((hx & (h - 1)) | lx) != 0;
+	  uret = hx >> (shift - 64);
+	}
+    }
+  else
+    {
+      uret = 0;
+      half_bit = false;
+      more_bits = true;
+    }
+  return fromfp_round_and_return (negative, uret, half_bit, more_bits, round,
+				  exponent, max_exponent, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpxl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpxl.c
new file mode 100644
index 0000000000..2f3189d7de
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_fromfpxl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 1
+#define FUNC fromfpxl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_getpayloadl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
new file mode 100644
index 0000000000..d384645532
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_getpayloadl.c
@@ -0,0 +1,57 @@
+/* Get NaN payload.  ldbl-128 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+_Float128
+getpayloadl (const _Float128 *x)
+{
+  uint64_t hx, lx;
+  GET_LDOUBLE_WORDS64 (hx, lx, *x);
+  hx &= 0x7fffffffffffULL;
+  /* Construct the representation of the return value directly, since
+     128-bit integers may not be available.  */
+  int lz;
+  if (hx == 0)
+    {
+      if (lx == 0)
+	return 0.0L;
+      else
+	lz = __builtin_clzll (lx) + 64;
+    }
+  else
+    lz = __builtin_clzll (hx);
+  int shift = lz - 15;
+  if (shift >= 64)
+    {
+      hx = lx << (shift - 64);
+      lx = 0;
+    }
+  else
+    {
+      /* 2 <= SHIFT <= 63.  */
+      hx = (hx << shift) | (lx >> (64 - shift));
+      lx <<= shift;
+    }
+  hx = (hx & 0xffffffffffffULL) | ((0x3fffULL + 127 - lz) << 48);
+  _Float128 ret;
+  SET_LDOUBLE_WORDS64 (ret, hx, lx);
+  return ret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_isinfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_isinfl.c
new file mode 100644
index 0000000000..a41e8cf44b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_isinfl.c
@@ -0,0 +1,29 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Change for long double by Jakub Jelinek <jj@ultra.linux.cz>
+ * Public domain.
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * isinfl(x) returns 1 if x is inf, -1 if x is -inf, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+int
+__isinfl (_Float128 x)
+{
+	int64_t hx,lx;
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	lx |= (hx & 0x7fffffffffffffffLL) ^ 0x7fff000000000000LL;
+	lx |= -lx;
+	return ~(lx >> 63) & (hx >> 62);
+}
+mathx_hidden_def (__isinfl)
+weak_alias (__isinfl, isinfl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_isnanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_isnanl.c
new file mode 100644
index 0000000000..80f97fea4c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_isnanl.c
@@ -0,0 +1,38 @@
+/* s_isnanl.c -- long double version of s_isnan.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * isnanl(x) returns 1 is x is nan, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+int __isnanl(_Float128 x)
+{
+	int64_t hx,lx;
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	hx &= 0x7fffffffffffffffLL;
+	hx |= (u_int64_t)(lx|(-lx))>>63;
+	hx = 0x7fff000000000000LL - hx;
+	return (int)((u_int64_t)hx>>63);
+}
+mathx_hidden_def (__isnanl)
+weak_alias (__isnanl, isnanl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_issignalingl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_issignalingl.c
new file mode 100644
index 0000000000..02d6a0ae07
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_issignalingl.c
@@ -0,0 +1,46 @@
+/* Test for signaling NaN.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+
+int
+__issignalingl (_Float128 x)
+{
+  u_int64_t hxi, lxi __attribute__ ((unused));
+  GET_LDOUBLE_WORDS64 (hxi, lxi, x);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* We only have to care about the high-order bit of x's significand, because
+     having it set (sNaN) already makes the significand different from that
+     used to designate infinity.  */
+  return ((hxi & UINT64_C (0x7fff800000000000))
+          == UINT64_C (0x7fff800000000000));
+#else
+  /* To keep the following comparison simple, toggle the quiet/signaling bit,
+     so that it is set for sNaNs.  This is inverse to IEEE 754-2008 (as well as
+     common practice for IEEE 754-1985).  */
+  hxi ^= UINT64_C (0x0000800000000000);
+  /* If lxi != 0, then set any suitable bit of the significand in hxi.  */
+  hxi |= (lxi | -lxi) >> 63;
+  /* We have to compare for greater (instead of greater or equal), because x's
+     significand being all-zero designates infinity not NaN.  */
+  return (hxi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7fff800000000000);
+#endif
+}
+libm_hidden_def (__issignalingl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_llrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_llrintl.c
new file mode 100644
index 0000000000..d08a90a1b3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_llrintl.c
@@ -0,0 +1,108 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+static const _Float128 two112[2] =
+{
+  L(5.19229685853482762853049632922009600E+33), /* 0x406F000000000000, 0 */
+ L(-5.19229685853482762853049632922009600E+33)  /* 0xC06F000000000000, 0 */
+};
+
+long long int
+__llrintl (_Float128 x)
+{
+  int32_t j0;
+  u_int64_t i0,i1;
+  _Float128 w;
+  _Float128 t;
+  long long int result;
+  int sx;
+
+  GET_LDOUBLE_WORDS64 (i0, i1, x);
+  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+  sx = i0 >> 63;
+  i0 &= 0x0000ffffffffffffLL;
+  i0 |= 0x0001000000000000LL;
+
+  if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+#if defined FE_INVALID || defined FE_INEXACT
+      /* X < LLONG_MAX + 1 implied by J0 < 63.  */
+      if (x > (_Float128) LLONG_MAX)
+	{
+	  /* In the event of overflow we must raise the "invalid"
+	     exception, but not "inexact".  */
+	  t = __nearbyintl (x);
+	  feraiseexcept (t == LLONG_MAX ? FE_INEXACT : FE_INVALID);
+	}
+      else
+#endif
+	{
+	  w = two112[sx] + x;
+	  t = w - two112[sx];
+	}
+      GET_LDOUBLE_WORDS64 (i0, i1, t);
+      j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+      i0 &= 0x0000ffffffffffffLL;
+      i0 |= 0x0001000000000000LL;
+
+      if (j0 < 0)
+	result = 0;
+      else if (j0 <= 48)
+	result = i0 >> (48 - j0);
+      else
+	result = ((long long int) i0 << (j0 - 48)) | (i1 >> (112 - j0));
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LLONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#if defined FE_INVALID || defined FE_INEXACT
+      if (x < (_Float128) LLONG_MIN
+	  && x > (_Float128) LLONG_MIN - 1)
+	{
+	  /* If truncation produces LLONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  t = __nearbyintl (x);
+	  feraiseexcept (t == LLONG_MIN ? FE_INEXACT : FE_INVALID);
+	  return LLONG_MIN;
+	}
+      else if (FIX_LDBL_LLONG_CONVERT_OVERFLOW && x != (_Float128) LLONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sx == 0 ? LLONG_MAX : LLONG_MIN;
+	}
+
+#endif
+      return (long long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__llrintl, llrintl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_llroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_llroundl.c
new file mode 100644
index 0000000000..bb0b5bcf4b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_llroundl.c
@@ -0,0 +1,102 @@
+/* Round long double value to long long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+long long int
+__llroundl (_Float128 x)
+{
+  int64_t j0;
+  u_int64_t i1, i0;
+  long long int result;
+  int sign;
+
+  GET_LDOUBLE_WORDS64 (i0, i1, x);
+  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+  sign = (i0 & 0x8000000000000000ULL) != 0 ? -1 : 1;
+  i0 &= 0x0000ffffffffffffLL;
+  i0 |= 0x0001000000000000LL;
+
+  if (j0 < 48)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else
+	{
+	  i0 += 0x0000800000000000LL >> j0;
+	  result = i0 >> (48 - j0);
+	}
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+      if (j0 >= 112)
+	result = ((long long int) i0 << (j0 - 48)) | (i1 << (j0 - 112));
+      else
+	{
+	  u_int64_t j = i1 + (0x8000000000000000ULL >> (j0 - 48));
+	  if (j < i1)
+	    ++i0;
+
+	  if (j0 == 48)
+	    result = (long long int) i0;
+	  else
+	    {
+	      result = ((long long int) i0 << (j0 - 48)) | (j >> (112 - j0));
+#ifdef FE_INVALID
+	      if (sign == 1 && result == LLONG_MIN)
+		/* Rounding brought the value out of range.  */
+		feraiseexcept (FE_INVALID);
+#endif
+	    }
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LLONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#ifdef FE_INVALID
+      if (FIX_LDBL_LLONG_CONVERT_OVERFLOW
+	  && !(sign == -1 && x > (_Float128) LLONG_MIN - L(0.5)))
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sign == 1 ? LLONG_MAX : LLONG_MIN;
+	}
+      else if (!FIX_LDBL_LLONG_CONVERT_OVERFLOW
+	       && x <= (_Float128) LLONG_MIN - L(0.5))
+	{
+	  /* If truncation produces LLONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  feraiseexcept (FE_INVALID);
+	  return LLONG_MIN;
+	}
+#endif
+      return (long long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__llroundl, llroundl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_log1pl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_log1pl.c
new file mode 100644
index 0000000000..b8b2ffeba1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_log1pl.c
@@ -0,0 +1,256 @@
+/*							log1pl.c
+ *
+ *      Relative error logarithm
+ *	Natural logarithm of 1+x, 128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, log1pl();
+ *
+ * y = log1pl( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base e (2.718...) logarithm of 1+x.
+ *
+ * The argument 1+x is separated into its exponent and fractional
+ * parts.  If the exponent is between -1 and +1, the logarithm
+ * of the fraction is approximated by
+ *
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x)/Q(x).
+ *
+ * Otherwise, setting  z = 2(w-1)/(w+1),
+ *
+ *     log(w) = z + z^3 P(z)/Q(z).
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      -1, 8       100000      1.9e-34     4.3e-35
+ */
+
+/* Copyright 2001 by Stephen L. Moshier
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+/* Coefficients for log(1+x) = x - x^2 / 2 + x^3 P(x)/Q(x)
+ * 1/sqrt(2) <= 1+x < sqrt(2)
+ * Theoretical peak relative error = 5.3e-37,
+ * relative peak error spread = 2.3e-14
+ */
+static const _Float128
+  P12 = L(1.538612243596254322971797716843006400388E-6),
+  P11 = L(4.998469661968096229986658302195402690910E-1),
+  P10 = L(2.321125933898420063925789532045674660756E1),
+  P9 = L(4.114517881637811823002128927449878962058E2),
+  P8 = L(3.824952356185897735160588078446136783779E3),
+  P7 = L(2.128857716871515081352991964243375186031E4),
+  P6 = L(7.594356839258970405033155585486712125861E4),
+  P5 = L(1.797628303815655343403735250238293741397E5),
+  P4 = L(2.854829159639697837788887080758954924001E5),
+  P3 = L(3.007007295140399532324943111654767187848E5),
+  P2 = L(2.014652742082537582487669938141683759923E5),
+  P1 = L(7.771154681358524243729929227226708890930E4),
+  P0 = L(1.313572404063446165910279910527789794488E4),
+  /* Q12 = 1.000000000000000000000000000000000000000E0L, */
+  Q11 = L(4.839208193348159620282142911143429644326E1),
+  Q10 = L(9.104928120962988414618126155557301584078E2),
+  Q9 = L(9.147150349299596453976674231612674085381E3),
+  Q8 = L(5.605842085972455027590989944010492125825E4),
+  Q7 = L(2.248234257620569139969141618556349415120E5),
+  Q6 = L(6.132189329546557743179177159925690841200E5),
+  Q5 = L(1.158019977462989115839826904108208787040E6),
+  Q4 = L(1.514882452993549494932585972882995548426E6),
+  Q3 = L(1.347518538384329112529391120390701166528E6),
+  Q2 = L(7.777690340007566932935753241556479363645E5),
+  Q1 = L(2.626900195321832660448791748036714883242E5),
+  Q0 = L(3.940717212190338497730839731583397586124E4);
+
+/* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2),
+ * where z = 2(x-1)/(x+1)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 1.1e-35,
+ * relative peak error spread 1.1e-9
+ */
+static const _Float128
+  R5 = L(-8.828896441624934385266096344596648080902E-1),
+  R4 = L(8.057002716646055371965756206836056074715E1),
+  R3 = L(-2.024301798136027039250415126250455056397E3),
+  R2 = L(2.048819892795278657810231591630928516206E4),
+  R1 = L(-8.977257995689735303686582344659576526998E4),
+  R0 = L(1.418134209872192732479751274970992665513E5),
+  /* S6 = 1.000000000000000000000000000000000000000E0L, */
+  S5 = L(-1.186359407982897997337150403816839480438E2),
+  S4 = L(3.998526750980007367835804959888064681098E3),
+  S3 = L(-5.748542087379434595104154610899551484314E4),
+  S2 = L(4.001557694070773974936904547424676279307E5),
+  S1 = L(-1.332535117259762928288745111081235577029E6),
+  S0 = L(1.701761051846631278975701529965589676574E6);
+
+/* C1 + C2 = ln 2 */
+static const _Float128 C1 = L(6.93145751953125E-1);
+static const _Float128 C2 = L(1.428606820309417232121458176568075500134E-6);
+
+static const _Float128 sqrth = L(0.7071067811865475244008443621048490392848);
+/* ln (2^16384 * (1 - 2^-113)) */
+static const _Float128 zero = 0;
+
+_Float128
+__log1pl (_Float128 xm1)
+{
+  _Float128 x, y, z, r, s;
+  ieee854_long_double_shape_type u;
+  int32_t hx;
+  int e;
+
+  /* Test for NaN or infinity input. */
+  u.value = xm1;
+  hx = u.parts32.w0;
+  if ((hx & 0x7fffffff) >= 0x7fff0000)
+    return xm1 + fabsl (xm1);
+
+  /* log1p(+- 0) = +- 0.  */
+  if (((hx & 0x7fffffff) == 0)
+      && (u.parts32.w1 | u.parts32.w2 | u.parts32.w3) == 0)
+    return xm1;
+
+  if ((hx & 0x7fffffff) < 0x3f8e0000)
+    {
+      math_check_force_underflow (xm1);
+      if ((int) xm1 == 0)
+	return xm1;
+    }
+
+  if (xm1 >= L(0x1p113))
+    x = xm1;
+  else
+    x = xm1 + 1;
+
+  /* log1p(-1) = -inf */
+  if (x <= 0)
+    {
+      if (x == 0)
+	return (-1 / zero);  /* log1p(-1) = -inf */
+      else
+	return (zero / (x - x));
+    }
+
+  /* Separate mantissa from exponent.  */
+
+  /* Use frexp used so that denormal numbers will be handled properly.  */
+  x = __frexpl (x, &e);
+
+  /* Logarithm using log(x) = z + z^3 P(z^2)/Q(z^2),
+     where z = 2(x-1)/x+1).  */
+  if ((e > 2) || (e < -2))
+    {
+      if (x < sqrth)
+	{			/* 2( 2x-1 )/( 2x+1 ) */
+	  e -= 1;
+	  z = x - L(0.5);
+	  y = L(0.5) * z + L(0.5);
+	}
+      else
+	{			/*  2 (x-1)/(x+1)   */
+	  z = x - L(0.5);
+	  z -= L(0.5);
+	  y = L(0.5) * x + L(0.5);
+	}
+      x = z / y;
+      z = x * x;
+      r = ((((R5 * z
+	      + R4) * z
+	     + R3) * z
+	    + R2) * z
+	   + R1) * z
+	+ R0;
+      s = (((((z
+	       + S5) * z
+	      + S4) * z
+	     + S3) * z
+	    + S2) * z
+	   + S1) * z
+	+ S0;
+      z = x * (z * r / s);
+      z = z + e * C2;
+      z = z + x;
+      z = z + e * C1;
+      return (z);
+    }
+
+
+  /* Logarithm using log(1+x) = x - .5x^2 + x^3 P(x)/Q(x). */
+
+  if (x < sqrth)
+    {
+      e -= 1;
+      if (e != 0)
+	x = 2 * x - 1;	/*  2x - 1  */
+      else
+	x = xm1;
+    }
+  else
+    {
+      if (e != 0)
+	x = x - 1;
+      else
+	x = xm1;
+    }
+  z = x * x;
+  r = (((((((((((P12 * x
+		 + P11) * x
+		+ P10) * x
+	       + P9) * x
+	      + P8) * x
+	     + P7) * x
+	    + P6) * x
+	   + P5) * x
+	  + P4) * x
+	 + P3) * x
+	+ P2) * x
+       + P1) * x
+    + P0;
+  s = (((((((((((x
+		 + Q11) * x
+		+ Q10) * x
+	       + Q9) * x
+	      + Q8) * x
+	     + Q7) * x
+	    + Q6) * x
+	   + Q5) * x
+	  + Q4) * x
+	 + Q3) * x
+	+ Q2) * x
+       + Q1) * x
+    + Q0;
+  y = x * (z * r / s);
+  y = y + e * C2;
+  z = y - L(0.5) * z;
+  z = z + x;
+  z = z + e * C1;
+  return (z);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_logbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_logbl.c
new file mode 100644
index 0000000000..24baae64fa
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_logbl.c
@@ -0,0 +1,54 @@
+/* s_logbl.c -- long double version of s_logb.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * long double logbl(x)
+ * IEEE 754 logb. Included to pass IEEE test suite. Not recommend.
+ * Use ilogb instead.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+_Float128
+__logbl (_Float128 x)
+{
+  int64_t lx, hx, ex;
+
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  hx &= 0x7fffffffffffffffLL;	/* high |x| */
+  if ((hx | lx) == 0)
+    return -1.0 / fabsl (x);
+  if (hx >= 0x7fff000000000000LL)
+    return x * x;
+  if ((ex = hx >> 48) == 0)	/* IEEE 754 logb */
+    {
+      /* POSIX specifies that denormal number is treated as
+         though it were normalized.  */
+      int ma;
+      if (hx == 0)
+	ma = __builtin_clzll (lx) + 64;
+      else
+	ma = __builtin_clzll (hx);
+      ex -= ma - 16;
+    }
+  return (_Float128) (ex - 16383);
+}
+
+weak_alias (__logbl, logbl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_lrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_lrintl.c
new file mode 100644
index 0000000000..c690ddc8b8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_lrintl.c
@@ -0,0 +1,137 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+static const _Float128 two112[2] =
+{
+  L(5.19229685853482762853049632922009600E+33), /* 0x406F000000000000, 0 */
+ L(-5.19229685853482762853049632922009600E+33)  /* 0xC06F000000000000, 0 */
+};
+
+long int
+__lrintl (_Float128 x)
+{
+  int32_t j0;
+  u_int64_t i0,i1;
+  _Float128 w;
+  _Float128 t;
+  long int result;
+  int sx;
+
+  GET_LDOUBLE_WORDS64 (i0, i1, x);
+  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+  sx = i0 >> 63;
+  i0 &= 0x0000ffffffffffffLL;
+  i0 |= 0x0001000000000000LL;
+
+  if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 < 48)
+	{
+#if defined FE_INVALID || defined FE_INEXACT
+	  /* X < LONG_MAX + 1 implied by J0 < 31.  */
+	  if (sizeof (long int) == 4
+	      && x > (_Float128) LONG_MAX)
+	    {
+	      /* In the event of overflow we must raise the "invalid"
+		 exception, but not "inexact".  */
+	      t = __nearbyintl (x);
+	      feraiseexcept (t == LONG_MAX ? FE_INEXACT : FE_INVALID);
+	    }
+	  else
+#endif
+	    {
+	      w = two112[sx] + x;
+	      t = w - two112[sx];
+	    }
+	  GET_LDOUBLE_WORDS64 (i0, i1, t);
+	  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+	  i0 &= 0x0000ffffffffffffLL;
+	  i0 |= 0x0001000000000000LL;
+
+	  result = (j0 < 0 ? 0 : i0 >> (48 - j0));
+	}
+      else if (j0 >= 112)
+	result = ((long int) i0 << (j0 - 48)) | (i1 << (j0 - 112));
+      else
+	{
+#if defined FE_INVALID || defined FE_INEXACT
+	  /* X < LONG_MAX + 1 implied by J0 < 63.  */
+	  if (sizeof (long int) == 8
+	      && x > (_Float128) LONG_MAX)
+	    {
+	      /* In the event of overflow we must raise the "invalid"
+		 exception, but not "inexact".  */
+	      t = __nearbyintl (x);
+	      feraiseexcept (t == LONG_MAX ? FE_INEXACT : FE_INVALID);
+	    }
+	  else
+#endif
+	    {
+	      w = two112[sx] + x;
+	      t = w - two112[sx];
+	    }
+	  GET_LDOUBLE_WORDS64 (i0, i1, t);
+	  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+	  i0 &= 0x0000ffffffffffffLL;
+	  i0 |= 0x0001000000000000LL;
+
+	  if (j0 == 48)
+	    result = (long int) i0;
+	  else
+	    result = ((long int) i0 << (j0 - 48)) | (i1 >> (112 - j0));
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#if defined FE_INVALID || defined FE_INEXACT
+      if (x < (_Float128) LONG_MIN
+	  && x > (_Float128) LONG_MIN - 1)
+	{
+	  /* If truncation produces LONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  t = __nearbyintl (x);
+	  feraiseexcept (t == LONG_MIN ? FE_INEXACT : FE_INVALID);
+	  return LONG_MIN;
+	}
+      else if (FIX_LDBL_LONG_CONVERT_OVERFLOW && x != (_Float128) LONG_MIN)
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sx == 0 ? LONG_MAX : LONG_MIN;
+	}
+
+#endif
+      return (long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__lrintl, lrintl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_lroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_lroundl.c
new file mode 100644
index 0000000000..419112519d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_lroundl.c
@@ -0,0 +1,113 @@
+/* Round long double value to long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <fix-fp-int-convert-overflow.h>
+
+long int
+__lroundl (_Float128 x)
+{
+  int64_t j0;
+  u_int64_t i1, i0;
+  long int result;
+  int sign;
+
+  GET_LDOUBLE_WORDS64 (i0, i1, x);
+  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+  sign = (i0 & 0x8000000000000000ULL) != 0 ? -1 : 1;
+  i0 &= 0x0000ffffffffffffLL;
+  i0 |= 0x0001000000000000LL;
+
+  if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 < 48)
+	{
+	  if (j0 < 0)
+	    return j0 < -1 ? 0 : sign;
+	  else
+	    {
+	      i0 += 0x0000800000000000LL >> j0;
+	      result = i0 >> (48 - j0);
+#ifdef FE_INVALID
+	      if (sizeof (long int) == 4
+		  && sign == 1
+		  && result == LONG_MIN)
+		/* Rounding brought the value out of range.  */
+		feraiseexcept (FE_INVALID);
+#endif
+	    }
+	}
+      else if (j0 >= 112)
+	result = ((long int) i0 << (j0 - 48)) | (i1 << (j0 - 112));
+      else
+	{
+	  u_int64_t j = i1 + (0x8000000000000000ULL >> (j0 - 48));
+	  if (j < i1)
+	    ++i0;
+
+	  if (j0 == 48)
+	    result = (long int) i0;
+	  else
+	    {
+	      result = ((long int) i0 << (j0 - 48)) | (j >> (112 - j0));
+#ifdef FE_INVALID
+	      if (sizeof (long int) == 8
+		  && sign == 1
+		  && result == LONG_MIN)
+		/* Rounding brought the value out of range.  */
+		feraiseexcept (FE_INVALID);
+#endif
+	    }
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#ifdef FE_INVALID
+      if (FIX_LDBL_LONG_CONVERT_OVERFLOW
+	  && !(sign == -1 && x > (_Float128) LONG_MIN - L(0.5)))
+	{
+	  feraiseexcept (FE_INVALID);
+	  return sign == 1 ? LONG_MAX : LONG_MIN;
+	}
+      else if (!FIX_LDBL_LONG_CONVERT_OVERFLOW
+	       && x <= (_Float128) LONG_MIN - L(0.5))
+	{
+	  /* If truncation produces LONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  feraiseexcept (FE_INVALID);
+	  return LONG_MIN;
+	}
+#endif
+      /* The number is too large.  It is left implementation defined
+	 what happens.  */
+      return (long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__lroundl, lroundl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_modfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_modfl.c
new file mode 100644
index 0000000000..01e150b24f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_modfl.c
@@ -0,0 +1,79 @@
+/* s_modfl.c -- long double version of s_modf.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * modfl(long double x, long double *iptr)
+ * return fraction part of x, and return x's integral part in *iptr.
+ * Method:
+ *	Bit twiddling.
+ *
+ * Exception:
+ *	No exception.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 one = 1.0;
+
+_Float128 __modfl(_Float128 x, _Float128 *iptr)
+{
+	int64_t i0,i1,j0;
+	u_int64_t i;
+	GET_LDOUBLE_WORDS64(i0,i1,x);
+	j0 = ((i0>>48)&0x7fff)-0x3fff;	/* exponent of x */
+	if(j0<48) {			/* integer part in high x */
+	    if(j0<0) {			/* |x|<1 */
+		/* *iptr = +-0 */
+	        SET_LDOUBLE_WORDS64(*iptr,i0&0x8000000000000000ULL,0);
+		return x;
+	    } else {
+		i = (0x0000ffffffffffffLL)>>j0;
+		if(((i0&i)|i1)==0) {		/* x is integral */
+		    *iptr = x;
+		    /* return +-0 */
+		    SET_LDOUBLE_WORDS64(x,i0&0x8000000000000000ULL,0);
+		    return x;
+		} else {
+		    SET_LDOUBLE_WORDS64(*iptr,i0&(~i),0);
+		    return x - *iptr;
+		}
+	    }
+	} else if (j0>111) {		/* no fraction part */
+	    *iptr = x*one;
+	    /* We must handle NaNs separately.  */
+	    if (j0 == 0x4000 && ((i0 & 0x0000ffffffffffffLL) | i1))
+	      return x*one;
+	    /* return +-0 */
+	    SET_LDOUBLE_WORDS64(x,i0&0x8000000000000000ULL,0);
+	    return x;
+	} else {			/* fraction part in low x */
+	    i = -1ULL>>(j0-48);
+	    if((i1&i)==0) { 		/* x is integral */
+		*iptr = x;
+		/* return +-0 */
+		SET_LDOUBLE_WORDS64(x,i0&0x8000000000000000ULL,0);
+		return x;
+	    } else {
+		SET_LDOUBLE_WORDS64(*iptr,i0,i1&(~i));
+		return x - *iptr;
+	    }
+	}
+}
+weak_alias (__modfl, modfl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nearbyintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
new file mode 100644
index 0000000000..1565a8183f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
@@ -0,0 +1,67 @@
+/* s_nearbyintl.c -- long double version of s_nearbyint.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * nearbyintl(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ *	Using floating addition.
+ * Exception:
+ *	Inexact flag raised if x not equal to rintl(x).
+ */
+
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+TWO112[2]={
+  L(5.19229685853482762853049632922009600E+33), /* 0x406F000000000000, 0 */
+ L(-5.19229685853482762853049632922009600E+33)  /* 0xC06F000000000000, 0 */
+};
+
+_Float128 __nearbyintl(_Float128 x)
+{
+	fenv_t env;
+	int64_t i0,j0,sx;
+	u_int64_t i1 __attribute__ ((unused));
+	_Float128 w,t;
+	GET_LDOUBLE_WORDS64(i0,i1,x);
+	sx = (((u_int64_t)i0)>>63);
+	j0 = ((i0>>48)&0x7fff)-0x3fff;
+	if(j0<112) {
+	    if(j0<0) {
+		feholdexcept (&env);
+	        w = TWO112[sx]+x;
+	        t = w-TWO112[sx];
+		math_force_eval (t);
+	        fesetenv (&env);
+		GET_LDOUBLE_MSW64(i0,t);
+		SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63));
+	        return t;
+	    }
+	} else {
+	    if(j0==0x4000) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	feholdexcept (&env);
+	w = TWO112[sx]+x;
+	t = w-TWO112[sx];
+	math_force_eval (t);
+	fesetenv (&env);
+	return t;
+}
+weak_alias (__nearbyintl, nearbyintl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextafterl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextafterl.c
new file mode 100644
index 0000000000..d29f58a7e0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextafterl.c
@@ -0,0 +1,86 @@
+/* s_nextafterl.c -- long double version of s_nextafter.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* IEEE functions
+ *	nextafterl(x,y)
+ *	return the next machine floating-point number of x in the
+ *	direction toward y.
+ *   Special cases:
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __nextafterl(_Float128 x, _Float128 y)
+{
+	int64_t hx,hy,ix,iy;
+	u_int64_t lx,ly;
+
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+	GET_LDOUBLE_WORDS64(hy,ly,y);
+	ix = hx&0x7fffffffffffffffLL;		/* |x| */
+	iy = hy&0x7fffffffffffffffLL;		/* |y| */
+
+	if(((ix>=0x7fff000000000000LL)&&((ix-0x7fff000000000000LL)|lx)!=0) ||   /* x is nan */
+	   ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0))     /* y is nan */
+	   return x+y;
+	if(x==y) return y;		/* x=y, return y */
+	if((ix|lx)==0) {			/* x == 0 */
+	    _Float128 u;
+	    SET_LDOUBLE_WORDS64(x,hy&0x8000000000000000ULL,1);/* return +-minsubnormal */
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {			/* x > 0 */
+	    if(hx>hy||((hx==hy)&&(lx>ly))) {	/* x > y, x -= ulp */
+		if(lx==0) hx--;
+		lx--;
+	    } else {				/* x < y, x += ulp */
+		lx++;
+		if(lx==0) hx++;
+	    }
+	} else {				/* x < 0 */
+	    if(hy>=0||hx>hy||((hx==hy)&&(lx>ly))){/* x < y, x -= ulp */
+		if(lx==0) hx--;
+		lx--;
+	    } else {				/* x > y, x += ulp */
+		lx++;
+		if(lx==0) hx++;
+	    }
+	}
+	hy = hx&0x7fff000000000000LL;
+	if(hy==0x7fff000000000000LL) {
+	    _Float128 u = x + x;		/* overflow  */
+	    math_force_eval (u);
+	    __set_errno (ERANGE);
+	}
+	if(hy==0) {
+	    _Float128 u = x*x;		/* underflow */
+	    math_force_eval (u);		/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	SET_LDOUBLE_WORDS64(x,hx,lx);
+	return x;
+}
+weak_alias (__nextafterl, nextafterl)
+strong_alias (__nextafterl, __nexttowardl)
+weak_alias (__nextafterl, nexttowardl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttoward.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttoward.c
new file mode 100644
index 0000000000..4343fe83f8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttoward.c
@@ -0,0 +1,89 @@
+/* s_nexttoward.c
+ * Conversion from s_nextafter.c by Ulrich Drepper, Cygnus Support,
+ * drepper@cygnus.com and Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* IEEE functions
+ *	nexttoward(x,y)
+ *	return the next machine floating-point number of x in the
+ *	direction toward y.
+ *   Special cases:
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+double __nexttoward(double x, long double y)
+{
+	int32_t hx,ix;
+	int64_t hy,iy;
+	u_int32_t lx;
+	u_int64_t ly;
+
+	EXTRACT_WORDS(hx,lx,x);
+	GET_LDOUBLE_WORDS64(hy,ly,y);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = hy&0x7fffffffffffffffLL;	/* |y| */
+
+	if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) ||   /* x is nan */
+	   ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0))
+							    /* y is nan */
+	   return x+y;
+	if((long double) x==y) return y;	/* x=y, return y */
+	if((ix|lx)==0) {			/* x == 0 */
+	    double u;
+	    INSERT_WORDS(x,(u_int32_t)((hy>>32)&0x80000000),1);/* return +-minsub */
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if (x > y) {			/* x -= ulp */
+		if(lx==0) hx -= 1;
+		lx -= 1;
+	    } else {				/* x < y, x += ulp */
+		lx += 1;
+		if(lx==0) hx += 1;
+	    }
+	} else {				/* x < 0 */
+	    if (x < y) {			/* x -= ulp */
+		if(lx==0) hx -= 1;
+		lx -= 1;
+	    } else {				/* x > y, x += ulp */
+		lx += 1;
+		if(lx==0) hx += 1;
+	    }
+	}
+	hy = hx&0x7ff00000;
+	if(hy>=0x7ff00000) {
+	  double u = x+x;			/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00100000) {
+	    double u = x*x;			/* underflow */
+	    math_force_eval (u);		/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	INSERT_WORDS(x,hx,lx);
+	return x;
+}
+weak_alias (__nexttoward, nexttoward)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttowardf.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttowardf.c
new file mode 100644
index 0000000000..8703359d4f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nexttowardf.c
@@ -0,0 +1,76 @@
+/* s_nexttowardf.c -- float version of s_nextafter.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com
+ * and Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+float __nexttowardf(float x, long double y)
+{
+	int32_t hx,ix;
+	int64_t hy,iy;
+	u_int64_t ly;
+
+	GET_FLOAT_WORD(hx,x);
+	GET_LDOUBLE_WORDS64(hy,ly,y);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = hy&0x7fffffffffffffffLL;	/* |y| */
+
+	if((ix>0x7f800000) ||   /* x is nan */
+	   ((iy>=0x7fff000000000000LL)&&((iy-0x7fff000000000000LL)|ly)!=0))
+				/* y is nan */
+	   return x+y;
+	if((long double) x==y) return y;	/* x=y, return y */
+	if(ix==0) {				/* x == 0 */
+	    float u;
+	    SET_FLOAT_WORD(x,(u_int32_t)((hy>>32)&0x80000000)|1);/* return +-minsub*/
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if(x > y) {				/* x -= ulp */
+		hx -= 1;
+	    } else {				/* x < y, x += ulp */
+		hx += 1;
+	    }
+	} else {				/* x < 0 */
+	    if(x < y) {				/* x < y, x -= ulp */
+		hx -= 1;
+	    } else {				/* x > y, x += ulp */
+		hx += 1;
+	    }
+	}
+	hy = hx&0x7f800000;
+	if(hy>=0x7f800000) {
+	  float u = x+x;		/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00800000) {
+	    float u = x*x;		/* underflow */
+	    math_force_eval (u);	/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	SET_FLOAT_WORD(x,hx);
+	return x;
+}
+weak_alias (__nexttowardf, nexttowardf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextupl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextupl.c
new file mode 100644
index 0000000000..85f43b4eb0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_nextupl.c
@@ -0,0 +1,56 @@
+/* Return the least floating-point number greater than X.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Return the least floating-point number greater than X.  */
+_Float128
+__nextupl (_Float128 x)
+{
+  int64_t hx, ix;
+  u_int64_t lx;
+
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  ix = hx & 0x7fffffffffffffffLL;
+
+  /* x is nan.  */
+  if (((ix >= 0x7fff000000000000LL)
+       && ((ix - 0x7fff000000000000LL) | lx) != 0))
+    return x + x;
+  if ((ix | lx) == 0)
+    return LDBL_TRUE_MIN;
+  if (hx >= 0)
+    {				/* x > 0.  */
+      if (isinf (x))
+        return x;
+      lx++;
+      if (lx == 0)
+        hx++;
+    }
+  else
+    {				/* x < 0.  */
+      if (lx == 0)
+        hx--;
+      lx--;
+    }
+  SET_LDOUBLE_WORDS64 (x, hx, lx);
+  return x;
+}
+
+weak_alias (__nextupl, nextupl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_remquol.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_remquol.c
new file mode 100644
index 0000000000..d360f82dba
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_remquol.c
@@ -0,0 +1,112 @@
+/* Compute remainder and a congruent to the quotient.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+static const _Float128 zero = 0.0;
+
+
+_Float128
+__remquol (_Float128 x, _Float128 y, int *quo)
+{
+  int64_t hx,hy;
+  u_int64_t sx,lx,ly,qs;
+  int cquo;
+
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  GET_LDOUBLE_WORDS64 (hy, ly, y);
+  sx = hx & 0x8000000000000000ULL;
+  qs = sx ^ (hy & 0x8000000000000000ULL);
+  hy &= 0x7fffffffffffffffLL;
+  hx &= 0x7fffffffffffffffLL;
+
+  /* Purge off exception values.  */
+  if ((hy | ly) == 0)
+    return (x * y) / (x * y); 			/* y = 0 */
+  if ((hx >= 0x7fff000000000000LL)		/* x not finite */
+      || ((hy >= 0x7fff000000000000LL)		/* y is NaN */
+	  && (((hy - 0x7fff000000000000LL) | ly) != 0)))
+    return (x * y) / (x * y);
+
+  if (hy <= 0x7ffbffffffffffffLL)
+    x = __ieee754_fmodl (x, 8 * y);              /* now x < 8y */
+
+  if (((hx - hy) | (lx - ly)) == 0)
+    {
+      *quo = qs ? -1 : 1;
+      return zero * x;
+    }
+
+  x  = fabsl (x);
+  y  = fabsl (y);
+  cquo = 0;
+
+  if (hy <= 0x7ffcffffffffffffLL && x >= 4 * y)
+    {
+      x -= 4 * y;
+      cquo += 4;
+    }
+  if (hy <= 0x7ffdffffffffffffLL && x >= 2 * y)
+    {
+      x -= 2 * y;
+      cquo += 2;
+    }
+
+  if (hy < 0x0002000000000000LL)
+    {
+      if (x + x > y)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x + x >= y)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+  else
+    {
+      _Float128 y_half = L(0.5) * y;
+      if (x > y_half)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x >= y_half)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+
+  *quo = qs ? -cquo : cquo;
+
+  /* Ensure correct sign of zero result in round-downward mode.  */
+  if (x == 0)
+    x = 0;
+  if (sx)
+    x = -x;
+  return x;
+}
+weak_alias (__remquol, remquol)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_rintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_rintl.c
new file mode 100644
index 0000000000..410951626b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_rintl.c
@@ -0,0 +1,62 @@
+/* s_rintl.c -- long double version of s_rint.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * rintl(x)
+ * Return x rounded to integral value according to the prevailing
+ * rounding mode.
+ * Method:
+ *	Using floating addition.
+ * Exception:
+ *	Inexact flag raised if x not equal to rintl(x).
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+TWO112[2]={
+  5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */
+ -5.19229685853482762853049632922009600E+33L  /* 0xC06F000000000000, 0 */
+};
+
+_Float128 __rintl(_Float128 x)
+{
+	int64_t i0,j0,sx;
+	u_int64_t i1 __attribute__ ((unused));
+	_Float128 w,t;
+	GET_LDOUBLE_WORDS64(i0,i1,x);
+	sx = (((u_int64_t)i0)>>63);
+	j0 = ((i0>>48)&0x7fff)-0x3fff;
+	if(j0<112) {
+	    if(j0<0) {
+	        w = TWO112[sx]+x;
+	        t = w-TWO112[sx];
+		GET_LDOUBLE_MSW64(i0,t);
+		SET_LDOUBLE_MSW64(t,(i0&0x7fffffffffffffffLL)|(sx<<63));
+	        return t;
+	    }
+	} else {
+	    if(j0==0x4000) return x+x;	/* inf or NaN */
+	    else return x;		/* x is integral */
+	}
+	w = TWO112[sx]+x;
+	return w-TWO112[sx];
+}
+weak_alias (__rintl, rintl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundevenl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundevenl.c
new file mode 100644
index 0000000000..93b895546a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundevenl.c
@@ -0,0 +1,102 @@
+/* Round to nearest integer value, rounding halfway cases to even.
+   ldbl-128 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+#define BIAS 0x3fff
+#define MANT_DIG 113
+#define MAX_EXP (2 * BIAS + 1)
+
+_Float128
+roundevenl (_Float128 x)
+{
+  uint64_t hx, lx, uhx;
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  uhx = hx & 0x7fffffffffffffffULL;
+  int exponent = uhx >> (MANT_DIG - 1 - 64);
+  if (exponent >= BIAS + MANT_DIG - 1)
+    {
+      /* Integer, infinity or NaN.  */
+      if (exponent == MAX_EXP)
+	/* Infinity or NaN; quiet signaling NaNs.  */
+	return x + x;
+      else
+	return x;
+    }
+  else if (exponent >= BIAS + MANT_DIG - 64)
+    {
+      /* Not necessarily an integer; integer bit is in low word.
+	 Locate the bits with exponents 0 and -1.  */
+      int int_pos = (BIAS + MANT_DIG - 1) - exponent;
+      int half_pos = int_pos - 1;
+      uint64_t half_bit = 1ULL << half_pos;
+      uint64_t int_bit = 1ULL << int_pos;
+      if ((lx & (int_bit | (half_bit - 1))) != 0)
+	{
+	  /* Carry into the exponent works correctly.  No need to test
+	     whether HALF_BIT is set.  */
+	  lx += half_bit;
+	  hx += lx < half_bit;
+	}
+      lx &= ~(int_bit - 1);
+    }
+  else if (exponent == BIAS + MANT_DIG - 65)
+    {
+      /* Not necessarily an integer; integer bit is bottom of high
+	 word, half bit is top of low word.  */
+      if (((hx & 1) | (lx & 0x7fffffffffffffffULL)) != 0)
+	{
+	  lx += 0x8000000000000000ULL;
+	  hx += lx < 0x8000000000000000ULL;
+	}
+      lx = 0;
+    }
+  else if (exponent >= BIAS)
+    {
+      /* At least 1; not necessarily an integer, integer bit and half
+	 bit are in the high word.  Locate the bits with exponents 0
+	 and -1 (when the unbiased exponent is 0, the bit with
+	 exponent 0 is implicit, but as the bias is odd it is OK to
+	 take it from the low bit of the exponent).  */
+      int int_pos = (BIAS + MANT_DIG - 65) - exponent;
+      int half_pos = int_pos - 1;
+      uint64_t half_bit = 1ULL << half_pos;
+      uint64_t int_bit = 1ULL << int_pos;
+      if (((hx & (int_bit | (half_bit - 1))) | lx) != 0)
+	hx += half_bit;
+      hx &= ~(int_bit - 1);
+      lx = 0;
+    }
+  else if (exponent == BIAS - 1 && (uhx > 0x3ffe000000000000ULL || lx != 0))
+    {
+      /* Interval (0.5, 1).  */
+      hx = (hx & 0x8000000000000000ULL) | 0x3fff000000000000ULL;
+      lx = 0;
+    }
+  else
+    {
+      /* Rounds to 0.  */
+      hx &= 0x8000000000000000ULL;
+      lx = 0;
+    }
+  SET_LDOUBLE_WORDS64 (x, hx, lx);
+  return x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundl.c
new file mode 100644
index 0000000000..078d9b9c45
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_roundl.c
@@ -0,0 +1,80 @@
+/* Round long double to integer away from zero.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+_Float128
+__roundl (_Float128 x)
+{
+  int32_t j0;
+  u_int64_t i1, i0;
+
+  GET_LDOUBLE_WORDS64 (i0, i1, x);
+  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+  if (j0 < 48)
+    {
+      if (j0 < 0)
+	{
+	  i0 &= 0x8000000000000000ULL;
+	  if (j0 == -1)
+	    i0 |= 0x3fff000000000000LL;
+	  i1 = 0;
+	}
+      else
+	{
+	  u_int64_t i = 0x0000ffffffffffffLL >> j0;
+	  if (((i0 & i) | i1) == 0)
+	    /* X is integral.  */
+	    return x;
+
+	  i0 += 0x0000800000000000LL >> j0;
+	  i0 &= ~i;
+	  i1 = 0;
+	}
+    }
+  else if (j0 > 111)
+    {
+      if (j0 == 0x4000)
+	/* Inf or NaN.  */
+	return x + x;
+      else
+	return x;
+    }
+  else
+    {
+      u_int64_t i = -1ULL >> (j0 - 48);
+      if ((i1 & i) == 0)
+	/* X is integral.  */
+	return x;
+
+      u_int64_t j = i1 + (1LL << (111 - j0));
+      if (j < i1)
+	i0 += 1;
+      i1 = j;
+      i1 &= ~i;
+    }
+
+  SET_LDOUBLE_WORDS64 (x, i0, i1);
+  return x;
+}
+weak_alias (__roundl, roundl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalblnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalblnl.c
new file mode 100644
index 0000000000..5864eaf93c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalblnl.c
@@ -0,0 +1,62 @@
+/* s_scalblnl.c -- long double version of s_scalbn.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/* @(#)s_scalbn.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * scalblnl (long double x, long int n)
+ * scalblnl(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+two114 = L(2.0769187434139310514121985316880384E+34), /* 0x4071000000000000, 0 */
+twom114 = L(4.8148248609680896326399448564623183E-35), /* 0x3F8D000000000000, 0 */
+huge   = L(1.0E+4900),
+tiny   = L(1.0E-4900);
+
+_Float128 __scalblnl (_Float128 x, long int n)
+{
+	int64_t k,hx,lx;
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+        k = (hx>>48)&0x7fff;		/* extract exponent */
+        if (k==0) {				/* 0 or subnormal x */
+            if ((lx|(hx&0x7fffffffffffffffULL))==0) return x; /* +-0 */
+	    x *= two114;
+	    GET_LDOUBLE_MSW64(hx,x);
+	    k = ((hx>>48)&0x7fff) - 114;
+	}
+        if (k==0x7fff) return x+x;		/* NaN or Inf */
+	if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow*/
+        if (n> 50000 || k+n > 0x7ffe)
+	  return huge*__copysignl(huge,x); /* overflow  */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+        k = k+n;
+        if (k > 0) 				/* normal result */
+	    {SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); return x;}
+        if (k <= -114)
+	  return tiny*__copysignl(tiny,x); 	/*underflow*/
+        k += 114;				/* subnormal result */
+	SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48));
+        return x*twom114;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalbnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalbnl.c
new file mode 100644
index 0000000000..e6fe796079
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_scalbnl.c
@@ -0,0 +1,62 @@
+/* s_scalbnl.c -- long double version of s_scalbn.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/* @(#)s_scalbn.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * scalbnl (long double x, int n)
+ * scalbnl(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128
+two114 = L(2.0769187434139310514121985316880384E+34), /* 0x4071000000000000, 0 */
+twom114 = L(4.8148248609680896326399448564623183E-35), /* 0x3F8D000000000000, 0 */
+huge   = L(1.0E+4900),
+tiny   = L(1.0E-4900);
+
+_Float128 __scalbnl (_Float128 x, int n)
+{
+	int64_t k,hx,lx;
+	GET_LDOUBLE_WORDS64(hx,lx,x);
+        k = (hx>>48)&0x7fff;		/* extract exponent */
+        if (k==0) {				/* 0 or subnormal x */
+            if ((lx|(hx&0x7fffffffffffffffULL))==0) return x; /* +-0 */
+	    x *= two114;
+	    GET_LDOUBLE_MSW64(hx,x);
+	    k = ((hx>>48)&0x7fff) - 114;
+	}
+        if (k==0x7fff) return x+x;		/* NaN or Inf */
+	if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow*/
+        if (n> 50000 || k+n > 0x7ffe)
+	  return huge*__copysignl(huge,x); /* overflow  */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+        k = k+n;
+        if (k > 0) 				/* normal result */
+	    {SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48)); return x;}
+        if (k <= -114)
+	  return tiny*__copysignl(tiny,x); 	/*underflow*/
+        k += 114;				/* subnormal result */
+	SET_LDOUBLE_MSW64(x,(hx&0x8000ffffffffffffULL)|(k<<48));
+        return x*twom114;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl.c
new file mode 100644
index 0000000000..1aba33e6e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl.c
@@ -0,0 +1,3 @@
+#define SIG 0
+#define FUNC setpayloadl
+#include <s_setpayloadl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
new file mode 100644
index 0000000000..5646634db2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadl_main.c
@@ -0,0 +1,69 @@
+/* Set NaN payload.  ldbl-128 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+#define SET_HIGH_BIT (HIGH_ORDER_BIT_IS_SET_FOR_SNAN ? SIG : !SIG)
+#define BIAS 0x3fff
+#define PAYLOAD_DIG 111
+#define EXPLICIT_MANT_DIG 112
+
+int
+FUNC (_Float128 *x, _Float128 payload)
+{
+  uint64_t hx, lx;
+  GET_LDOUBLE_WORDS64 (hx, lx, payload);
+  int exponent = hx >> (EXPLICIT_MANT_DIG - 64);
+  /* Test if argument is (a) negative or too large; (b) too small,
+     except for 0 when allowed; (c) not an integer.  */
+  if (exponent >= BIAS + PAYLOAD_DIG
+      || (exponent < BIAS && !(SET_HIGH_BIT && hx == 0 && lx == 0)))
+    {
+      SET_LDOUBLE_WORDS64 (*x, 0, 0);
+      return 1;
+    }
+  int shift = BIAS + EXPLICIT_MANT_DIG - exponent;
+  if (shift < 64
+      ? (lx & ((1ULL << shift) - 1)) != 0
+      : (lx != 0 || (hx & ((1ULL << (shift - 64)) - 1)) != 0))
+    {
+      SET_LDOUBLE_WORDS64 (*x, 0, 0);
+      return 1;
+    }
+  if (exponent != 0)
+    {
+      hx &= (1ULL << (EXPLICIT_MANT_DIG - 64)) - 1;
+      hx |= 1ULL << (EXPLICIT_MANT_DIG - 64);
+      if (shift >= 64)
+	{
+	  lx = hx >> (shift - 64);
+	  hx = 0;
+	}
+      else if (shift != 0)
+	{
+	  lx = (lx >> shift) | (hx << (64 - shift));
+	  hx >>= shift;
+	}
+    }
+  hx |= 0x7fff000000000000ULL | (SET_HIGH_BIT ? 0x800000000000ULL : 0);
+  SET_LDOUBLE_WORDS64 (*x, hx, lx);
+  return 0;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c
new file mode 100644
index 0000000000..d97e2c8206
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_setpayloadsigl.c
@@ -0,0 +1,3 @@
+#define SIG 1
+#define FUNC setpayloadsigl
+#include <s_setpayloadl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_signbitl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_signbitl.c
new file mode 100644
index 0000000000..062b47f55b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_signbitl.c
@@ -0,0 +1,27 @@
+/* Return nonzero value if number is negative.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+int
+__signbitl (_Float128 x)
+{
+  return __builtin_signbitl (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_sincosl.c
new file mode 100644
index 0000000000..34ca6ee03b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_sincosl.c
@@ -0,0 +1,73 @@
+/* Compute sine and cosine of argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <math.h>
+
+#include <math_private.h>
+
+void
+__sincosl (_Float128 x, _Float128 *sinx, _Float128 *cosx)
+{
+  int64_t ix;
+
+  /* High word of x. */
+  GET_LDOUBLE_MSW64 (ix, x);
+
+  /* |x| ~< pi/4 */
+  ix &= 0x7fffffffffffffffLL;
+  if (ix <= 0x3ffe921fb54442d1LL)
+    __kernel_sincosl (x, 0, sinx, cosx, 0);
+  else if (ix >= 0x7fff000000000000LL)
+    {
+      /* sin(Inf or NaN) is NaN */
+      *sinx = *cosx = x - x;
+      if (isinf (x))
+	__set_errno (EDOM);
+    }
+  else
+    {
+      /* Argument reduction needed.  */
+      _Float128 y[2];
+      int n;
+
+      n = __ieee754_rem_pio2l (x, y);
+      switch (n & 3)
+	{
+	case 0:
+	  __kernel_sincosl (y[0], y[1], sinx, cosx, 1);
+	  break;
+	case 1:
+	  __kernel_sincosl (y[0], y[1], cosx, sinx, 1);
+	  *cosx = -*cosx;
+	  break;
+	case 2:
+	  __kernel_sincosl (y[0], y[1], sinx, cosx, 1);
+	  *sinx = -*sinx;
+	  *cosx = -*cosx;
+	  break;
+	default:
+	  __kernel_sincosl (y[0], y[1], cosx, sinx, 1);
+	  *sinx = -*sinx;
+	  break;
+	}
+    }
+}
+weak_alias (__sincosl, sincosl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_sinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_sinl.c
new file mode 100644
index 0000000000..887e45dbfa
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_sinl.c
@@ -0,0 +1,86 @@
+/* s_sinl.c -- long double version of s_sin.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* sinl(x)
+ * Return sine function of x.
+ *
+ * kernel function:
+ *	__kernel_sinl		... sine function on [-pi/4,pi/4]
+ *	__kernel_cosl		... cose function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __sinl(_Float128 x)
+{
+	_Float128 y[2],z=0;
+	int64_t n, ix;
+
+    /* High word of x. */
+	GET_LDOUBLE_MSW64(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffffffffffffLL;
+	if(ix <= 0x3ffe921fb54442d1LL)
+	  return __kernel_sinl(x,z,0);
+
+    /* sin(Inf or NaN) is NaN */
+	else if (ix>=0x7fff000000000000LL) {
+	    if (ix == 0x7fff000000000000LL) {
+		GET_LDOUBLE_LSW64(n,x);
+		if (n == 0)
+		    __set_errno (EDOM);
+	    }
+	    return x-x;
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_sinl(y[0],y[1],1);
+		case 1: return  __kernel_cosl(y[0],y[1]);
+		case 2: return -__kernel_sinl(y[0],y[1],1);
+		default:
+			return -__kernel_cosl(y[0],y[1]);
+	    }
+	}
+}
+weak_alias (__sinl, sinl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanhl.c
new file mode 100644
index 0000000000..0db8f5f775
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanhl.c
@@ -0,0 +1,100 @@
+/* s_tanhl.c -- long double version of s_tanh.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Changes for 128-bit long double contributed by
+   Stephen L. Moshier <moshier@na-net.ornl.gov> */
+
+/* tanhl(x)
+ * Return the Hyperbolic Tangent of x
+ *
+ * Method :
+ *                                      x    -x
+ *                                     e  - e
+ *      0. tanhl(x) is defined to be -----------
+ *                                      x    -x
+ *                                     e  + e
+ *      1. reduce x to non-negative by tanhl(-x) = -tanhl(x).
+ *      2.  0      <= x <= 2**-57 : tanhl(x) := x*(one+x)
+ *                                               -t
+ *          2**-57 <  x <=  1     : tanhl(x) := -----; t = expm1l(-2x)
+ *                                              t + 2
+ *                                                    2
+ *          1      <= x <=  40.0  : tanhl(x) := 1-  ----- ; t=expm1l(2x)
+ *                                                  t + 2
+ *          40.0   <  x <= INF    : tanhl(x) := 1.
+ *
+ * Special cases:
+ *      tanhl(NaN) is NaN;
+ *      only tanhl(0)=0 is exact for finite argument.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const _Float128 one = 1.0, two = 2.0, tiny = L(1.0e-4900);
+
+_Float128
+__tanhl (_Float128 x)
+{
+  _Float128 t, z;
+  u_int32_t jx, ix;
+  ieee854_long_double_shape_type u;
+
+  /* Words of |x|. */
+  u.value = x;
+  jx = u.parts32.w0;
+  ix = jx & 0x7fffffff;
+  /* x is INF or NaN */
+  if (ix >= 0x7fff0000)
+    {
+      /* for NaN it's not important which branch: tanhl(NaN) = NaN */
+      if (jx & 0x80000000)
+	return one / x - one;	/* tanhl(-inf)= -1; */
+      else
+	return one / x + one;	/* tanhl(+inf)=+1 */
+    }
+
+  /* |x| < 40 */
+  if (ix < 0x40044000)
+    {
+      if (u.value == 0)
+	return x;		/* x == +- 0 */
+      if (ix < 0x3fc60000)	/* |x| < 2^-57 */
+	{
+	  math_check_force_underflow (x);
+	  return x * (one + tiny); /* tanh(small) = small */
+	}
+      u.parts32.w0 = ix;	/* Absolute value of x.  */
+      if (ix >= 0x3fff0000)
+	{			/* |x| >= 1  */
+	  t = __expm1l (two * u.value);
+	  z = one - two / (t + two);
+	}
+      else
+	{
+	  t = __expm1l (-two * u.value);
+	  z = -t / (t + two);
+	}
+      /* |x| > 40, return +-1 */
+    }
+  else
+    {
+      z = one - tiny;		/* raised inexact flag */
+    }
+  return (jx & 0x80000000) ? -z : z;
+}
+weak_alias (__tanhl, tanhl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanl.c
new file mode 100644
index 0000000000..cd7b258616
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_tanl.c
@@ -0,0 +1,80 @@
+/* s_tanl.c -- long double version of s_tan.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/* @(#)s_tan.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* tanl(x)
+ * Return tangent function of x.
+ *
+ * kernel function:
+ *	__kernel_tanl		... tangent function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+_Float128 __tanl(_Float128 x)
+{
+	_Float128 y[2],z=0;
+	int64_t n, ix;
+
+    /* High word of x. */
+	GET_LDOUBLE_MSW64(ix,x);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffffffffffffLL;
+	if(ix <= 0x3ffe921fb54442d1LL) return __kernel_tanl(x,z,1);
+
+    /* tanl(Inf or NaN) is NaN */
+	else if (ix>=0x7fff000000000000LL) {
+	    if (ix == 0x7fff000000000000LL) {
+		GET_LDOUBLE_LSW64(n,x);
+		if (n == 0)
+		    __set_errno (EDOM);
+	    }
+	    return x-x;		/* NaN */
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    return __kernel_tanl(y[0],y[1],1-((n&1)<<1)); /*   1 -- n even
+							-1 -- n odd */
+	}
+}
+weak_alias (__tanl, tanl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalorderl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalorderl.c
new file mode 100644
index 0000000000..ca7b3102e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalorderl.c
@@ -0,0 +1,54 @@
+/* Total order operation.  ldbl-128 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalorderl (_Float128 x, _Float128 y)
+{
+  int64_t hx, hy;
+  uint64_t lx, ly;
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  GET_LDOUBLE_WORDS64 (hy, ly, y);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  uint64_t uhx = hx & 0x7fffffffffffffffULL;
+  uint64_t uhy = hy & 0x7fffffffffffffffULL;
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the arguments interpreted as
+     sign-magnitude integers.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if ((uhx > 0x7fff000000000000ULL || (uhx == 0x7fff000000000000ULL
+				       && lx != 0))
+      && (uhy > 0x7fff000000000000ULL || (uhy == 0x7fff000000000000ULL
+					  && ly != 0)))
+    {
+      hx ^= 0x0000800000000000ULL;
+      hy ^= 0x0000800000000000ULL;
+    }
+#endif
+  uint64_t hx_sign = hx >> 63;
+  uint64_t hy_sign = hy >> 63;
+  hx ^= hx_sign >> 1;
+  lx ^= hx_sign;
+  hy ^= hy_sign >> 1;
+  ly ^= hy_sign;
+  return hx < hy || (hx == hy && lx <= ly);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalordermagl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
new file mode 100644
index 0000000000..41b969d811
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_totalordermagl.c
@@ -0,0 +1,48 @@
+/* Total order operation on absolute values.  ldbl-128 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalordermagl (_Float128 x, _Float128 y)
+{
+  uint64_t hx, hy;
+  uint64_t lx, ly;
+  GET_LDOUBLE_WORDS64 (hx, lx, x);
+  GET_LDOUBLE_WORDS64 (hy, ly, y);
+  hx &= 0x7fffffffffffffffULL;
+  hy &= 0x7fffffffffffffffULL;
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+  /* For the preferred quiet NaN convention, this operation is a
+     comparison of the representations of the absolute values of the
+     arguments.  If both arguments are NaNs, invert the
+     quiet/signaling bit so comparing that way works.  */
+  if ((hx > 0x7fff000000000000ULL || (hx == 0x7fff000000000000ULL
+				      && lx != 0))
+      && (hy > 0x7fff000000000000ULL || (hy == 0x7fff000000000000ULL
+					 && ly != 0)))
+    {
+      hx ^= 0x0000800000000000ULL;
+      hy ^= 0x0000800000000000ULL;
+    }
+#endif
+  return hx < hy || (hx == hy && lx <= ly);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_truncl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_truncl.c
new file mode 100644
index 0000000000..6d1a11e7c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_truncl.c
@@ -0,0 +1,56 @@
+/* Truncate argument to nearest integral value not larger than the argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+_Float128
+__truncl (_Float128 x)
+{
+  int32_t j0;
+  u_int64_t i0, i1, sx;
+
+  GET_LDOUBLE_WORDS64 (i0, i1, x);
+  sx = i0 & 0x8000000000000000ULL;
+  j0 = ((i0 >> 48) & 0x7fff) - 0x3fff;
+  if (j0 < 48)
+    {
+      if (j0 < 0)
+	/* The magnitude of the number is < 1 so the result is +-0.  */
+	SET_LDOUBLE_WORDS64 (x, sx, 0);
+      else
+	SET_LDOUBLE_WORDS64 (x, i0 & ~(0x0000ffffffffffffLL >> j0), 0);
+    }
+  else if (j0 > 111)
+    {
+      if (j0 == 0x4000)
+	/* x is inf or NaN.  */
+	return x + x;
+    }
+  else
+    {
+      SET_LDOUBLE_WORDS64 (x, i0, i1 & ~(0xffffffffffffffffULL >> (j0 - 48)));
+    }
+
+  return x;
+}
+weak_alias (__truncl, truncl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpl.c
new file mode 100644
index 0000000000..c686daa4a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 0
+#define FUNC ufromfpl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c
new file mode 100644
index 0000000000..906066c83c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/s_ufromfpxl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 1
+#define FUNC ufromfpxl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h b/REORG.TODO/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h
new file mode 100644
index 0000000000..142393d787
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/strtod_nan_ldouble.h
@@ -0,0 +1,33 @@
+/* Convert string for NaN payload to corresponding NaN.  For ldbl-128.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define FLOAT		long double
+#define SET_MANTISSA(flt, mant)				\
+  do							\
+    {							\
+      union ieee854_long_double u;			\
+      u.d = (flt);					\
+      u.ieee_nan.mantissa0 = 0;				\
+      u.ieee_nan.mantissa1 = 0;				\
+      u.ieee_nan.mantissa2 = (mant) >> 32;		\
+      u.ieee_nan.mantissa3 = (mant);			\
+      if ((u.ieee.mantissa0 | u.ieee.mantissa1		\
+	   | u.ieee.mantissa2 | u.ieee.mantissa3) != 0)	\
+	(flt) = u.d;					\
+    }							\
+  while (0)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/strtold_l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/strtold_l.c
new file mode 100644
index 0000000000..4a8b14c4bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/strtold_l.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+/* The actual implementation for all floating point sizes is in strtod.c.
+   These macros tell it to produce the `long double' version, `strtold'.  */
+
+#define FLOAT		long double
+#define FLT		LDBL
+#ifdef USE_WIDE_CHAR
+# define STRTOF		wcstold_l
+# define __STRTOF	__wcstold_l
+# define STRTOF_NAN	__wcstold_nan
+#else
+# define STRTOF		strtold_l
+# define __STRTOF	__strtold_l
+# define STRTOF_NAN	__strtold_nan
+#endif
+#define MPN2FLOAT	__mpn_construct_long_double
+#define FLOAT_HUGE_VAL	HUGE_VALL
+
+#include <strtod_l.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/t_expl.h b/REORG.TODO/sysdeps/ieee754/ldbl-128/t_expl.h
new file mode 100644
index 0000000000..2b1b647db9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/t_expl.h
@@ -0,0 +1,970 @@
+/* Accurate table for expl().
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* __expl_table basically consists of four tables, T_EXPL_ARG{1,2} and
+   T_EXPL_RES{1,2}. All tables use positive and negative indexes, the 0 points
+   are marked by T_EXPL_* defines.
+   For ARG1 and RES1 tables lets B be 89 and S 256.0, for ARG2 and RES2 B is 65
+   and S 32768.0.
+   These table have the property that, for all integers -B <= i <= B
+   expl(__expl_table[T_EXPL_ARGN+2*i]+__expl_table[T_EXPL_ARGN+2*i+1]+r) ==
+   __expl_table[T_EXPL_RESN+i], __expl_table[T_EXPL_RESN+i] is some exact number
+   with the low 58 bits of the mantissa 0,
+   __expl_table[T_EXPL_ARGN+2*i] == i/S+s
+   where absl(s) <= 2^-54 and absl(r) <= 2^-212.  */
+
+static const _Float128 __expl_table [] = {
+ L(-3.47656250000000000584188889839535373E-01), /* bffd640000000000002b1b04213cf000 */
+  L(6.90417668990715641167244540876988960E-32), /* 3f97667c3fdb588a6ae1af8748357a17 */
+ L(-3.43749999999999981853132895957607418E-01), /* bffd5ffffffffffffac4ff5f4050b000 */
+ L(-7.16021898043268093462818380603370350E-33), /* bf94296c8219427edc1431ac2498583e */
+ L(-3.39843750000000013418643523138766329E-01), /* bffd5c000000000003de1f027a30e000 */
+  L(8.16920774283317801641347327589583265E-32), /* 3f97a82b65774bdca1b4440d749ed8d3 */
+ L(-3.35937500000000014998092453039303051E-01), /* bffd5800000000000452a9f4d8857000 */
+ L(-6.55865578425428447938248396879359670E-32), /* bf97548b7d240f3d034b395e6eecfac8 */
+ L(-3.32031250000000000981984049529998541E-01), /* bffd540000000000004875277cda5000 */
+  L(6.91213046334032232108944519541512737E-32), /* 3f9766e5f925338a19045c94443b66e1 */
+ L(-3.28124999999999986646017645350399708E-01), /* bffd4ffffffffffffc26a667bf44d000 */
+ L(-6.16281060996110316602421505683742661E-32), /* bf973ffdcdcffb6fbffc86b2b8d42f5d */
+ L(-3.24218749999999991645717430645867963E-01), /* bffd4bfffffffffffd97901063e48000 */
+ L(-7.90797211087760527593856542417304137E-32), /* bf979a9afaaca1ada6a8ed1c80584d60 */
+ L(-3.20312499999999998918211610690789652E-01), /* bffd47ffffffffffffb02d9856d71000 */
+  L(8.64024799457616856987630373786503376E-32), /* 3f97c0a098623f95579d5d9b2b67342d */
+ L(-3.16406249999999998153974811017181883E-01), /* bffd43ffffffffffff77c991f1076000 */
+ L(-2.73176610180696076418536105483668404E-32), /* bf961baeccb32f9b1fcbb8e60468e95a */
+ L(-3.12500000000000011420976192575972779E-01), /* bffd400000000000034ab8240483d000 */
+  L(7.16573502812389453744433792609989420E-32), /* 3f977410f4c2cfc4335f28446c0fb363 */
+ L(-3.08593750000000001735496343854851414E-01), /* bffd3c000000000000800e995c176000 */
+ L(-1.56292999645122272621237565671593071E-32), /* bf95449b9cbdaff6ac1246adb2c826ac */
+ L(-3.04687499999999982592401295899221626E-01), /* bffd37fffffffffffafb8bc1e061a000 */
+  L(6.48993208584888904958594509625158417E-32), /* 3f9750f9fe8366d82d77afa0031a92e1 */
+ L(-3.00781249999999999230616898937763959E-01), /* bffd33ffffffffffffc73ac39da54000 */
+  L(6.57082437496961397305801409357792029E-32), /* 3f97552d3cb598ea80135cf3feb27ec4 */
+ L(-2.96874999999999998788769281703245722E-01), /* bffd2fffffffffffffa6a07fa5021000 */
+ L(-3.26588297198283968096426564544269170E-32), /* bf9653260fc1802f46b629aee171809b */
+ L(-2.92968750000000015318089182805941695E-01), /* bffd2c0000000000046a468614bd6000 */
+ L(-1.73291974845198589684358727559290718E-32), /* bf9567e9d158f52e483c8d8dcb5961dd */
+ L(-2.89062500000000007736778942676309681E-01), /* bffd280000000000023adf9f4c3d3000 */
+ L(-6.83629745986675744404029225571026236E-32), /* bf9762f5face6281c1daf1c6aedbdb45 */
+ L(-2.85156250000000001367091555763661937E-01), /* bffd2400000000000064dfa11e3fb000 */
+ L(-5.44898442619766878281110054067026237E-32), /* bf971aed6d2db9f542986a785edae072 */
+ L(-2.81249999999999986958718100227029406E-01), /* bffd1ffffffffffffc3db9265ca9d000 */
+  L(1.13007318374506125723591889451107046E-32), /* 3f94d569fe387f456a97902907ac3856 */
+ L(-2.77343750000000000356078829380495179E-01), /* bffd1c0000000000001a462390083000 */
+ L(-4.98979365468978332358409063436543102E-32), /* bf970315bbf3e0d14b5c94c900702d4c */
+ L(-2.73437499999999990276993957508540484E-01), /* bffd17fffffffffffd32919bcdc94000 */
+ L(-8.79390484115892344533724650295100871E-32), /* bf97c89b0b89cc19c3ab2b60da9bbbc3 */
+ L(-2.69531250000000002434203866460082225E-01), /* bffd14000000000000b39ccf9e130000 */
+  L(9.44060754687026590886751809927191596E-32), /* 3f97ea2f32cfecca5c64a26137a9210f */
+ L(-2.65624999999999997296320716986257179E-01), /* bffd0fffffffffffff3880f13a2bc000 */
+  L(2.07142664067265697791007875348396921E-32), /* 3f95ae37ee685b9122fbe377bd205ee4 */
+ L(-2.61718750000000010237478733739017956E-01), /* bffd0c000000000002f3648179d40000 */
+ L(-6.10552936159265665298996309192680256E-32), /* bf973d0467d31e407515a3cca0f3b4e2 */
+ L(-2.57812500000000011948220522778370303E-01), /* bffd08000000000003719f81275bd000 */
+  L(6.72477169058908902499239631466443836E-32), /* 3f975d2b8c475d3160cf72d227d8e6f9 */
+ L(-2.53906249999999991822993360536596860E-01), /* bffd03fffffffffffda4a4b62f818000 */
+ L(-2.44868296623215865054704392917190994E-32), /* bf95fc92516c6d057d29fc2528855976 */
+ L(-2.49999999999999986862019457428548084E-01), /* bffcfffffffffffff86d2d20d5ff4000 */
+ L(-3.85302898949105073614122724961613078E-32), /* bf96901f147cb7d643af71b6129ce929 */
+ L(-2.46093750000000000237554160737318435E-01), /* bffcf8000000000000230e8ade26b000 */
+ L(-1.52823675242678363494345369284988589E-32), /* bf953d6700c5f3fc303f79d0ec8c680a */
+ L(-2.42187500000000003023380963205457065E-01), /* bffcf0000000000001be2c1a78bb0000 */
+ L(-7.78402037952209709489481182714311699E-34), /* bf9102ab1f3998e887f0ee4cf940faa5 */
+ L(-2.38281249999999995309623303145485725E-01), /* bffce7fffffffffffd4bd2940f43f000 */
+ L(-3.54307216794236899443913216397197696E-32), /* bf966fef03ab69c3f289436205b21d02 */
+ L(-2.34374999999999998425804947623207526E-01), /* bffcdfffffffffffff17b097a6092000 */
+ L(-2.86038428948386602859761879407549696E-32), /* bf96290a0eba0131efe3a05fe188f2e3 */
+ L(-2.30468749999999993822207406785200832E-01), /* bffcd7fffffffffffc70519834eae000 */
+ L(-2.54339521031747516806893838749365762E-32), /* bf96081f0ad7f9107ae6cddb32c178ab */
+ L(-2.26562499999999997823524030344489884E-01), /* bffccffffffffffffebecf10093df000 */
+  L(4.31904611473158635644635628922959401E-32), /* 3f96c083f0b1faa7c4c686193e38d67c */
+ L(-2.22656250000000004835132405125162742E-01), /* bffcc8000000000002c98a233f19f000 */
+  L(2.54709791629335691650310168420597566E-33), /* 3f92a735903f5eed07a716ab931e20d9 */
+ L(-2.18749999999999988969454021829236626E-01), /* bffcbffffffffffff9a42dc14ce36000 */
+ L(-3.77236096429336082213752014054909454E-32), /* bf9687be8e5b2fca54d3e81157eac660 */
+ L(-2.14843750000000010613256919115758495E-01), /* bffcb80000000000061e3d828ecac000 */
+ L(-4.55194148712216691177097854305964738E-32), /* bf96d8b35c776aa3e1a4768271380503 */
+ L(-2.10937499999999993204656148110447201E-01), /* bffcaffffffffffffc152f2aea118000 */
+ L(-2.95044199165561453749332254271716417E-32), /* bf96326433b00b2439094d9bef22ddd1 */
+ L(-2.07031250000000012233944895423355677E-01), /* bffca80000000000070d695ee0e94000 */
+  L(1.93146788688385419095981415411012357E-32), /* 3f959126729135a5e390d4bb802a0bde */
+ L(-2.03125000000000008030983633336321863E-01), /* bffca0000000000004a129fbc51af000 */
+  L(2.37361904671826193563212931215900137E-32), /* 3f95ecfb3c4ba1b97ea3ad45cbb1e68a */
+ L(-1.99218750000000001763815712796132779E-01), /* bffc98000000000001044b12d9950000 */
+ L(-3.63171243370923753295192486732883239E-33), /* bf932db5fb3f27c38e0fa7bbcfc64f55 */
+ L(-1.95312500000000004883660234506677272E-01), /* bffc90000000000002d0b3779d1f9000 */
+ L(-3.19989507343607877747980892249711601E-33), /* bf9309d63de96bb3ef744c865f22f1bd */
+ L(-1.91406250000000013720152363227519348E-01), /* bffc88000000000007e8bcb387121000 */
+ L(-1.89295754093147174148371614722178860E-32), /* bf958926e2e67dfe812c508290add2e7 */
+ L(-1.87500000000000000182342082774432620E-01), /* bffc800000000000001ae8b06a39f000 */
+ L(-2.96812835183184815200854214892983927E-32), /* bf96343a62d156bbe71f55d14ca4b6e5 */
+ L(-1.83593750000000012410147185883290345E-01), /* bffc78000000000007276a1adda8d000 */
+ L(-2.02191931237489669058466239995304587E-32), /* bf95a3efab92d26ec2df90df036a117f */
+ L(-1.79687499999999997439177363346082917E-01), /* bffc6ffffffffffffe8616db2927d000 */
+ L(-9.92752326937775530007399526834009465E-33), /* bf949c5f88ed17041e1a3f1829d543cd */
+ L(-1.75781249999999995824373974504785174E-01), /* bffc67fffffffffffd97c94f13ea3000 */
+  L(1.44184772065335613487885714828816178E-32), /* 3f952b75c63476e7fcc2f5841c27bcce */
+ L(-1.71874999999999986685050259043077809E-01), /* bffc5ffffffffffff8530f6bc531a000 */
+ L(-3.49007014971241147689894940544402482E-32), /* bf966a6dfaa012aea8ffe6d90b02330f */
+ L(-1.67968749999999997316058782350439701E-01), /* bffc57fffffffffffe73eb914f2aa000 */
+  L(3.34025733574205019081305778794376391E-32), /* 3f965adf4572561fd5456a6c13d8babf */
+ L(-1.64062499999999993322730602128318480E-01), /* bffc4ffffffffffffc269be4f68f3000 */
+ L(-1.83345916769684984022099095506340635E-32), /* bf957ccb69026cb2f6024c211576d5f4 */
+ L(-1.60156249999999992419000744447607979E-01), /* bffc47fffffffffffba13df21784a000 */
+  L(2.73442789798110494773517431626534726E-32), /* 3f961bf58ff22c9b30f1e2b39f26d7d5 */
+ L(-1.56249999999999987665010524130393080E-01), /* bffc3ffffffffffff8e3ad45e7508000 */
+  L(2.02695576464836145806428118889332191E-32), /* 3f95a4fb7435a4a2f71de81eb8ae75d1 */
+ L(-1.52343749999999989905291167951491803E-01), /* bffc37fffffffffffa2e48aecfc24000 */
+ L(-3.61436631548815190395331054871041524E-32), /* bf967756567ebd108075ae527cc2e7f0 */
+ L(-1.48437500000000006686107754967759751E-01), /* bffc30000000000003dab20261b3c000 */
+ L(-2.15524270159131591469319477922198390E-32), /* bf95bfa05b82ef3a708c4f0395e9fcf6 */
+ L(-1.44531250000000005132889939177166485E-01), /* bffc28000000000002f57b1969e7b000 */
+  L(2.74741116529653547935086189244019604E-32), /* 3f961d4eb77c1185d34fe1b04a3f3cf5 */
+ L(-1.40625000000000000707469094533647325E-01), /* bffc2000000000000068676d3d5c4000 */
+  L(4.40607097220049957013547629906723266E-33), /* 3f936e0ac425daf795b42913cf0ef881 */
+ L(-1.36718749999999995713752139187543306E-01), /* bffc17fffffffffffd87762255991000 */
+ L(-3.73751317180116492404578048203389108E-32), /* bf9684202491e9cbb7ceb67d9ff7e0c9 */
+ L(-1.32812500000000007198453630478482191E-01), /* bffc10000000000004264de3a4379000 */
+ L(-3.97050085179660203884930593717220728E-32), /* bf969c52048de14be3c9c1971e50869c */
+ L(-1.28906250000000006070486371645733082E-01), /* bffc080000000000037fd87db2cb0000 */
+  L(3.59610068058504988294019521946586131E-32), /* 3f967570c10687cb8e9ebd0b280abf5a */
+ L(-1.25000000000000003700729208608337966E-01), /* bffc00000000000002222198bbc74000 */
+  L(3.23464851393124362331846965931995969E-33), /* 3f930cb95da3bfc847e593716c91d57a */
+ L(-1.21093750000000013729038501177102555E-01), /* bffbf000000000000fd418d1f5fda000 */
+  L(2.45242487730722066611358741283977619E-32), /* 3f95fd5945ad86a464292e26ac192a84 */
+ L(-1.17187499999999999765305306880205578E-01), /* bffbdfffffffffffffbabaf869845000 */
+ L(-1.14557520298960389903199646350205537E-32), /* bf94dbda735322179d9bcf392e1dd06d */
+ L(-1.13281250000000009579647893740755690E-01), /* bffbd000000000000b0b69bae7ab9000 */
+  L(2.37873962873837390105423621772752350E-32), /* 3f95ee0b7e0bd5ac1f6fab1e2a71abc3 */
+ L(-1.09375000000000008981153004560108539E-01), /* bffbc000000000000a5ac4bc1d2c3000 */
+  L(1.53152444860014076105003555837231015E-32), /* 3f953e15ce931e12ef9a152522e32bdd */
+ L(-1.05468749999999992399063850363228723E-01), /* bffbaffffffffffff73c998091408000 */
+ L(-8.75920903597804862471749360196688834E-33), /* bf946bd7e310a01bae5687ebdc47fcc5 */
+ L(-1.01562500000000007685885179918350550E-01), /* bffba0000000000008dc7910a648c000 */
+ L(-4.63820993797174451904075397785059501E-33), /* bf938153d0e54001a472da180fb5e8aa */
+ L(-9.76562499999999887262211517861331814E-02), /* bffb8ffffffffffff300915aa6fd6000 */
+ L(-2.63767025974952608658936466715705903E-33), /* bf92b64215bb8d520be5404620d38088 */
+ L(-9.37499999999999939650246024457439795E-02), /* bffb7ffffffffffff90aca26bd0fc000 */
+ L(-1.72047822349322956713582039121348377E-32), /* bf9565545015c5b9b56d02cfefca2c7d */
+ L(-8.98437500000000033088896383977486369E-02), /* bffb70000000000003d09ca1e3cbe000 */
+  L(3.04831994420989436248526129869697270E-33), /* 3f92fa7d30d2ed90e7ebbd6231fd08b1 */
+ L(-8.59374999999999947312400115121319225E-02), /* bffb5ffffffffffff9ecefc03376e000 */
+  L(1.50416954438393392150792422537312281E-32), /* 3f9538675ee99bd722fad0023c09c915 */
+ L(-8.20312500000000054182280847004695514E-02), /* bffb500000000000063f2dbd40200000 */
+  L(2.68399664523430004488075638997207289E-33), /* 3f92bdf49766629882c49a3da88928ed */
+ L(-7.81250000000000114767533968079748798E-02), /* bffb4000000000000d3b56f81ba70000 */
+  L(1.72318124201659121296305402819694281E-32), /* 3f9565e407aaabfb359e8a567d760de3 */
+ L(-7.42187500000000035531829472486812869E-02), /* bffb3000000000000418b6e9b5388000 */
+  L(2.09401756478514117051383998628099655E-32), /* 3f95b2e91221fcd74be0a86d8ad658d2 */
+ L(-7.03124999999999987474933134860732535E-02), /* bffb1ffffffffffffe8e53453d2ac000 */
+  L(2.28515798224350800271565551341211666E-32), /* 3f95da9bd6adf00894f05b5cc5530125 */
+ L(-6.64062500000000042267533361089054159E-02), /* bffb10000000000004df8473dbcf2000 */
+  L(1.97576478800281368377376002585430031E-32), /* 3f959a59acbddb2f53bd3096b66370e9 */
+ L(-6.25000000000000066329769382774201686E-02), /* bffb00000000000007a5b5914e336000 */
+ L(-1.46422615813786836245343723048221678E-33), /* bf91e69295f069fc0c4a9db181ea25a3 */
+ L(-5.85937500000000002823707957982406053E-02), /* bffae0000000000000a6aeab10592000 */
+  L(9.25637741701318872896718218457555829E-33), /* 3f94807eb021f1f40a37d4015b1eb76b */
+ L(-5.46875000000000081586888005226044448E-02), /* bffac0000000000012d00a3171e3a000 */
+ L(-4.87144542459404765480424673678105050E-33), /* bf9394b42faba6b7036fe7b36269daf3 */
+ L(-5.07812499999999927720348253140567013E-02), /* bffa9fffffffffffef555cc8dd914000 */
+ L(-3.01901021987395945826043649523451725E-33), /* bf92f59e7e3025691f290f8f67277faf */
+ L(-4.68749999999999935349476738962633103E-02), /* bffa7ffffffffffff117b4ea2b876000 */
+  L(1.21521638219189777347767475937119750E-32), /* 3f94f8c7f88c5b56674b94d984ac8ecb */
+ L(-4.29687500000000056305562847814228219E-02), /* bffa6000000000000cfbb19be30c0000 */
+ L(-1.18643699217679276275559592978275214E-32), /* bf94ecd39f0833a876550e83eb012b99 */
+ L(-3.90624999999999962692914526031373542E-02), /* bffa3ffffffffffff765c743922f9000 */
+ L(-4.91277156857520035712509544689973679E-33), /* bf939823189996193872e58ac0dececb */
+ L(-3.51562500000000108152468207687602886E-02), /* bffa20000000000018f031e41177f000 */
+  L(1.18599806302656253755207072755609820E-32), /* 3f94eca4f23e787fab73ce8f6b9b8d64 */
+ L(-3.12500000000000077376981036742289578E-02), /* bffa00000000000011d787e0b386f000 */
+  L(9.97730386477005171963635210799577079E-33), /* 3f949e70e498c46a0173ac0d46c699fc */
+ L(-2.73437500000000139436129596418623235E-02), /* bff9c00000000000404db66e70a08000 */
+  L(2.25755321633070123579875157841633859E-33), /* 3f927719b1a93074bdf9f3c2cb784785 */
+ L(-2.34375000000000088003629211828324876E-02), /* bff98000000000002895a27d45feb000 */
+  L(2.84374279216848803102126617873942975E-33), /* 3f92d87f70e749d6da6c260b68dc210b */
+ L(-1.95312500000000107408831063404855424E-02), /* bff9400000000000318898ba69f71000 */
+  L(2.47348089686935458989103979140011912E-33), /* 3f929afa3de45086fe909fdddb41edce */
+ L(-1.56250000000000081443917555362290635E-02), /* bff9000000000000258f335e9cdd6000 */
+ L(-2.43379314483517422161458863218426254E-33), /* bf9294621c8a9ccacf2b020ec19cad27 */
+ L(-1.17187500000000051490597418161403184E-02), /* bff88000000000002f7ddfa26221f000 */
+  L(1.83405297208145390679150568810924707E-33), /* 3f9230bbfc5d5fe1b534fbcda0465bb9 */
+ L(-7.81249999999999715861805208310174953E-03), /* bff7ffffffffffffcb95f3fff157d000 */
+  L(3.51548384878710915171654413641872451E-34), /* 3f8fd349b76c22966f77a39fc37ed704 */
+ L(-3.90625000000000309326013918295097128E-03), /* bff7000000000000390f820c8e153000 */
+  L(6.38058004651791109324060099097251911E-36), /* 3f8a0f665d3ac25a1ac94d688273dbcd */
+#define T_EXPL_ARG1 (2*89)
+  L(0.00000000000000000000000000000000000E+00), /* 00000000000000000000000000000000 */
+  L(0.00000000000000000000000000000000000E+00), /* 00000000000000000000000000000000 */
+  L(3.90625000000000245479958859972588985E-03), /* 3ff70000000000002d48769ac9874000 */
+ L(-6.58439598384342854976169982902779828E-36), /* bf8a1811b923e6c626b07ef29761482a */
+  L(7.81250000000001311374391093664996358E-03), /* 3ff800000000000078f3f3cd89111000 */
+  L(2.60265650555493781464273319671555602E-33), /* 3f92b070c3b635b87af426735a71fc87 */
+  L(1.17187500000000269581156218247101912E-02), /* 3ff8800000000000f8a50d02fe20d000 */
+  L(1.00961747974945520631836275894919326E-33), /* 3f914f80c1a4f8042044fe3b757b030b */
+  L(1.56249999999999797878275270751825475E-02), /* 3ff8ffffffffffff45935b69da62e000 */
+  L(2.03174577741375590087897353146748580E-33), /* 3f925194e863496e0f6e91cbf6b22e26 */
+  L(1.95312499999999760319884511789111533E-02), /* 3ff93fffffffffff917790ff9a8f4000 */
+  L(4.62788519658803722282100289809515007E-33), /* 3f9380783ba81295feeb3e4879d7d52d */
+  L(2.34374999999999822953909016349145918E-02), /* 3ff97fffffffffffae5a163bd3cd5000 */
+ L(-3.19499956304699705390404384504876533E-33), /* bf93096e2037ced8194cf344c692f8d6 */
+  L(2.73437500000000137220327275871555682E-02), /* 3ff9c000000000003f481dea5dd51000 */
+ L(-2.25757776523031994464630107442723424E-33), /* bf92771abcf988a02b414bf2614e3734 */
+  L(3.12499999999999790857640618332718621E-02), /* 3ff9ffffffffffff9f8cd40b51509000 */
+ L(-4.22479470489989916319395454536511458E-33), /* bf935efb7245612f371deca17cb7b30c */
+  L(3.51562499999999840753382405747597346E-02), /* 3ffa1fffffffffffdb47bd275f722000 */
+  L(1.08459658374118041980976756063083500E-34), /* 3f8e2055d18b7117c9db1c318b1e889b */
+  L(3.90624999999999989384433621470426757E-02), /* 3ffa3ffffffffffffd8d5e18b042e000 */
+ L(-7.41674226146122000759491297811091830E-33), /* bf94341454e48029e5b0205d91baffdc */
+  L(4.29687500000000107505739500500200462E-02), /* 3ffa60000000000018ca04cd9085c000 */
+ L(-4.74689012756713017494437969420919847E-34), /* bf903b7c268103c6f7fbaaa24142e287 */
+  L(4.68749999999999978700749928325717352E-02), /* 3ffa7ffffffffffffb16b6d5479e3000 */
+ L(-1.06208165308448830117773486334902917E-32), /* bf94b92be4b3b5b5a596a0a5187cc955 */
+  L(5.07812499999999815072625435955786253E-02), /* 3ffa9fffffffffffd55bd086d5cbc000 */
+ L(-9.37038897148383660401929567549111394E-33), /* bf94853b111b0175b491c80d00419416 */
+  L(5.46874999999999809511553152189867394E-02), /* 3ffabfffffffffffd4138bfa74a61000 */
+  L(1.06642963074562437340498606682822123E-32), /* 3f94bafa3fe991b39255d563dfa05d89 */
+  L(5.85937500000000184331996330905145551E-02), /* 3ffae000000000002a810a5f2f8bf000 */
+ L(-1.76639977694797200820296641773791945E-34), /* bf8ed596f07ce4408f1705c8ec16864c */
+  L(6.25000000000000021544696744852045001E-02), /* 3ffb000000000000027be32045e2b000 */
+  L(1.68616371995798354366633034788947149E-32), /* 3f955e33d7440794d8a1b25233d086ab */
+  L(6.64062499999999965563110718495802889E-02), /* 3ffb0ffffffffffffc079a38a3fed000 */
+ L(-1.82463217667830160048872113565316215E-32), /* bf957af6163bcdb97cefab44a942482a */
+  L(7.03124999999999759989183341261898222E-02), /* 3ffb1fffffffffffe454218acea05000 */
+ L(-1.07843770101525495515646940862541503E-32), /* bf94bff72aada26d94e76e71c07e0580 */
+  L(7.42187499999999898968873730710101412E-02), /* 3ffb2ffffffffffff45a166496dc1000 */
+  L(1.28629441689592874462780757154138223E-32), /* 3f950b2724597b8b93ce1e9d1cf4d035 */
+  L(7.81249999999999957198938523510804668E-02), /* 3ffb3ffffffffffffb10bc52adbc5000 */
+  L(1.13297573459968118467100063135856856E-33), /* 3f91787eea895b3c245899cf34ad0abd */
+  L(8.20312500000000199911640621145851159E-02), /* 3ffb500000000000170c59a661a89000 */
+ L(-1.51161335208135146756554123073528707E-32), /* bf9539f326c5ca84e7db5401566f3775 */
+  L(8.59375000000000134175373433347670743E-02), /* 3ffb6000000000000f78287547af0000 */
+  L(1.09763629458404270323909815379924900E-32), /* 3f94c7f0b61b6e3e27d44b9f5bbc7e9d */
+  L(8.98437500000000036533922600308306335E-02), /* 3ffb70000000000004364a83b7a14000 */
+  L(3.11459653680110433194288029777718358E-33), /* 3f9302c0248136d65cebeab69488d949 */
+  L(9.37500000000000184977946245216914691E-02), /* 3ffb800000000000155395d870b17000 */
+ L(-4.66656154468277949130395786965043927E-33), /* bf9383aec9b993b6db492b1ede786d8a */
+  L(9.76562500000000237839723100419376084E-02), /* 3ffb9000000000001b6bca237f6c4000 */
+ L(-1.03028043424658760249140747856831301E-32), /* bf94abf6352e3d2bb398e47919a343fb */
+  L(1.01562500000000012345545575236836572E-01), /* 3ffba000000000000e3bc30cd9a1f000 */
+  L(2.15755372310795701322789783729456319E-32), /* 3f95c01b3b819edd9d07548fafd61550 */
+  L(1.05468749999999976493840484471911438E-01), /* 3ffbafffffffffffe4e634cd77985000 */
+  L(1.78771847038773333029677216592309083E-32), /* 3f95734b6ae650f33dd43c49a1df9fc0 */
+  L(1.09375000000000002267015055992785402E-01), /* 3ffbc00000000000029d1ad08de7b000 */
+  L(6.23263106693943817730045115112427717E-33), /* 3f9402e4b39ce2198a45e1d045868cd6 */
+  L(1.13281250000000022354208618429577398E-01), /* 3ffbd0000000000019c5cc3f9d2b5000 */
+  L(5.40514416644786448581426756221178868E-33), /* 3f93c10ab4021472c662f69435de9269 */
+  L(1.17187500000000013252367133076817603E-01), /* 3ffbe000000000000f47688cc561b000 */
+ L(-7.12412585457324989451327215568641325E-33), /* bf9427ecb343a8d1758990565fcfbf45 */
+  L(1.21093750000000020759863992944300792E-01), /* 3ffbf0000000000017ef3af97bf04000 */
+  L(6.26591408357572503875647872077266444E-33), /* 3f940446a09a2da771b45fc075514d12 */
+  L(1.25000000000000004739659392396765618E-01), /* 3ffc00000000000002bb7344ecd89000 */
+ L(-1.55611398459729463981000080101758830E-32), /* bf95433135febefa9e6aa4db39e263d2 */
+  L(1.28906249999999982360888081057894783E-01), /* 3ffc07fffffffffff5d4ed3154361000 */
+ L(-1.77531518652835570781208599686606474E-32), /* bf9570b7f225ea076f97f418d11359c1 */
+  L(1.32812500000000010568583998727400436E-01), /* 3ffc1000000000000617a5d09526a000 */
+  L(2.12104021624990594668286391598300893E-32), /* 3f95b885d767a1048d93055927a27adc */
+  L(1.36718749999999998434125157367005292E-01), /* 3ffc17ffffffffffff18eaebc7970000 */
+  L(2.50454798592543203967309921276955297E-32), /* 3f9604164e5598528a76faff26cd1c97 */
+  L(1.40625000000000015550032422969330356E-01), /* 3ffc20000000000008f6c79d8928c000 */
+  L(7.80972982879849783680252962992639832E-33), /* 3f9444674acf2b3225c7647e0d95edf3 */
+  L(1.44531250000000012402535562111122522E-01), /* 3ffc28000000000007264a8bc1ff1000 */
+  L(2.79662468716455159585514763921671876E-32), /* 3f96226b095bd78aa650faf95a221993 */
+  L(1.48437500000000007761020440087419948E-01), /* 3ffc3000000000000479530ff8fe3000 */
+  L(2.15518492972728435680556239996258527E-32), /* 3f95bf9d49295e73a957906a029768cb */
+  L(1.52343750000000001733189947520484032E-01), /* 3ffc38000000000000ffc6109f71f000 */
+  L(8.34032236093545825619420380704500188E-33), /* 3f945a71851226a1d0ce5e656693153e */
+  L(1.56249999999999988073295321246958484E-01), /* 3ffc3ffffffffffff91fedd62ae0f000 */
+  L(2.44119337150624789345260194989620908E-32), /* 3f95fb041a57bc1c1280680ac1620bea */
+  L(1.60156250000000002076894210913572460E-01), /* 3ffc48000000000001327ed84a199000 */
+ L(-7.36124501128859978061216696286151753E-33), /* bf9431c62f01e59d2c1e00f195a0037f */
+  L(1.64062500000000000950861276373482172E-01), /* 3ffc500000000000008c5285fba85000 */
+ L(-4.80566184447001164583855800470217373E-33), /* bf938f3d1fcafd390f22f80e6c19421f */
+  L(1.67968749999999989878071706155265999E-01), /* 3ffc57fffffffffffa2a445c548c5000 */
+ L(-4.42154428718618459799673088733365064E-32), /* bf96cb28cf1c1b28006d53ffe633b22a */
+  L(1.71874999999999999459734108403218175E-01), /* 3ffc5fffffffffffffb04554e9dd4000 */
+ L(-3.29736288190321377985697972236270628E-32), /* bf96566af0ebc852e84be12859b24a31 */
+  L(1.75781249999999997987525759778901845E-01), /* 3ffc67fffffffffffed702df6ffff000 */
+ L(-1.28800728638468399687523924685844352E-32), /* bf950b8236b88ca0c1b739dc91a7e3fc */
+  L(1.79687500000000004929565820437175783E-01), /* 3ffc70000000000002d779bb32d2e000 */
+  L(1.60624461317978482424582320675174225E-32), /* 3f954d9a9cc0c963fd081f3dc922d04e */
+  L(1.83593750000000016873727045739708856E-01), /* 3ffc78000000000009ba1f6263c9a000 */
+ L(-3.83390389582056606880506003118452558E-32), /* bf968e22a5d826f77f19ee788474df22 */
+  L(1.87500000000000013443068740761666872E-01), /* 3ffc80000000000007bfd8c72a1bf000 */
+ L(-2.74141662712926256150154726565203091E-32), /* bf961caf5ac59c7f941f928e324c2cc1 */
+  L(1.91406249999999981494101786848611970E-01), /* 3ffc87fffffffffff55502eeae001000 */
+  L(3.68992437075565165346469517256118001E-32), /* 3f967f2f03f9096793372a27b92ad79d */
+  L(1.95312499999999989069921848800501648E-01), /* 3ffc8ffffffffffff9b3015280394000 */
+  L(3.69712249337856518452988332367785220E-32), /* 3f967fee5fdb5bd501ff93516999faa0 */
+  L(1.99218750000000021148042946919300804E-01), /* 3ffc9800000000000c30e67939095000 */
+  L(2.50142536781142175091322844848566649E-32), /* 3f9603c34ae58e10b300b07137ee618a */
+  L(2.03124999999999977732559198825437141E-01), /* 3ffc9ffffffffffff329e7df079e4000 */
+ L(-2.41951877287895024779300892731537816E-32), /* bf95f683aefe6965f080df8f59dd34a1 */
+  L(2.07031249999999996744030653771913124E-01), /* 3ffca7fffffffffffe1f80f4b73ca000 */
+ L(-1.94346475904454000031592792989765585E-32), /* bf9593a44f87870a3d100d498501ecc7 */
+  L(2.10937500000000000251399259834392298E-01), /* 3ffcb000000000000025199873310000 */
+ L(-1.33528748788094249098998693871759411E-33), /* bf91bbb9b25c813668d6103d08acac35 */
+  L(2.14843749999999993936323609611875097E-01), /* 3ffcb7fffffffffffc8128c866236000 */
+  L(1.14839877977014974625242788556545292E-32), /* 3f94dd06b4655c9b83a1305b240e7a42 */
+  L(2.18750000000000015181732784749663837E-01), /* 3ffcc0000000000008c06da5fff24000 */
+  L(1.42689085313142539755499441881408391E-32), /* 3f95285a87dfa7ea7dad5b3be8c669f4 */
+  L(2.22656249999999992172647770539596569E-01), /* 3ffcc7fffffffffffb7ce2fe531f6000 */
+ L(-3.34421462850496887359128610229650547E-32), /* bf965b487962b5c2d9056ca6ac0c2e5c */
+  L(2.26562499999999989595607223847082419E-01), /* 3ffccffffffffffffa0095277be5c000 */
+ L(-3.08983588107248752517344356508205569E-32), /* bf9640dded57157f8eded311213bdbcd */
+  L(2.30468749999999979130462438434567117E-01), /* 3ffcd7fffffffffff3f8332996560000 */
+ L(-3.01407539802851697849105682795217019E-32), /* bf9638ffde35dbdfe1a1ffe45185de5d */
+  L(2.34375000000000012194252337217891971E-01), /* 3ffce0000000000007078dd402c86000 */
+ L(-8.46879710915628592284714319904522657E-33), /* bf945fc7b29a2ac6c9eff9eb258a510f */
+  L(2.38281249999999982991877076137149870E-01), /* 3ffce7fffffffffff6320b486eece000 */
+ L(-2.93563878880439245627127095245798544E-32), /* bf9630daaa4f40ff05caf29ace2ea7d4 */
+  L(2.42187499999999981447559841442773990E-01), /* 3ffceffffffffffff54e24a09a8d5000 */
+ L(-4.56766746558806021264215486909850481E-32), /* bf96da556dee11f3113e5a3467b908e6 */
+  L(2.46093749999999991067720539980207318E-01), /* 3ffcf7fffffffffffad9d405dcb5d000 */
+  L(2.14033004219908074003010247652128251E-32), /* 3f95bc8776e8f9ae098884aa664cc3df */
+  L(2.50000000000000016613825838126835953E-01), /* 3ffd00000000000004c9e24c12bb3000 */
+  L(2.57617532593749185996714235009382870E-32), /* 3f960b867cc01178c0ec68226c6cb47d */
+  L(2.53906250000000013372004437827044321E-01), /* 3ffd04000000000003daae05b3168000 */
+  L(7.20177123439204414298152646284640101E-32), /* 3f9775eff59ddad7e7530b83934af87f */
+  L(2.57812499999999995765234725413886085E-01), /* 3ffd07fffffffffffec7878bad9d5000 */
+  L(6.51253187532920882777046064603770602E-32), /* 3f975226659ca241402e71c2011583b0 */
+  L(2.61718750000000007647689994011222248E-01), /* 3ffd0c000000000002344cc793a0f000 */
+  L(3.02370610028725823590045201871491395E-32), /* 3f9639ffe55fa2fa011674448b4e5b96 */
+  L(2.65624999999999986893899042596554269E-01), /* 3ffd0ffffffffffffc38f0c0a1e9f000 */
+ L(-2.07683715950724761146070082510569258E-32), /* bf95af579a92e872fef81abfdf06bae8 */
+  L(2.69531249999999979842788204900639327E-01), /* 3ffd13fffffffffffa30a908d67db000 */
+  L(8.71465252506557329027658736641075706E-32), /* 3f97c47d99e19830447a42b1c0ffac61 */
+  L(2.73437500000000006712165837793818271E-01), /* 3ffd18000000000001ef453a58edb000 */
+ L(-6.62704045767568912140550474455810301E-32), /* bf9758187a204dcb06ece46588aeeaba */
+  L(2.77343749999999994411329302988535617E-01), /* 3ffd1bfffffffffffe63a0fec9c9e000 */
+ L(-4.87273466291944117406493607771338767E-32), /* bf96fa0381b0844a0be46bac2d673f0c */
+  L(2.81250000000000012677892447379453135E-01), /* 3ffd20000000000003a7769e125d6000 */
+ L(-8.55871796664700790726282049552906783E-32), /* bf97bc64e01332cf7616b0091b8dff2c */
+  L(2.85156249999999998558643013736363981E-01), /* 3ffd23ffffffffffff95a5894bccf000 */
+ L(-1.33068334720606220176455289635046875E-32), /* bf95145f43290ecf5b7adcb24697bc73 */
+  L(2.89062500000000008831431235621753924E-01), /* 3ffd280000000000028ba504fac59000 */
+ L(-9.34157398616814623985483776710704237E-32), /* bf97e50ad1115b941fcb5f0c88a428f7 */
+  L(2.92968750000000019840235286110877063E-01), /* 3ffd2c000000000005b7f372d184f000 */
+  L(4.99302093775173155906059132992249671E-33), /* 3f939ecdcfb97bad3f8dbec5df5ec67d */
+  L(2.96875000000000015867911730971630513E-01), /* 3ffd3000000000000492d860c79db000 */
+  L(7.86107787827057767235127454590866211E-33), /* 3f944689517ee8f16cdb97d6a6938f32 */
+  L(3.00781250000000015814100002286124758E-01), /* 3ffd340000000000048edfe73a17d000 */
+ L(-1.65419431293024229981937172317171504E-32), /* bf9557900e3efca16c89646b57f68dc0 */
+  L(3.04687499999999985213157159965287195E-01), /* 3ffd37fffffffffffbbcec6f99b36000 */
+  L(9.68753602893894024018934325652944198E-32), /* 3f97f70170e5458660c33a7e8d43d049 */
+  L(3.08593749999999989969324338045156215E-01), /* 3ffd3bfffffffffffd1bdde4d0fb1000 */
+  L(7.10268609610294706092252562643261106E-32), /* 3f9770cae45cdf615010401a4b37d8d4 */
+  L(3.12500000000000002971606591018488854E-01), /* 3ffd40000000000000db440fbc06b000 */
+  L(6.38924218802905979887732294952782964E-32), /* 3f974bbf988bb5622bd8fbaa46e8b811 */
+  L(3.16406250000000006594921047402056305E-01), /* 3ffd44000000000001e69e8954814000 */
+  L(3.96079878754651470094149874444850097E-32), /* 3f969b5017b9fa7a1e86975258c73d3d */
+  L(3.20312500000000006713799366908329147E-01), /* 3ffd48000000000001ef64159c065000 */
+ L(-1.86401314975634286055150437995880517E-32), /* bf958323f0434911794e5fb8bfe136ba */
+  L(3.24218749999999987061246567584951210E-01), /* 3ffd4bfffffffffffc4549db9b928000 */
+ L(-3.18643523744758601387071062700407431E-32), /* bf964ae5fa7e26c2c3981bed12e14372 */
+  L(3.28124999999999991782776266707412953E-01), /* 3ffd4ffffffffffffda1ad0840ca8000 */
+ L(-4.46964199751314296839915534813144652E-32), /* bf96d0277729ffd74727150df6d15547 */
+  L(3.32031250000000000393816557756032682E-01), /* 3ffd540000000000001d0efc04fad000 */
+ L(-9.03246333902065439930373230002688649E-33), /* bf947731a008748cc6dee948839ef7ae */
+  L(3.35937499999999983810482995064392173E-01), /* 3ffd57fffffffffffb556cab8ae61000 */
+  L(5.27742727066129518825981597650621794E-32), /* 3f9712050a6ddbf1cabf1b971f4b5d0b */
+  L(3.39843750000000004310441349760912471E-01), /* 3ffd5c0000000000013e0def5ddc4000 */
+ L(-3.85927263474732591932884416445586106E-32), /* bf9690c51088ef3db9ca000829c450c2 */
+  L(3.43749999999999990248130003997484364E-01), /* 3ffd5ffffffffffffd3070624a0af000 */
+  L(9.62005170171527308106468341512327487E-34), /* 3f913fae595cea84432eb01430817fca */
+  L(3.47656250000000004085726414568625697E-01), /* 3ffd640000000000012d79309e291000 */
+ L(-6.59664093705705297250259434519072507E-32), /* bf97568465eafb0e662e64a5dbfaf35f */
+
+ L(-1.98364257812501251077851763965418372E-03), /* bff6040000000001cd90f658cf0b1000 */
+ L(-3.71984513103117734260309047540278737E-34), /* bf8fee73c54483194782aac4a6154d11 */
+ L(-1.95312500000000378520649630233891879E-03), /* bff60000000000008ba643bb5e2e8000 */
+ L(-1.12194202736719050440745599339855038E-34), /* bf8e2a436aeff7bc529873354f47a3f5 */
+ L(-1.92260742187499397430259771221991482E-03), /* bff5f7fffffffffe4361cb51170da000 */
+ L(-2.30068299876822157331268484824540848E-34), /* bf8f31d02f85cfe8c0cc02276ce0f437 */
+ L(-1.89208984375001137424603270262074989E-03), /* bff5f0000000000347456ed490c23000 */
+ L(-1.15012507244426243338260435466985403E-34), /* bf8e31c174d5677a937a34ad8d2a70b4 */
+ L(-1.86157226562500172319250342061336738E-03), /* bff5e800000000007f262fa3617b4000 */
+ L(-3.12438344643346437509767736937785561E-34), /* bf8f9f4d426a2457c273d34ef7d9bde9 */
+ L(-1.83105468749999505256246872355430379E-03), /* bff5dffffffffffe92f18c1c2b6fa000 */
+ L(-5.91130415288336591179087455220308942E-35), /* bf8d3a4c80b42dc036bae446c9807f78 */
+ L(-1.80053710937499445182387245573120522E-03), /* bff5d7fffffffffe669dea82b4a4c000 */
+ L(-1.92396289352411531324908916321392100E-34), /* bf8eff7a2123fb573ba9778550d669bd */
+ L(-1.77001953125000387737631542516323906E-03), /* bff5d000000000011e19915c3ddb7000 */
+  L(7.91101758977203355387806553469731354E-36), /* 3f8a507f5a70faaccf469e3461873dea */
+ L(-1.73950195312500034854670281415554486E-03), /* bff5c8000000000019b7dc6ef97bd000 */
+  L(1.55906551582436824067407021178835755E-34), /* 3f8e9e7880333e34955aebcde3cfb053 */
+ L(-1.70898437499998955782591472611429852E-03), /* bff5bffffffffffcfd80e88aa6b96000 */
+  L(8.22951661962611381718215899498500357E-35), /* 3f8db58e6031a779b59f6ece191de7cc */
+ L(-1.67846679687500586652037711131708544E-03), /* bff5b80000000001b0df6fd21c133000 */
+ L(-8.96642618848426299713145894522897419E-35), /* bf8ddcbcab46d531801bfae4121f2f8a */
+ L(-1.64794921875000109499161354039904782E-03), /* bff5b0000000000050cbce8915575000 */
+ L(-2.88077905394253859590587789680486639E-34), /* bf8f7eebd4dd860ef73b674d5e707959 */
+ L(-1.61743164062501133830507079150388351E-03), /* bff5a80000000003449e8700c3e82000 */
+ L(-3.68271725851639066312899986829350273E-34), /* bf8fe9845fe20a5fe74059e0cae185d6 */
+ L(-1.58691406249999015546015764131101956E-03), /* bff59ffffffffffd2999e668cdd28000 */
+  L(8.48197657099957029953716507898788812E-35), /* 3f8dc2faaebb97392e451b07b28c4b12 */
+ L(-1.55639648437500317366570219290722587E-03), /* bff5980000000000ea2cd9a40d256000 */
+ L(-3.45156704719737676412949957712570373E-36), /* bf8925a079505516c8e317ac1ff53255 */
+ L(-1.52587890625000568759013197767046039E-03), /* bff5900000000001a3ab8a3f6b698000 */
+ L(-1.01902948542497496574967177677556729E-34), /* bf8e0ee78d94d9b5ad3d63ae35c9b554 */
+ L(-1.49536132812500945889014955936485340E-03), /* bff5880000000002b9f1621b57743000 */
+ L(-3.32264697086631598830366079048117140E-34), /* bf8fb9a7d14c32289204fbb0c9eb20e0 */
+ L(-1.46484374999999931883259902869504725E-03), /* bff57fffffffffffcdbd1c90e1b4a000 */
+ L(-1.76487524793892929381101031660811433E-34), /* bf8ed52f2f724bc1ae870b18356337b4 */
+ L(-1.43432617187498876325946983333888768E-03), /* bff577fffffffffcc2dff8faa5570000 */
+ L(-3.54550084538495708816233114576143814E-34), /* bf8fd74724576915868c1e8ce9f430f1 */
+ L(-1.40380859374999215367421282192718062E-03), /* bff56ffffffffffdbd0b18aac65ed000 */
+ L(-1.90585907028351204486765167064669639E-34), /* bf8efaaa0c0e23e50c11b2120348054f */
+ L(-1.37329101562499692341771212945644892E-03), /* bff567ffffffffff1cfd00f1b0577000 */
+ L(-3.59631150411372589637918252836880320E-34), /* bf8fde08239ac74942a46298ea4fb715 */
+ L(-1.34277343749999137467356674296739172E-03), /* bff55ffffffffffd839030b05d53d000 */
+ L(-1.49571076125940368185068762485268117E-35), /* bf8b3e1a3d5c684b27a9f835b1d8d3c9 */
+ L(-1.31225585937499247038404301859788734E-03), /* bff557fffffffffdd469936e691e3000 */
+  L(3.10375845385355395586146533282311300E-34), /* 3f8f9c8f6d63b7a4145716ffd92491fb */
+ L(-1.28173828124999024755581675764821898E-03), /* bff54ffffffffffd306589b0ab21d000 */
+ L(-1.98541096105909793397376077900810019E-34), /* bf8f07e808bbb1e35106c294ffbb9687 */
+ L(-1.25122070312500340204619591143332523E-03), /* bff5480000000000fb06d5f16ad2c000 */
+  L(3.62884195935761446237911443317457521E-34), /* 3f8fe25b17d623178a386a6fa6c5afb2 */
+ L(-1.22070312499999591578388993012071279E-03), /* bff53ffffffffffed2a356c440074000 */
+ L(-2.96756662615653130862526710937493307E-35), /* bf8c3b90d8ff2a991e5bd16718fb0645 */
+ L(-1.19018554687498821966212632349422735E-03), /* bff537fffffffffc9ac3b585dda89000 */
+  L(1.44659971891167323357060028901142644E-34), /* 3f8e809279ab249edf1dad9fe13fb0bf */
+ L(-1.15966796875000160938908064907298384E-03), /* bff530000000000076c0800db9639000 */
+  L(2.50088010538742402346270685365928513E-34), /* 3f8f4c6c8a483b60201d30c1a83c3cb7 */
+ L(-1.12915039062500267151512523291939657E-03), /* bff5280000000000c51f7e7315137000 */
+  L(7.56402096465615210500092443924888831E-35), /* 3f8d922c1e485d99aea2668ed32b55a6 */
+ L(-1.09863281249998665006360103291051571E-03), /* bff51ffffffffffc26f2d4c9ce2ba000 */
+  L(1.43982174467233642713619821353592061E-34), /* 3f8e7ec530b3d92b6303bec1c81214d1 */
+ L(-1.06811523437500522742248711752028025E-03), /* bff518000000000181b7380f10446000 */
+  L(5.41265133745862349181293024531133174E-35), /* 3f8d1fc9313d018b30e790e06b6be723 */
+ L(-1.03759765624999980942114138999770552E-03), /* bff50ffffffffffff1f01130490e1000 */
+  L(1.21525139612685854366189534669623436E-34), /* 3f8e4311b96b6fcde412caf3f0d86fb9 */
+ L(-1.00708007812499602697537601515759439E-03), /* bff507fffffffffedad7afcce7051000 */
+  L(1.00020246351201558505328236381833392E-34), /* 3f8e09e640992512b1300744a7e984ed */
+ L(-9.76562499999992592487302113340463694E-04), /* bff4fffffffffffbbad8151f8adf6000 */
+ L(-1.64984406575162932060422892046851002E-34), /* bf8eb69a919986e8054b86fc34300f24 */
+ L(-9.46044921874989085824996924138179594E-04), /* bff4effffffffff9b55a204fd9792000 */
+ L(-9.29539174108308550334255350011347171E-35), /* bf8dee3a50ed896b4656fa577a1df3d7 */
+ L(-9.15527343750013735214860599791540029E-04), /* bff4e00000000007eaf5bf103f82d000 */
+  L(3.07557018309280519949818825519490586E-35), /* 3f8c470cfbef77d32c74cb8042f6ee81 */
+ L(-8.85009765625012292294986105781516428E-04), /* bff4d000000000071605c65403b97000 */
+  L(4.77499983783821950338363358545463558E-35), /* 3f8cfbc3dc18884c4c4f9e07d90d7bd3 */
+ L(-8.54492187499986941239470706817188192E-04), /* bff4bffffffffff878ddf9cab264a000 */
+ L(-1.60128240346239526958630011447901568E-34), /* bf8ea9b1a21e19e2d5bd84b0fbffcf95 */
+ L(-8.23974609374996290174598690241743810E-04), /* bff4affffffffffddc86c249ebe06000 */
+  L(1.61677540391961912631535763471935882E-34), /* 3f8eadd00841366b0dc2bc262c2c8c36 */
+ L(-7.93457031249988696952538334288757473E-04), /* bff49ffffffffff97bf6f0aa85a5f000 */
+  L(1.22318577008381887076634753347515709E-34), /* 3f8e452db5b5d250878f71040da06d14 */
+ L(-7.62939453124996723316499040007097041E-04), /* bff48ffffffffffe1c7265b431108000 */
+ L(-1.03845161748762410745671891558398468E-34), /* bf8e14115ad884c96d1a820c73647220 */
+ L(-7.32421874999998242520117923997325794E-04), /* bff47ffffffffffefca4498b7aa8a000 */
+  L(5.64005211953031009549514026639438083E-35), /* 3f8d2be06950f68f1a6d8ff829a6928e */
+ L(-7.01904296874999772890934814265622012E-04), /* bff46fffffffffffde7c0fe5d8041000 */
+  L(5.90245467325173644235991233229525762E-35), /* 3f8d39d40cc49002189243c194b1db0e */
+ L(-6.71386718750008699269643939210658742E-04), /* bff460000000000503c91d798b60c000 */
+ L(-5.20515801723324452151498579012322191E-35), /* bf8d14c0f08a6a9285b32b8bda003eb5 */
+ L(-6.40869140625005499535275057463709988E-04), /* bff45000000000032b969184e9751000 */
+ L(-6.69469163285461870099846471658294534E-35), /* bf8d63f36bab7b24d936c9380e3d3fa6 */
+ L(-6.10351562499999293780097329596079841E-04), /* bff43fffffffffff97c7c433e35ed000 */
+ L(-1.16941808547394177991845382085515086E-34), /* bf8e36e27886f10b234a7dd8fc588bf0 */
+ L(-5.79833984375000068291972326409994795E-04), /* bff43000000000000a13ff6dcf2bf000 */
+  L(1.17885044988246219185041488459766001E-34), /* 3f8e3964677e001a00412aab52790842 */
+ L(-5.49316406249990904622170867910987793E-04), /* bff41ffffffffffac1c25739c716b000 */
+ L(-3.31875702128137033065075734368960972E-35), /* bf8c60e928d8982c3c99aef4f885a121 */
+ L(-5.18798828125011293653756992177727236E-04), /* bff410000000000682a62cff36775000 */
+ L(-5.69971237642088463334239430962628187E-35), /* bf8d2f0c76f8757d61cd1abc7ea7d066 */
+ L(-4.88281249999990512232251384917893121E-04), /* bff3fffffffffff50fb48992320df000 */
+  L(1.02144616714408655325510171265051108E-35), /* 3f8ab279a3626612710b9b3ac71734ac */
+ L(-4.57763671874997554564967307956493434E-04), /* bff3dffffffffffd2e3c272e3cca9000 */
+ L(-8.25484058867957231164162481843653503E-35), /* bf8db6e71158e7bf93e2e683f07aa841 */
+ L(-4.27246093749991203999790346349633286E-04), /* bff3bffffffffff5dbe103cba0eb2000 */
+ L(-3.51191203319375193921924105905691755E-35), /* bf8c757356d0f3dd7fbefc0dd419ab50 */
+ L(-3.96728515624986649402960638705483281E-04), /* bff39ffffffffff09b996882706ec000 */
+ L(-5.51925962073095883016589497244931171E-36), /* bf89d586d49f22289cfc860bebb99056 */
+ L(-3.66210937499999945095511981300980754E-04), /* bff37fffffffffffefcb88bfc7df6000 */
+ L(-2.11696465278144529364423332249588595E-35), /* bf8bc23a84d28e5496c874ef9833be25 */
+ L(-3.35693359374992480958458008559640163E-04), /* bff35ffffffffff754c548a8798f2000 */
+ L(-8.58941791799705081104736787493668352E-35), /* bf8dc8b1192fb7c3662826d43acb7c68 */
+ L(-3.05175781250009811036303273640122156E-04), /* bff340000000000b4fb4f1aad1c76000 */
+ L(-8.61173897858769926480551302277426632E-35), /* bf8dc9e0eabb1c0b33051011b64769fa */
+ L(-2.74658203124987298321920308390303850E-04), /* bff31ffffffffff15b2056ac252fd000 */
+  L(3.35152809454778381053519808988046631E-37), /* 3f85c82fb59ff8d7c80d44e635420ab1 */
+ L(-2.44140624999999992770514819575735516E-04), /* bff2fffffffffffffbbb82d6a7636000 */
+  L(3.54445837111124472730013879165516908E-35), /* 3f8c78e955b01378be647b1c92aa9a77 */
+ L(-2.13623046875012756463165168672749438E-04), /* bff2c0000000001d6a1635fea6bbf000 */
+  L(1.50050816288650121729916777279129473E-35), /* 3f8b3f1f6f616a61129a58e131cbd31d */
+ L(-1.83105468749991323078784464300306893E-04), /* bff27fffffffffebfe0cbd0c82399000 */
+ L(-9.14919506501448661140572099029756008E-37), /* bf873754bacaa9d9513b6127e791eb47 */
+ L(-1.52587890625013337032336300236461546E-04), /* bff240000000001ec0cb57f2cc995000 */
+  L(2.84906084373176180870418394956384516E-35), /* 3f8c2ef6d03a7e6ab087c4f099e4de89 */
+ L(-1.22070312499990746786116828458007518E-04), /* bff1ffffffffffd553bbb49f35a34000 */
+  L(6.71618008964968339584520728412444537E-36), /* 3f8a1dacb99c60071fc9cd2349495bf0 */
+ L(-9.15527343750029275602791047595142231E-05), /* bff180000000000d8040cd6ecde28000 */
+ L(-1.95753652091078750312541716951402172E-35), /* bf8ba0526cfb24d8d59122f1c7a09a14 */
+ L(-6.10351562499913258461494008080572701E-05), /* bff0ffffffffffaffebbb92d7f6a9000 */
+  L(5.69868489273961111703398456218119973E-36), /* 3f89e4ca5df09ef4a4386dd5b3bf0331 */
+ L(-3.05175781250092882818419203884960853E-05), /* bff0000000000055ab55de88fac1d000 */
+  L(9.03341100018476837609128961872915953E-36), /* 3f8a803d229fa3a0e834a63abb06662b */
+#define T_EXPL_ARG2 (2*T_EXPL_ARG1 + 2 + 2*65)
+  L(0.00000000000000000000000000000000000E+00), /* 00000000000000000000000000000000 */
+  L(0.00000000000000000000000000000000000E+00), /* 00000000000000000000000000000000 */
+  L(3.05175781249814607084128277672749162E-05), /* 3feffffffffffeaa02abb9102f499000 */
+  L(1.00271855391179733380665816525889949E-36), /* 3f8755351afa042ac3f58114824d4c10 */
+  L(6.10351562500179243748093427073421439E-05), /* 3ff1000000000052a95de07a4c26d000 */
+  L(1.67231624299180373502350811501181670E-36), /* 3f881c87a53691cae9d77f4e40d66616 */
+  L(9.15527343749970728685313252158399200E-05), /* 3ff17ffffffffff28040cc2acde28000 */
+  L(2.43665747834893104318707597514407880E-36), /* 3f889e9366c7c6c6a2ecb78dc9b0509e */
+  L(1.22070312500027751961838150070880064E-04), /* 3ff200000000003ffddde6c153b53000 */
+ L(-1.73322146370624186623546452226755405E-35), /* bf8b709d8d658ed5dbbe943de56ee84e */
+  L(1.52587890624995916105682628143179430E-04), /* 3ff23ffffffffff6954b56e285d23000 */
+  L(1.23580432650945898349135528000443828E-35), /* 3f8b06d396601dde16de7d7bc27346e6 */
+  L(1.83105468750008670314358488289621794E-04), /* 3ff2800000000013fe0cdc8c823b7000 */
+  L(4.30446229148833293310207915930740796E-35), /* 3f8cc9ba9bfe554a4f7f2fece291eb23 */
+  L(2.13623046875005741337455947623248132E-04), /* 3ff2c0000000000d3d1662de21a3f000 */
+ L(-3.96110759869520786681660669615255057E-35), /* bf8ca5379b04ff4a31aab0ceacc917e6 */
+  L(2.44140624999981493573336463433440506E-04), /* 3ff2ffffffffffd553bbdf48e0534000 */
+ L(-1.39617373942387888957350179316792928E-35), /* bf8b28eeedc286015802b63f96b8c5cd */
+  L(2.74658203124984920706309918754626834E-04), /* 3ff31fffffffffee9d60c8439ec1d000 */
+ L(-3.16168080483901830349738314447356223E-36), /* bf890cf74f81c77a611abc1243812444 */
+  L(3.05175781250008648918265055410966055E-04), /* 3ff3400000000009f8b5c9a346636000 */
+  L(8.54421306185008998867856704677221443E-35), /* 3f8dc649cd40922fc08adc6b6b20ead0 */
+  L(3.35693359374988945462612499316774515E-04), /* 3ff35ffffffffff34146c540f15b2000 */
+  L(7.96443137431639500475160850431097078E-35), /* 3f8da77638ed3148fc4d99d1c9e13446 */
+  L(3.66210937500027690542093987739604535E-04), /* 3ff380000000001fecce34bea89c4000 */
+  L(2.14507323877752361258862577769090367E-35), /* 3f8bc834e554d38894cf91957b0253d3 */
+  L(3.96728515625003928083564943615052121E-04), /* 3ff3a00000000004875d9a4acf6ab000 */
+  L(4.88358523466632050664019922448605508E-35), /* 3f8d03a7eaeef1a9f78c71a12c44dd28 */
+  L(4.27246093750017799227172345607351585E-04), /* 3ff3c00000000014856794c3ee850000 */
+  L(6.66520494592631402182216588784828935E-35), /* 3f8d6262118fcdb59b8f16108f5f1a6c */
+  L(4.57763671875002108342364320152138181E-04), /* 3ff3e000000000026e45d855410b9000 */
+  L(7.21799615960261390920033272189522298E-35), /* 3f8d7fc645cff8879462296af975c9fd */
+  L(4.88281249999999768797631616370963356E-04), /* 3ff3ffffffffffffbbc2d7cc004df000 */
+ L(-5.30564629906905979452258114088325361E-35), /* bf8d1a18b71929a30d67a217a27ae851 */
+  L(5.18798828124997339054881383202487041E-04), /* 3ff40ffffffffffe775055eea5851000 */
+ L(-4.03682911253647925867848180522846377E-35), /* bf8cad44f0f3e5199d8a589d9332acad */
+  L(5.49316406249980511907933706754958501E-04), /* 3ff41ffffffffff4c410b29bb62fb000 */
+ L(-2.08166843948323917121806956728438051E-35), /* bf8bbab8cf691403249fe5b699e25143 */
+  L(5.79833984374989593561576568548497165E-04), /* 3ff42ffffffffffa0047df328d817000 */
+ L(-1.72745033420153042445343706432627539E-34), /* bf8ecb3c2d7d3a9e6e960576be901fdf */
+  L(6.10351562500008540711511259540838154E-04), /* 3ff4400000000004ec62f54f8c271000 */
+  L(7.41889382604319545724663095428976499E-35), /* 3f8d8a74c002c81a47c93b8e05d15f8e */
+  L(6.40869140625020444702875407535884986E-04), /* 3ff450000000000bc91b09718515d000 */
+ L(-4.47321009727305792048065440180490107E-35), /* bf8cdbac5c8fe70822081d8993eb5cb6 */
+  L(6.71386718750007531635964622352684074E-04), /* 3ff460000000000457792973db05c000 */
+  L(5.13698959677949336513874456684462092E-35), /* 3f8d112114436949c5ef38d8049004ab */
+  L(7.01904296875006634673332887754430334E-04), /* 3ff4700000000003d31adf2cb8b1d000 */
+ L(-8.25665755717729437292989870760751482E-35), /* bf8db6ffcc8ef71f8e648e3a8b160f5a */
+  L(7.32421874999998244664170215504673504E-04), /* 3ff47ffffffffffefcf5498bd5c8a000 */
+ L(-5.64005234937832153139057628112753364E-35), /* bf8d2be06a1dfe90e7bf90fba7c12a98 */
+  L(7.62939453125017456345986752604096408E-04), /* 3ff490000000000a101a1b093d4a8000 */
+ L(-1.11084094120417622468550608896588329E-34), /* bf8e274feabd2d94f6694507a46accb1 */
+  L(7.93457031249987558617598988993908016E-04), /* 3ff49ffffffffff8d3f9dcab74bbf000 */
+ L(-1.22966480225449015129079129940978828E-34), /* bf8e46e6a65eef8fa9e42eddf3da305e */
+  L(8.23974609374997378723747633335135819E-04), /* 3ff4affffffffffe7d2afbaa55b26000 */
+ L(-1.62270010016794279091906973366704963E-34), /* bf8eaf633f057ebdb664a34566401c4e */
+  L(8.54492187500023938282350821569920958E-04), /* 3ff4c0000000000dccaabce399e59000 */
+ L(-1.39076361712838158775374263169606160E-34), /* bf8e71ba779364b3bbdba7841f2c4ca1 */
+  L(8.85009765624987932362186815286691297E-04), /* 3ff4cffffffffff90b218886edc2a000 */
+  L(4.07328275060905585228261577392403980E-35), /* 3f8cb1254dbb6ea4b8cfa5ed4cf28d24 */
+  L(9.15527343749975579461305518559161974E-04), /* 3ff4dffffffffff1ec2a21f25df33000 */
+  L(1.16855112459192484947855553716334015E-35), /* 3f8af10bf319e9f5270cf249eeffbe5c */
+  L(9.46044921875016761584725882821122521E-04), /* 3ff4f00000000009a992c46c16d71000 */
+  L(9.51660680007524262741115611071680436E-35), /* 3f8df9fd56e81f8edf133843910ee831 */
+  L(9.76562499999974118878133088548272636E-04), /* 3ff4fffffffffff1149edc46a6df6000 */
+ L(-5.65271128977550656964071208289181661E-36), /* bf89e0e12689dd721aa2314c81eb6429 */
+  L(1.00708007812498671732140389760347830E-03), /* 3ff507fffffffffc2be94b90ed091000 */
+ L(-1.43355074891483635310132767255371379E-34), /* bf8e7d1a688c247b16022daab1316d55 */
+  L(1.03759765625002637786192745235343007E-03), /* 3ff51000000000079a57b966bc158000 */
+  L(2.95905815240957629366749917020106928E-34), /* 3f8f895387fc73bb38f8a1b254c01a60 */
+  L(1.06811523437500860568717813047520763E-03), /* 3ff51800000000027afcd5b35f5e6000 */
+ L(-5.98328495358586628195372356742878314E-35), /* bf8d3e204130013bf6328f1b70ff8c76 */
+  L(1.09863281250001439958487251556220070E-03), /* 3ff5200000000004268077c6c66bd000 */
+  L(2.41371837889426603334113000868144760E-34), /* 3f8f40d6948edf864054ccf151f9815e */
+  L(1.12915039062501298413451613770002366E-03), /* 3ff5280000000003be0f5dd8fe81b000 */
+ L(-1.28815268997394164973472617519705703E-34), /* bf8e567321172ea089dce4bc8354ecb7 */
+  L(1.15966796874997272036339054191407232E-03), /* 3ff52ffffffffff8231e3bcfff1e8000 */
+  L(1.02996064554316248496839462594377804E-34), /* 3f8e11cf7d402789244f68e2d4f985b1 */
+  L(1.19018554687502744121802585360546796E-03), /* 3ff5380000000007e8cdf3f8f6c20000 */
+ L(-1.43453217726255628994625761307322163E-34), /* bf8e7d5d3370d85a374f5f4802fc517a */
+  L(1.22070312499997743541996266398850614E-03), /* 3ff53ffffffffff97f0722561f454000 */
+ L(-1.41086259180534339713692694428211646E-34), /* bf8e77125519ff76244dfec5fbd58402 */
+  L(1.25122070312501024092560690174507039E-03), /* 3ff5480000000002f3a59d8820691000 */
+  L(3.84102646020099293168698506729765213E-34), /* 3f8ffe8f5b86f9c3569c8f26e19b1f50 */
+  L(1.28173828124997986521442660131425390E-03), /* 3ff54ffffffffffa3250a764439d9000 */
+  L(1.44644589735033114377952806106652650E-34), /* 3f8e808801b80dcf38323cdbfdca2549 */
+  L(1.31225585937501665804856968749058137E-03), /* 3ff5580000000004cd25a414c6d62000 */
+  L(1.67474574742200577294563576414361377E-34), /* 3f8ebd394a151dbda4f81d5d83c0f1e9 */
+  L(1.34277343749997290265837386401818888E-03), /* 3ff55ffffffffff83091b042cfd59000 */
+ L(-1.55650565030381326742591837551559103E-34), /* bf8e9dca490d7fecfadba9625ffb91c5 */
+  L(1.37329101562497720784949380297774268E-03), /* 3ff567fffffffff96e3c7312f5ccf000 */
+  L(1.65279335325630026116581677369221748E-34), /* 3f8eb763496f5bd7404f2298b402074f */
+  L(1.40380859374999099958354100336136647E-03), /* 3ff56ffffffffffd67e2f09f2a381000 */
+  L(1.89919944388961890195706641264717076E-34), /* 3f8ef8e4d0ffdfeba982aa8829501389 */
+  L(1.43432617187497484122173130998160625E-03), /* 3ff577fffffffff8bf9c1d71af8a8000 */
+  L(2.57638517142061429772064578590009568E-34), /* 3f8f5675d82c1cc4ada70fd3a957b89a */
+  L(1.46484374999999929342158925502052945E-03), /* 3ff57fffffffffffcbdd1c7671b46000 */
+  L(1.76487201934184070490166772482073801E-34), /* 3f8ed52ef732458f6e4c5c07504f33cc */
+  L(1.49536132812502318451070466256902933E-03), /* 3ff5880000000006aeb7066c8ad43000 */
+  L(2.38068367275295804321313550609246656E-34), /* 3f8f3c7277ae6fc390ace5e06c0b025b */
+  L(1.52587890625000448053340248672949543E-03), /* 3ff59000000000014a9ae2104b3bc000 */
+  L(1.01174455568392813258454590274740959E-34), /* 3f8e0cf7c434762991bb38e12acee215 */
+  L(1.55639648437501113499837053523090913E-03), /* 3ff5980000000003359e2c204355e000 */
+ L(-2.82398418808099749023517211651363693E-35), /* bf8c2c4c2971d88caa95e15fb1ccb1a1 */
+  L(1.58691406249999937955142588308171026E-03), /* 3ff59fffffffffffd2380ecbc87c2000 */
+ L(-1.27361695572422741562701199136538047E-34), /* bf8e5295e0e206dfb0f0266c07225448 */
+  L(1.61743164062498000531048954475329309E-03), /* 3ff5a7fffffffffa3ca6fe61ed94c000 */
+ L(-1.22606548862580061633942923016222044E-34), /* bf8e45f1b17bb61039d21a351bb207b8 */
+  L(1.64794921875001835451453858682255576E-03), /* 3ff5b000000000054a52fa20f6565000 */
+  L(1.39132339594152335892305491425264583E-34), /* 3f8e71e0904c5449b414ee49b191cef2 */
+  L(1.67846679687501263995029340691547953E-03), /* 3ff5b80000000003a4a9e912c910b000 */
+  L(6.67245854693585315412242764786197029E-35), /* 3f8d62c4ccac1e7511a617d469468ccd */
+  L(1.70898437500002646861403514115369655E-03), /* 3ff5c00000000007a109fbaa7e015000 */
+  L(6.87367172354719289559624829652240928E-36), /* 3f8a245fa835eceb42bae8128d9336db */
+  L(1.73950195312501174308226096992992128E-03), /* 3ff5c80000000003627c8d637a005000 */
+ L(-2.20824271875474985927385878948759352E-34), /* bf8f25869b1cbefb25e735992f232f57 */
+  L(1.77001953124997491747605207736194513E-03), /* 3ff5cffffffffff8c53c84b6883b8000 */
+  L(3.43123048533596296514343180408963705E-34), /* 3f8fc816b91d173ddadbbf09b1287906 */
+  L(1.80053710937497698911127570705069398E-03), /* 3ff5d7fffffffff95e1899f4a8430000 */
+  L(3.99231237340890073475077494556136100E-35), /* 3f8ca889148f62fa854da5674df41279 */
+  L(1.83105468750002267094899598630423914E-03), /* 3ff5e0000000000688d21e62ba674000 */
+ L(-3.22274595655810623999007524769365273E-34), /* bf8fac605cb9ae01eb719675ced25560 */
+  L(1.86157226562500499224728040579690330E-03), /* 3ff5e80000000001705ce28a6d89e000 */
+  L(3.07094985075881613489605622068441083E-34), /* 3f8f98330225ec7e2c8f3c0d1c432b91 */
+  L(1.89208984374998234666824993196980949E-03), /* 3ff5effffffffffae969fdc7cd8cf000 */
+ L(-3.06287628722973914692165056776495733E-34), /* bf8f9720477d9cfa10e464df7f91020c */
+  L(1.92260742187501225343755557292811682E-03), /* 3ff5f800000000038824e428ed49a000 */
+  L(6.30049124729794620592961282769623368E-35), /* 3f8d4efdd7cd4336d88a6aa49e1e96bc */
+  L(1.95312499999998514894032051116231258E-03), /* 3ff5fffffffffffbb82f6a04f1ae0000 */
+ L(-6.14610057507500948543216998736262902E-35), /* bf8d46c862d39255370e7974d48daa7e */
+  L(1.98364257812501222021119324146882732E-03), /* 3ff6040000000001c2d8a1aa5188d000 */
+  L(3.71942298418113774118754986159801984E-34), /* 3f8fee6567d9940495519ffe62cbc9a4 */
+
+  L(7.06341639425619532977052017486130353E-01), /* 3ffe69a59c8245a9ac00000000000000 */
+  L(7.09106182437398424589503065362805501E-01), /* 3ffe6b0ff72deb89d000000000000000 */
+  L(7.11881545564596485142772053222870454E-01), /* 3ffe6c7bbce9a6d93000000000000000 */
+  L(7.14667771155948150507697391731198877E-01), /* 3ffe6de8ef213d71e000000000000000 */
+  L(7.17464901725936049503573599395167548E-01), /* 3ffe6f578f41e1a9e400000000000000 */
+  L(7.20272979955439790478166628417966422E-01), /* 3ffe70c79eba33c06c00000000000000 */
+  L(7.23092048692387218133958981525211129E-01), /* 3ffe72391efa434c7400000000000000 */
+  L(7.25922150952408251622927082280511968E-01), /* 3ffe73ac117390acd800000000000000 */
+  L(7.28763329919491220643124052003258839E-01), /* 3ffe752077990e79d000000000000000 */
+  L(7.31615628946641782803794740175362676E-01), /* 3ffe769652df22f7e000000000000000 */
+  L(7.34479091556544505525749855223693885E-01), /* 3ffe780da4bba98c4800000000000000 */
+  L(7.37353761442226890432394270646909717E-01), /* 3ffe79866ea5f432d400000000000000 */
+  L(7.40239682467726090031590047146892175E-01), /* 3ffe7b00b216ccf53000000000000000 */
+  L(7.43136898668758316688354170764796436E-01), /* 3ffe7c7c70887763c000000000000000 */
+  L(7.46045454253390638577059235103661194E-01), /* 3ffe7df9ab76b20fd000000000000000 */
+  L(7.48965393602715662213498148958024103E-01), /* 3ffe7f78645eb8076400000000000000 */
+  L(7.51896761271528629722027403659012634E-01), /* 3ffe80f89cbf42526400000000000000 */
+  L(7.54839601989007347171423134568613023E-01), /* 3ffe827a561889716000000000000000 */
+  L(7.57793960659394638668118204805068672E-01), /* 3ffe83fd91ec46ddc000000000000000 */
+  L(7.60759882362683631518152083117456641E-01), /* 3ffe858251bdb68b8c00000000000000 */
+  L(7.63737412355305483879774897104653064E-01), /* 3ffe87089711986c9400000000000000 */
+  L(7.66726596070820082262642358728044201E-01), /* 3ffe8890636e31f54400000000000000 */
+  L(7.69727479120609181517664865168626420E-01), /* 3ffe8a19b85b4fa2d800000000000000 */
+  L(7.72740107294572486917871856348938309E-01), /* 3ffe8ba4976246833800000000000000 */
+  L(7.75764526561826289752232810315035749E-01), /* 3ffe8d31020df5be4400000000000000 */
+  L(7.78800783071404878477039801509818062E-01), /* 3ffe8ebef9eac820b000000000000000 */
+  L(7.81848923152964780936002853195532225E-01), /* 3ffe904e8086b5a87800000000000000 */
+  L(7.84908993317491698871180005880887620E-01), /* 3ffe91df97714512d800000000000000 */
+  L(7.87981040258010162480317717381694820E-01), /* 3ffe9372403b8d6bcc00000000000000 */
+  L(7.91065110850296016042904057030682452E-01), /* 3ffe95067c78379f2800000000000000 */
+  L(7.94161252153591734614934694036492147E-01), /* 3ffe969c4dbb800b4800000000000000 */
+  L(7.97269511411324433014513601847284008E-01), /* 3ffe9833b59b38154400000000000000 */
+  L(8.00389936051826789142893403550260700E-01), /* 3ffe99ccb5aec7bec800000000000000 */
+  L(8.03522573689060742863077280162542593E-01), /* 3ffe9b674f8f2f3d7c00000000000000 */
+  L(8.06667472123343942680406826184480451E-01), /* 3ffe9d0384d70893f800000000000000 */
+  L(8.09824679342079301047618855591281317E-01), /* 3ffe9ea15722892c7800000000000000 */
+  L(8.12994243520486992160556383169023320E-01), /* 3ffea040c80f8374f000000000000000 */
+  L(8.16176213022339780422953481320291758E-01), /* 3ffea1e1d93d687d0000000000000000 */
+  L(8.19370636400700819157449927843117621E-01), /* 3ffea3848c4d49954c00000000000000 */
+  L(8.22577562398664585696650419777142815E-01), /* 3ffea528e2e1d9f09800000000000000 */
+  L(8.25797039950100647542896581398963463E-01), /* 3ffea6cede9f70467c00000000000000 */
+  L(8.29029118180400342863478613253391813E-01), /* 3ffea876812c0877bc00000000000000 */
+  L(8.32273846407226292054559735333896242E-01), /* 3ffeaa1fcc2f45343800000000000000 */
+  L(8.35531274141265073440720811959181447E-01), /* 3ffeabcac15271a2a400000000000000 */
+  L(8.38801451086982535754188461396552157E-01), /* 3ffead7762408309bc00000000000000 */
+  L(8.42084427143382358016410194068157580E-01), /* 3ffeaf25b0a61a7b4c00000000000000 */
+  L(8.45380252404767357221615498019673396E-01), /* 3ffeb0d5ae318680c400000000000000 */
+  L(8.48688977161503960155997106085123960E-01), /* 3ffeb2875c92c4c99400000000000000 */
+  L(8.52010651900789478530029441571969073E-01), /* 3ffeb43abd7b83db1c00000000000000 */
+  L(8.55345327307422548246407245642330963E-01), /* 3ffeb5efd29f24c26400000000000000 */
+  L(8.58693054264576483003423845730139874E-01), /* 3ffeb7a69db2bcc77800000000000000 */
+  L(8.62053883854575708767242758767679334E-01), /* 3ffeb95f206d17228000000000000000 */
+  L(8.65427867359675251357487013592617586E-01), /* 3ffebb195c86b6b29000000000000000 */
+  L(8.68815056262843166123843730019871145E-01), /* 3ffebcd553b9d7b62000000000000000 */
+  L(8.72215502248546159513864495238522068E-01), /* 3ffebe9307c271855000000000000000 */
+  L(8.75629257203538208242932228131394368E-01), /* 3ffec0527a5e384ddc00000000000000 */
+  L(8.79056373217652342599848225290770642E-01), /* 3ffec213ad4c9ed0d800000000000000 */
+  L(8.82496902584595399599010079327854328E-01), /* 3ffec3d6a24ed8221800000000000000 */
+  L(8.85950897802745995779361010136199184E-01), /* 3ffec59b5b27d9696800000000000000 */
+  L(8.89418411575955636383383762222365476E-01), /* 3ffec761d99c5ba58800000000000000 */
+  L(8.92899496814352794382685374330321793E-01), /* 3ffec92a1f72dd70d400000000000000 */
+  L(8.96394206635150403439382671422208659E-01), /* 3ffecaf42e73a4c7d800000000000000 */
+  L(8.99902594363456265202927397695020773E-01), /* 3ffeccc00868c0d18800000000000000 */
+  L(9.03424713533086704009278378180169966E-01), /* 3ffece8daf1e0ba94c00000000000000 */
+  L(9.06960617887383580004723171441582963E-01), /* 3ffed05d24612c2af000000000000000 */
+  L(9.10510361380034133338412516422977205E-01), /* 3ffed22e6a0197c02c00000000000000 */
+  L(9.14073998175894436579724811053893063E-01), /* 3ffed40181d094303400000000000000 */
+  L(9.17651582651815816982221463149471674E-01), /* 3ffed5d66da13970f400000000000000 */
+  L(9.21243169397474526149949269893113524E-01), /* 3ffed7ad2f48737a2000000000000000 */
+  L(9.24848813216204823639543519675498828E-01), /* 3ffed985c89d041a3000000000000000 */
+  L(9.28468569125835141431224428743007593E-01), /* 3ffedb603b7784cd1800000000000000 */
+  L(9.32102492359527579068867453315760940E-01), /* 3ffedd3c89b26894e000000000000000 */
+  L(9.35750638366620729469147477175283711E-01), /* 3ffedf1ab529fdd41c00000000000000 */
+  L(9.39413062813475779888605643463961314E-01), /* 3ffee0fabfbc702a3c00000000000000 */
+  L(9.43089821584325888048638830696290825E-01), /* 3ffee2dcab49ca51b400000000000000 */
+  L(9.46780970782128888929563004239753354E-01), /* 3ffee4c079b3f8000400000000000000 */
+  L(9.50486566729423443256052905780961737E-01), /* 3ffee6a62cdec7c7b000000000000000 */
+  L(9.54206665969188322362626308859034907E-01), /* 3ffee88dc6afecfbfc00000000000000 */
+  L(9.57941325265705301283958306157728657E-01), /* 3ffeea77490f0196b000000000000000 */
+  L(9.61690601605425299247542625380447134E-01), /* 3ffeec62b5e5881fb000000000000000 */
+  L(9.65454552197837823079851204965962097E-01), /* 3ffeee500f1eed967000000000000000 */
+  L(9.69233234476344074348475032820715569E-01), /* 3ffef03f56a88b5d7800000000000000 */
+  L(9.73026706099133165128733935489435680E-01), /* 3ffef2308e71a927a800000000000000 */
+  L(9.76835024950062025261843245971249416E-01), /* 3ffef423b86b7ee79000000000000000 */
+  L(9.80658249139538557015427500118676107E-01), /* 3ffef618d68936c09c00000000000000 */
+  L(9.84496437005408397968864164795377292E-01), /* 3ffef80feabfeefa4800000000000000 */
+  L(9.88349647113845042323276857132441364E-01), /* 3ffefa08f706bbf53800000000000000 */
+  L(9.92217938260243514925207364285597578E-01), /* 3ffefc03fd56aa225000000000000000 */
+  L(9.96101369470117486981664001177705359E-01), /* 3ffefe00ffaabffbbc00000000000000 */
+#define T_EXPL_RES1 (T_EXPL_ARG2 + 2 + 2*65 + 89)
+  L(1.00000000000000000000000000000000000E+00), /* 3fff0000000000000000000000000000 */
+  L(1.00391388933834757590801700644078664E+00), /* 3fff0100802ab5577800000000000000 */
+  L(1.00784309720644799091004983893071767E+00), /* 3fff0202015600445c00000000000000 */
+  L(1.01178768355933151879000320150225889E+00), /* 3fff0304848362076c00000000000000 */
+  L(1.01574770858668572692806719715008512E+00), /* 3fff04080ab55de39000000000000000 */
+  L(1.01972323271377413034244341361045372E+00), /* 3fff050c94ef7a206c00000000000000 */
+  L(1.02371431660235789884438872832106426E+00), /* 3fff06122436410dd000000000000000 */
+  L(1.02772102115162167201845022646011785E+00), /* 3fff0718b98f42085000000000000000 */
+  L(1.03174340749910264936062276319717057E+00), /* 3fff08205601127ec800000000000000 */
+  L(1.03578153702162378824169763902318664E+00), /* 3fff0928fa934ef90800000000000000 */
+  L(1.03983547133622999947277776300325058E+00), /* 3fff0a32a84e9c1f5800000000000000 */
+  L(1.04390527230112850620713516036630608E+00), /* 3fff0b3d603ca7c32800000000000000 */
+  L(1.04799100201663270004459604933799710E+00), /* 3fff0c49236829e8bc00000000000000 */
+  L(1.05209272282610977189420964350574650E+00), /* 3fff0d55f2dce5d1e800000000000000 */
+  L(1.05621049731693195106174698594259098E+00), /* 3fff0e63cfa7ab09d000000000000000 */
+  L(1.06034438832143151909548350886325352E+00), /* 3fff0f72bad65671b800000000000000 */
+  L(1.06449445891785943185681162503897212E+00), /* 3fff1082b577d34ed800000000000000 */
+  L(1.06866077243134810492719566354935523E+00), /* 3fff1193c09c1c595c00000000000000 */
+  L(1.07284339243487741866189821848820429E+00), /* 3fff12a5dd543ccc4c00000000000000 */
+  L(1.07704238275024494209120007326419000E+00), /* 3fff13b90cb25176a400000000000000 */
+  L(1.08125780744903959851299646288680378E+00), /* 3fff14cd4fc989cd6400000000000000 */
+  L(1.08548973085361949442173568058933597E+00), /* 3fff15e2a7ae28fecc00000000000000 */
+  L(1.08973821753809324563988525369495619E+00), /* 3fff16f9157587069400000000000000 */
+  L(1.09400333232930546678574046381982043E+00), /* 3fff18109a3611c35000000000000000 */
+  L(1.09828514030782586896606289883493446E+00), /* 3fff192937074e0cd800000000000000 */
+  L(1.10258370680894224324930519287590869E+00), /* 3fff1a42ed01d8cbc800000000000000 */
+  L(1.10689909742365749645287564817408565E+00), /* 3fff1b5dbd3f68122400000000000000 */
+  L(1.11123137799969046168868658241990488E+00), /* 3fff1c79a8dacc350c00000000000000 */
+  L(1.11558061464248076122274255794764031E+00), /* 3fff1d96b0eff0e79400000000000000 */
+  L(1.11994687371619722204840741142106708E+00), /* 3fff1eb4d69bde569c00000000000000 */
+  L(1.12433022184475073235176978414529003E+00), /* 3fff1fd41afcba45e800000000000000 */
+  L(1.12873072591281087273529237791080959E+00), /* 3fff20f47f31c92e4800000000000000 */
+  L(1.13314845306682632219974493636982515E+00), /* 3fff2216045b6f5cd000000000000000 */
+  L(1.13758347071604959399593326452304609E+00), /* 3fff2338ab9b32134800000000000000 */
+  L(1.14203584653356560174586320499656722E+00), /* 3fff245c7613b8a9b000000000000000 */
+  L(1.14650564845732405583333957110880874E+00), /* 3fff258164e8cdb0d800000000000000 */
+  L(1.15099294469117646722011727433709893E+00), /* 3fff26a7793f60164400000000000000 */
+  L(1.15549780370591653744227755851170514E+00), /* 3fff27ceb43d84490400000000000000 */
+  L(1.16002029424032515603215642840950750E+00), /* 3fff28f7170a755fd800000000000000 */
+  L(1.16456048530221917269855680387991015E+00), /* 3fff2a20a2ce96406400000000000000 */
+  L(1.16911844616950438835445424956560601E+00), /* 3fff2b4b58b372c79400000000000000 */
+  L(1.17369424639123270948104504896036815E+00), /* 3fff2c7739e3c0f32c00000000000000 */
+  L(1.17828795578866324378353169777255971E+00), /* 3fff2da4478b620c7400000000000000 */
+  L(1.18289964445632783673900689791480545E+00), /* 3fff2ed282d763d42400000000000000 */
+  L(1.18752938276310060494722620205720887E+00), /* 3fff3001ecf601af7000000000000000 */
+  L(1.19217724135327157730657177125976887E+00), /* 3fff31328716a5d63c00000000000000 */
+  L(1.19684329114762477708211463323095813E+00), /* 3fff32645269ea829000000000000000 */
+  L(1.20152760334452030077656559114984702E+00), /* 3fff339750219b212c00000000000000 */
+  L(1.20623024942098072687102217059873510E+00), /* 3fff34cb8170b5835400000000000000 */
+  L(1.21095130113378179892436037334846333E+00), /* 3fff3600e78b6b11d000000000000000 */
+  L(1.21569083052054743854242246925423387E+00), /* 3fff373783a722012400000000000000 */
+  L(1.22044890990084875515009343871497549E+00), /* 3fff386f56fa7686e800000000000000 */
+  L(1.22522561187730755216662714701669756E+00), /* 3fff39a862bd3c106400000000000000 */
+  L(1.23002100933670455162882717559114099E+00), /* 3fff3ae2a8287e7a8000000000000000 */
+  L(1.23483517545109100499445276000187732E+00), /* 3fff3c1e2876834aa800000000000000 */
+  L(1.23966818367890557750499169742397498E+00), /* 3fff3d5ae4e2cae92c00000000000000 */
+  L(1.24452010776609517384017067342938390E+00), /* 3fff3e98deaa11dcbc00000000000000 */
+  L(1.24939102174724003813111039562500082E+00), /* 3fff3fd8170a52071800000000000000 */
+  L(1.25428099994668373895478907797951251E+00), /* 3fff41188f42c3e32000000000000000 */
+  L(1.25919011697966698459794088194030337E+00), /* 3fff425a4893dfc3f800000000000000 */
+  L(1.26411844775346637881341393949696794E+00), /* 3fff439d443f5f159000000000000000 */
+  L(1.26906606746853711786826579555054195E+00), /* 3fff44e183883d9e4800000000000000 */
+  L(1.27403305161966090564007458851847332E+00), /* 3fff462707b2bac20c00000000000000 */
+  L(1.27901947599709753244923149395617656E+00), /* 3fff476dd2045ac67800000000000000 */
+  L(1.28402541668774150540599521264084615E+00), /* 3fff48b5e3c3e8186800000000000000 */
+  L(1.28905095007628295311619126550795045E+00), /* 3fff49ff3e397492bc00000000000000 */
+  L(1.29409615284637330434591717676084954E+00), /* 3fff4b49e2ae5ac67400000000000000 */
+  L(1.29916110198179535206719492634874769E+00), /* 3fff4c95d26d3f440800000000000000 */
+  L(1.30424587476763775839572190307080746E+00), /* 3fff4de30ec211e60000000000000000 */
+  L(1.30935054879147461104338390214252286E+00), /* 3fff4f3198fa0f1cf800000000000000 */
+  L(1.31447520194454914310711046709911898E+00), /* 3fff50817263c13cd000000000000000 */
+  L(1.31961991242296217130558488861424848E+00), /* 3fff51d29c4f01cb3000000000000000 */
+  L(1.32478475872886558573071624778094701E+00), /* 3fff5325180cfacf7800000000000000 */
+  L(1.32996981967165983640200010995613411E+00), /* 3fff5478e6f02823d000000000000000 */
+  L(1.33517517436919680440254865061433520E+00), /* 3fff55ce0a4c58c7bc00000000000000 */
+  L(1.34040090224898678084031189428060316E+00), /* 3fff57248376b033d800000000000000 */
+  L(1.34564708304941055283521222918352578E+00), /* 3fff587c53c5a7af0400000000000000 */
+  L(1.35091379682093615244298234756570309E+00), /* 3fff59d57c910fa4e000000000000000 */
+  L(1.35620112392734021300455538039386738E+00), /* 3fff5b2fff3210fd9400000000000000 */
+  L(1.36150914504693443252136830778908916E+00), /* 3fff5c8bdd032e770800000000000000 */
+  L(1.36683794117379636690046140756749082E+00), /* 3fff5de9176045ff5400000000000000 */
+  L(1.37218759361900544124779344201670028E+00), /* 3fff5f47afa69210a800000000000000 */
+  L(1.37755818401188367960941150158760138E+00), /* 3fff60a7a734ab0e8800000000000000 */
+  L(1.38294979430124120867162673675920814E+00), /* 3fff6208ff6a88a46000000000000000 */
+  L(1.38836250675662681297595213436579797E+00), /* 3fff636bb9a983258400000000000000 */
+  L(1.39379640396958309755959248832368758E+00), /* 3fff64cfd75454ee7c00000000000000 */
+  L(1.39925156885490681313299887733592186E+00), /* 3fff663559cf1bc7c400000000000000 */
+  L(1.40472808465191417726103395580139477E+00), /* 3fff679c427f5a49f400000000000000 */
+  L(1.41022603492571069194738697660795879E+00), /* 3fff690492cbf9432c00000000000000 */
+  L(1.41574550356846662335641440222389065E+00), /* 3fff6a6e4c1d491e1800000000000000 */
+
+  L(9.98018323540573404351050612604012713E-01), /* 3ffefefc41f8d4bdb000000000000000 */
+  L(9.98048781107475468932221929208026268E-01), /* 3ffeff003ff556aa8800000000000000 */
+  L(9.98079239603882895082165305211674422E-01), /* 3ffeff043df9d4986000000000000000 */
+  L(9.98109699029824021243584297735651489E-01), /* 3ffeff083c064e972c00000000000000 */
+  L(9.98140159385327269125909310787392315E-01), /* 3ffeff0c3a1ac4b6ec00000000000000 */
+  L(9.98170620670420977171843901487591211E-01), /* 3ffeff10383737079400000000000000 */
+  L(9.98201082885133511579667242585856002E-01), /* 3ffeff14365ba5991c00000000000000 */
+  L(9.98231546029493238547658506831794512E-01), /* 3ffeff183488107b7c00000000000000 */
+  L(9.98262010103528552029672482603928074E-01), /* 3ffeff1c32bc77beb000000000000000 */
+  L(9.98292475107267818223988342651864514E-01), /* 3ffeff2030f8db72b000000000000000 */
+  L(9.98322941040739375573309644096298143E-01), /* 3ffeff242f3d3ba77000000000000000 */
+  L(9.98353407903971645787066790944663808E-01), /* 3ffeff282d89986cf000000000000000 */
+  L(9.98383875696992967307963340317655820E-01), /* 3ffeff2c2bddf1d32400000000000000 */
+  L(9.98414344419831761845429696222709026E-01), /* 3ffeff302a3a47ea0c00000000000000 */
+  L(9.98444814072516340086593800151604228E-01), /* 3ffeff34289e9ac19800000000000000 */
+  L(9.98475284655075123740886056111776270E-01), /* 3ffeff38270aea69c800000000000000 */
+  L(9.98505756167536479006585636852832977E-01), /* 3ffeff3c257f36f29400000000000000 */
+  L(9.98536228609928799837547330753295682E-01), /* 3ffeff4023fb806bf800000000000000 */
+  L(9.98566701982280452432050310562772211E-01), /* 3ffeff44227fc6e5ec00000000000000 */
+  L(9.98597176284619802988373749030870385E-01), /* 3ffeff48210c0a706800000000000000 */
+  L(9.98627651516975245460372434536111541E-01), /* 3ffeff4c1fa04b1b6800000000000000 */
+  L(9.98658127679375173801901155457017012E-01), /* 3ffeff501e3c88f6e800000000000000 */
+  L(9.98688604771847954211239084543194622E-01), /* 3ffeff541ce0c412e000000000000000 */
+  L(9.98719082794421980642241010173165705E-01), /* 3ffeff581b8cfc7f4c00000000000000 */
+  L(9.98749561747125619293186105096538085E-01), /* 3ffeff5c1a41324c2400000000000000 */
+  L(9.98780041629987291873504773320746608E-01), /* 3ffeff6018fd65896800000000000000 */
+  L(9.98810522443035364581476187595399097E-01), /* 3ffeff6417c196471000000000000000 */
+  L(9.98841004186298203615379520670103375E-01), /* 3ffeff68168dc4951400000000000000 */
+  L(9.98871486859804230684645176552294288E-01), /* 3ffeff6c1561f0837400000000000000 */
+  L(9.98901970463581839743127943620493170E-01), /* 3ffeff70143e1a222c00000000000000 */
+  L(9.98932454997659369233531378995394334E-01), /* 3ffeff74132241813000000000000000 */
+  L(9.98962940462065268620861502313346136E-01), /* 3ffeff78120e66b08400000000000000 */
+  L(9.98993426856827904103397486323956400E-01), /* 3ffeff7c110289c02000000000000000 */
+  L(9.99023914181975669634994119405746460E-01), /* 3ffeff800ffeaac00000000000000000 */
+  L(9.99054402437536959169506189937237650E-01), /* 3ffeff840f02c9c02000000000000000 */
+  L(9.99084891623540138905212870668037795E-01), /* 3ffeff880e0ee6d07800000000000000 */
+  L(9.99115381740013658307120181234495249E-01), /* 3ffeff8c0d2302010c00000000000000 */
+  L(9.99145872786985911329082910015131347E-01), /* 3ffeff900c3f1b61d800000000000000 */
+  L(9.99176364764485236413804614130640402E-01), /* 3ffeff940b633302d000000000000000 */
+  L(9.99206857672540083026291313217370771E-01), /* 3ffeff980a8f48f3f800000000000000 */
+  L(9.99237351511178817364822180024930276E-01), /* 3ffeff9c09c35d454800000000000000 */
+  L(9.99267846280429861138827618560753763E-01), /* 3ffeffa008ff7006c000000000000000 */
+  L(9.99298341980321608302162417203362565E-01), /* 3ffeffa4084381485c00000000000000 */
+  L(9.99328838610882452808681364331278019E-01), /* 3ffeffa8078f911a1800000000000000 */
+  L(9.99359336172140816367814863951934967E-01), /* 3ffeffac06e39f8bf400000000000000 */
+  L(9.99389834664125092933417704443854745E-01), /* 3ffeffb0063facadec00000000000000 */
+  L(9.99420334086863676459344674185558688E-01), /* 3ffeffb405a3b88ffc00000000000000 */
+  L(9.99450834440384988655026177184481639E-01), /* 3ffeffb8050fc3422400000000000000 */
+  L(9.99481335724717395718741386190231424E-01), /* 3ffeffbc0483ccd45c00000000000000 */
+  L(9.99511837939889374871071936468069907E-01), /* 3ffeffc003ffd556ac00000000000000 */
+  L(9.99542341085929264554721385138691403E-01), /* 3ffeffc40383dcd90800000000000000 */
+  L(9.99572845162865514234695751838444266E-01), /* 3ffeffc8030fe36b7400000000000000 */
+  L(9.99603350170726517864849824945849832E-01), /* 3ffeffcc02a3e91dec00000000000000 */
+  L(9.99633856109540669399038392839429434E-01), /* 3ffeffd0023fee006c00000000000000 */
+  L(9.99664362979336418302267475155531429E-01), /* 3ffeffd401e3f222f800000000000000 */
+  L(9.99694870780142130772816244643763639E-01), /* 3ffeffd8018ff5958800000000000000 */
+  L(9.99725379511986284031266336569387931E-01), /* 3ffeffdc0143f8682400000000000000 */
+  L(9.99755889174897216520321308053098619E-01), /* 3ffeffe000fffaaac000000000000000 */
+  L(9.99786399768903377704987178731244057E-01), /* 3ffeffe400c3fc6d6000000000000000 */
+  L(9.99816911294033217050269968240172602E-01), /* 3ffeffe8008ffdc00800000000000000 */
+  L(9.99847423750315072998873233700578567E-01), /* 3ffeffec0063feb2ac00000000000000 */
+  L(9.99877937137777450526954226006637327E-01), /* 3ffefff0003fff555800000000000000 */
+  L(9.99908451456448688077216502279043198E-01), /* 3ffefff40023ffb80000000000000000 */
+  L(9.99938966706357262870241697783058044E-01), /* 3ffefff8000fffeaac00000000000000 */
+  L(9.99969482887531541104308985268289689E-01), /* 3ffefffc0003fffd5400000000000000 */
+#define T_EXPL_RES2 (T_EXPL_RES1 + 1 + 89 + 65)
+  L(1.00000000000000000000000000000000000E+00), /* 3fff0000000000000000000000000000 */
+  L(1.00003051804379100575559391472779680E+00), /* 3fff0002000200015400000000000000 */
+  L(1.00006103701893306334724798034585547E+00), /* 3fff00040008000aac00000000000000 */
+  L(1.00009155692545448346209013834595680E+00), /* 3fff0006001200240000000000000000 */
+  L(1.00012207776338379883185325525118969E+00), /* 3fff0008002000555800000000000000 */
+  L(1.00015259953274932014366527255333494E+00), /* 3fff000a003200a6ac00000000000000 */
+  L(1.00018312223357958012925905677548144E+00), /* 3fff000c004801200400000000000000 */
+  L(1.00021364586590294498691378066723701E+00), /* 3fff000e006201c95c00000000000000 */
+  L(1.00024417042974783642605984823603649E+00), /* 3fff0010008002aab400000000000000 */
+  L(1.00027469592514273166727889474714175E+00), /* 3fff001200a203cc1000000000000000 */
+  L(1.00030522235211605242000132420798764E+00), /* 3fff001400c805357000000000000000 */
+  L(1.00033574971069616488250630936818197E+00), /* 3fff001600f206eed000000000000000 */
+  L(1.00036627800091160178652671675081365E+00), /* 3fff0018012009003800000000000000 */
+  L(1.00039680722279067381919048784766346E+00), /* 3fff001a01520b71a000000000000000 */
+  L(1.00042733737636191371223048918182030E+00), /* 3fff001c01880e4b1000000000000000 */
+  L(1.00045786846165368766392589350289200E+00), /* 3fff001e01c211948400000000000000 */
+  L(1.00048840047869447289485833607614040E+00), /* 3fff0020020015560000000000000000 */
+  L(1.00051893342751269111445822090900037E+00), /* 3fff0022024219978400000000000000 */
+  L(1.00054946730813676403215595200890675E+00), /* 3fff002402881e611000000000000000 */
+  L(1.00058000212059516886853316464112140E+00), /* 3fff002602d223baa800000000000000 */
+  L(1.00061053786491632733302026281307917E+00), /* 3fff0028032029ac4c00000000000000 */
+  L(1.00064107454112866113504765053221490E+00), /* 3fff002a0372303dfc00000000000000 */
+  L(1.00067161214926059198404573180596344E+00), /* 3fff002c03c83777b800000000000000 */
+  L(1.00070215068934059710059614189958666E+00), /* 3fff002e04223f618400000000000000 */
+  L(1.00073269016139709819412928482051939E+00), /* 3fff0030048048036000000000000000 */
+  L(1.00076323056545857248522679583402351E+00), /* 3fff003204e251655000000000000000 */
+  L(1.00079377190155338617216784768970683E+00), /* 3fff003405485b8f5000000000000000 */
+  L(1.00082431416971007198668530691065826E+00), /* 3fff003605b266896800000000000000 */
+  L(1.00085485736995705163820957750431262E+00), /* 3fff00380620725b9800000000000000 */
+  L(1.00088540150232269132501983222027775E+00), /* 3fff003a06927f0ddc00000000000000 */
+  L(1.00091594656683552377884893758164253E+00), /* 3fff003c07088ca83c00000000000000 */
+  L(1.00094649256352402622027852885366883E+00), /* 3fff003e07829b32bc00000000000000 */
+  L(1.00097703949241650933643654752813745E+00), /* 3fff00400800aab55400000000000000 */
+  L(1.00100758735354156137020709138596430E+00), /* 3fff00420882bb381000000000000000 */
+  L(1.00103813614692760403102056443458423E+00), /* 3fff00440908ccc2f000000000000000 */
+  L(1.00106868587260300351715613942360505E+00), /* 3fff00460992df5df000000000000000 */
+  L(1.00109923653059629256034668287611566E+00), /* 3fff00480a20f3111800000000000000 */
+  L(1.00112978812093589287002259879955091E+00), /* 3fff004a0ab307e46800000000000000 */
+  L(1.00116034064365022615561429120134562E+00), /* 3fff004c0b491ddfe000000000000000 */
+  L(1.00119089409876788066000585786241572E+00), /* 3fff004e0be3350b8c00000000000000 */
+  L(1.00122144848631711155917400901671499E+00), /* 3fff00500c814d6f6000000000000000 */
+  L(1.00125200380632656260715407370298635E+00), /* 3fff00520d2367136c00000000000000 */
+  L(1.00128256005882454449107399341301061E+00), /* 3fff00540dc981ffa800000000000000 */
+  L(1.00131311724383964545381786592770368E+00), /* 3fff00560e739e3c2000000000000000 */
+  L(1.00134367536140017618251363273884635E+00), /* 3fff00580f21bbd0cc00000000000000 */
+  L(1.00137423441153472492004539162735455E+00), /* 3fff005a0fd3dac5b800000000000000 */
+  L(1.00140479439427171337584354660066310E+00), /* 3fff005c1089fb22e400000000000000 */
+  L(1.00143535530963956325933850166620687E+00), /* 3fff005e11441cf05000000000000000 */
+  L(1.00146591715766680730226312334707472E+00), /* 3fff0060120240360400000000000000 */
+  L(1.00149647993838186721404781565070152E+00), /* 3fff006212c464fc0000000000000000 */
+  L(1.00152704365181316470412298258452211E+00), /* 3fff0064138a8b4a4400000000000000 */
+  L(1.00155760829798923250422149067162536E+00), /* 3fff00661454b328d800000000000000 */
+  L(1.00158817387693849232377374391944613E+00), /* 3fff00681522dc9fbc00000000000000 */
+  L(1.00161874038868942138336137759324629E+00), /* 3fff006a15f507b6f400000000000000 */
+  L(1.00164930783327055241471725821611471E+00), /* 3fff006c16cb34768800000000000000 */
+  L(1.00167987621071025161612055853765924E+00), /* 3fff006e17a562e67400000000000000 */
+  L(1.00171044552103705171930414508096874E+00), /* 3fff00701883930ec000000000000000 */
+  L(1.00174101576427937443369842185347807E+00), /* 3fff00721965c4f76c00000000000000 */
+  L(1.00177158694046569697988502412044909E+00), /* 3fff00741a4bf8a87c00000000000000 */
+  L(1.00180215904962455208959681840497069E+00), /* 3fff00761b362e29f800000000000000 */
+  L(1.00183273209178441698341543997230474E+00), /* 3fff00781c246583e400000000000000 */
+  L(1.00186330606697365785962006157205906E+00), /* 3fff007a1d169ebe3c00000000000000 */
+  L(1.00189388097522080744994354972732253E+00), /* 3fff007c1e0cd9e10800000000000000 */
+  L(1.00192445681655439848611877096118405E+00), /* 3fff007e1f0716f45000000000000000 */
+  L(1.00195503359100279716642489802325144E+00), /* 3fff0080200556001000000000000000 */
+  L(1.00198561129859459173374602869444061E+00), /* 3fff00822107970c5400000000000000 */
+};
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/t_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/t_sincosl.c
new file mode 100644
index 0000000000..601662c399
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/t_sincosl.c
@@ -0,0 +1,696 @@
+/* Quad-precision floating point sine and cosine tables.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* For 0.1484375 + n/128.0, n=0..82 this table contains
+   first 113 bits of cosine, then at least 113 additional
+   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 gmp.
+ */
+
+/* Include to grab typedefs and wrappers for _Float128 and such.  */
+#include <math_private.h>
+
+const _Float128 __sincosl_table[] = {
+
+/* x =  1.48437500000000000000000000000000000e-01L 3ffc3000000000000000000000000000 */
+/* cos(x) = 0.fd2f5320e1b790209b4dda2f98f79caaa7b873aff1014b0fbc5243766d03cb006bc837c4358 */
+ L(9.89003367927322909016887196069562069e-01), /* 3ffefa5ea641c36f2041369bb45f31ef */
+ L(2.15663692029265697782289400027743703e-35), /* 3f8bcaaa7b873aff1014b0fbc5243767 */
+/* sin(x) = 0.25dc50bc95711d0d9787d108fd438cf5959ee0bfb7a1e36e8b1a112968f356657420e9cc9ea */
+ L(1.47892995873409608580026675734609314e-01), /* 3ffc2ee285e4ab88e86cbc3e8847ea1c */
+ L(9.74950446464233268291647449768590886e-36), /* 3f8a9eb2b3dc17f6f43c6dd16342252d */
+
+/* x = 1.56250000000000000000000000000000000e-01 3ffc4000000000000000000000000000 */
+/* cos(x) = 0.fce1a053e621438b6d60c76e8c45bf0a9dc71aa16f922acc10e95144ec796a249813c9cb649 */
+ L(9.87817783816471944100503034363211317e-01), /* 3ffef9c340a7cc428716dac18edd188b */
+ L(4.74271307836705897892468107620526395e-35), /* 3f8cf854ee38d50b7c915660874a8a27 */
+/* sin(x) = 0.27d66258bacd96a3eb335b365c87d59438c5142bb56a489e9b8db9d36234ffdebb6bdc22d8e */
+ L(1.55614992773556041209920643203516258e-01), /* 3ffc3eb312c5d66cb51f599ad9b2e43f */
+L(-7.83989563419287980121718050629497270e-36), /* bf8a4d78e75d7a8952b6ec2c8e48c594 */
+
+/* x = 1.64062500000000000000000000000000000e-01 3ffc5000000000000000000000000000 */
+/* cos(x) = 0.fc8ffa01ba6807417e05962b0d9fdf1fddb0cc4c07d22e19e08019bffa50a6c7acdb40307a3 */
+ L(9.86571908399497588757337407495308409e-01), /* 3ffef91ff40374d00e82fc0b2c561b40 */
+L(-2.47327949936985362476252401212720725e-35), /* bf8c070112799d9fc16e8f30fbff3200 */
+/* sin(x) = 0.29cfd49b8be4f665276cab01cbf0426934906c3dd105473b226e410b1450f62e53ff7c6cce1 */
+ L(1.63327491736612850846866172454354370e-01), /* 3ffc4e7ea4dc5f27b3293b65580e5f82 */
+ L(1.81380344301155485770367902300754350e-36), /* 3f88349a48361ee882a39d913720858a */
+
+/* x = 1.71875000000000000000000000000000000e-01 3ffc6000000000000000000000000000 */
+/* cos(x) = 0.fc3a6170f767ac735d63d99a9d439e1db5e59d3ef153a4265d5855850ed82b536bf361b80e3 */
+ L(9.85265817718213816204294709759578994e-01), /* 3ffef874c2e1eecf58e6bac7b3353a87 */
+ L(2.26568029505818066141517497778527952e-35), /* 3f8be1db5e59d3ef153a4265d5855851 */
+/* sin(x) = 0.2bc89f9f424de5485de7ce03b2514952b9faf5648c3244d4736feb95dbb9da49f3b58a9253b */
+ L(1.71030022031395019281347969239834331e-01), /* 3ffc5e44fcfa126f2a42ef3e701d928a */
+ L(7.01395875187487608875416030203241317e-36), /* 3f8a2a573f5eac9186489a8e6dfd72bb */
+
+/* x = 1.79687500000000000000000000000000000e-01 3ffc7000000000000000000000000000 */
+/* cos(x) = 0.fbe0d7f7fef11e70aa43b8abf4f6a457cea20c8f3f676b47781f9821bbe9ce04b3c7b981c0b */
+ L(9.83899591489663972178309351416487245e-01), /* 3ffef7c1afeffde23ce154877157e9ed */
+ L(2.73414318948066207810486330723761265e-35), /* 3f8c22be75106479fb3b5a3bc0fcc10e */
+/* sin(x) = 0.2dc0bb80b49a97ffb34e8dd1f8db9df7af47ed2dcf58b12c8e7827e048cae929da02c04ecac */
+ L(1.78722113535153659375356241864180724e-01), /* 3ffc6e05dc05a4d4bffd9a746e8fc6dd */
+L(-1.52906926517265103202547561260594148e-36), /* bf8804285c09691853a769b8c3ec0fdc */
+
+/* x = 1.87500000000000000000000000000000000e-01 3ffc8000000000000000000000000000 */
+/* cos(x) = 0.fb835efcf670dd2ce6fe7924697eea13ea358867e9cdb3899b783f4f9f43aa5626e8b67b3bc */
+ L(9.82473313101255257487327683243622495e-01), /* 3ffef706bdf9ece1ba59cdfcf248d2fe */
+L(-1.64924358891557584625463868014230342e-35), /* bf8b5ec15ca779816324c766487c0b06 */
+/* sin(x) = 0.2fb8205f75e56a2b56a1c4792f856258769af396e0189ef72c05e4df59a6b00e4b44a6ea515 */
+ L(1.86403296762269884552379983103205261e-01), /* 3ffc7dc102fbaf2b515ab50e23c97c2b */
+ L(1.76460304806826780010586715975331753e-36), /* 3f882c3b4d79cb700c4f7b9602f26fad */
+
+/* x = 1.95312500000000000000000000000000000e-01 3ffc9000000000000000000000000000 */
+/* cos(x) = 0.fb21f7f5c156696b00ac1fe28ac5fd76674a92b4df80d9c8a46c684399005deccc41386257c */
+ L(9.80987069605669190469329896435309665e-01), /* 3ffef643efeb82acd2d601583fc5158c */
+L(-1.90899259410096419886996331536278461e-36), /* bf8844cc5ab6a5903f931badc9cbde34 */
+/* sin(x) = 0.31aec65df552876f82ece9a2356713246eba6799983d7011b0b3698d6e1da919c15d57c30c1 */
+ L(1.94073102892909791156055200214145404e-01), /* 3ffc8d7632efaa943b7c17674d11ab39 */
+L(-9.67304741051998267208945242944928999e-36), /* bf8a9b7228b30cccf851fdc9e992ce52 */
+
+/* x = 2.03125000000000000000000000000000000e-01 3ffca000000000000000000000000000 */
+/* cos(x) = 0.fabca467fb3cb8f1d069f01d8ea33ade5bfd68296ecd1cc9f7b7609bbcf3676e726c3301334 */
+ L(9.79440951715548359998530954502987493e-01), /* 3ffef57948cff67971e3a0d3e03b1d46 */
+ L(4.42878056591560757066844797290067990e-35), /* 3f8cd6f2dfeb414b7668e64fbdbb04de */
+/* sin(x) = 0.33a4a5a19d86246710f602c44df4fa513f4639ce938477aeeabb82e8e0a7ed583a188879fd4 */
+ L(2.01731063801638804725038151164000971e-01), /* 3ffc9d252d0cec31233887b016226fa8 */
+L(-4.27513434754966978435151290617384120e-36), /* bf896bb02e718c5b1ee21445511f45c8 */
+
+/* x = 2.10937500000000000000000000000000000e-01 3ffcb000000000000000000000000000 */
+/* cos(x) = 0.fa5365e8f1d3ca27be1db5d76ae64d983d7470a4ab0f4ccf65a2b8c67a380df949953a09bc1 */
+ L(9.77835053797959793331971572944454549e-01), /* 3ffef4a6cbd1e3a7944f7c3b6baed5cd */
+L(-3.79207422905180416937210853779192702e-35), /* bf8c933e145c7adaa7859984d2ea39cc */
+/* sin(x) = 0.3599b652f40ec999df12a0a4c8561de159c98d4e54555de518b97f48886f715d8df5f4f093e */
+ L(2.09376712085993643711890752724881652e-01), /* 3ffcaccdb297a0764ccef895052642b1 */
+L(-1.59470287344329449965314638482515925e-36), /* bf880f531b3958d5d5510d73a3405bbc */
+
+/* x = 2.18750000000000000000000000000000000e-01 3ffcc000000000000000000000000000 */
+/* cos(x) = 0.f9e63e1d9e8b6f6f2e296bae5b5ed9c11fd7fa2fe11e09fc7bde901abed24b6365e72f7db4e */
+ L(9.76169473868635276723989035435135534e-01), /* 3ffef3cc7c3b3d16dede5c52d75cb6be */
+L(-2.87727974249481583047944860626985460e-35), /* bf8c31f701402e80f70fb01c210b7f2a */
+/* sin(x) = 0.378df09db8c332ce0d2b53d865582e4526ea336c768f68c32b496c6d11c1cd241bb9f1da523 */
+ L(2.17009581095010156760578095826055396e-01), /* 3ffcbc6f84edc6199670695a9ec32ac1 */
+ L(1.07356488794216831812829549198201194e-35), /* 3f8ac8a4dd466d8ed1ed1865692d8da2 */
+
+/* x = 2.26562500000000000000000000000000000e-01 3ffcd000000000000000000000000000 */
+/* cos(x) = 0.f9752eba9fff6b98842beadab054a932fb0f8d5b875ae63d6b2288d09b148921aeb6e52f61b */
+ L(9.74444313585988980349711056045434344e-01), /* 3ffef2ea5d753ffed7310857d5b560a9 */
+ L(3.09947905955053419304514538592548333e-35), /* 3f8c4997d87c6adc3ad731eb59144685 */
+/* sin(x) = 0.39814cb10513453cb97b21bc1ca6a337b150c21a675ab85503bc09a436a10ab1473934e20c8 */
+ L(2.24629204957705292350428549796424820e-01), /* 3ffccc0a6588289a29e5cbd90de0e535 */
+ L(2.42061510849297469844695751870058679e-36), /* 3f889bd8a8610d33ad5c2a81de04d21b */
+
+/* x = 2.34375000000000000000000000000000000e-01 3ffce000000000000000000000000000 */
+/* cos(x) = 0.f90039843324f9b940416c1984b6cbed1fc733d97354d4265788a86150493ce657cae032674 */
+ L(9.72659678244912752670913058267565260e-01), /* 3ffef20073086649f3728082d833096e */
+L(-3.91759231819314904966076958560252735e-35), /* bf8ca09701c6613465595ecd43babcf5 */
+/* sin(x) = 0.3b73c2bf6b4b9f668ef9499c81f0d965087f1753fa64b086e58cb8470515c18c1412f8c2e02 */
+ L(2.32235118611511462413930877746235872e-01), /* 3ffcdb9e15fb5a5cfb3477ca4ce40f87 */
+L(-4.96930483364191020075024624332928910e-36), /* bf89a6bde03a2b0166d3de469cd1ee3f */
+
+/* x = 2.42187500000000000000000000000000000e-01 3ffcf000000000000000000000000000 */
+/* cos(x) = 0.f887604e2c39dbb20e4ec5825059a789ffc95b275ad9954078ba8a28d3fcfe9cc2c1d49697b */
+ L(9.70815676770349462947490545785046027e-01), /* 3ffef10ec09c5873b7641c9d8b04a0b3 */
+ L(2.97458820972393859125277682021202860e-35), /* 3f8c3c4ffe4ad93ad6ccaa03c5d45147 */
+/* sin(x) = 0.3d654aff15cb457a0fca854698aba33039a8a40626609204472d9d40309b626eccc6dff0ffa */
+ L(2.39826857830661564441369251810886574e-01), /* 3ffceb2a57f8ae5a2bd07e542a34c55d */
+ L(2.39867036569896287240938444445071448e-36), /* 3f88981cd45203133049022396cea018 */
+
+/* x = 2.50000000000000000000000000000000000e-01 3ffd0000000000000000000000000000 */
+/* cos(x) = 0.f80aa4fbef750ba783d33cb95f94f8a41426dbe79edc4a023ef9ec13c944551c0795b84fee1 */
+ L(9.68912421710644784144595449494189205e-01), /* 3ffef01549f7deea174f07a67972bf2a */
+L(-5.53634706113461989398873287749326500e-36), /* bf89d6faf649061848ed7f704184fb0e */
+/* sin(x) = 0.3f55dda9e62aed7513bd7b8e6a3d1635dd5676648d7db525898d7086af9330f03c7f285442a */
+ L(2.47403959254522929596848704849389203e-01), /* 3ffcfaaeed4f31576ba89debdc7351e9 */
+L(-7.36487001108599532943597115275811618e-36), /* bf8a39445531336e50495b4ece51ef2a */
+
+/* x = 2.57812500000000000000000000000000000e-01 3ffd0800000000000000000000000000 */
+/* cos(x) = 0.f78a098069792daabc9ee42591b7c5a68cb1ab822aeb446b3311b4ba5371b8970e2c1547ad7 */
+ L(9.66950029230677822008341623610531503e-01), /* 3ffeef141300d2f25b55793dc84b2370 */
+L(-4.38972214432792412062088059990480514e-35), /* bf8cd2cb9a72a3eea8a5dca667725a2d */
+/* sin(x) = 0.414572fd94556e6473d620271388dd47c0ba050cdb5270112e3e370e8c4705ae006426fb5d5 */
+ L(2.54965960415878467487556574864872628e-01), /* 3ffd0515cbf65155b991cf58809c4e23 */
+ L(2.20280377918534721005071688328074154e-35), /* 3f8bd47c0ba050cdb5270112e3e370e9 */
+
+/* x = 2.65625000000000000000000000000000000e-01 3ffd1000000000000000000000000000 */
+/* cos(x) = 0.f7058fde0788dfc805b8fe88789e4f4253e3c50afe8b22f41159620ab5940ff7df9557c0d1f */
+ L(9.64928619104771009581074665315748371e-01), /* 3ffeee0b1fbc0f11bf900b71fd10f13d */
+L(-3.66685832670820775002475545602761113e-35), /* bf8c85ed60e1d7a80ba6e85f7534efaa */
+/* sin(x) = 0.4334033bcd90d6604f5f36c1d4b84451a87150438275b77470b50e5b968fa7962b5ffb379b7 */
+ L(2.62512399769153281450949626395692931e-01), /* 3ffd0cd00cef364359813d7cdb0752e1 */
+ L(3.24923677072031064673177178571821843e-36), /* 3f89146a1c5410e09d6ddd1c2d4396e6 */
+
+/* x = 2.73437500000000000000000000000000000e-01 3ffd1800000000000000000000000000 */
+/* cos(x) = 0.f67d3a26af7d07aa4bd6d42af8c0067fefb96d5b46c031eff53627f215ea3242edc3f2e13eb */
+ L(9.62848314709379699899701093480214365e-01), /* 3ffeecfa744d5efa0f5497ada855f180 */
+ L(4.88986966383343450799422013051821394e-36), /* 3f899ffbee5b56d1b00c7bfd4d89fc85 */
+/* sin(x) = 0.452186aa5377ab20bbf2524f52e3a06a969f47166ab88cf88c111ad12c55941021ef3317a1a */
+ L(2.70042816718585031552755063618827102e-01), /* 3ffd14861aa94ddeac82efc9493d4b8f */
+L(-2.37608892440611310321138680065803162e-35), /* bf8bf956960b8e99547730773eee52ed */
+
+/* x = 2.81250000000000000000000000000000000e-01 3ffd2000000000000000000000000000 */
+/* cos(x) = 0.f5f10a7bb77d3dfa0c1da8b57842783280d01ce3c0f82bae3b9d623c168d2e7c29977994451 */
+ L(9.60709243015561903066659350581313472e-01), /* 3ffeebe214f76efa7bf4183b516af085 */
+L(-5.87011558231583960712013351601221840e-36), /* bf89f35fcbf8c70fc1f5147118a770fa */
+/* sin(x) = 0.470df5931ae1d946076fe0dcff47fe31bb2ede618ebc607821f8462b639e1f4298b5ae87fd3 */
+ L(2.77556751646336325922023446828128568e-01), /* 3ffd1c37d64c6b8765181dbf8373fd20 */
+L(-1.35848595468998128214344668770082997e-36), /* bf87ce44d1219e71439f87de07b9d49c */
+
+/* x = 2.89062500000000000000000000000000000e-01 3ffd2800000000000000000000000000 */
+/* cos(x) = 0.f561030ddd7a78960ea9f4a32c6521554995667f5547bafee9ec48b3155cdb0f7fd00509713 */
+ L(9.58511534581228627301969408154919822e-01), /* 3ffeeac2061bbaf4f12c1d53e94658ca */
+ L(2.50770779371636481145735089393154404e-35), /* 3f8c0aaa4cab33faaa3dd7f74f624599 */
+/* sin(x) = 0.48f948446abcd6b0f7fccb100e7a1b26eccad880b0d24b59948c7cdd49514d44b933e6985c2 */
+ L(2.85053745940547424587763033323252561e-01), /* 3ffd23e52111aaf35ac3dff32c4039e8 */
+ L(2.04269325885902918802700123680403749e-35), /* 3f8bb26eccad880b0d24b59948c7cdd5 */
+
+/* x = 2.96875000000000000000000000000000000e-01 3ffd3000000000000000000000000000 */
+/* cos(x) = 0.f4cd261d3e6c15bb369c8758630d2ac00b7ace2a51c0631bfeb39ed158ba924cc91e259c195 */
+ L(9.56255323543175296975599942263028361e-01), /* 3ffee99a4c3a7cd82b766d390eb0c61a */
+ L(3.21616572190865997051103645135837207e-35), /* 3f8c56005bd671528e0318dff59cf68b */
+/* sin(x) = 0.4ae37710fad27c8aa9c4cf96c03519b9ce07dc08a1471775499f05c29f86190aaebaeb9716e */
+ L(2.92533342023327543624702326493913423e-01), /* 3ffd2b8ddc43eb49f22aa7133e5b00d4 */
+ L(1.93539408668704450308003687950685128e-35), /* 3f8b9b9ce07dc08a1471775499f05c2a */
+
+/* x = 3.04687500000000000000000000000000000e-01 3ffd3800000000000000000000000000 */
+/* cos(x) = 0.f43575f94d4f6b272f5fb76b14d2a64ab52df1ee8ddf7c651034e5b2889305a9ea9015d758a */
+ L(9.53940747608894733981324795987611623e-01), /* 3ffee86aebf29a9ed64e5ebf6ed629a5 */
+ L(2.88075689052478602008395972924657164e-35), /* 3f8c3255a96f8f746efbe32881a72d94 */
+/* sin(x) = 0.4ccc7a50127e1de0cb6b40c302c651f7bded4f9e7702b0471ae0288d091a37391950907202f */
+ L(2.99995083378683051163248282011699944e-01), /* 3ffd3331e94049f877832dad030c0b19 */
+ L(1.35174265535697850139283361475571050e-35), /* 3f8b1f7bded4f9e7702b0471ae0288d1 */
+
+/* x = 3.12500000000000000000000000000000000e-01 3ffd4000000000000000000000000000 */
+/* cos(x) = 0.f399f500c9e9fd37ae9957263dab8877102beb569f101ee4495350868e5847d181d50d3cca2 */
+ L(9.51567948048172202145488217364270962e-01), /* 3ffee733ea0193d3fa6f5d32ae4c7b57 */
+ L(6.36842628598115658308749288799884606e-36), /* 3f8a0ee2057d6ad3e203dc892a6a10d2 */
+/* sin(x) = 0.4eb44a5da74f600207aaa090f0734e288603ffadb3eb2542a46977b105f8547128036dcf7f0 */
+ L(3.07438514580380850670502958201982091e-01), /* 3ffd3ad129769d3d80081eaa8243c1cd */
+ L(1.06515172423204645839241099453417152e-35), /* 3f8ac510c07ff5b67d64a8548d2ef621 */
+
+/* x = 3.20312500000000000000000000000000000e-01 3ffd4800000000000000000000000000 */
+/* cos(x) = 0.f2faa5a1b74e82fd61fa05f9177380e8e69b7b15a945e8e5ae1124bf3d12b0617e03af4fab5 */
+ L(9.49137069684463027665847421762105623e-01), /* 3ffee5f54b436e9d05fac3f40bf22ee7 */
+ L(6.84433965991637152250309190468859701e-37), /* 3f86d1cd36f62b528bd1cb5c22497e7a */
+/* sin(x) = 0.509adf9a7b9a5a0f638a8fa3a60a199418859f18b37169a644fdb986c21ecb00133853bc35b */
+ L(3.14863181319745250865036315126939016e-01), /* 3ffd426b7e69ee69683d8e2a3e8e9828 */
+ L(1.92431240212432926993057705062834160e-35), /* 3f8b99418859f18b37169a644fdb986c */
+
+/* x = 3.28125000000000000000000000000000000e-01 3ffd5000000000000000000000000000 */
+/* cos(x) = 0.f2578a595224dd2e6bfa2eb2f99cc674f5ea6f479eae2eb580186897ae3f893df1113ca06b8 */
+ L(9.46648260886053321846099507295532976e-01), /* 3ffee4af14b2a449ba5cd7f45d65f33a */
+L(-4.32906339663000890941529420498824645e-35), /* bf8ccc5850ac85c30a8e8a53ff3cbb43 */
+/* sin(x) = 0.5280326c3cf481823ba6bb08eac82c2093f2bce3c4eb4ee3dec7df41c92c8a4226098616075 */
+ L(3.22268630433386625687745919893188031e-01), /* 3ffd4a00c9b0f3d20608ee9aec23ab21 */
+L(-1.49505897804759263483853908335500228e-35), /* bf8b3df6c0d431c3b14b11c213820be3 */
+
+/* x = 3.35937500000000000000000000000000000e-01 3ffd5800000000000000000000000000 */
+/* cos(x) = 0.f1b0a5b406b526d886c55feadc8d0dcc8eb9ae2ac707051771b48e05b25b000009660bdb3e3 */
+ L(9.44101673557004345630017691253124860e-01), /* 3ffee3614b680d6a4db10d8abfd5b91a */
+ L(1.03812535240120229609822461172145584e-35), /* 3f8ab991d735c558e0e0a2ee3691c0b6 */
+/* sin(x) = 0.54643b3da29de9b357155eef0f332fb3e66c83bf4dddd9491c5eb8e103ccd92d6175220ed51 */
+ L(3.29654409930860171914317725126463176e-01), /* 3ffd5190ecf68a77a6cd5c557bbc3ccd */
+L(-1.22606996784743214973082192294232854e-35), /* bf8b04c19937c40b22226b6e3a1471f0 */
+
+/* x = 3.43750000000000000000000000000000000e-01 3ffd6000000000000000000000000000 */
+/* cos(x) = 0.f105fa4d66b607a67d44e042725204435142ac8ad54dfb0907a4f6b56b06d98ee60f19e557a */
+ L(9.41497463127881068644511236053670815e-01), /* 3ffee20bf49acd6c0f4cfa89c084e4a4 */
+ L(3.20709366603165602071590241054884900e-36), /* 3f8910d450ab22b5537ec241e93dad5b */
+/* sin(x) = 0.5646f27e8bd65cbe3a5d61ff06572290ee826d9674a00246b05ae26753cdfc90d9ce81a7d02 */
+ L(3.37020069022253076261281754173810024e-01), /* 3ffd591bc9fa2f5972f8e97587fc195d */
+L(-2.21435756148839473677777545049890664e-35), /* bf8bd6f117d92698b5ffdb94fa51d98b */
+
+/* x = 3.51562500000000000000000000000000000e-01 3ffd6800000000000000000000000000 */
+/* cos(x) = 0.f0578ad01ede707fa39c09dc6b984afef74f3dc8d0efb0f4c5a6b13771145b3e0446fe33887 */
+ L(9.38835788546265488632578305984712554e-01), /* 3ffee0af15a03dbce0ff473813b8d731 */
+L(-3.98758068773974031348585072752245458e-35), /* bf8ca808458611b978827859d2ca7644 */
+/* sin(x) = 0.582850a41e1dd46c7f602ea244cdbbbfcdfa8f3189be794dda427ce090b5f85164f1f80ac13 */
+ L(3.44365158145698408207172046472223747e-01), /* 3ffd60a14290787751b1fd80ba891337 */
+L(-3.19791885005480924937758467594051927e-36), /* bf89100c815c339d9061ac896f60c7dc */
+
+/* x = 3.59375000000000000000000000000000000e-01 3ffd7000000000000000000000000000 */
+/* cos(x) = 0.efa559f5ec3aec3a4eb03319278a2d41fcf9189462261125fe6147b078f1daa0b06750a1654 */
+ L(9.36116812267055290294237411019508588e-01), /* 3ffedf4ab3ebd875d8749d6066324f14 */
+ L(3.40481591236710658435409862439032162e-35), /* 3f8c6a0fe7c8c4a31130892ff30a3d84 */
+/* sin(x) = 0.5a084e28e35fda2776dfdbbb5531d74ced2b5d17c0b1afc4647529d50c295e36d8ceec126c1 */
+ L(3.51689228994814059222584896955547016e-01), /* 3ffd682138a38d7f689ddb7f6eed54c7 */
+ L(1.75293433418270210567525412802083294e-35), /* 3f8b74ced2b5d17c0b1afc4647529d51 */
+
+/* x = 3.67187500000000000000000000000000000e-01 3ffd7800000000000000000000000000 */
+/* cos(x) = 0.eeef6a879146af0bf9b95ea2ea0ac0d3e2e4d7e15d93f48cbd41bf8e4fded40bef69e19eafa */
+ L(9.33340700242548435655299229469995527e-01), /* 3ffeddded50f228d5e17f372bd45d416 */
+L(-4.75255707251679831124800898831382223e-35), /* bf8cf960e8d940f513605b9a15f2038e */
+/* sin(x) = 0.5be6e38ce8095542bc14ee9da0d36483e6734bcab2e07624188af5653f114eeb46738fa899d */
+ L(3.58991834546065053677710299152868941e-01), /* 3ffd6f9b8e33a025550af053ba76834e */
+L(-2.06772389262723368139416970257112089e-35), /* bf8bb7c198cb4354d1f89dbe7750a9ac */
+
+/* x = 3.75000000000000000000000000000000000e-01 3ffd8000000000000000000000000000 */
+/* cos(x) = 0.ee35bf5ccac89052cd91ddb734d3a47e262e3b609db604e217053803be0091e76daf28a89b7 */
+ L(9.30507621912314291149476792229555481e-01), /* 3ffedc6b7eb9959120a59b23bb6e69a7 */
+ L(2.74541088551732982573335285685416092e-35), /* 3f8c23f13171db04edb02710b829c01e */
+/* sin(x) = 0.5dc40955d9084f48a94675a2498de5d851320ff5528a6afb3f2e24de240fce6cbed1ba0ccd6 */
+ L(3.66272529086047561372909351716264177e-01), /* 3ffd7710255764213d22a519d6892638 */
+L(-1.96768433534936592675897818253108989e-35), /* bf8ba27aecdf00aad759504c0d1db21e */
+
+/* x = 3.82812500000000000000000000000000000e-01 3ffd8800000000000000000000000000 */
+/* cos(x) = 0.ed785b5c44741b4493c56bcb9d338a151c6f6b85d8f8aca658b28572c162b199680eb9304da */
+ L(9.27617750192851909628030798799961350e-01), /* 3ffedaf0b6b888e83689278ad7973a67 */
+ L(7.58520371916345756281201167126854712e-36), /* 3f8a42a38ded70bb1f1594cb1650ae58 */
+/* sin(x) = 0.5f9fb80f21b53649c432540a50e22c53057ff42ae0fdf1307760dc0093f99c8efeb2fbd7073 */
+ L(3.73530868238692946416839752660848112e-01), /* 3ffd7e7ee03c86d4d92710c950294389 */
+L(-1.48023494778986556048879113411517128e-35), /* bf8b3acfa800bd51f020ecf889f23ff7 */
+
+/* x = 3.90625000000000000000000000000000000e-01 3ffd9000000000000000000000000000 */
+/* cos(x) = 0.ecb7417b8d4ee3fec37aba4073aa48f1f14666006fb431d9671303c8100d10190ec8179c41d */
+ L(9.24671261467036098502113014560138771e-01), /* 3ffed96e82f71a9dc7fd86f57480e755 */
+L(-4.14187124860031825108649347251175815e-35), /* bf8cb87075cccffc825e7134c767e1bf */
+/* sin(x) = 0.6179e84a09a5258a40e9b5face03e525f8b5753cd0105d93fe6298010c3458e84d75fe420e9 */
+ L(3.80766408992390192057200703388896675e-01), /* 3ffd85e7a1282694962903a6d7eb3810 */
+L(-2.02009541175208636336924533372496107e-35), /* bf8bada074a8ac32fefa26c019d67fef */
+
+/* x = 3.98437500000000000000000000000000000e-01 3ffd9800000000000000000000000000 */
+/* cos(x) = 0.ebf274bf0bda4f62447e56a093626798d3013b5942b1abfd155aacc9dc5c6d0806a20d6b9c1 */
+ L(9.21668335573351918175411368202712714e-01), /* 3ffed7e4e97e17b49ec488fcad4126c5 */
+L(-1.83587995433957622948710263541479322e-35), /* bf8b8672cfec4a6bd4e5402eaa553362 */
+/* sin(x) = 0.6352929dd264bd44a02ea766325d8aa8bd9695fc8def3caefba5b94c9a3c873f7b2d3776ead */
+ L(3.87978709727025046051079690813741960e-01), /* 3ffd8d4a4a774992f51280ba9d98c976 */
+ L(8.01904783870935075844443278617586301e-36), /* 3f8a5517b2d2bf91bde795df74b72993 */
+
+/* x = 4.06250000000000000000000000000000000e-01 3ffda000000000000000000000000000 */
+/* cos(x) = 0.eb29f839f201fd13b93796827916a78f15c85230a4e8ea4b21558265a14367e1abb4c30695a */
+ L(9.18609155794918267837824977718549863e-01), /* 3ffed653f073e403fa27726f2d04f22d */
+ L(2.97608282778274433460057745798409849e-35), /* 3f8c3c78ae429185274752590aac132d */
+/* sin(x) = 0.6529afa7d51b129631ec197c0a840a11d7dc5368b0a47956feb285caa8371c4637ef17ef01b */
+ L(3.95167330240934236244832640419653657e-01), /* 3ffd94a6be9f546c4a58c7b065f02a10 */
+ L(7.57560031388312550940040194042627704e-36), /* 3f8a423afb8a6d16148f2adfd650b955 */
+
+/* x = 4.14062500000000000000000000000000000e-01 3ffda800000000000000000000000000 */
+/* cos(x) = 0.ea5dcf0e30cf03e6976ef0b1ec26515fba47383855c3b4055a99b5e86824b2cd1a691fdca7b */
+ L(9.15493908848301228563917732180221882e-01), /* 3ffed4bb9e1c619e07cd2edde163d84d */
+L(-3.50775517955306954815090901168305659e-35), /* bf8c75022dc63e3d51e25fd52b3250bd */
+/* sin(x) = 0.66ff380ba0144109e39a320b0a3fa5fd65ea0585bcbf9b1a769a9b0334576c658139e1a1cbe */
+ L(4.02331831777773111217105598880982387e-01), /* 3ffd9bfce02e805104278e68c82c28ff */
+L(-1.95678722882848174723569916504871563e-35), /* bf8ba029a15fa7a434064e5896564fcd */
+
+/* x = 4.21875000000000000000000000000000000e-01 3ffdb000000000000000000000000000 */
+/* cos(x) = 0.e98dfc6c6be031e60dd3089cbdd18a75b1f6b2c1e97f79225202f03dbea45b07a5ec4efc062 */
+ L(9.12322784872117846492029542047341734e-01), /* 3ffed31bf8d8d7c063cc1ba611397ba3 */
+ L(7.86903886556373674267948132178845568e-36), /* 3f8a4eb63ed6583d2fef244a405e07b8 */
+/* sin(x) = 0.68d32473143327973bc712bcc4ccddc47630d755850c0655243b205934dc49ffed8eb76adcb */
+ L(4.09471777053295066122694027011452236e-01), /* 3ffda34c91cc50cc9e5cef1c4af31333 */
+ L(2.23945241468457597921655785729821354e-35), /* 3f8bdc47630d755850c0655243b20593 */
+
+/* x = 4.29687500000000000000000000000000000e-01 3ffdb800000000000000000000000000 */
+/* cos(x) = 0.e8ba8393eca7821aa563d83491b6101189b3b101c3677f73d7bad7c10f9ee02b7ab4009739a */
+ L(9.09095977415431051650381735684476417e-01), /* 3ffed1750727d94f04354ac7b069236c */
+ L(1.20886014028444155733776025085677953e-35), /* 3f8b01189b3b101c3677f73d7bad7c11 */
+/* sin(x) = 0.6aa56d8e8249db4eb60a761fe3f9e559be456b9e13349ca99b0bfb787f22b95db3b70179615 */
+ L(4.16586730282041119259112448831069657e-01), /* 3ffdaa95b63a09276d3ad829d87f8fe8 */
+L(-2.00488106831998813675438269796963612e-35), /* bf8baa641ba9461eccb635664f404878 */
+
+/* x = 4.37500000000000000000000000000000000e-01 3ffdc000000000000000000000000000 */
+/* cos(x) = 0.e7e367d2956cfb16b6aa11e5419cd0057f5c132a6455bf064297e6a76fe2b72bb630d6d50ff */
+ L(9.05813683425936420744516660652700258e-01), /* 3ffecfc6cfa52ad9f62d6d5423ca833a */
+L(-3.60950307605941169775676563004467163e-35), /* bf8c7fd4051f66acdd5207cdeb40cac5 */
+/* sin(x) = 0.6c760c14c8585a51dbd34660ae6c52ac7036a0b40887a0b63724f8b4414348c3063a637f457 */
+ L(4.23676257203938010361683988031102480e-01), /* 3ffdb1d83053216169476f4d1982b9b1 */
+ L(1.40484456388654470329473096579312595e-35), /* 3f8b2ac7036a0b40887a0b63724f8b44 */
+
+/* x = 4.45312500000000000000000000000000000e-01 3ffdc800000000000000000000000000 */
+/* cos(x) = 0.e708ac84d4172a3e2737662213429e14021074d7e702e77d72a8f1101a7e70410df8273e9aa */
+ L(9.02476103237941504925183272675895999e-01), /* 3ffece115909a82e547c4e6ecc442685 */
+ L(2.26282899501344419018306295680210602e-35), /* 3f8be14021074d7e702e77d72a8f1102 */
+/* sin(x) = 0.6e44f8c36eb10a1c752d093c00f4d47ba446ac4c215d26b0316442f168459e677d06e7249e3 */
+ L(4.30739925110803197216321517850849190e-01), /* 3ffdb913e30dbac42871d4b424f003d3 */
+ L(1.54096780001629398850891218396761548e-35), /* 3f8b47ba446ac4c215d26b0316442f17 */
+
+/* x = 4.53125000000000000000000000000000000e-01 3ffdd000000000000000000000000000 */
+/* cos(x) = 0.e62a551594b970a770b15d41d4c0e483e47aca550111df6966f9e7ac3a94ae49e6a71eb031e */
+ L(8.99083440560138456216544929209379307e-01), /* 3ffecc54aa2b2972e14ee162ba83a982 */
+L(-2.06772615490904370666670275154751976e-35), /* bf8bb7c1b8535aafeee209699061853c */
+/* sin(x) = 0.70122c5ec5028c8cff33abf4fd340ccc382e038379b09cf04f9a52692b10b72586060cbb001 */
+ L(4.37777302872755132861618974702796680e-01), /* 3ffdc048b17b140a3233fcceafd3f4d0 */
+ L(9.62794364503442612477117426033922467e-36), /* 3f8a998705c0706f36139e09f34a4d25 */
+
+/* x = 4.60937500000000000000000000000000000e-01 3ffdd800000000000000000000000000 */
+/* cos(x) = 0.e54864fe33e8575cabf5bd0e5cf1b1a8bc7c0d5f61702450fa6b6539735820dd2603ae355d5 */
+ L(8.95635902463170698900570000446256350e-01), /* 3ffeca90c9fc67d0aeb957eb7a1cb9e3 */
+ L(3.73593741659866883088620495542311808e-35), /* 3f8c8d45e3e06afb0b812287d35b29cc */
+/* sin(x) = 0.71dd9fb1ff4677853acb970a9f6729c6e3aac247b1c57cea66c77413f1f98e8b9e98e49d851 */
+ L(4.44787960964527211433056012529525211e-01), /* 3ffdc7767ec7fd19de14eb2e5c2a7d9d */
+L(-1.67187936511493678007508371613954899e-35), /* bf8b6391c553db84e3a831599388bec1 */
+
+/* x = 4.68750000000000000000000000000000000e-01 3ffde000000000000000000000000000 */
+/* cos(x) = 0.e462dfc670d421ab3d1a15901228f146a0547011202bf5ab01f914431859aef577966bc4fa4 */
+ L(8.92133699366994404723900253723788575e-01), /* 3ffec8c5bf8ce1a843567a342b202452 */
+L(-1.10771937602567314732693079264692504e-35), /* bf8ad72bf571fddbfa814a9fc0dd779d */
+/* sin(x) = 0.73a74b8f52947b681baf6928eb3fb021769bf4779bad0e3aa9b1cdb75ec60aad9fc63ff19d5 */
+ L(4.51771471491683776581688750134062870e-01), /* 3ffdce9d2e3d4a51eda06ebda4a3acff */
+L(-1.19387223016472295893794387275284505e-35), /* bf8afbd12c81710c8a5e38aac9c64914 */
+
+/* x = 4.76562500000000000000000000000000000e-01 3ffde800000000000000000000000000 */
+/* cos(x) = 0.e379c9045f29d517c4808aa497c2057b2b3d109e76c0dc302d4d0698b36e3f0bdbf33d8e952 */
+ L(8.88577045028035543317609023116020980e-01), /* 3ffec6f39208be53aa2f890115492f84 */
+ L(4.12354278954664731443813655177022170e-36), /* 3f895ecacf44279db0370c0b5341a62d */
+/* sin(x) = 0.756f28d011d98528a44a75fc29c779bd734ecdfb582fdb74b68a4c4c4be54cfd0b2d3ad292f */
+ L(4.58727408216736592377295028972874773e-01), /* 3ffdd5bca340476614a29129d7f0a71e */
+L(-4.70946994194182908929251719575431779e-36), /* bf8990a32c4c8129f40922d25d6ceced */
+
+/* x = 4.84375000000000000000000000000000000e-01 3ffdf000000000000000000000000000 */
+/* cos(x) = 0.e28d245c58baef72225e232abc003c4366acd9eb4fc2808c2ab7fe7676cf512ac7f945ae5fb */
+ L(8.84966156526143291697296536966647926e-01), /* 3ffec51a48b8b175dee444bc46557800 */
+ L(4.53370570288325630442037826313462165e-35), /* 3f8ce21b3566cf5a7e14046155bff3b4 */
+/* sin(x) = 0.77353054ca72690d4c6e171fd99e6b39fa8e1ede5f052fd2964534c75340970a3a9cd3c5c32 */
+ L(4.65655346585160182681199512507546779e-01), /* 3ffddcd4c15329c9a43531b85c7f667a */
+L(-1.56282598978971872478619772155305961e-35), /* bf8b4c60571e121a0fad02d69bacb38b */
+
+/* x = 4.92187500000000000000000000000000000e-01 3ffdf800000000000000000000000000 */
+/* cos(x) = 0.e19cf580eeec046aa1422fa74807ecefb2a1911c94e7b5f20a00f70022d940193691e5bd790 */
+ L(8.81301254251340599140161908298100173e-01), /* 3ffec339eb01ddd808d542845f4e9010 */
+L(-1.43419192312116687783945619009629445e-35), /* bf8b3104d5e6ee36b184a0df5ff08ffe */
+/* sin(x) = 0.78f95b0560a9a3bd6df7bd981dc38c61224d08bc20631ea932e605e53b579e9e0767dfcbbcb */
+ L(4.72554863751304451146551317808516942e-01), /* 3ffde3e56c1582a68ef5b7def660770e */
+ L(9.31324774957768018850224267625371204e-36), /* 3f8a8c2449a117840c63d5265cc0bca7 */
+
+/* x = 5.00000000000000000000000000000000000e-01 3ffe0000000000000000000000000000 */
+/* cos(x) = 0.e0a94032dbea7cedbddd9da2fafad98556566b3a89f43eabd72350af3e8b19e801204d8fe2e */
+ L(8.77582561890372716116281582603829681e-01), /* 3ffec1528065b7d4f9db7bbb3b45f5f6 */
+L(-2.89484960181363924855192538540698851e-35), /* bf8c33d54d4ca62bb05e0aa146e57a86 */
+/* sin(x) = 0.7abba1d12c17bfa1d92f0d93f60ded9992f45b4fcaf13cd58b303693d2a0db47db35ae8a3a9 */
+ L(4.79425538604203000273287935215571402e-01), /* 3ffdeaee8744b05efe8764bc364fd838 */
+L(-1.38426977616718318950175848639381926e-35), /* bf8b2666d0ba4b0350ec32a74cfc96c3 */
+
+/* x = 5.07812500000000000000000000000000000e-01 3ffe0400000000000000000000000000 */
+/* cos(x) = 0.dfb20840f3a9b36f7ae2c515342890b5ec583b8366cc2b55029e95094d31112383f2553498b */
+ L(8.73810306413054508282556837071377159e-01), /* 3ffebf641081e75366def5c58a2a6851 */
+ L(1.25716864497849302237218128599994785e-35), /* 3f8b0b5ec583b8366cc2b55029e95095 */
+/* sin(x) = 0.7c7bfdaf13e5ed17212f8a7525bfb113aba6c0741b5362bb8d59282a850b63716bca0c910f0 */
+ L(4.86266951793275574311011306895834993e-01), /* 3ffdf1eff6bc4f97b45c84be29d496ff */
+L(-1.12269393250914752644352376448094271e-35), /* bf8add8a8b27f17c9593a88e54dafaaf */
+
+/* x = 5.15625000000000000000000000000000000e-01 3ffe0800000000000000000000000000 */
+/* cos(x) = 0.deb7518814a7a931bbcc88c109cd41c50bf8bb48f20ae8c36628d1d3d57574f7dc58f27d91c */
+ L(8.69984718058417388828915599901466243e-01), /* 3ffebd6ea310294f526377991182139b */
+L(-4.68168638300575626782741319792183837e-35), /* bf8cf1d7a03a25b86fa8b9e4ceb97161 */
+/* sin(x) = 0.7e3a679daaf25c676542bcb4028d0964172961c921823a4ef0c3a9070d886dbd073f6283699 */
+ L(4.93078685753923057265136552753487121e-01), /* 3ffdf8e99e76abc9719d950af2d00a34 */
+ L(7.06498693112535056352301101088624950e-36), /* 3f8a2c82e52c3924304749de187520e2 */
+
+/* x = 5.23437500000000000000000000000000000e-01 3ffe0c00000000000000000000000000 */
+/* cos(x) = 0.ddb91ff318799172bd2452d0a3889f5169c64a0094bcf0b8aa7dcf0d7640a2eba68955a80be */
+ L(8.66106030320656714696616831654267220e-01), /* 3ffebb723fe630f322e57a48a5a14711 */
+ L(2.35610597588322493119667003904687628e-35), /* 3f8bf5169c64a0094bcf0b8aa7dcf0d7 */
+/* sin(x) = 0.7ff6d8a34bd5e8fa54c97482db5159df1f24e8038419c0b448b9eea8939b5d4dfcf40900257 */
+ L(4.99860324733013463819556536946425724e-01), /* 3ffdffdb628d2f57a3e95325d20b6d45 */
+ L(1.94636052312235297538564591686645139e-35), /* 3f8b9df1f24e8038419c0b448b9eea89 */
+
+/* x = 5.31250000000000000000000000000000000e-01 3ffe1000000000000000000000000000 */
+/* cos(x) = 0.dcb7777ac420705168f31e3eb780ce9c939ecada62843b54522f5407eb7f21e556059fcd734 */
+ L(8.62174479934880504367162510253324274e-01), /* 3ffeb96eeef58840e0a2d1e63c7d6f02 */
+L(-3.71556818317533582234562471835771823e-35), /* bf8c8b1b6309a92cebde255d6e855fc1 */
+/* sin(x) = 0.81b149ce34caa5a4e650f8d09fd4d6aa74206c32ca951a93074c83b2d294d25dbb0f7fdfad2 */
+ L(5.06611454814257367642296000893867192e-01), /* 3ffe0362939c69954b49cca1f1a13faa */
+L(-3.10963699824274155702706043065967062e-35), /* bf8c4aac5efc9e69ab572b67c59be269 */
+
+/* x = 5.39062500000000000000000000000000000e-01 3ffe1400000000000000000000000000 */
+/* cos(x) = 0.dbb25c25b8260c14f6e7bc98ec991b70c65335198b0ab628bad20cc7b229d4dd62183cfa055 */
+ L(8.58190306862660347046629564970494649e-01), /* 3ffeb764b84b704c1829edcf7931d932 */
+ L(2.06439574601190798155563653000684861e-35), /* 3f8bb70c65335198b0ab628bad20cc7b */
+/* sin(x) = 0.8369b434a372da7eb5c8a71fe36ce1e0b2b493f6f5cb2e38bcaec2a556b3678c401940d1c3c */
+ L(5.13331663943471218288801270215706878e-01), /* 3ffe06d3686946e5b4fd6b914e3fc6da */
+L(-2.26614796466671970772244932848067224e-35), /* bf8be1f4d4b6c090a34d1c743513d5ab */
+
+/* x = 5.46875000000000000000000000000000000e-01 3ffe1800000000000000000000000000 */
+/* cos(x) = 0.daa9d20860827063fde51c09e855e9932e1b17143e7244fd267a899d41ae1f3bc6a0ec42e27 */
+ L(8.54153754277385385143451785105103176e-01), /* 3ffeb553a410c104e0c7fbca3813d0ac */
+L(-1.68707534013095152873222061722573172e-35), /* bf8b66cd1e4e8ebc18dbb02d9857662c */
+/* sin(x) = 0.852010f4f0800521378bd8dd614753d080c2e9e0775ffc609947b9132f5357404f464f06a58 */
+ L(5.20020541953727004760213699874674730e-01), /* 3ffe0a4021e9e1000a426f17b1bac28f */
+L(-3.32415021330884924833711842866896734e-35), /* bf8c617bf9e8b0fc45001cfb35c23767 */
+
+/* x = 5.54687500000000000000000000000000000e-01 3ffe1c00000000000000000000000000 */
+/* cos(x) = 0.d99ddd44e44a43d4d4a3a3ed95204106fd54d78e8c7684545c0da0b7c2c72be7a89b7c182ad */
+ L(8.50065068549420263957072899177793617e-01), /* 3ffeb33bba89c89487a9a94747db2a41 */
+L(-4.73753917078785974356016104842568442e-35), /* bf8cf7c81559438b9c4bdd5d1f92fa42 */
+/* sin(x) = 0.86d45935ab396cb4e421e822dee54f3562dfcefeaa782184c23401d231f5ad981a1cc195b18 */
+ L(5.26677680590386730710789410624833901e-01), /* 3ffe0da8b26b5672d969c843d045bdcb */
+L(-3.67066148195515214077582496518566735e-35), /* bf8c8654e901880aac3ef3d9ee5ff16e */
+
+/* x = 5.62500000000000000000000000000000000e-01 3ffe2000000000000000000000000000 */
+/* cos(x) = 0.d88e820b1526311dd561efbc0c1a9a5375eb26f65d246c5744b13ca26a7e0fd42556da843c8 */
+ L(8.45924499231067954459723078597493262e-01), /* 3ffeb11d04162a4c623baac3df781835 */
+ L(1.98054947141989878179164342925274053e-35), /* 3f8ba5375eb26f65d246c5744b13ca27 */
+/* sin(x) = 0.88868625b4e1dbb2313310133022527200c143a5cb16637cb7daf8ade82459ff2e98511f40f */
+ L(5.33302673536020173329131103308161529e-01), /* 3ffe110d0c4b69c3b764626620266045 */
+L(-3.42715291319551615996993795226755157e-35), /* bf8c6c6ff9f5e2d1a74ce41a41283a91 */
+
+/* x = 5.70312500000000000000000000000000000e-01 3ffe2400000000000000000000000000 */
+/* cos(x) = 0.d77bc4985e93a607c9d868b906bbc6bbe3a04258814acb0358468b826fc91bd4d814827f65e */
+ L(8.41732299041338366963111794309701085e-01), /* 3ffeaef78930bd274c0f93b0d1720d78 */
+L(-4.30821936750410026005408345400225948e-35), /* bf8cca20e2fded3bf5a9a7e53dcba3ed */
+/* sin(x) = 0.8a3690fc5bfc11bf9535e2739a8512f448a41251514bbed7fc18d530f9b4650fcbb2861b0aa */
+ L(5.39895116435204405041660709903993340e-01), /* 3ffe146d21f8b7f8237f2a6bc4e7350a */
+ L(1.42595803521626714477253741404712093e-35), /* 3f8b2f448a41251514bbed7fc18d5310 */
+
+/* x = 5.78125000000000000000000000000000000e-01 3ffe2800000000000000000000000000 */
+/* cos(x) = 0.d665a937b4ef2b1f6d51bad6d988a4419c1d7051faf31a9efa151d7631117efac03713f950a */
+ L(8.37488723850523685315353348917240617e-01), /* 3ffeaccb526f69de563edaa375adb311 */
+ L(2.72761997872084533045777718677326179e-35), /* 3f8c220ce0eb828fd798d4f7d0a8ebb2 */
+/* sin(x) = 0.8be472f9776d809af2b88171243d63d66dfceeeb739cc894e023fbc165a0e3f26ff729c5d57 */
+ L(5.46454606919203564403349553749411001e-01), /* 3ffe17c8e5f2eedb0135e57102e2487b */
+L(-2.11870230730160315420936523771864858e-35), /* bf8bc29920311148c63376b1fdc043ea */
+
+/* x = 5.85937500000000000000000000000000000e-01 3ffe2c00000000000000000000000000 */
+/* cos(x) = 0.d54c3441844897fc8f853f0655f1ba695eba9fbfd7439dbb1171d862d9d9146ca5136f825ac */
+ L(8.33194032664581363070224042208032321e-01), /* 3ffeaa98688308912ff91f0a7e0cabe3 */
+ L(4.39440050052045486567668031751259899e-35), /* 3f8cd34af5d4fdfeba1cedd88b8ec317 */
+/* sin(x) = 0.8d902565817ee7839bce3cd128060119492cd36d42d82ada30d7f8bde91324808377ddbf5d4 */
+ L(5.52980744630527369849695082681623667e-01), /* 3ffe1b204acb02fdcf07379c79a2500c */
+ L(8.26624790417342895897164123189984127e-37), /* 3f8719492cd36d42d82ada30d7f8bde9 */
+
+/* x = 5.93750000000000000000000000000000000e-01 3ffe3000000000000000000000000000 */
+/* cos(x) = 0.d42f6a1b9f0168cdf031c2f63c8d9304d86f8d34cb1d5fccb68ca0f2241427fc18d1fd5bbdf */
+ L(8.28848487609325734810171790119116638e-01), /* 3ffea85ed4373e02d19be06385ec791b */
+ L(1.43082508100496581719048175506239770e-35), /* 3f8b304d86f8d34cb1d5fccb68ca0f22 */
+/* sin(x) = 0.8f39a191b2ba6122a3fa4f41d5a3ffd421417d46f19a22230a14f7fcc8fce5c75b4b28b29d1 */
+ L(5.59473131247366877384844006003116688e-01), /* 3ffe1e7343236574c24547f49e83ab48 */
+L(-1.28922620524163922306886952100992796e-37), /* bf845ef5f415c8732eeee7af584019b8 */
+
+/* x = 6.01562500000000000000000000000000000e-01 3ffe3400000000000000000000000000 */
+/* cos(x) = 0.d30f4f392c357ab0661c5fa8a7d9b26627846fef214b1d19a22379ff9eddba087cf410eb097 */
+ L(8.24452353914429207485643598212356053e-01), /* 3ffea61e9e72586af560cc38bf514fb3 */
+ L(3.79160239225080026987031418939026741e-35), /* 3f8c93313c237f790a58e8cd111bcffd */
+/* sin(x) = 0.90e0e0d81ca678796cc92c8ea8c2815bc72ca78abe571bfa8576aacc571e096a33237e0e830 */
+ L(5.65931370507905990773159095689276114e-01), /* 3ffe21c1c1b0394cf0f2d992591d5185 */
+ L(1.02202775968053982310991962521535027e-36), /* 3f875bc72ca78abe571bfa8576aacc57 */
+
+/* x = 6.09375000000000000000000000000000000e-01 3ffe3800000000000000000000000000 */
+/* cos(x) = 0.d1ebe81a95ee752e48a26bcd32d6e922d7eb44b8ad2232f6930795e84b56317269b9dd1dfa6 */
+ L(8.20005899897234008255550633876556043e-01), /* 3ffea3d7d0352bdcea5c9144d79a65ae */
+L(-1.72008811955230823416724332297991247e-35), /* bf8b6dd2814bb4752ddcd096cf86a17b */
+/* sin(x) = 0.9285dc9bc45dd9ea3d02457bcce59c4175aab6ff7929a8d287195525fdace200dba032874fb */
+ L(5.72355068234507240384953706824503608e-01), /* 3ffe250bb93788bbb3d47a048af799cb */
+ L(2.12572273479933123944580199464514529e-35), /* 3f8bc4175aab6ff7929a8d2871955260 */
+
+/* x = 6.17187500000000000000000000000000000e-01 3ffe3c00000000000000000000000000 */
+/* cos(x) = 0.d0c5394d772228195e25736c03574707de0af1ca344b13bd3914bfe27518e9e426f5deff1e1 */
+ L(8.15509396946375476876345384201386217e-01), /* 3ffea18a729aee445032bc4ae6d806af */
+L(-4.28589138410712954051679139949341961e-35), /* bf8cc7c10fa871ae5da76216375a00ec */
+/* sin(x) = 0.94288e48bd0335fc41c4cbd2920497a8f5d1d8185c99fa0081f90c27e2a53ffdd208a0dbe69 */
+ L(5.78743832357770354521111378581385347e-01), /* 3ffe28511c917a066bf8838997a52409 */
+ L(1.77998063432551282609698670002456093e-35), /* 3f8b7a8f5d1d8185c99fa0081f90c27e */
+
+/* x = 6.25000000000000000000000000000000000e-01 3ffe4000000000000000000000000000 */
+/* cos(x) = 0.cf9b476c897c25c5bfe750dd3f308eaf7bcc1ed00179a256870f4200445043dcdb1974b5878 */
+ L(8.10963119505217902189534803941080724e-01), /* 3ffe9f368ed912f84b8b7fcea1ba7e61 */
+ L(1.10481292856794436426051402418804358e-35), /* 3f8ad5ef7983da002f344ad0e1e84009 */
+/* sin(x) = 0.95c8ef544210ec0b91c49bd2aa09e8515fa61a156ebb10f5f8c232a6445b61ebf3c2ec268f9 */
+ L(5.85097272940462154805399314150080459e-01), /* 3ffe2b91dea88421d817238937a55414 */
+L(-1.78164576278056195136525335403380464e-35), /* bf8b7aea059e5ea9144ef0a073dcd59c */
+
+/* x = 6.32812500000000000000000000000000000e-01 3ffe4400000000000000000000000000 */
+/* cos(x) = 0.ce6e171f92f2e27f32225327ec440ddaefae248413efc0e58ceee1ae369aabe73f88c87ed1a */
+ L(8.06367345055103913698795406077297399e-01), /* 3ffe9cdc2e3f25e5c4fe6444a64fd888 */
+ L(1.04235088143133625463876245029180850e-35), /* 3f8abb5df5c490827df81cb19ddc35c7 */
+/* sin(x) = 0.9766f93cd18413a6aafc1cfc6fc28abb6817bf94ce349901ae3f48c3215d3eb60acc5f78903 */
+ L(5.91415002201316315087000225758031236e-01), /* 3ffe2ecdf279a308274d55f839f8df85 */
+ L(8.07390238063560077355762466502569603e-36), /* 3f8a576d02f7f299c6932035c7e91864 */
+
+/* x = 6.40625000000000000000000000000000000e-01 3ffe4800000000000000000000000000 */
+/* cos(x) = 0.cd3dad1b5328a2e459f993f4f5108819faccbc4eeba9604e81c7adad51cc8a2561631a06826 */
+ L(8.01722354098418450607492605652964208e-01), /* 3ffe9a7b5a36a65145c8b3f327e9ea21 */
+ L(6.09487851305233089325627939458963741e-36), /* 3f8a033f599789dd752c09d038f5b5aa */
+/* sin(x) = 0.9902a58a45e27bed68412b426b675ed503f54d14c8172e0d373f42cadf04daf67319a7f94be */
+ L(5.97696634538701531238647618967334337e-01), /* 3ffe32054b148bc4f7dad0825684d6cf */
+L(-2.49527608940873714527427941350461554e-35), /* bf8c0957e0559759bf468f964605e9a9 */
+
+/* x = 6.48437500000000000000000000000000000e-01 3ffe4c00000000000000000000000000 */
+/* cos(x) = 0.cc0a0e21709883a3ff00911e11a07ee3bd7ea2b04e081be99be0264791170761ae64b8b744a */
+ L(7.97028430141468342004642741431945296e-01), /* 3ffe98141c42e1310747fe01223c2341 */
+L(-8.35364432831812599727083251866305534e-37), /* bf871c42815d4fb1f7e416641fd9b86f */
+/* sin(x) = 0.9a9bedcdf01b38d993f3d7820781de292033ead73b89e28f39313dbe3a6e463f845b5fa8490 */
+ L(6.03941786554156657267270287527367726e-01), /* 3ffe3537db9be03671b327e7af040f04 */
+L(-2.54578992328947177770363936132309779e-35), /* bf8c0eb6fe60a94623b0eb863676120e */
+
+/* x = 6.56250000000000000000000000000000000e-01 3ffe5000000000000000000000000000 */
+/* cos(x) = 0.cad33f00658fe5e8204bbc0f3a66a0e6a773f87987a780b243d7be83b3db1448ca0e0e62787 */
+ L(7.92285859677178543141501323781709399e-01), /* 3ffe95a67e00cb1fcbd04097781e74cd */
+ L(2.47519558228473167879248891673807645e-35), /* 3f8c07353b9fc3cc3d3c05921ebdf41e */
+/* sin(x) = 0.9c32cba2b14156ef05256c4f857991ca6a547cd7ceb1ac8a8e62a282bd7b9183648a462bd04 */
+ L(6.10150077075791371273742393566183220e-01), /* 3ffe386597456282adde0a4ad89f0af3 */
+ L(1.33842237929938963780969418369150532e-35), /* 3f8b1ca6a547cd7ceb1ac8a8e62a282c */
+
+/* x = 6.64062500000000000000000000000000000e-01 3ffe5400000000000000000000000000 */
+/* cos(x) = 0.c99944936cf48c8911ff93fe64b3ddb7981e414bdaf6aae1203577de44878c62bc3bc9cf7b9 */
+ L(7.87494932167606083931328295965533034e-01), /* 3ffe93328926d9e9191223ff27fcc968 */
+L(-2.57915385618070637156514241185180920e-35), /* bf8c12433f0df5a1284aa8f6fe54410e */
+/* sin(x) = 0.9dc738ad14204e689ac582d0f85826590feece34886cfefe2e08cf2bb8488d55424dc9d3525 */
+ L(6.16321127181550943005700433761731837e-01), /* 3ffe3b8e715a28409cd1358b05a1f0b0 */
+ L(2.88497530050197716298085892460478666e-35), /* 3f8c32c87f7671a44367f7f17046795e */
+
+/* x = 6.71875000000000000000000000000000000e-01 3ffe5800000000000000000000000000 */
+/* cos(x) = 0.c85c23c26ed7b6f014ef546c47929682122876bfbf157de0aff3c4247d820c746e32cd4174f */
+ L(7.82655940026272796930787447428139026e-01), /* 3ffe90b84784ddaf6de029dea8d88f25 */
+ L(1.69332045679237919427807771288506254e-35), /* 3f8b682122876bfbf157de0aff3c4248 */
+/* sin(x) = 0.9f592e9b66a9cf906a3c7aa3c10199849040c45ec3f0a747597311038101780c5f266059dbf */
+ L(6.22454560222343683041926705090443330e-01), /* 3ffe3eb25d36cd539f20d478f5478203 */
+ L(1.91974786921147072717621236192269859e-35), /* 3f8b9849040c45ec3f0a747597311038 */
+
+/* x = 6.79687500000000000000000000000000000e-01 3ffe5c00000000000000000000000000 */
+/* cos(x) = 0.c71be181ecd6875ce2da5615a03cca207d9adcb9dfb0a1d6c40a4f0056437f1a59ccddd06ee */
+ L(7.77769178600317903122203513685412863e-01), /* 3ffe8e37c303d9ad0eb9c5b4ac2b407a */
+L(-4.05296033424632846931240580239929672e-35), /* bf8caefc13291a31027af149dfad87fd */
+/* sin(x) = 0.a0e8a725d33c828c11fa50fd9e9a15ffecfad43f3e534358076b9b0f6865694842b1e8c67dc */
+ L(6.28550001845029662028004327939032867e-01), /* 3ffe41d14e4ba679051823f4a1fb3d34 */
+ L(1.65507421184028099672784511397428852e-35), /* 3f8b5ffecfad43f3e534358076b9b0f7 */
+
+/* x = 6.87500000000000000000000000000000000e-01 3ffe6000000000000000000000000000 */
+/* cos(x) = 0.c5d882d2ee48030c7c07d28e981e34804f82ed4cf93655d2365389b716de6ad44676a1cc5da */
+ L(7.72834946152471544810851845913425178e-01), /* 3ffe8bb105a5dc900618f80fa51d303c */
+ L(3.94975229341211664237241534741146939e-35), /* 3f8ca4027c176a67c9b2ae91b29c4db9 */
+/* sin(x) = 0.a2759c0e79c35582527c32b55f5405c182c66160cb1d9eb7bb0b7cdf4ad66f317bda4332914 */
+ L(6.34607080015269296850309914203671436e-01), /* 3ffe44eb381cf386ab04a4f8656abea8 */
+ L(4.33025916939968369326060156455927002e-36), /* 3f897060b1985832c767adeec2df37d3 */
+
+/* x = 6.95312500000000000000000000000000000e-01 3ffe6400000000000000000000000000 */
+/* cos(x) = 0.c4920cc2ec38fb891b38827db08884fc66371ac4c2052ca8885b981bbcfd3bb7b093ee31515 */
+ L(7.67853543842850365879920759114193964e-01), /* 3ffe89241985d871f712367104fb6111 */
+ L(3.75100035267325597157244776081706979e-36), /* 3f893f198dc6b130814b2a2216e606ef */
+/* sin(x) = 0.a400072188acf49cd6b173825e038346f105e1301afe642bcc364cea455e21e506e3e927ed8 */
+ L(6.40625425040230409188409779413961021e-01), /* 3ffe48000e431159e939ad62e704bc07 */
+ L(2.46542747294664049615806500747173281e-36), /* 3f88a37882f0980d7f3215e61b267523 */
+
+/* x = 7.03125000000000000000000000000000000e-01 3ffe6800000000000000000000000000 */
+/* cos(x) = 0.c348846bbd3631338ffe2bfe9dd1381a35b4e9c0c51b4c13fe376bad1bf5caacc4542be0aa9 */
+ L(7.62825275710576250507098753625429792e-01), /* 3ffe869108d77a6c62671ffc57fd3ba2 */
+ L(4.22067411888601505004748939382325080e-35), /* 3f8cc0d1ada74e0628da609ff1bb5d69 */
+/* sin(x) = 0.a587e23555bb08086d02b9c662cdd29316c3e9bd08d93793634a21b1810cce73bdb97a99b9e */
+ L(6.46604669591152370524042159882800763e-01), /* 3ffe4b0fc46aab761010da05738cc59c */
+L(-3.41742981816219412415674365946079826e-35), /* bf8c6b6749e0b217b9364364e5aef274 */
+
+/* x = 7.10937500000000000000000000000000000e-01 3ffe6c00000000000000000000000000 */
+/* cos(x) = 0.c1fbeef380e4ffdd5a613ec8722f643ffe814ec2343e53adb549627224fdc9f2a7b77d3d69f */
+ L(7.57750448655219342240234832230493361e-01), /* 3ffe83f7dde701c9ffbab4c27d90e45f */
+L(-2.08767968311222650582659938787920125e-35), /* bf8bbc0017eb13dcbc1ac524ab69d8de */
+/* sin(x) = 0.a70d272a76a8d4b6da0ec90712bb748b96dabf88c3079246f3db7eea6e58ead4ed0e2843303 */
+ L(6.52544448725765956407573982284767763e-01), /* 3ffe4e1a4e54ed51a96db41d920e2577 */
+L(-8.61758060284379660697102362141557170e-36), /* bf8a6e8d24a80ee79f0db721849022b2 */
+
+/* x = 7.18750000000000000000000000000000000e-01 3ffe7000000000000000000000000000 */
+/* cos(x) = 0.c0ac518c8b6ae710ba37a3eeb90cb15aebcb8bed4356fb507a48a6e97de9aa6d9660116b436 */
+ L(7.52629372418066476054541324847143116e-01), /* 3ffe8158a31916d5ce21746f47dd7219 */
+ L(3.71306958657663189665450864311104571e-35), /* 3f8c8ad75e5c5f6a1ab7da83d245374c */
+/* sin(x) = 0.a88fcfebd9a8dd47e2f3c76ef9e2439920f7e7fbe735f8bcc985491ec6f12a2d4214f8cfa99 */
+ L(6.58444399910567541589583954884041989e-01), /* 3ffe511f9fd7b351ba8fc5e78eddf3c5 */
+L(-4.54412944084300330523721391865787219e-35), /* bf8ce336f840c020c6503a19b3d5b70a */
+
+/* x = 7.26562500000000000000000000000000000e-01 3ffe7400000000000000000000000000 */
+/* cos(x) = 0.bf59b17550a4406875969296567cf3e3b4e483061877c02811c6cae85fad5a6c3da58f49292 */
+ L(7.47462359563216166669700384714767552e-01), /* 3ffe7eb362eaa14880d0eb2d252cacfa */
+L(-9.11094340926220027288083639048016945e-36), /* bf8a8389636f9f3cf107fafdc726a2f4 */
+/* sin(x) = 0.aa0fd66eddb921232c28520d3911b8a03193b47f187f1471ac216fbcd5bb81029294d3a73f1 */
+ L(6.64304163042946276515506587432846246e-01), /* 3ffe541facddbb7242465850a41a7223 */
+ L(4.26004843895378210155889028714676019e-35), /* 3f8cc5018c9da3f8c3f8a38d610b7de7 */
+
+/* x = 7.34375000000000000000000000000000000e-01 3ffe7800000000000000000000000000 */
+/* cos(x) = 0.be0413f84f2a771c614946a88cbf4da1d75a5560243de8f2283fefa0ea4a48468a52d51d8b3 */
+ L(7.42249725458501306991347253449610537e-01), /* 3ffe7c0827f09e54ee38c2928d51197f */
+L(-3.78925270049800913539923473871287550e-35), /* bf8c92f1452d54fede10b86ebe0082f9 */
+/* sin(x) = 0.ab8d34b36acd987210ed343ec65d7e3adc2e7109fce43d55c8d57dfdf55b9e01d2cc1f1b9ec */
+ L(6.70123380473162894654531583500648495e-01), /* 3ffe571a6966d59b30e421da687d8cbb */
+L(-1.33165852952743729897634069393684656e-36), /* bf87c523d18ef6031bc2aa372a82020b */
+
+/* x = 7.42187500000000000000000000000000000e-01 3ffe7c00000000000000000000000000 */
+/* cos(x) = 0.bcab7e6bfb2a14a9b122c574a376bec98ab14808c64a4e731b34047e217611013ac99c0f25d */
+ L(7.36991788256240741057089385586450844e-01), /* 3ffe7956fcd7f654295362458ae946ed */
+ L(4.72358938637974850573747497460125519e-35), /* 3f8cf64c558a404632527398d9a023f1 */
+/* sin(x) = 0.ad07e4c409d08c4fa3a9057bb0ac24b8636e74e76f51e09bd6b2319707cbd9f5e254643897a */
+ L(6.75901697026178809189642203142423973e-01), /* 3ffe5a0fc98813a1189f47520af76158 */
+ L(2.76252586616364878801928456702948857e-35), /* 3f8c25c31b73a73b7a8f04deb5918cb8 */
+
+/* x = 7.50000000000000000000000000000000000e-01 3ffe8000000000000000000000000000 */
+/* cos(x) = 0.bb4ff632a908f73ec151839cb9d993b4e0bfb8f20e7e44e6e4aee845e35575c3106dbe6fd06 */
+ L(7.31688868873820886311838753000084529e-01), /* 3ffe769fec655211ee7d82a3073973b3 */
+ L(1.48255637548931697184991710293198620e-35), /* 3f8b3b4e0bfb8f20e7e44e6e4aee845e */
+/* sin(x) = 0.ae7fe0b5fc786b2d966e1d6af140a488476747c2646425fc7533f532cd044cb10a971a49a6a */
+ L(6.81638760023334166733241952779893908e-01), /* 3ffe5cffc16bf8f0d65b2cdc3ad5e281 */
+ L(2.74838775935027549024224114338667371e-35), /* 3f8c24423b3a3e1323212fe3a99fa996 */
+
+/* x = 7.57812500000000000000000000000000000e-01 3ffe8400000000000000000000000000 */
+/* cos(x) = 0.b9f180ba77dd0751628e135a9508299012230f14becacdd14c3f8862d122de5b56d55b53360 */
+ L(7.26341290974108590410147630237598973e-01), /* 3ffe73e30174efba0ea2c51c26b52a10 */
+ L(3.12683579338351123545814364980658990e-35), /* 3f8c4c80911878a5f6566e8a61fc4317 */
+/* sin(x) = 0.aff522a954f2ba16d9defdc416e33f5e9a5dfd5a6c228e0abc4d521327ff6e2517a7b3851dd */
+ L(6.87334219303873534951703613035647220e-01), /* 3ffe5fea4552a9e5742db3bdfb882dc6 */
+ L(4.76739454455410744997012795035529128e-35), /* 3f8cfaf4d2efead361147055e26a9099 */
+
+/* x = 7.65625000000000000000000000000000000e-01 3ffe8800000000000000000000000000 */
+/* cos(x) = 0.b890237d3bb3c284b614a0539016bfa1053730bbdf940fa895e185f8e58884d3dda15e63371 */
+ L(7.20949380945696418043812784148447688e-01), /* 3ffe712046fa776785096c2940a7202d */
+ L(4.78691285733673379499536326050811832e-35), /* 3f8cfd0829b985defca07d44af0c2fc7 */
+/* sin(x) = 0.b167a4c90d63c4244cf5493b7cc23bd3c3c1225e078baa0c53d6d400b926281f537a1a260e6 */
+ L(6.92987727246317910281815490823048210e-01), /* 3ffe62cf49921ac7884899ea9276f984 */
+ L(4.50089871077663557180849219529189918e-35), /* 3f8cde9e1e0912f03c5d50629eb6a006 */
+
+/* x = 7.73437500000000000000000000000000000e-01 3ffe8c00000000000000000000000000 */
+/* cos(x) = 0.b72be40067aaf2c050dbdb7a14c3d7d4f203f6b3f0224a4afe55d6ec8e92b508fd5c5984b3b */
+ L(7.15513467882981573520620561289896903e-01), /* 3ffe6e57c800cf55e580a1b7b6f42988 */
+L(-3.02191815581445336509438104625489192e-35), /* bf8c41586fe04a607eedada80d51489c */
+/* sin(x) = 0.b2d7614b1f3aaa24df2d6e20a77e1ca3e6d838c03e29c1bcb026e6733324815fadc9eb89674 */
+ L(6.98598938789681741301929277107891591e-01), /* 3ffe65aec2963e755449be5adc414efc */
+ L(2.15465226809256290914423429408722521e-35), /* 3f8bca3e6d838c03e29c1bcb026e6733 */
+
+/* x = 7.81250000000000000000000000000000000e-01 3ffe9000000000000000000000000000 */
+/* cos(x) = 0.b5c4c7d4f7dae915ac786ccf4b1a498d3e73b6e5e74fe7519d9c53ee6d6b90e881bddfc33e1 */
+ L(7.10033883566079674974121643959490219e-01), /* 3ffe6b898fa9efb5d22b58f0d99e9635 */
+L(-4.09623224763692443220896752907902465e-35), /* bf8cb3960c6248d0c580c573131d608d */
+/* sin(x) = 0.b44452709a59752905913765434a59d111f0433eb2b133f7d103207e2aeb4aae111ddc385b3 */
+ L(7.04167511454533672780059509973942844e-01), /* 3ffe6888a4e134b2ea520b226eca8695 */
+L(-2.87259372740393348676633610275598640e-35), /* bf8c3177707de60a6a76604177e6fc0f */
+
+/* x = 7.89062500000000000000000000000000000e-01 3ffe9400000000000000000000000000 */
+/* cos(x) = 0.b45ad4975b1294cadca4cf40ec8f22a68cd14b175835239a37e63acb85e8e9505215df18140 */
+ L(7.04510962440574606164129481545916976e-01), /* 3ffe68b5a92eb6252995b9499e81d91e */
+ L(2.60682037357042658395360726992048803e-35), /* 3f8c1534668a58bac1a91cd1bf31d65c */
+/* sin(x) = 0.b5ae7285bc10cf515753847e8f8b7a30e0a580d929d770103509880680f7b8b0e8ad23b65d8 */
+ L(7.09693105363899724959669028139035515e-01), /* 3ffe6b5ce50b78219ea2aea708fd1f17 */
+L(-4.37026016974122945368562319136420097e-36), /* bf8973c7d69fc9b58a23fbf2bd9dfe60 */
+};
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/w_expl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/w_expl_compat.c
new file mode 100644
index 0000000000..c32616e504
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/w_expl_compat.c
@@ -0,0 +1,42 @@
+/* w_expl.c -- long double version of w_exp.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * wrapper expl(x)
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+long double __expl(long double x)	/* wrapper exp */
+{
+#ifdef _IEEE_LIBM
+	return __ieee754_expl(x);
+#else
+	long double z = __ieee754_expl (x);
+	if (__glibc_unlikely (!isfinite (z) || z == 0)
+	    && isfinite (x) && _LIB_VERSION != _IEEE_)
+	  return __kernel_standard_l (x, x, 206 + !!signbit (x));
+
+	return z;
+#endif
+}
+hidden_def (__expl)
+weak_alias (__expl, expl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128/x2y2m1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128/x2y2m1l.c
new file mode 100644
index 0000000000..d3f88331b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128/x2y2m1l.c
@@ -0,0 +1,76 @@
+/* Compute x^2 + y^2 - 1, without large cancellation error.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_splitl.h>
+#include <stdlib.h>
+
+
+/* Calculate X + Y exactly and store the result in *HI + *LO.  It is
+   given that |X| >= |Y| and the values are small enough that no
+   overflow occurs.  */
+
+static inline void
+add_split (_Float128 *hi, _Float128 *lo, _Float128 x, _Float128 y)
+{
+  /* Apply Dekker's algorithm.  */
+  *hi = x + y;
+  *lo = (x - *hi) + y;
+}
+
+/* Compare absolute values of floating-point values pointed to by P
+   and Q for qsort.  */
+
+static int
+compare (const void *p, const void *q)
+{
+  _Float128 pld = fabsl (*(const _Float128 *) p);
+  _Float128 qld = fabsl (*(const _Float128 *) q);
+  if (pld < qld)
+    return -1;
+  else if (pld == qld)
+    return 0;
+  else
+    return 1;
+}
+
+/* Return X^2 + Y^2 - 1, computed without large cancellation error.
+   It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
+   0.5.  */
+
+_Float128
+__x2y2m1l (_Float128 x, _Float128 y)
+{
+  _Float128 vals[5];
+  SET_RESTORE_ROUNDL (FE_TONEAREST);
+  mul_splitl (&vals[1], &vals[0], x, x);
+  mul_splitl (&vals[3], &vals[2], y, y);
+  vals[4] = -1;
+  qsort (vals, 5, sizeof (_Float128), compare);
+  /* Add up the values so that each element of VALS has absolute value
+     at most equal to the last set bit of the next nonzero
+     element.  */
+  for (size_t i = 0; i <= 3; i++)
+    {
+      add_split (&vals[i + 1], &vals[i], vals[i + 1], vals[i]);
+      qsort (vals + i + 1, 4 - i, sizeof (_Float128), compare);
+    }
+  /* Now any error from this addition will be small.  */
+  return vals[4] + vals[3] + vals[2] + vals[1] + vals[0];
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/Makefile b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/Makefile
new file mode 100644
index 0000000000..bdba6cc6b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/Makefile
@@ -0,0 +1,16 @@
+# The`long double' type is a distinct type we support if
+# -mlong-double-128 option is used (or when it becomes a default
+# when -mlong-double-64 is not used).
+long-double-fcts = yes
+sysdep-CFLAGS += -mlong-double-128
+
+ifeq ($(subdir),stdlib)
+tests += tst-strtold-ldbl-128ibm
+$(objpfx)tst-strtold-ldbl-128ibm: $(libm)
+endif
+
+ifeq ($(subdir),math)
+tests += test-fmodl-ldbl-128ibm test-remainderl-ldbl-128ibm \
+	 test-remquol-ldbl-128ibm test-canonical-ldbl-128ibm \
+	 test-totalorderl-ldbl-128ibm
+endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
new file mode 100644
index 0000000000..7ddb368d26
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/bits/iscanonical.h
@@ -0,0 +1,41 @@
+/* Define iscanonical macro.  ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
+#endif
+
+#ifdef __NO_LONG_DOUBLE_MATH
+# define iscanonical(x) ((void) (__typeof (x)) (x), 1)
+#else
+extern int __iscanonicall (long double __x)
+     __THROW __attribute__ ((__const__));
+# define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1)
+# define __iscanonical(x) ((void) (__typeof (x)) (x), 1)
+# if __HAVE_DISTINCT_FLOAT128
+#  define __iscanonicalf128(x) ((void) (__typeof (x)) (x), 1)
+# endif
+
+/* Return nonzero value if X is canonical.  In IEEE interchange binary
+   formats, all values are canonical, but the argument must still be
+   converted to its semantic type for any exceptions arising from the
+   conversion, before being discarded; in IBM long double, there are
+   encodings that are not consistently handled as corresponding to any
+   particular value of the type, and we return 0 for those.  */
+# define iscanonical(x) __MATH_TG ((x), __iscanonical, (x))
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c
new file mode 100644
index 0000000000..cab1da9995
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acoshl.c
@@ -0,0 +1,62 @@
+/* @(#)e_acosh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_acosh(x)
+ * Method :
+ *	Based on
+ *		acosh(x) = log [ x + sqrt(x*x-1) ]
+ *	we have
+ *		acosh(x) := log(x)+ln2,	if x is large; else
+ *		acosh(x) := log(2x-1/(sqrt(x*x-1)+x)) if x>2; else
+ *		acosh(x) := log1p(t+sqrt(2.0*t+t*t)); where t=x-1.
+ *
+ * Special cases:
+ *	acosh(x) is NaN with signal if x<1.
+ *	acosh(NaN) is NaN without signal.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+one	= 1.0L,
+ln2	= M_LN2l;
+
+long double
+__ieee754_acoshl(long double x)
+{
+	long double t;
+	int64_t hx;
+	uint64_t lx;
+	double xhi, xlo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	if(hx<0x3ff0000000000000LL) {		/* x < 1 */
+	    return (x-x)/(x-x);
+	} else if(hx >=0x4370000000000000LL) {	/* x >= 2**56 */
+	    if(hx >=0x7ff0000000000000LL) {	/* x is inf of NaN */
+		return x+x;
+	    } else
+		return __ieee754_logl(x)+ln2;	/* acosh(huge)=log(2x) */
+	} else if (((hx-0x3ff0000000000000LL)|(lx&0x7fffffffffffffffLL))==0) {
+	    return 0.0;			/* acosh(1) = 0 */
+	} else if (hx > 0x4000000000000000LL) {	/* 2**56 > x > 2 */
+	    t=x*x;
+	    return __ieee754_logl(2.0*x-one/(x+__ieee754_sqrtl(t-one)));
+	} else {			/* 1<x<2 */
+	    t = x-one;
+	    return __log1pl(t+__ieee754_sqrtl(2.0*t+t*t));
+	}
+}
+strong_alias (__ieee754_acoshl, __acoshl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
new file mode 100644
index 0000000000..5974ee1338
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_acosl.c
@@ -0,0 +1,316 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+   Long double expansions are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_acosl(x)
+ * Method :
+ *      acos(x)  = pi/2 - asin(x)
+ *      acos(-x) = pi/2 + asin(x)
+ * For |x| <= 0.375
+ *      acos(x) = pi/2 - asin(x)
+ * Between .375 and .5 the approximation is
+ *      acos(0.4375 + x) = acos(0.4375) + x P(x) / Q(x)
+ * Between .5 and .625 the approximation is
+ *      acos(0.5625 + x) = acos(0.5625) + x rS(x) / sS(x)
+ * For x > 0.625,
+ *      acos(x) = 2 asin(sqrt((1-x)/2))
+ *      computed with an extended precision square root in the leading term.
+ * For x < -0.625
+ *      acos(x) = pi - 2 asin(sqrt((1-|x|)/2))
+ *
+ * Special cases:
+ *      if x is NaN, return x itself;
+ *      if |x|>1, return NaN with invalid signal.
+ *
+ * Functions needed: __ieee754_sqrtl.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+  one = 1.0L,
+  pio2_hi = 1.5707963267948966192313216916397514420986L,
+  pio2_lo = 4.3359050650618905123985220130216759843812E-35L,
+
+  /* acos(0.5625 + x) = acos(0.5625) + x rS(x) / sS(x)
+     -0.0625 <= x <= 0.0625
+     peak relative error 3.3e-35  */
+
+  rS0 =  5.619049346208901520945464704848780243887E0L,
+  rS1 = -4.460504162777731472539175700169871920352E1L,
+  rS2 =  1.317669505315409261479577040530751477488E2L,
+  rS3 = -1.626532582423661989632442410808596009227E2L,
+  rS4 =  3.144806644195158614904369445440583873264E1L,
+  rS5 =  9.806674443470740708765165604769099559553E1L,
+  rS6 = -5.708468492052010816555762842394927806920E1L,
+  rS7 = -1.396540499232262112248553357962639431922E1L,
+  rS8 =  1.126243289311910363001762058295832610344E1L,
+  rS9 =  4.956179821329901954211277873774472383512E-1L,
+  rS10 = -3.313227657082367169241333738391762525780E-1L,
+
+  sS0 = -4.645814742084009935700221277307007679325E0L,
+  sS1 =  3.879074822457694323970438316317961918430E1L,
+  sS2 = -1.221986588013474694623973554726201001066E2L,
+  sS3 =  1.658821150347718105012079876756201905822E2L,
+  sS4 = -4.804379630977558197953176474426239748977E1L,
+  sS5 = -1.004296417397316948114344573811562952793E2L,
+  sS6 =  7.530281592861320234941101403870010111138E1L,
+  sS7 =  1.270735595411673647119592092304357226607E1L,
+  sS8 = -1.815144839646376500705105967064792930282E1L,
+  sS9 = -7.821597334910963922204235247786840828217E-2L,
+  /* 1.000000000000000000000000000000000000000E0 */
+
+  acosr5625 = 9.7338991014954640492751132535550279812151E-1L,
+  pimacosr5625 = 2.1682027434402468335351320579240000860757E0L,
+
+  /* acos(0.4375 + x) = acos(0.4375) + x rS(x) / sS(x)
+     -0.0625 <= x <= 0.0625
+     peak relative error 2.1e-35  */
+
+  P0 =  2.177690192235413635229046633751390484892E0L,
+  P1 = -2.848698225706605746657192566166142909573E1L,
+  P2 =  1.040076477655245590871244795403659880304E2L,
+  P3 = -1.400087608918906358323551402881238180553E2L,
+  P4 =  2.221047917671449176051896400503615543757E1L,
+  P5 =  9.643714856395587663736110523917499638702E1L,
+  P6 = -5.158406639829833829027457284942389079196E1L,
+  P7 = -1.578651828337585944715290382181219741813E1L,
+  P8 =  1.093632715903802870546857764647931045906E1L,
+  P9 =  5.448925479898460003048760932274085300103E-1L,
+  P10 = -3.315886001095605268470690485170092986337E-1L,
+  Q0 = -1.958219113487162405143608843774587557016E0L,
+  Q1 =  2.614577866876185080678907676023269360520E1L,
+  Q2 = -9.990858606464150981009763389881793660938E1L,
+  Q3 =  1.443958741356995763628660823395334281596E2L,
+  Q4 = -3.206441012484232867657763518369723873129E1L,
+  Q5 = -1.048560885341833443564920145642588991492E2L,
+  Q6 =  6.745883931909770880159915641984874746358E1L,
+  Q7 =  1.806809656342804436118449982647641392951E1L,
+  Q8 = -1.770150690652438294290020775359580915464E1L,
+  Q9 = -5.659156469628629327045433069052560211164E-1L,
+  /* 1.000000000000000000000000000000000000000E0 */
+
+  acosr4375 = 1.1179797320499710475919903296900511518755E0L,
+  pimacosr4375 = 2.0236129215398221908706530535894517323217E0L,
+
+  /* asin(x) = x + x^3 pS(x^2) / qS(x^2)
+     0 <= x <= 0.5
+     peak relative error 1.9e-35  */
+  pS0 = -8.358099012470680544198472400254596543711E2L,
+  pS1 =  3.674973957689619490312782828051860366493E3L,
+  pS2 = -6.730729094812979665807581609853656623219E3L,
+  pS3 =  6.643843795209060298375552684423454077633E3L,
+  pS4 = -3.817341990928606692235481812252049415993E3L,
+  pS5 =  1.284635388402653715636722822195716476156E3L,
+  pS6 = -2.410736125231549204856567737329112037867E2L,
+  pS7 =  2.219191969382402856557594215833622156220E1L,
+  pS8 = -7.249056260830627156600112195061001036533E-1L,
+  pS9 =  1.055923570937755300061509030361395604448E-3L,
+
+  qS0 = -5.014859407482408326519083440151745519205E3L,
+  qS1 =  2.430653047950480068881028451580393430537E4L,
+  qS2 = -4.997904737193653607449250593976069726962E4L,
+  qS3 =  5.675712336110456923807959930107347511086E4L,
+  qS4 = -3.881523118339661268482937768522572588022E4L,
+  qS5 =  1.634202194895541569749717032234510811216E4L,
+  qS6 = -4.151452662440709301601820849901296953752E3L,
+  qS7 =  5.956050864057192019085175976175695342168E2L,
+  qS8 = -4.175375777334867025769346564600396877176E1L;
+  /* 1.000000000000000000000000000000000000000E0 */
+
+long double
+__ieee754_acosl (long double x)
+{
+  long double a, z, r, w, p, q, s, t, f2;
+
+  if (__glibc_unlikely (isnan (x)))
+    return x + x;
+  a = __builtin_fabsl (x);
+  if (a == 1.0L)
+    {
+      if (x > 0.0L)
+	return 0.0;		/* acos(1) = 0  */
+      else
+	return (2.0 * pio2_hi) + (2.0 * pio2_lo);	/* acos(-1)= pi */
+    }
+  else if (a > 1.0L)
+    {
+      return (x - x) / (x - x);	/* acos(|x| > 1) is NaN */
+    }
+  if (a < 0.5L)
+    {
+      if (a < 0x1p-106L)
+	return pio2_hi + pio2_lo;
+      if (a < 0.4375L)
+	{
+	  /* Arcsine of x.  */
+	  z = x * x;
+	  p = (((((((((pS9 * z
+		       + pS8) * z
+		      + pS7) * z
+		     + pS6) * z
+		    + pS5) * z
+		   + pS4) * z
+		  + pS3) * z
+		 + pS2) * z
+		+ pS1) * z
+	       + pS0) * z;
+	  q = (((((((( z
+		       + qS8) * z
+		     + qS7) * z
+		    + qS6) * z
+		   + qS5) * z
+		  + qS4) * z
+		 + qS3) * z
+		+ qS2) * z
+	       + qS1) * z
+	    + qS0;
+	  r = x + x * p / q;
+	  z = pio2_hi - (r - pio2_lo);
+	  return z;
+	}
+      /* .4375 <= |x| < .5 */
+      t = a - 0.4375L;
+      p = ((((((((((P10 * t
+		    + P9) * t
+		   + P8) * t
+		  + P7) * t
+		 + P6) * t
+		+ P5) * t
+	       + P4) * t
+	      + P3) * t
+	     + P2) * t
+	    + P1) * t
+	   + P0) * t;
+
+      q = (((((((((t
+		   + Q9) * t
+		  + Q8) * t
+		 + Q7) * t
+		+ Q6) * t
+	       + Q5) * t
+	      + Q4) * t
+	     + Q3) * t
+	    + Q2) * t
+	   + Q1) * t
+	+ Q0;
+      r = p / q;
+      if (x < 0.0L)
+	r = pimacosr4375 - r;
+      else
+	r = acosr4375 + r;
+      return r;
+    }
+  else if (a < 0.625L)
+    {
+      t = a - 0.5625L;
+      p = ((((((((((rS10 * t
+		    + rS9) * t
+		   + rS8) * t
+		  + rS7) * t
+		 + rS6) * t
+		+ rS5) * t
+	       + rS4) * t
+	      + rS3) * t
+	     + rS2) * t
+	    + rS1) * t
+	   + rS0) * t;
+
+      q = (((((((((t
+		   + sS9) * t
+		  + sS8) * t
+		 + sS7) * t
+		+ sS6) * t
+	       + sS5) * t
+	      + sS4) * t
+	     + sS3) * t
+	    + sS2) * t
+	   + sS1) * t
+	+ sS0;
+      if (x < 0.0L)
+	r = pimacosr5625 - p / q;
+      else
+	r = acosr5625 + p / q;
+      return r;
+    }
+  else
+    {				/* |x| >= .625 */
+      double shi, slo;
+
+      z = (one - a) * 0.5;
+      s = __ieee754_sqrtl (z);
+      /* Compute an extended precision square root from
+	 the Newton iteration  s -> 0.5 * (s + z / s).
+	 The change w from s to the improved value is
+	    w = 0.5 * (s + z / s) - s  = (s^2 + z)/2s - s = (z - s^2)/2s.
+	  Express s = f1 + f2 where f1 * f1 is exactly representable.
+	  w = (z - s^2)/2s = (z - f1^2 - 2 f1 f2 - f2^2)/2s .
+	  s + w has extended precision.  */
+      ldbl_unpack (s, &shi, &slo);
+      a = shi;
+      f2 = slo;
+      w = z - a * a;
+      w = w - 2.0 * a * f2;
+      w = w - f2 * f2;
+      w = w / (2.0 * s);
+      /* Arcsine of s.  */
+      p = (((((((((pS9 * z
+		   + pS8) * z
+		  + pS7) * z
+		 + pS6) * z
+		+ pS5) * z
+	       + pS4) * z
+	      + pS3) * z
+	     + pS2) * z
+	    + pS1) * z
+	   + pS0) * z;
+      q = (((((((( z
+		   + qS8) * z
+		 + qS7) * z
+		+ qS6) * z
+	       + qS5) * z
+	      + qS4) * z
+	     + qS3) * z
+	    + qS2) * z
+	   + qS1) * z
+	+ qS0;
+      r = s + (w + s * p / q);
+
+      if (x < 0.0L)
+	w = pio2_hi + (pio2_lo - r);
+      else
+	w = r;
+      return 2.0 * w;
+    }
+}
+strong_alias (__ieee754_acosl, __acosl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_asinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
new file mode 100644
index 0000000000..6ed5e8d68d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
@@ -0,0 +1,250 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+  Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under the
+  following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_asin(x)
+ * Method :
+ *	Since  asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
+ *	we approximate asin(x) on [0,0.5] by
+ *		asin(x) = x + x*x^2*R(x^2)
+ *      Between .5 and .625 the approximation is
+ *              asin(0.5625 + x) = asin(0.5625) + x rS(x) / sS(x)
+ *	For x in [0.625,1]
+ *		asin(x) = pi/2-2*asin(sqrt((1-x)/2))
+ *	Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2;
+ *	then for x>0.98
+ *		asin(x) = pi/2 - 2*(s+s*z*R(z))
+ *			= pio2_hi - (2*(s+s*z*R(z)) - pio2_lo)
+ *	For x<=0.98, let pio4_hi = pio2_hi/2, then
+ *		f = hi part of s;
+ *		c = sqrt(z) - f = (z-f*f)/(s+f) 	...f+c=sqrt(z)
+ *	and
+ *		asin(x) = pi/2 - 2*(s+s*z*R(z))
+ *			= pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo)
+ *			= pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c))
+ *
+ * Special cases:
+ *	if x is NaN, return x itself;
+ *	if |x|>1, return NaN with invalid signal.
+ *
+ */
+
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+long double sqrtl (long double);
+
+static const long double
+  one = 1.0L,
+  huge = 1.0e+300L,
+  pio2_hi = 1.5707963267948966192313216916397514420986L,
+  pio2_lo = 4.3359050650618905123985220130216759843812E-35L,
+  pio4_hi = 7.8539816339744830961566084581987569936977E-1L,
+
+	/* coefficient for R(x^2) */
+
+  /* asin(x) = x + x^3 pS(x^2) / qS(x^2)
+     0 <= x <= 0.5
+     peak relative error 1.9e-35  */
+  pS0 = -8.358099012470680544198472400254596543711E2L,
+  pS1 =  3.674973957689619490312782828051860366493E3L,
+  pS2 = -6.730729094812979665807581609853656623219E3L,
+  pS3 =  6.643843795209060298375552684423454077633E3L,
+  pS4 = -3.817341990928606692235481812252049415993E3L,
+  pS5 =  1.284635388402653715636722822195716476156E3L,
+  pS6 = -2.410736125231549204856567737329112037867E2L,
+  pS7 =  2.219191969382402856557594215833622156220E1L,
+  pS8 = -7.249056260830627156600112195061001036533E-1L,
+  pS9 =  1.055923570937755300061509030361395604448E-3L,
+
+  qS0 = -5.014859407482408326519083440151745519205E3L,
+  qS1 =  2.430653047950480068881028451580393430537E4L,
+  qS2 = -4.997904737193653607449250593976069726962E4L,
+  qS3 =  5.675712336110456923807959930107347511086E4L,
+  qS4 = -3.881523118339661268482937768522572588022E4L,
+  qS5 =  1.634202194895541569749717032234510811216E4L,
+  qS6 = -4.151452662440709301601820849901296953752E3L,
+  qS7 =  5.956050864057192019085175976175695342168E2L,
+  qS8 = -4.175375777334867025769346564600396877176E1L,
+  /* 1.000000000000000000000000000000000000000E0 */
+
+  /* asin(0.5625 + x) = asin(0.5625) + x rS(x) / sS(x)
+     -0.0625 <= x <= 0.0625
+     peak relative error 3.3e-35  */
+  rS0 = -5.619049346208901520945464704848780243887E0L,
+  rS1 =  4.460504162777731472539175700169871920352E1L,
+  rS2 = -1.317669505315409261479577040530751477488E2L,
+  rS3 =  1.626532582423661989632442410808596009227E2L,
+  rS4 = -3.144806644195158614904369445440583873264E1L,
+  rS5 = -9.806674443470740708765165604769099559553E1L,
+  rS6 =  5.708468492052010816555762842394927806920E1L,
+  rS7 =  1.396540499232262112248553357962639431922E1L,
+  rS8 = -1.126243289311910363001762058295832610344E1L,
+  rS9 = -4.956179821329901954211277873774472383512E-1L,
+  rS10 =  3.313227657082367169241333738391762525780E-1L,
+
+  sS0 = -4.645814742084009935700221277307007679325E0L,
+  sS1 =  3.879074822457694323970438316317961918430E1L,
+  sS2 = -1.221986588013474694623973554726201001066E2L,
+  sS3 =  1.658821150347718105012079876756201905822E2L,
+  sS4 = -4.804379630977558197953176474426239748977E1L,
+  sS5 = -1.004296417397316948114344573811562952793E2L,
+  sS6 =  7.530281592861320234941101403870010111138E1L,
+  sS7 =  1.270735595411673647119592092304357226607E1L,
+  sS8 = -1.815144839646376500705105967064792930282E1L,
+  sS9 = -7.821597334910963922204235247786840828217E-2L,
+  /*  1.000000000000000000000000000000000000000E0 */
+
+ asinr5625 =  5.9740641664535021430381036628424864397707E-1L;
+
+
+
+long double
+__ieee754_asinl (long double x)
+{
+  long double a, t, w, p, q, c, r, s;
+  int flag;
+
+  if (__glibc_unlikely (isnan (x)))
+    return x + x;
+  flag = 0;
+  a = __builtin_fabsl (x);
+  if (a == 1.0L)	/* |x|>= 1 */
+    return x * pio2_hi + x * pio2_lo;	/* asin(1)=+-pi/2 with inexact */
+  else if (a >= 1.0L)
+    return (x - x) / (x - x);	/* asin(|x|>1) is NaN */
+  else if (a < 0.5L)
+    {
+      if (a < 6.938893903907228e-18L) /* |x| < 2**-57 */
+	{
+	  math_check_force_underflow (x);
+	  long double force_inexact =  huge + x;
+	  math_force_eval (force_inexact);
+	  return x;		/* return x with inexact if x!=0 */
+	}
+      else
+	{
+	  t = x * x;
+	  /* Mark to use pS, qS later on.  */
+	  flag = 1;
+	}
+    }
+  else if (a < 0.625L)
+    {
+      t = a - 0.5625;
+      p = ((((((((((rS10 * t
+		    + rS9) * t
+		   + rS8) * t
+		  + rS7) * t
+		 + rS6) * t
+		+ rS5) * t
+	       + rS4) * t
+	      + rS3) * t
+	     + rS2) * t
+	    + rS1) * t
+	   + rS0) * t;
+
+      q = ((((((((( t
+		    + sS9) * t
+		  + sS8) * t
+		 + sS7) * t
+		+ sS6) * t
+	       + sS5) * t
+	      + sS4) * t
+	     + sS3) * t
+	    + sS2) * t
+	   + sS1) * t
+	+ sS0;
+      t = asinr5625 + p / q;
+      if (x > 0.0L)
+	return t;
+      else
+	return -t;
+    }
+  else
+    {
+      /* 1 > |x| >= 0.625 */
+      w = one - a;
+      t = w * 0.5;
+    }
+
+  p = (((((((((pS9 * t
+	       + pS8) * t
+	      + pS7) * t
+	     + pS6) * t
+	    + pS5) * t
+	   + pS4) * t
+	  + pS3) * t
+	 + pS2) * t
+	+ pS1) * t
+       + pS0) * t;
+
+  q = (((((((( t
+	      + qS8) * t
+	     + qS7) * t
+	    + qS6) * t
+	   + qS5) * t
+	  + qS4) * t
+	 + qS3) * t
+	+ qS2) * t
+       + qS1) * t
+    + qS0;
+
+  if (flag) /* 2^-57 < |x| < 0.5 */
+    {
+      w = p / q;
+      return x + x * w;
+    }
+
+  s = __ieee754_sqrtl (t);
+  if (a > 0.975L)
+    {
+      w = p / q;
+      t = pio2_hi - (2.0 * (s + s * w) - pio2_lo);
+    }
+  else
+    {
+      w = ldbl_high (s);
+      c = (t - w * w) / (s + w);
+      r = p / q;
+      p = 2.0 * s * r - (pio2_lo - 2.0 * c);
+      q = pio4_hi - 2.0 * w;
+      t = pio4_hi - (p - q);
+    }
+
+  if (x > 0.0L)
+    return t;
+  else
+    return -t;
+}
+strong_alias (__ieee754_asinl, __asinl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atan2l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atan2l.c
new file mode 100644
index 0000000000..b625323df3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atan2l.c
@@ -0,0 +1,122 @@
+/* e_atan2l.c -- long double version of e_atan2.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_atan2l(y,x)
+ * Method :
+ *	1. Reduce y to positive by atan2l(y,x)=-atan2l(-y,x).
+ *	2. Reduce x to positive by (if x and y are unexceptional):
+ *		ARG (x+iy) = arctan(y/x)	   ... if x > 0,
+ *		ARG (x+iy) = pi - arctan[y/(-x)]   ... if x < 0,
+ *
+ * Special cases:
+ *
+ *	ATAN2((anything), NaN ) is NaN;
+ *	ATAN2(NAN , (anything) ) is NaN;
+ *	ATAN2(+-0, +(anything but NaN)) is +-0  ;
+ *	ATAN2(+-0, -(anything but NaN)) is +-pi ;
+ *	ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2;
+ *	ATAN2(+-(anything but INF and NaN), +INF) is +-0 ;
+ *	ATAN2(+-(anything but INF and NaN), -INF) is +-pi;
+ *	ATAN2(+-INF,+INF ) is +-pi/4 ;
+ *	ATAN2(+-INF,-INF ) is +-3pi/4;
+ *	ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2;
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+tiny  = 1.0e-300L,
+zero  = 0.0,
+pi_o_4  = 7.85398163397448309615660845819875699e-01L, /* 3ffe921fb54442d18469898cc51701b8 */
+pi_o_2  = 1.57079632679489661923132169163975140e+00L, /* 3fff921fb54442d18469898cc51701b8 */
+pi      = 3.14159265358979323846264338327950280e+00L, /* 4000921fb54442d18469898cc51701b8 */
+pi_lo   = 8.67181013012378102479704402604335225e-35L; /* 3f8dcd129024e088a67cc74020bbea64 */
+
+long double
+__ieee754_atan2l(long double y, long double x)
+{
+	long double z;
+	int64_t k,m,hx,hy,ix,iy;
+	uint64_t lx;
+	double xhi, xlo, yhi;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	ix = hx&0x7fffffffffffffffLL;
+	yhi = ldbl_high (y);
+	EXTRACT_WORDS64 (hy, yhi);
+	iy = hy&0x7fffffffffffffffLL;
+	if(((ix)>0x7ff0000000000000LL)||
+	   ((iy)>0x7ff0000000000000LL))	/* x or y is NaN */
+	   return x+y;
+	if(((hx-0x3ff0000000000000LL))==0
+	   && (lx&0x7fffffffffffffff)==0) return __atanl(y);   /* x=1.0L */
+	m = ((hy>>63)&1)|((hx>>62)&2);	/* 2*sign(x)+sign(y) */
+
+    /* when y = 0 */
+	if(iy==0) {
+	    switch(m) {
+		case 0:
+		case 1: return y;	/* atan(+-0,+anything)=+-0 */
+		case 2: return  pi+tiny;/* atan(+0,-anything) = pi */
+		case 3: return -pi-tiny;/* atan(-0,-anything) =-pi */
+	    }
+	}
+    /* when x = 0 */
+	if(ix==0) return (hy<0)?  -pi_o_2-tiny: pi_o_2+tiny;
+
+    /* when x is INF */
+	if(ix==0x7ff0000000000000LL) {
+	    if(iy==0x7ff0000000000000LL) {
+		switch(m) {
+		    case 0: return  pi_o_4+tiny;/* atan(+INF,+INF) */
+		    case 1: return -pi_o_4-tiny;/* atan(-INF,+INF) */
+		    case 2: return  3.0L*pi_o_4+tiny;/*atan(+INF,-INF)*/
+		    case 3: return -3.0L*pi_o_4-tiny;/*atan(-INF,-INF)*/
+		}
+	    } else {
+		switch(m) {
+		    case 0: return  zero  ;	/* atan(+...,+INF) */
+		    case 1: return -zero  ;	/* atan(-...,+INF) */
+		    case 2: return  pi+tiny  ;	/* atan(+...,-INF) */
+		    case 3: return -pi-tiny  ;	/* atan(-...,-INF) */
+		}
+	    }
+	}
+    /* when y is INF */
+	if(iy==0x7ff0000000000000LL) return (hy<0)? -pi_o_2-tiny: pi_o_2+tiny;
+
+    /* compute y/x */
+	k = (iy-ix)>>52;
+	if(k > 120) z=pi_o_2+0.5L*pi_lo;	/* |y/x| >  2**120 */
+	else if(hx<0&&k<-120) z=0.0L;		/* |y|/x < -2**120 */
+	else z=__atanl(fabsl(y/x));		/* safe to do y/x */
+	switch (m) {
+	    case 0: return       z  ;	/* atan(+,+) */
+	    case 1: return      -z  ;	/* atan(-,+) */
+	    case 2: return  pi-(z-pi_lo);/* atan(+,-) */
+	    default: /* case 3 */
+		    return  (z-pi_lo)-pi;/* atan(-,-) */
+	}
+}
+strong_alias (__ieee754_atan2l, __atan2l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
new file mode 100644
index 0000000000..b576f42030
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_atanhl.c
@@ -0,0 +1,71 @@
+/* @(#)e_atanh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_atanh(x)
+ * Method :
+ *    1.Reduced x to positive by atanh(-x) = -atanh(x)
+ *    2.For x>=0.5
+ *                  1              2x                          x
+ *	atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
+ *                  2             1 - x                      1 - x
+ *
+ *	For x<0.5
+ *	atanh(x) = 0.5*log1p(2x+2x*x/(1-x))
+ *
+ * Special cases:
+ *	atanh(x) is NaN if |x| > 1 with signal;
+ *	atanh(NaN) is that NaN with no signal;
+ *	atanh(+-1) is +-INF with signal.
+ *
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double one = 1.0L, huge = 1e300L;
+
+static const long double zero = 0.0L;
+
+long double
+__ieee754_atanhl(long double x)
+{
+	long double t;
+	int64_t hx,ix;
+	double xhi;
+
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (hx, xhi);
+	ix = hx&0x7fffffffffffffffLL;
+	if (ix >= 0x3ff0000000000000LL) { /* |x|>=1 */
+	    if (ix > 0x3ff0000000000000LL)
+		return (x-x)/(x-x);
+	    t = fabsl (x);
+	    if (t > one)
+		return (x-x)/(x-x);
+	    if (t == one)
+		return x/zero;
+	}
+	if(ix<0x3c70000000000000LL&&(huge+x)>zero)	/* x<2**-56 */
+	  {
+	    math_check_force_underflow (x);
+	    return x;
+	  }
+	x = fabsl (x);
+	if(ix<0x3fe0000000000000LL) {		/* x < 0.5 */
+	    t = x+x;
+	    t = 0.5*__log1pl(t+t*x/(one-x));
+	} else
+	    t = 0.5*__log1pl((x+x)/(one-x));
+	if(hx>=0) return t; else return -t;
+}
+strong_alias (__ieee754_atanhl, __atanhl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_coshl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_coshl.c
new file mode 100644
index 0000000000..327b2ab960
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_coshl.c
@@ -0,0 +1,81 @@
+/* @(#)e_cosh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_cosh(x)
+ * Method :
+ * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2
+ *	1. Replace x by |x| (cosh(x) = cosh(-x)).
+ *	2.
+ *							[ exp(x) - 1 ]^2
+ *	    0        <= x <= ln2/2  :  cosh(x) := 1 + -------------------
+ *							   2*exp(x)
+ *
+ *						  exp(x) +  1/exp(x)
+ *	    ln2/2    <= x <= 40     :  cosh(x) := -------------------
+ *							  2
+ *	    40       <= x <= lnovft :  cosh(x) := exp(x)/2
+ *	    lnovft   <= x <= ln2ovft:  cosh(x) := exp(x/2)/2 * exp(x/2)
+ *	    ln2ovft  <  x	    :  cosh(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ *	cosh(x) is |x| if x is +INF, -INF, or NaN.
+ *	only cosh(0)=1 is exact for finite x.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double one = 1.0L, half=0.5L, huge = 1.0e300L;
+
+long double
+__ieee754_coshl (long double x)
+{
+	long double t,w;
+	int64_t ix;
+	double xhi;
+
+    /* High word of |x|. */
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (ix, xhi);
+	ix &= 0x7fffffffffffffffLL;
+
+    /* x is INF or NaN */
+	if(ix>=0x7ff0000000000000LL) return x*x;
+
+    /* |x| in [0,0.5*ln2], return 1+expm1(|x|)^2/(2*exp(|x|)) */
+	if(ix<0x3fd62e42fefa39efLL) {
+	    if (ix<0x3c80000000000000LL) return one;	/* cosh(tiny) = 1 */
+	    t = __expm1l(fabsl(x));
+	    w = one+t;
+	    return one+(t*t)/(w+w);
+	}
+
+    /* |x| in [0.5*ln2,40], return (exp(|x|)+1/exp(|x|)/2; */
+	if (ix < 0x4044000000000000LL) {
+		t = __ieee754_expl(fabsl(x));
+		return half*t+half/t;
+	}
+
+    /* |x| in [40, log(maxdouble)] return half*exp(|x|) */
+	if (ix < 0x40862e42fefa39efLL)  return half*__ieee754_expl(fabsl(x));
+
+    /* |x| in [log(maxdouble), overflowthresold] */
+	if (ix < 0x408633ce8fb9f87fLL) {
+	    w = __ieee754_expl(half*fabsl(x));
+	    t = half*w;
+	    return t*w;
+	}
+
+    /* |x| > overflowthresold, cosh(x) overflow */
+	return huge*huge;
+}
+strong_alias (__ieee754_coshl, __coshl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
new file mode 100644
index 0000000000..6c3b6f5589
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_exp10l.c
@@ -0,0 +1,48 @@
+/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+static const long double log10_high = 0x2.4d763776aaap+0L;
+static const long double log10_low = 0x2.b05ba95b58ae0b4c28a38a3fb4p-48L;
+
+long double
+__ieee754_exp10l (long double arg)
+{
+  union ibm_extended_long_double u;
+  long double arg_high, arg_low;
+  long double exp_high, exp_low;
+
+  if (!isfinite (arg))
+    return __ieee754_expl (arg);
+  if (arg < LDBL_MIN_10_EXP - LDBL_DIG - 10)
+    return LDBL_MIN * LDBL_MIN;
+  else if (arg > LDBL_MAX_10_EXP + 1)
+    return LDBL_MAX * LDBL_MAX;
+  else if (fabsl (arg) < 0x1p-109L)
+    return 1.0L;
+
+  u.ld = arg;
+  arg_high = u.d[0].d;
+  arg_low = u.d[1].d;
+  exp_high = arg_high * log10_high;
+  exp_low = arg_high * log10_low + arg_low * M_LN10l;
+  return __ieee754_expl (exp_high) * __ieee754_expl (exp_low);
+}
+strong_alias (__ieee754_exp10l, __exp10l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_expl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_expl.c
new file mode 100644
index 0000000000..10df6bb7d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_expl.c
@@ -0,0 +1,256 @@
+/* Quad-precision floating point e^x.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+   Partly based on double-precision code
+   by Geoffrey Keating <geoffk@ozemail.com.au>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* The basic design here is from
+   Abraham Ziv, "Fast Evaluation of Elementary Mathematical Functions with
+   Correctly Rounded Last Bit", ACM Trans. Math. Soft., 17 (3), September 1991,
+   pp. 410-423.
+
+   We work with number pairs where the first number is the high part and
+   the second one is the low part. Arithmetic with the high part numbers must
+   be exact, without any roundoff errors.
+
+   The input value, X, is written as
+   X = n * ln(2)_0 + arg1[t1]_0 + arg2[t2]_0 + x
+       - n * ln(2)_1 + arg1[t1]_1 + arg2[t2]_1 + xl
+
+   where:
+   - n is an integer, 16384 >= n >= -16495;
+   - ln(2)_0 is the first 93 bits of ln(2), and |ln(2)_0-ln(2)-ln(2)_1| < 2^-205
+   - t1 is an integer, 89 >= t1 >= -89
+   - t2 is an integer, 65 >= t2 >= -65
+   - |arg1[t1]-t1/256.0| < 2^-53
+   - |arg2[t2]-t2/32768.0| < 2^-53
+   - x + xl is whatever is left, |x + xl| < 2^-16 + 2^-53
+
+   Then e^x is approximated as
+
+   e^x = 2^n_1 ( 2^n_0 e^(arg1[t1]_0 + arg1[t1]_1) e^(arg2[t2]_0 + arg2[t2]_1)
+	       + 2^n_0 e^(arg1[t1]_0 + arg1[t1]_1) e^(arg2[t2]_0 + arg2[t2]_1)
+		 * p (x + xl + n * ln(2)_1))
+   where:
+   - p(x) is a polynomial approximating e(x)-1
+   - e^(arg1[t1]_0 + arg1[t1]_1) is obtained from a table
+   - e^(arg2[t2]_0 + arg2[t2]_1) likewise
+   - n_1 + n_0 = n, so that |n_0| < -LDBL_MIN_EXP-1.
+
+   If it happens that n_1 == 0 (this is the usual case), that multiplication
+   is omitted.
+   */
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <float.h>
+#include <ieee754.h>
+#include <math.h>
+#include <fenv.h>
+#include <inttypes.h>
+#include <math_private.h>
+
+#define _Float128 long double
+#define L(x) x ## L
+
+#include <sysdeps/ieee754/ldbl-128/t_expl.h>
+
+static const long double C[] = {
+/* Smallest integer x for which e^x overflows.  */
+#define himark C[0]
+ 709.78271289338399678773454114191496482L,
+
+/* Largest integer x for which e^x underflows.  */
+#define lomark C[1]
+-744.44007192138126231410729844608163411L,
+
+/* 3x2^96 */
+#define THREEp96 C[2]
+ 59421121885698253195157962752.0L,
+
+/* 3x2^103 */
+#define THREEp103 C[3]
+ 30423614405477505635920876929024.0L,
+
+/* 3x2^111 */
+#define THREEp111 C[4]
+ 7788445287802241442795744493830144.0L,
+
+/* 1/ln(2) */
+#define M_1_LN2 C[5]
+ 1.44269504088896340735992468100189204L,
+
+/* first 93 bits of ln(2) */
+#define M_LN2_0 C[6]
+ 0.693147180559945309417232121457981864L,
+
+/* ln2_0 - ln(2) */
+#define M_LN2_1 C[7]
+-1.94704509238074995158795957333327386E-31L,
+
+/* very small number */
+#define TINY C[8]
+ 1.0e-308L,
+
+/* 2^16383 */
+#define TWO1023 C[9]
+ 8.988465674311579538646525953945123668E+307L,
+
+/* 256 */
+#define TWO8 C[10]
+ 256.0L,
+
+/* 32768 */
+#define TWO15 C[11]
+ 32768.0L,
+
+/* Chebyshev polynom coefficients for (exp(x)-1)/x */
+#define P1 C[12]
+#define P2 C[13]
+#define P3 C[14]
+#define P4 C[15]
+#define P5 C[16]
+#define P6 C[17]
+ 0.5L,
+ 1.66666666666666666666666666666666683E-01L,
+ 4.16666666666666666666654902320001674E-02L,
+ 8.33333333333333333333314659767198461E-03L,
+ 1.38888888889899438565058018857254025E-03L,
+ 1.98412698413981650382436541785404286E-04L,
+};
+
+long double
+__ieee754_expl (long double x)
+{
+  long double result, x22;
+  union ibm_extended_long_double ex2_u, scale_u;
+  int unsafe;
+
+  /* Check for usual case.  */
+  if (isless (x, himark) && isgreater (x, lomark))
+    {
+      int tval1, tval2, n_i, exponent2;
+      long double n, xl;
+
+      SET_RESTORE_ROUND (FE_TONEAREST);
+
+      n = __roundl (x*M_1_LN2);
+      x = x-n*M_LN2_0;
+      xl = n*M_LN2_1;
+
+      tval1 = __roundl (x*TWO8);
+      x -= __expl_table[T_EXPL_ARG1+2*tval1];
+      xl -= __expl_table[T_EXPL_ARG1+2*tval1+1];
+
+      tval2 = __roundl (x*TWO15);
+      x -= __expl_table[T_EXPL_ARG2+2*tval2];
+      xl -= __expl_table[T_EXPL_ARG2+2*tval2+1];
+
+      x = x + xl;
+
+      /* Compute ex2 = 2^n_0 e^(argtable[tval1]) e^(argtable[tval2]).  */
+      ex2_u.ld = (__expl_table[T_EXPL_RES1 + tval1]
+		  * __expl_table[T_EXPL_RES2 + tval2]);
+      n_i = (int)n;
+      /* 'unsafe' is 1 iff n_1 != 0.  */
+      unsafe = fabsl(n_i) >= -LDBL_MIN_EXP - 1;
+      ex2_u.d[0].ieee.exponent += n_i >> unsafe;
+      /* Fortunately, there are no subnormal lowpart doubles in
+	 __expl_table, only normal values and zeros.
+	 But after scaling it can be subnormal.  */
+      exponent2 = ex2_u.d[1].ieee.exponent + (n_i >> unsafe);
+      if (ex2_u.d[1].ieee.exponent == 0)
+	/* assert ((ex2_u.d[1].ieee.mantissa0|ex2_u.d[1].ieee.mantissa1) == 0) */;
+      else if (exponent2 > 0)
+	ex2_u.d[1].ieee.exponent = exponent2;
+      else if (exponent2 <= -54)
+	{
+	  ex2_u.d[1].ieee.exponent = 0;
+	  ex2_u.d[1].ieee.mantissa0 = 0;
+	  ex2_u.d[1].ieee.mantissa1 = 0;
+	}
+      else
+	{
+	  static const double
+	    two54 = 1.80143985094819840000e+16, /* 4350000000000000 */
+	    twom54 = 5.55111512312578270212e-17; /* 3C90000000000000 */
+	  ex2_u.d[1].d *= two54;
+	  ex2_u.d[1].ieee.exponent += n_i >> unsafe;
+	  ex2_u.d[1].d *= twom54;
+	}
+
+      /* Compute scale = 2^n_1.  */
+      scale_u.ld = 1.0L;
+      scale_u.d[0].ieee.exponent += n_i - (n_i >> unsafe);
+
+      /* Approximate e^x2 - 1, using a seventh-degree polynomial,
+	 with maximum error in [-2^-16-2^-53,2^-16+2^-53]
+	 less than 4.8e-39.  */
+      x22 = x + x*x*(P1+x*(P2+x*(P3+x*(P4+x*(P5+x*P6)))));
+
+      /* Now we can test whether the result is ultimate or if we are unsure.
+	 In the later case we should probably call a mpn based routine to give
+	 the ultimate result.
+	 Empirically, this routine is already ultimate in about 99.9986% of
+	 cases, the test below for the round to nearest case will be false
+	 in ~ 99.9963% of cases.
+	 Without proc2 routine maximum error which has been seen is
+	 0.5000262 ulp.
+
+	  union ieee854_long_double ex3_u;
+
+	  #ifdef FE_TONEAREST
+	    fesetround (FE_TONEAREST);
+	  #endif
+	  ex3_u.d = (result - ex2_u.d) - x22 * ex2_u.d;
+	  ex2_u.d = result;
+	  ex3_u.ieee.exponent += LDBL_MANT_DIG + 15 + IEEE854_LONG_DOUBLE_BIAS
+				 - ex2_u.ieee.exponent;
+	  n_i = abs (ex3_u.d);
+	  n_i = (n_i + 1) / 2;
+	  fesetenv (&oldenv);
+	  #ifdef FE_TONEAREST
+	  if (fegetround () == FE_TONEAREST)
+	    n_i -= 0x4000;
+	  #endif
+	  if (!n_i) {
+	    return __ieee754_expl_proc2 (origx);
+	  }
+       */
+    }
+  /* Exceptional cases:  */
+  else if (isless (x, himark))
+    {
+      if (isinf (x))
+	/* e^-inf == 0, with no error.  */
+	return 0;
+      else
+	/* Underflow */
+	return TINY * TINY;
+    }
+  else
+    /* Return x, if x is a NaN or Inf; or overflow, otherwise.  */
+    return TWO1023*x;
+
+  result = x22 * ex2_u.ld + ex2_u.ld;
+  if (!unsafe)
+    return result;
+  return result * scale_u.ld;
+}
+strong_alias (__ieee754_expl, __expl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c
new file mode 100644
index 0000000000..5284fd0fd5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_fmodl.c
@@ -0,0 +1,149 @@
+/* e_fmodl.c -- long double version of e_fmod.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * __ieee754_fmodl(x,y)
+ * Return x mod y in exact arithmetic
+ * Method: shift and subtract
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <ieee754.h>
+
+static const long double one = 1.0, Zero[] = {0.0, -0.0,};
+
+long double
+__ieee754_fmodl (long double x, long double y)
+{
+	int64_t hx, hy, hz, sx, sy;
+	uint64_t lx, ly, lz;
+	int n, ix, iy;
+	double xhi, xlo, yhi, ylo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	ldbl_unpack (y, &yhi, &ylo);
+	EXTRACT_WORDS64 (hy, yhi);
+	EXTRACT_WORDS64 (ly, ylo);
+	sx = hx&0x8000000000000000ULL;		/* sign of x */
+	hx ^= sx;				/* |x| */
+	sy = hy&0x8000000000000000ULL;		/* sign of y */
+	hy ^= sy;				/* |y| */
+
+    /* purge off exception values */
+	if(__builtin_expect(hy==0 ||
+			    (hx>=0x7ff0000000000000LL)|| /* y=0,or x not finite */
+			    (hy>0x7ff0000000000000LL),0))	/* or y is NaN */
+	    return (x*y)/(x*y);
+	if (__glibc_unlikely (hx <= hy))
+	  {
+	    /* If |x| < |y| return x.  */
+	    if (hx < hy)
+	      return x;
+	    /* At this point the absolute value of the high doubles of
+	       x and y must be equal.  */
+	    if ((lx & 0x7fffffffffffffffLL) == 0
+		&& (ly & 0x7fffffffffffffffLL) == 0)
+	      /* Both low parts are zero.  The result should be an
+		 appropriately signed zero, but the subsequent logic
+		 could treat them as unequal, depending on the signs
+		 of the low parts.  */
+	      return Zero[(uint64_t) sx >> 63];
+	    /* If the low double of y is the same sign as the high
+	       double of y (ie. the low double increases |y|)...  */
+	    if (((ly ^ sy) & 0x8000000000000000LL) == 0
+		/* ... then a different sign low double to high double
+		   for x or same sign but lower magnitude...  */
+		&& (int64_t) (lx ^ sx) < (int64_t) (ly ^ sy))
+	      /* ... means |x| < |y|.  */
+	      return x;
+	    /* If the low double of x differs in sign to the high
+	       double of x (ie. the low double decreases |x|)...  */
+	    if (((lx ^ sx) & 0x8000000000000000LL) != 0
+		/* ... then a different sign low double to high double
+		   for y with lower magnitude (we've already caught
+		   the same sign for y case above)...  */
+		&& (int64_t) (lx ^ sx) > (int64_t) (ly ^ sy))
+	      /* ... means |x| < |y|.  */
+	      return x;
+	    /* If |x| == |y| return x*0.  */
+	    if ((lx ^ sx) == (ly ^ sy))
+	      return Zero[(uint64_t) sx >> 63];
+	}
+
+    /* Make the IBM extended format 105 bit mantissa look like the ieee854 112
+       bit mantissa so the following operations will give the correct
+       result.  */
+	ldbl_extract_mantissa(&hx, &lx, &ix, x);
+	ldbl_extract_mantissa(&hy, &ly, &iy, y);
+
+	if (__glibc_unlikely (ix == -IEEE754_DOUBLE_BIAS))
+	  {
+	    /* subnormal x, shift x to normal.  */
+	    while ((hx & (1LL << 48)) == 0)
+	      {
+		hx = (hx << 1) | (lx >> 63);
+		lx = lx << 1;
+		ix -= 1;
+	      }
+	  }
+
+	if (__glibc_unlikely (iy == -IEEE754_DOUBLE_BIAS))
+	  {
+	    /* subnormal y, shift y to normal.  */
+	    while ((hy & (1LL << 48)) == 0)
+	      {
+		hy = (hy << 1) | (ly >> 63);
+		ly = ly << 1;
+		iy -= 1;
+	      }
+	  }
+
+    /* fix point fmod */
+	n = ix - iy;
+	while(n--) {
+	    hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
+	    if(hz<0){hx = hx+hx+(lx>>63); lx = lx+lx;}
+	    else {
+		if((hz|lz)==0)		/* return sign(x)*0 */
+		    return Zero[(u_int64_t)sx>>63];
+		hx = hz+hz+(lz>>63); lx = lz+lz;
+	    }
+	}
+	hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1;
+	if(hz>=0) {hx=hz;lx=lz;}
+
+    /* convert back to floating value and restore the sign */
+	if((hx|lx)==0)			/* return sign(x)*0 */
+	    return Zero[(u_int64_t)sx>>63];
+	while(hx<0x0001000000000000LL) {	/* normalize x */
+	    hx = hx+hx+(lx>>63); lx = lx+lx;
+	    iy -= 1;
+	}
+	if(__builtin_expect(iy>= -1022,0)) {	/* normalize output */
+	    x = ldbl_insert_mantissa((sx>>63), iy, hx, lx);
+	} else {		/* subnormal output */
+	    n = -1022 - iy;
+	    /* We know 1 <= N <= 52, and that there are no nonzero
+	       bits in places below 2^-1074.  */
+	    lx = (lx >> n) | ((u_int64_t) hx << (64 - n));
+	    hx >>= n;
+	    x = ldbl_insert_mantissa((sx>>63), -1023, hx, lx);
+	    x *= one;		/* create necessary signal */
+	}
+	return x;		/* exact output */
+}
+strong_alias (__ieee754_fmodl, __fmodl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
new file mode 100644
index 0000000000..81dbe42c79
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c
@@ -0,0 +1,218 @@
+/* Implementation of gamma function according to ISO C.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+   approximation to gamma function.  */
+
+static const long double gamma_coeff[] =
+  {
+    0x1.555555555555555555555555558p-4L,
+    -0xb.60b60b60b60b60b60b60b60b6p-12L,
+    0x3.4034034034034034034034034p-12L,
+    -0x2.7027027027027027027027027p-12L,
+    0x3.72a3c5631fe46ae1d4e700dca9p-12L,
+    -0x7.daac36664f1f207daac36664f2p-12L,
+    0x1.a41a41a41a41a41a41a41a41a4p-8L,
+    -0x7.90a1b2c3d4e5f708192a3b4c5ep-8L,
+    0x2.dfd2c703c0cfff430edfd2c704p-4L,
+    -0x1.6476701181f39edbdb9ce625988p+0L,
+    0xd.672219167002d3a7a9c886459cp+0L,
+    -0x9.cd9292e6660d55b3f712eb9e08p+4L,
+    0x8.911a740da740da740da740da74p+8L,
+  };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 191, in the form R *
+   2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+   avoid overflow or underflow in intermediate calculations.  */
+
+static long double
+gammal_positive (long double x, int *exp2_adj)
+{
+  int local_signgam;
+  if (x < 0.5L)
+    {
+      *exp2_adj = 0;
+      return __ieee754_expl (__ieee754_lgammal_r (x + 1, &local_signgam)) / x;
+    }
+  else if (x <= 1.5L)
+    {
+      *exp2_adj = 0;
+      return __ieee754_expl (__ieee754_lgammal_r (x, &local_signgam));
+    }
+  else if (x < 11.5L)
+    {
+      /* Adjust into the range for using exp (lgamma).  */
+      *exp2_adj = 0;
+      long double n = __ceill (x - 1.5L);
+      long double x_adj = x - n;
+      long double eps;
+      long double prod = __gamma_productl (x_adj, 0, n, &eps);
+      return (__ieee754_expl (__ieee754_lgammal_r (x_adj, &local_signgam))
+	      * prod * (1.0L + eps));
+    }
+  else
+    {
+      long double eps = 0;
+      long double x_eps = 0;
+      long double x_adj = x;
+      long double prod = 1;
+      if (x < 23.0L)
+	{
+	  /* Adjust into the range for applying Stirling's
+	     approximation.  */
+	  long double n = __ceill (23.0L - x);
+	  x_adj = x + n;
+	  x_eps = (x - (x_adj - n));
+	  prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
+	}
+      /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+	 Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+	 starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+	 factored out.  */
+      long double exp_adj = -eps;
+      long double x_adj_int = __roundl (x_adj);
+      long double x_adj_frac = x_adj - x_adj_int;
+      int x_adj_log2;
+      long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
+      if (x_adj_mant < M_SQRT1_2l)
+	{
+	  x_adj_log2--;
+	  x_adj_mant *= 2.0L;
+	}
+      *exp2_adj = x_adj_log2 * (int) x_adj_int;
+      long double ret = (__ieee754_powl (x_adj_mant, x_adj)
+			 * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
+			 * __ieee754_expl (-x_adj)
+			 * __ieee754_sqrtl (2 * M_PIl / x_adj)
+			 / prod);
+      exp_adj += x_eps * __ieee754_logl (x_adj);
+      long double bsum = gamma_coeff[NCOEFF - 1];
+      long double x_adj2 = x_adj * x_adj;
+      for (size_t i = 1; i <= NCOEFF - 1; i++)
+	bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+      exp_adj += bsum / x_adj;
+      return ret + ret * __expm1l (exp_adj);
+    }
+}
+
+long double
+__ieee754_gammal_r (long double x, int *signgamp)
+{
+  int64_t hx;
+  double xhi;
+  long double ret;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (hx, xhi);
+
+  if ((hx & 0x7fffffffffffffffLL) == 0)
+    {
+      /* Return value for x == 0 is Inf with divide by zero exception.  */
+      *signgamp = 0;
+      return 1.0 / x;
+    }
+  if (hx < 0 && (u_int64_t) hx < 0xfff0000000000000ULL && __rintl (x) == x)
+    {
+      /* Return value for integer x < 0 is NaN with invalid exception.  */
+      *signgamp = 0;
+      return (x - x) / (x - x);
+    }
+  if (hx == 0xfff0000000000000ULL)
+    {
+      /* x == -Inf.  According to ISO this is NaN.  */
+      *signgamp = 0;
+      return x - x;
+    }
+  if ((hx & 0x7ff0000000000000ULL) == 0x7ff0000000000000ULL)
+    {
+      /* Positive infinity (return positive infinity) or NaN (return
+	 NaN).  */
+      *signgamp = 0;
+      return x + x;
+    }
+
+  if (x >= 172.0L)
+    {
+      /* Overflow.  */
+      *signgamp = 0;
+      return LDBL_MAX * LDBL_MAX;
+    }
+  else
+    {
+      SET_RESTORE_ROUNDL (FE_TONEAREST);
+      if (x > 0.0L)
+	{
+	  *signgamp = 0;
+	  int exp2_adj;
+	  ret = gammal_positive (x, &exp2_adj);
+	  ret = __scalbnl (ret, exp2_adj);
+	}
+      else if (x >= -0x1p-110L)
+	{
+	  *signgamp = 0;
+	  ret = 1.0L / x;
+	}
+      else
+	{
+	  long double tx = __truncl (x);
+	  *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
+	  if (x <= -191.0L)
+	    /* Underflow.  */
+	    ret = LDBL_MIN * LDBL_MIN;
+	  else
+	    {
+	      long double frac = tx - x;
+	      if (frac > 0.5L)
+		frac = 1.0L - frac;
+	      long double sinpix = (frac <= 0.25L
+				    ? __sinl (M_PIl * frac)
+				    : __cosl (M_PIl * (0.5L - frac)));
+	      int exp2_adj;
+	      ret = M_PIl / (-x * sinpix
+			     * gammal_positive (-x, &exp2_adj));
+	      ret = __scalbnl (ret, -exp2_adj);
+	      math_check_force_underflow_nonneg (ret);
+	    }
+	}
+    }
+  if (isinf (ret) && x != 0)
+    {
+      if (*signgamp < 0)
+	return -(-__copysignl (LDBL_MAX, ret) * LDBL_MAX);
+      else
+	return __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+    }
+  else if (ret == 0)
+    {
+      if (*signgamp < 0)
+	return -(-__copysignl (LDBL_MIN, ret) * LDBL_MIN);
+      else
+	return __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+    }
+  else
+    return ret;
+}
+strong_alias (__ieee754_gammal_r, __gammal_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
new file mode 100644
index 0000000000..de5a66ab05
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_hypotl.c
@@ -0,0 +1,138 @@
+/* @(#)e_hypotl.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_hypotl(x,y)
+ *
+ * Method :
+ *	If (assume round-to-nearest) z=x*x+y*y
+ *	has error less than sqrtl(2)/2 ulp, than
+ *	sqrtl(z) has error less than 1 ulp (exercise).
+ *
+ *	So, compute sqrtl(x*x+y*y) with some care as
+ *	follows to get the error below 1 ulp:
+ *
+ *	Assume x>y>0;
+ *	(if possible, set rounding to round-to-nearest)
+ *	1. if x > 2y  use
+ *		x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
+ *	where x1 = x with lower 53 bits cleared, x2 = x-x1; else
+ *	2. if x <= 2y use
+ *		t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
+ *	where t1 = 2x with lower 53 bits cleared, t2 = 2x-t1,
+ *	y1= y with lower 53 bits chopped, y2 = y-y1.
+ *
+ *	NOTE: scaling may be necessary if some argument is too
+ *	      large or too tiny
+ *
+ * Special cases:
+ *	hypotl(x,y) is INF if x or y is +INF or -INF; else
+ *	hypotl(x,y) is NAN if x or y is NAN.
+ *
+ * Accuracy:
+ *	hypotl(x,y) returns sqrtl(x^2+y^2) with error less
+ *	than 1 ulps (units in the last place)
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+long double
+__ieee754_hypotl(long double x, long double y)
+{
+	long double a,b,a1,a2,b1,b2,w,kld;
+	int64_t j,k,ha,hb;
+	double xhi, yhi, hi, lo;
+
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (ha, xhi);
+	yhi = ldbl_high (y);
+	EXTRACT_WORDS64 (hb, yhi);
+	ha &= 0x7fffffffffffffffLL;
+	hb &= 0x7fffffffffffffffLL;
+	if(hb > ha) {a=y;b=x;j=ha; ha=hb;hb=j;} else {a=x;b=y;}
+	a = fabsl(a);	/* a <- |a| */
+	b = fabsl(b);	/* b <- |b| */
+	if((ha-hb)>0x0780000000000000LL) {return a+b;} /* x/y > 2**120 */
+	k=0;
+	kld = 1.0L;
+	if(ha > 0x5f30000000000000LL) {	/* a>2**500 */
+	   if(ha >= 0x7ff0000000000000LL) {	/* Inf or NaN */
+	       w = a+b;			/* for sNaN */
+	       if (issignaling (a) || issignaling (b))
+		 return w;
+	       if(ha == 0x7ff0000000000000LL)
+		 w = a;
+	       if(hb == 0x7ff0000000000000LL)
+		 w = b;
+	       return w;
+	   }
+	   /* scale a and b by 2**-600 */
+	   a *= 0x1p-600L;
+	   b *= 0x1p-600L;
+	   k = 600;
+	   kld = 0x1p+600L;
+	}
+	else if(hb < 0x23d0000000000000LL) {	/* b < 2**-450 */
+	    if(hb <= 0x000fffffffffffffLL) {	/* subnormal b or 0 */
+		if(hb==0) return a;
+		a *= 0x1p+1022L;
+		b *= 0x1p+1022L;
+		k = -1022;
+		kld = 0x1p-1022L;
+	    } else {		/* scale a and b by 2^600 */
+		a *= 0x1p+600L;
+		b *= 0x1p+600L;
+		k = -600;
+		kld = 0x1p-600L;
+	    }
+	}
+    /* medium size a and b */
+	w = a-b;
+	if (w>b) {
+	    ldbl_unpack (a, &hi, &lo);
+	    a1 = hi;
+	    a2 = lo;
+	    /* a*a + b*b
+	       = (a1+a2)*a + b*b
+	       = a1*a + a2*a + b*b
+	       = a1*(a1+a2) + a2*a + b*b
+	       = a1*a1 + a1*a2 + a2*a + b*b
+	       = a1*a1 + a2*(a+a1) + b*b  */
+	    w  = __ieee754_sqrtl(a1*a1-(b*(-b)-a2*(a+a1)));
+	} else {
+	    a  = a+a;
+	    ldbl_unpack (b, &hi, &lo);
+	    b1 = hi;
+	    b2 = lo;
+	    ldbl_unpack (a, &hi, &lo);
+	    a1 = hi;
+	    a2 = lo;
+	    /* a*a + b*b
+	       = a*a + (a-b)*(a-b) - (a-b)*(a-b) + b*b
+	       = a*a + w*w  - (a*a - 2*a*b + b*b) + b*b
+	       = w*w + 2*a*b
+	       = w*w + (a1+a2)*b
+	       = w*w + a1*b + a2*b
+	       = w*w + a1*(b1+b2) + a2*b
+	       = w*w + a1*b1 + a1*b2 + a2*b  */
+	    w  = __ieee754_sqrtl(a1*b1-(w*(-w)-(a1*b2+a2*b)));
+	}
+	if(k!=0)
+	    {
+		w *= kld;
+		math_check_force_underflow_nonneg (w);
+		return w;
+	    }
+	else
+	    return w;
+}
+strong_alias (__ieee754_hypotl, __hypotl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c
new file mode 100644
index 0000000000..4088238f30
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_ilogbl.c
@@ -0,0 +1,70 @@
+/* s_ilogbl.c -- long double version of s_ilogb.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* ilogbl(long double x)
+ * return the binary exponent of non-zero x
+ * ilogbl(0) = FP_ILOGB0
+ * ilogbl(NaN) = FP_ILOGBNAN (no signal is raised)
+ * ilogbl(+-Inf) = INT_MAX (no signal is raised)
+ */
+
+#include <limits.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+int __ieee754_ilogbl(long double x)
+{
+	int64_t hx, hxs;
+	int ix;
+	double xhi, xlo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	hxs = hx;
+	hx &= 0x7fffffffffffffffLL;
+	if(hx <= 0x0010000000000000LL) {
+	    if(hx==0)
+		return FP_ILOGB0;	/* ilogbl(0) = FP_ILOGB0 */
+	    else			/* subnormal x */
+		for (ix = -1022, hx<<=11; hx>0; hx<<=1) ix -=1;
+	    return ix;
+	}
+	else if (hx < 0x7ff0000000000000LL)
+	  {
+	    int hexp = (hx >> 52) - 0x3ff;
+	    /* If the high part is a power of 2, and the low part is
+	       nonzero with the opposite sign, the low part affects
+	       the exponent.  */
+	    if ((hx & 0x000fffffffffffffLL) == 0)
+	      {
+		int64_t lx;
+		EXTRACT_WORDS64 (lx, xlo);
+		if ((hxs ^ lx) < 0 && (lx & 0x7fffffffffffffffLL) != 0)
+		  hexp--;
+	      }
+	    return hexp;
+	  }
+	else if (FP_ILOGBNAN != INT_MAX) {
+	    /* ISO C99 requires ilogbl(+-Inf) == INT_MAX.  */
+	    if (hx==0x7ff0000000000000LL)
+		return INT_MAX;
+	}
+	return FP_ILOGBNAN;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j0l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
new file mode 100644
index 0000000000..00bce29284
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
@@ -0,0 +1,5 @@
+/* Looks like we can use ieee854 e_j0l.c as is for IBM extended format. */
+#define _Float128 long double
+#define L(x) x ## L
+#include <sysdeps/ieee754/ldbl-128/e_j0l.c>
+
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
new file mode 100644
index 0000000000..da9fd9eeca
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
@@ -0,0 +1,4 @@
+/* Looks like we can use ieee854 e_j1l.c as is for IBM extended format. */
+#define _Float128 long double
+#define L(x) x ## L
+#include <sysdeps/ieee754/ldbl-128/e_j1l.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
new file mode 100644
index 0000000000..4a8ccb044e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
@@ -0,0 +1,421 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Modifications for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/*
+ * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * floating point Bessel's function of the 1st and 2nd kind
+ * of order n
+ *
+ * Special cases:
+ *	y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal;
+ *	y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
+ * Note 2. About jn(n,x), yn(n,x)
+ *	For n=0, j0(x) is called,
+ *	for n=1, j1(x) is called,
+ *	for n<x, forward recursion us used starting
+ *	from values of j0(x) and j1(x).
+ *	for n>x, a continued fraction approximation to
+ *	j(n,x)/j(n-1,x) is evaluated and then backward
+ *	recursion is used starting from a supposed value
+ *	for j(n,x). The resulting value of j(0,x) is
+ *	compared with the actual value to correct the
+ *	supposed value of j(n,x).
+ *
+ *	yn(n,x) is similar in all respects, except
+ *	that forward recursion is used for all
+ *	values of n>1.
+ *
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+  invsqrtpi = 5.6418958354775628694807945156077258584405E-1L,
+  two = 2.0e0L,
+  one = 1.0e0L,
+  zero = 0.0L;
+
+
+long double
+__ieee754_jnl (int n, long double x)
+{
+  uint32_t se, lx;
+  int32_t i, ix, sgn;
+  long double a, b, temp, di, ret;
+  long double z, w;
+  double xhi;
+
+
+  /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
+   * Thus, J(-n,x) = J(n,-x)
+   */
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS (se, lx, xhi);
+  ix = se & 0x7fffffff;
+
+  /* if J(n,NaN) is NaN */
+  if (ix >= 0x7ff00000)
+    {
+      if (((ix - 0x7ff00000) | lx) != 0)
+	return x + x;
+    }
+
+  if (n < 0)
+    {
+      n = -n;
+      x = -x;
+      se ^= 0x80000000;
+    }
+  if (n == 0)
+    return (__ieee754_j0l (x));
+  if (n == 1)
+    return (__ieee754_j1l (x));
+  sgn = (n & 1) & (se >> 31);	/* even n -- 0, odd n -- sign(x) */
+  x = fabsl (x);
+
+  {
+    SET_RESTORE_ROUNDL (FE_TONEAREST);
+    if (x == 0.0L || ix >= 0x7ff00000)	/* if x is 0 or inf */
+      return sgn == 1 ? -zero : zero;
+    else if ((long double) n <= x)
+      {
+	/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
+	if (ix >= 0x52d00000)
+	  {			/* x > 2**302 */
+
+	    /* ??? Could use an expansion for large x here.  */
+
+	    /* (x >> n**2)
+	     *      Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	     *      Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	     *      Let s=sin(x), c=cos(x),
+	     *          xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+	     *
+	     *             n    sin(xn)*sqt2    cos(xn)*sqt2
+	     *          ----------------------------------
+	     *             0     s-c             c+s
+	     *             1    -s-c            -c+s
+	     *             2    -s+c            -c-s
+	     *             3     s+c             c-s
+	     */
+	    long double s;
+	    long double c;
+	    __sincosl (x, &s, &c);
+	    switch (n & 3)
+	      {
+	      case 0:
+		temp = c + s;
+		break;
+	      case 1:
+		temp = -c + s;
+		break;
+	      case 2:
+		temp = -c - s;
+		break;
+	      case 3:
+		temp = c - s;
+		break;
+	      }
+	    b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	  }
+	else
+	  {
+	    a = __ieee754_j0l (x);
+	    b = __ieee754_j1l (x);
+	    for (i = 1; i < n; i++)
+	      {
+		temp = b;
+		b = b * ((long double) (i + i) / x) - a;	/* avoid underflow */
+		a = temp;
+	      }
+	  }
+      }
+    else
+      {
+	if (ix < 0x3e100000)
+	  {			/* x < 2**-29 */
+	    /* x is tiny, return the first Taylor expansion of J(n,x)
+	     * J(n,x) = 1/n!*(x/2)^n  - ...
+	     */
+	    if (n >= 33)		/* underflow, result < 10^-300 */
+	      b = zero;
+	    else
+	      {
+		temp = x * 0.5;
+		b = temp;
+		for (a = one, i = 2; i <= n; i++)
+		  {
+		    a *= (long double) i;	/* a = n! */
+		    b *= temp;	/* b = (x/2)^n */
+		  }
+		b = b / a;
+	      }
+	  }
+	else
+	  {
+	    /* use backward recurrence */
+	    /*                      x      x^2      x^2
+	     *  J(n,x)/J(n-1,x) =  ----   ------   ------   .....
+	     *                      2n  - 2(n+1) - 2(n+2)
+	     *
+	     *                      1      1        1
+	     *  (for large x)   =  ----  ------   ------   .....
+	     *                      2n   2(n+1)   2(n+2)
+	     *                      -- - ------ - ------ -
+	     *                       x     x         x
+	     *
+	     * Let w = 2n/x and h=2/x, then the above quotient
+	     * is equal to the continued fraction:
+	     *                  1
+	     *      = -----------------------
+	     *                     1
+	     *         w - -----------------
+	     *                        1
+	     *              w+h - ---------
+	     *                     w+2h - ...
+	     *
+	     * To determine how many terms needed, let
+	     * Q(0) = w, Q(1) = w(w+h) - 1,
+	     * Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
+	     * When Q(k) > 1e4      good for single
+	     * When Q(k) > 1e9      good for double
+	     * When Q(k) > 1e17     good for quadruple
+	     */
+	    /* determine k */
+	    long double t, v;
+	    long double q0, q1, h, tmp;
+	    int32_t k, m;
+	    w = (n + n) / (long double) x;
+	    h = 2.0L / (long double) x;
+	    q0 = w;
+	    z = w + h;
+	    q1 = w * z - 1.0L;
+	    k = 1;
+	    while (q1 < 1.0e17L)
+	      {
+		k += 1;
+		z += h;
+		tmp = z * q1 - q0;
+		q0 = q1;
+		q1 = tmp;
+	      }
+	    m = n + n;
+	    for (t = zero, i = 2 * (n + k); i >= m; i -= 2)
+	      t = one / (i / x - t);
+	    a = t;
+	    b = one;
+	    /*  estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n)
+	     *  Hence, if n*(log(2n/x)) > ...
+	     *  single 8.8722839355e+01
+	     *  double 7.09782712893383973096e+02
+	     *  long double 1.1356523406294143949491931077970765006170e+04
+	     *  then recurrent value may overflow and the result is
+	     *  likely underflow to zero
+	     */
+	    tmp = n;
+	    v = two / x;
+	    tmp = tmp * __ieee754_logl (fabsl (v * tmp));
+
+	    if (tmp < 1.1356523406294143949491931077970765006170e+04L)
+	      {
+		for (i = n - 1, di = (long double) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		  }
+	      }
+	    else
+	      {
+		for (i = n - 1, di = (long double) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		    /* scale b to avoid spurious overflow */
+		    if (b > 1e100L)
+		      {
+			a /= b;
+			t /= b;
+			b = one;
+		      }
+		  }
+	      }
+	    /* j0() and j1() suffer enormous loss of precision at and
+	     * near zero; however, we know that their zero points never
+	     * coincide, so just choose the one further away from zero.
+	     */
+	    z = __ieee754_j0l (x);
+	    w = __ieee754_j1l (x);
+	    if (fabsl (z) >= fabsl (w))
+	      b = (t * z / b);
+	    else
+	      b = (t * w / a);
+	  }
+      }
+    if (sgn == 1)
+      ret = -b;
+    else
+      ret = b;
+  }
+  if (ret == 0)
+    {
+      ret = __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+      __set_errno (ERANGE);
+    }
+  else
+    math_check_force_underflow (ret);
+  return ret;
+}
+strong_alias (__ieee754_jnl, __jnl_finite)
+
+long double
+__ieee754_ynl (int n, long double x)
+{
+  uint32_t se, lx;
+  int32_t i, ix;
+  int32_t sign;
+  long double a, b, temp, ret;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS (se, lx, xhi);
+  ix = se & 0x7fffffff;
+
+  /* if Y(n,NaN) is NaN */
+  if (ix >= 0x7ff00000)
+    {
+      if (((ix - 0x7ff00000) | lx) != 0)
+	return x + x;
+    }
+  if (x <= 0.0L)
+    {
+      if (x == 0.0L)
+	return ((n < 0 && (n & 1) != 0) ? 1.0L : -1.0L) / 0.0L;
+      if (se & 0x80000000)
+	return zero / (zero * x);
+    }
+  sign = 1;
+  if (n < 0)
+    {
+      n = -n;
+      sign = 1 - ((n & 1) << 1);
+    }
+  if (n == 0)
+    return (__ieee754_y0l (x));
+  {
+    SET_RESTORE_ROUNDL (FE_TONEAREST);
+    if (n == 1)
+      {
+	ret = sign * __ieee754_y1l (x);
+	goto out;
+      }
+    if (ix >= 0x7ff00000)
+      return zero;
+    if (ix >= 0x52D00000)
+      {				/* x > 2**302 */
+
+	/* ??? See comment above on the possible futility of this.  */
+
+	/* (x >> n**2)
+	 *      Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *      Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *      Let s=sin(x), c=cos(x),
+	 *          xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+	 *
+	 *             n    sin(xn)*sqt2    cos(xn)*sqt2
+	 *          ----------------------------------
+	 *             0     s-c             c+s
+	 *             1    -s-c            -c+s
+	 *             2    -s+c            -c-s
+	 *             3     s+c             c-s
+	 */
+	long double s;
+	long double c;
+	__sincosl (x, &s, &c);
+	switch (n & 3)
+	  {
+	  case 0:
+	    temp = s - c;
+	    break;
+	  case 1:
+	    temp = -s - c;
+	    break;
+	  case 2:
+	    temp = -s + c;
+	    break;
+	  case 3:
+	    temp = s + c;
+	    break;
+	  }
+	b = invsqrtpi * temp / __ieee754_sqrtl (x);
+      }
+    else
+      {
+	a = __ieee754_y0l (x);
+	b = __ieee754_y1l (x);
+	/* quit if b is -inf */
+	xhi = ldbl_high (b);
+	GET_HIGH_WORD (se, xhi);
+	se &= 0xfff00000;
+	for (i = 1; i < n && se != 0xfff00000; i++)
+	  {
+	    temp = b;
+	    b = ((long double) (i + i) / x) * b - a;
+	    xhi = ldbl_high (b);
+	    GET_HIGH_WORD (se, xhi);
+	    se &= 0xfff00000;
+	    a = temp;
+	  }
+      }
+    /* If B is +-Inf, set up errno accordingly.  */
+    if (! isfinite (b))
+      __set_errno (ERANGE);
+    if (sign > 0)
+      ret = b;
+    else
+      ret = -b;
+  }
+ out:
+  if (isinf (ret))
+    ret = __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+  return ret;
+}
+strong_alias (__ieee754_ynl, __ynl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
new file mode 100644
index 0000000000..8ac8283bd8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
@@ -0,0 +1,5 @@
+/* Looks like we can use ieee854 e_lgammal_r.c as is for IBM extended format. */
+#define _Float128 long double
+#define L(x) x ## L
+#include <sysdeps/ieee754/ldbl-128/e_lgammal_r.c>
+
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log10l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log10l.c
new file mode 100644
index 0000000000..1fbfa48e13
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log10l.c
@@ -0,0 +1,261 @@
+/*							log10l.c
+ *
+ *	Common logarithm, 128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, log10l();
+ *
+ * y = log10l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base 10 logarithm of x.
+ *
+ * The argument is separated into its exponent and fractional
+ * parts.  If the exponent is between -1 and +1, the logarithm
+ * of the fraction is approximated by
+ *
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x)/Q(x).
+ *
+ * Otherwise, setting  z = 2(x-1)/x+1),
+ *
+ *     log(x) = z + z^3 P(z)/Q(z).
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      0.5, 2.0     30000      2.3e-34     4.9e-35
+ *    IEEE     exp(+-10000)  30000      1.0e-34     4.1e-35
+ *
+ * In the tests over the interval exp(+-10000), the logarithms
+ * of the random arguments were uniformly distributed over
+ * [-10000, +10000].
+ *
+ */
+
+/*
+   Cephes Math Library Release 2.2:  January, 1991
+   Copyright 1984, 1991 by Stephen L. Moshier
+   Adapted for glibc November, 2001
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Coefficients for ln(1+x) = x - x**2/2 + x**3 P(x)/Q(x)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 5.3e-37,
+ * relative peak error spread = 2.3e-14
+ */
+static const long double P[13] =
+{
+  1.313572404063446165910279910527789794488E4L,
+  7.771154681358524243729929227226708890930E4L,
+  2.014652742082537582487669938141683759923E5L,
+  3.007007295140399532324943111654767187848E5L,
+  2.854829159639697837788887080758954924001E5L,
+  1.797628303815655343403735250238293741397E5L,
+  7.594356839258970405033155585486712125861E4L,
+  2.128857716871515081352991964243375186031E4L,
+  3.824952356185897735160588078446136783779E3L,
+  4.114517881637811823002128927449878962058E2L,
+  2.321125933898420063925789532045674660756E1L,
+  4.998469661968096229986658302195402690910E-1L,
+  1.538612243596254322971797716843006400388E-6L
+};
+static const long double Q[12] =
+{
+  3.940717212190338497730839731583397586124E4L,
+  2.626900195321832660448791748036714883242E5L,
+  7.777690340007566932935753241556479363645E5L,
+  1.347518538384329112529391120390701166528E6L,
+  1.514882452993549494932585972882995548426E6L,
+  1.158019977462989115839826904108208787040E6L,
+  6.132189329546557743179177159925690841200E5L,
+  2.248234257620569139969141618556349415120E5L,
+  5.605842085972455027590989944010492125825E4L,
+  9.147150349299596453976674231612674085381E3L,
+  9.104928120962988414618126155557301584078E2L,
+  4.839208193348159620282142911143429644326E1L
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2),
+ * where z = 2(x-1)/(x+1)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 1.1e-35,
+ * relative peak error spread 1.1e-9
+ */
+static const long double R[6] =
+{
+  1.418134209872192732479751274970992665513E5L,
+ -8.977257995689735303686582344659576526998E4L,
+  2.048819892795278657810231591630928516206E4L,
+ -2.024301798136027039250415126250455056397E3L,
+  8.057002716646055371965756206836056074715E1L,
+ -8.828896441624934385266096344596648080902E-1L
+};
+static const long double S[6] =
+{
+  1.701761051846631278975701529965589676574E6L,
+ -1.332535117259762928288745111081235577029E6L,
+  4.001557694070773974936904547424676279307E5L,
+ -5.748542087379434595104154610899551484314E4L,
+  3.998526750980007367835804959888064681098E3L,
+ -1.186359407982897997337150403816839480438E2L
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double
+/* log10(2) */
+L102A = 0.3125L,
+L102B = -1.14700043360188047862611052755069732318101185E-2L,
+/* log10(e) */
+L10EA = 0.5L,
+L10EB = -6.570551809674817234887108108339491770560299E-2L,
+/* sqrt(2)/2 */
+SQRTH = 7.071067811865475244008443621048490392848359E-1L;
+
+
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static long double
+neval (long double x, const long double *p, int n)
+{
+  long double y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static long double
+deval (long double x, const long double *p, int n)
+{
+  long double y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+
+long double
+__ieee754_log10l (long double x)
+{
+  long double z;
+  long double y;
+  int e;
+  int64_t hx;
+  double xhi;
+
+/* Test for domain */
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (hx, xhi);
+  if ((hx & 0x7fffffffffffffffLL) == 0)
+    return (-1.0L / __fabsl (x));		/* log10l(+-0)=-inf  */
+  if (hx < 0)
+    return (x - x) / (x - x);
+  if (hx >= 0x7ff0000000000000LL)
+    return (x + x);
+
+  if (x == 1.0L)
+    return 0.0L;
+
+/* separate mantissa from exponent */
+
+/* Note, frexp is used so that denormal numbers
+ * will be handled properly.
+ */
+  x = __frexpl (x, &e);
+
+
+/* logarithm using log(x) = z + z**3 P(z)/Q(z),
+ * where z = 2(x-1)/x+1)
+ */
+  if ((e > 2) || (e < -2))
+    {
+      if (x < SQRTH)
+	{			/* 2( 2x-1 )/( 2x+1 ) */
+	  e -= 1;
+	  z = x - 0.5L;
+	  y = 0.5L * z + 0.5L;
+	}
+      else
+	{			/*  2 (x-1)/(x+1)   */
+	  z = x - 0.5L;
+	  z -= 0.5L;
+	  y = 0.5L * x + 0.5L;
+	}
+      x = z / y;
+      z = x * x;
+      y = x * (z * neval (z, R, 5) / deval (z, S, 5));
+      goto done;
+    }
+
+
+/* logarithm using log(1+x) = x - .5x**2 + x**3 P(x)/Q(x) */
+
+  if (x < SQRTH)
+    {
+      e -= 1;
+      x = 2.0 * x - 1.0L;	/*  2x - 1  */
+    }
+  else
+    {
+      x = x - 1.0L;
+    }
+  z = x * x;
+  y = x * (z * neval (x, P, 12) / deval (x, Q, 11));
+  y = y - 0.5 * z;
+
+done:
+
+  /* Multiply log of fraction by log10(e)
+   * and base 2 exponent by log10(2).
+   */
+  z = y * L10EB;
+  z += x * L10EB;
+  z += e * L102B;
+  z += y * L10EA;
+  z += x * L10EA;
+  z += e * L102A;
+  return (z);
+}
+strong_alias (__ieee754_log10l, __log10l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log2l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
new file mode 100644
index 0000000000..c820dacf08
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_log2l.c
@@ -0,0 +1,254 @@
+/*                                                      log2l.c
+ *      Base 2 logarithm, 128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, log2l();
+ *
+ * y = log2l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base 2 logarithm of x.
+ *
+ * The argument is separated into its exponent and fractional
+ * parts.  If the exponent is between -1 and +1, the (natural)
+ * logarithm of the fraction is approximated by
+ *
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x)/Q(x).
+ *
+ * Otherwise, setting  z = 2(x-1)/x+1),
+ *
+ *     log(x) = z + z^3 P(z)/Q(z).
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      0.5, 2.0     100,000    2.6e-34     4.9e-35
+ *    IEEE     exp(+-10000)  100,000    9.6e-35     4.0e-35
+ *
+ * In the tests over the interval exp(+-10000), the logarithms
+ * of the random arguments were uniformly distributed over
+ * [-10000, +10000].
+ *
+ */
+
+/*
+   Cephes Math Library Release 2.2:  January, 1991
+   Copyright 1984, 1991 by Stephen L. Moshier
+   Adapted for glibc November, 2001
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Coefficients for ln(1+x) = x - x**2/2 + x**3 P(x)/Q(x)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 5.3e-37,
+ * relative peak error spread = 2.3e-14
+ */
+static const long double P[13] =
+{
+  1.313572404063446165910279910527789794488E4L,
+  7.771154681358524243729929227226708890930E4L,
+  2.014652742082537582487669938141683759923E5L,
+  3.007007295140399532324943111654767187848E5L,
+  2.854829159639697837788887080758954924001E5L,
+  1.797628303815655343403735250238293741397E5L,
+  7.594356839258970405033155585486712125861E4L,
+  2.128857716871515081352991964243375186031E4L,
+  3.824952356185897735160588078446136783779E3L,
+  4.114517881637811823002128927449878962058E2L,
+  2.321125933898420063925789532045674660756E1L,
+  4.998469661968096229986658302195402690910E-1L,
+  1.538612243596254322971797716843006400388E-6L
+};
+static const long double Q[12] =
+{
+  3.940717212190338497730839731583397586124E4L,
+  2.626900195321832660448791748036714883242E5L,
+  7.777690340007566932935753241556479363645E5L,
+  1.347518538384329112529391120390701166528E6L,
+  1.514882452993549494932585972882995548426E6L,
+  1.158019977462989115839826904108208787040E6L,
+  6.132189329546557743179177159925690841200E5L,
+  2.248234257620569139969141618556349415120E5L,
+  5.605842085972455027590989944010492125825E4L,
+  9.147150349299596453976674231612674085381E3L,
+  9.104928120962988414618126155557301584078E2L,
+  4.839208193348159620282142911143429644326E1L
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2),
+ * where z = 2(x-1)/(x+1)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 1.1e-35,
+ * relative peak error spread 1.1e-9
+ */
+static const long double R[6] =
+{
+  1.418134209872192732479751274970992665513E5L,
+ -8.977257995689735303686582344659576526998E4L,
+  2.048819892795278657810231591630928516206E4L,
+ -2.024301798136027039250415126250455056397E3L,
+  8.057002716646055371965756206836056074715E1L,
+ -8.828896441624934385266096344596648080902E-1L
+};
+static const long double S[6] =
+{
+  1.701761051846631278975701529965589676574E6L,
+ -1.332535117259762928288745111081235577029E6L,
+  4.001557694070773974936904547424676279307E5L,
+ -5.748542087379434595104154610899551484314E4L,
+  3.998526750980007367835804959888064681098E3L,
+ -1.186359407982897997337150403816839480438E2L
+/* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double
+/* log2(e) - 1 */
+LOG2EA = 4.4269504088896340735992468100189213742664595E-1L,
+/* sqrt(2)/2 */
+SQRTH = 7.071067811865475244008443621048490392848359E-1L;
+
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static long double
+neval (long double x, const long double *p, int n)
+{
+  long double y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static long double
+deval (long double x, const long double *p, int n)
+{
+  long double y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+
+long double
+__ieee754_log2l (long double x)
+{
+  long double z;
+  long double y;
+  int e;
+  int64_t hx;
+  double xhi;
+
+/* Test for domain */
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (hx, xhi);
+  if ((hx & 0x7fffffffffffffffLL) == 0)
+    return (-1.0L / __fabsl (x));		/* log2l(+-0)=-inf  */
+  if (hx < 0)
+    return (x - x) / (x - x);
+  if (hx >= 0x7ff0000000000000LL)
+    return (x + x);
+
+  if (x == 1.0L)
+    return 0.0L;
+
+/* separate mantissa from exponent */
+
+/* Note, frexp is used so that denormal numbers
+ * will be handled properly.
+ */
+  x = __frexpl (x, &e);
+
+
+/* logarithm using log(x) = z + z**3 P(z)/Q(z),
+ * where z = 2(x-1)/x+1)
+ */
+  if ((e > 2) || (e < -2))
+    {
+      if (x < SQRTH)
+	{			/* 2( 2x-1 )/( 2x+1 ) */
+	  e -= 1;
+	  z = x - 0.5L;
+	  y = 0.5L * z + 0.5L;
+	}
+      else
+	{			/*  2 (x-1)/(x+1)   */
+	  z = x - 0.5L;
+	  z -= 0.5L;
+	  y = 0.5L * x + 0.5L;
+	}
+      x = z / y;
+      z = x * x;
+      y = x * (z * neval (z, R, 5) / deval (z, S, 5));
+      goto done;
+    }
+
+
+/* logarithm using log(1+x) = x - .5x**2 + x**3 P(x)/Q(x) */
+
+  if (x < SQRTH)
+    {
+      e -= 1;
+      x = 2.0 * x - 1.0L;	/*  2x - 1  */
+    }
+  else
+    {
+      x = x - 1.0L;
+    }
+  z = x * x;
+  y = x * (z * neval (x, P, 12) / deval (x, Q, 11));
+  y = y - 0.5 * z;
+
+done:
+
+/* Multiply log of fraction by log2(e)
+ * and base 2 exponent by 1
+ */
+  z = y * LOG2EA;
+  z += x * LOG2EA;
+  z += y;
+  z += x;
+  z += e;
+  return (z);
+}
+strong_alias (__ieee754_log2l, __log2l_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_logl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_logl.c
new file mode 100644
index 0000000000..c44feca65b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_logl.c
@@ -0,0 +1,300 @@
+/*							logll.c
+ *
+ * Natural logarithm for 128-bit long double precision.
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, logl();
+ *
+ * y = logl( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base e (2.718...) logarithm of x.
+ *
+ * The argument is separated into its exponent and fractional
+ * parts.  Use of a lookup table increases the speed of the routine.
+ * The program uses logarithms tabulated at intervals of 1/128 to
+ * cover the domain from approximately 0.7 to 1.4.
+ *
+ * On the interval [-1/128, +1/128] the logarithm of 1+x is approximated by
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x) .
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE   0.875, 1.125   100000      1.2e-34    4.1e-35
+ *    IEEE   0.125, 8       100000      1.2e-34    4.1e-35
+ *
+ *
+ * WARNING:
+ *
+ * This program uses integer operations on bit fields of floating-point
+ * numbers.  It does not work with data structures other than the
+ * structure assumed.
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* log(1+x) = x - .5 x^2 + x^3 l(x)
+   -.0078125 <= x <= +.0078125
+   peak relative error 1.2e-37 */
+static const long double
+l3 =   3.333333333333333333333333333333336096926E-1L,
+l4 =  -2.499999999999999999999999999486853077002E-1L,
+l5 =   1.999999999999999999999999998515277861905E-1L,
+l6 =  -1.666666666666666666666798448356171665678E-1L,
+l7 =   1.428571428571428571428808945895490721564E-1L,
+l8 =  -1.249999999999999987884655626377588149000E-1L,
+l9 =   1.111111111111111093947834982832456459186E-1L,
+l10 = -1.000000000000532974938900317952530453248E-1L,
+l11 =  9.090909090915566247008015301349979892689E-2L,
+l12 = -8.333333211818065121250921925397567745734E-2L,
+l13 =  7.692307559897661630807048686258659316091E-2L,
+l14 = -7.144242754190814657241902218399056829264E-2L,
+l15 =  6.668057591071739754844678883223432347481E-2L;
+
+/* Lookup table of ln(t) - (t-1)
+    t = 0.5 + (k+26)/128)
+    k = 0, ..., 91   */
+static const long double logtbl[92] = {
+-5.5345593589352099112142921677820359632418E-2L,
+-5.2108257402767124761784665198737642086148E-2L,
+-4.8991686870576856279407775480686721935120E-2L,
+-4.5993270766361228596215288742353061431071E-2L,
+-4.3110481649613269682442058976885699556950E-2L,
+-4.0340872319076331310838085093194799765520E-2L,
+-3.7682072451780927439219005993827431503510E-2L,
+-3.5131785416234343803903228503274262719586E-2L,
+-3.2687785249045246292687241862699949178831E-2L,
+-3.0347913785027239068190798397055267411813E-2L,
+-2.8110077931525797884641940838507561326298E-2L,
+-2.5972247078357715036426583294246819637618E-2L,
+-2.3932450635346084858612873953407168217307E-2L,
+-2.1988775689981395152022535153795155900240E-2L,
+-2.0139364778244501615441044267387667496733E-2L,
+-1.8382413762093794819267536615342902718324E-2L,
+-1.6716169807550022358923589720001638093023E-2L,
+-1.5138929457710992616226033183958974965355E-2L,
+-1.3649036795397472900424896523305726435029E-2L,
+-1.2244881690473465543308397998034325468152E-2L,
+-1.0924898127200937840689817557742469105693E-2L,
+-9.6875626072830301572839422532631079809328E-3L,
+-8.5313926245226231463436209313499745894157E-3L,
+-7.4549452072765973384933565912143044991706E-3L,
+-6.4568155251217050991200599386801665681310E-3L,
+-5.5356355563671005131126851708522185605193E-3L,
+-4.6900728132525199028885749289712348829878E-3L,
+-3.9188291218610470766469347968659624282519E-3L,
+-3.2206394539524058873423550293617843896540E-3L,
+-2.5942708080877805657374888909297113032132E-3L,
+-2.0385211375711716729239156839929281289086E-3L,
+-1.5522183228760777967376942769773768850872E-3L,
+-1.1342191863606077520036253234446621373191E-3L,
+-7.8340854719967065861624024730268350459991E-4L,
+-4.9869831458030115699628274852562992756174E-4L,
+-2.7902661731604211834685052867305795169688E-4L,
+-1.2335696813916860754951146082826952093496E-4L,
+-3.0677461025892873184042490943581654591817E-5L,
+#define ZERO logtbl[38]
+ 0.0000000000000000000000000000000000000000E0L,
+-3.0359557945051052537099938863236321874198E-5L,
+-1.2081346403474584914595395755316412213151E-4L,
+-2.7044071846562177120083903771008342059094E-4L,
+-4.7834133324631162897179240322783590830326E-4L,
+-7.4363569786340080624467487620270965403695E-4L,
+-1.0654639687057968333207323853366578860679E-3L,
+-1.4429854811877171341298062134712230604279E-3L,
+-1.8753781835651574193938679595797367137975E-3L,
+-2.3618380914922506054347222273705859653658E-3L,
+-2.9015787624124743013946600163375853631299E-3L,
+-3.4938307889254087318399313316921940859043E-3L,
+-4.1378413103128673800485306215154712148146E-3L,
+-4.8328735414488877044289435125365629849599E-3L,
+-5.5782063183564351739381962360253116934243E-3L,
+-6.3731336597098858051938306767880719015261E-3L,
+-7.2169643436165454612058905294782949315193E-3L,
+-8.1090214990427641365934846191367315083867E-3L,
+-9.0486422112807274112838713105168375482480E-3L,
+-1.0035177140880864314674126398350812606841E-2L,
+-1.1067990155502102718064936259435676477423E-2L,
+-1.2146457974158024928196575103115488672416E-2L,
+-1.3269969823361415906628825374158424754308E-2L,
+-1.4437927104692837124388550722759686270765E-2L,
+-1.5649743073340777659901053944852735064621E-2L,
+-1.6904842527181702880599758489058031645317E-2L,
+-1.8202661505988007336096407340750378994209E-2L,
+-1.9542647000370545390701192438691126552961E-2L,
+-2.0924256670080119637427928803038530924742E-2L,
+-2.2346958571309108496179613803760727786257E-2L,
+-2.3810230892650362330447187267648486279460E-2L,
+-2.5313561699385640380910474255652501521033E-2L,
+-2.6856448685790244233704909690165496625399E-2L,
+-2.8438398935154170008519274953860128449036E-2L,
+-3.0058928687233090922411781058956589863039E-2L,
+-3.1717563112854831855692484086486099896614E-2L,
+-3.3413836095418743219397234253475252001090E-2L,
+-3.5147290019036555862676702093393332533702E-2L,
+-3.6917475563073933027920505457688955423688E-2L,
+-3.8723951502862058660874073462456610731178E-2L,
+-4.0566284516358241168330505467000838017425E-2L,
+-4.2444048996543693813649967076598766917965E-2L,
+-4.4356826869355401653098777649745233339196E-2L,
+-4.6304207416957323121106944474331029996141E-2L,
+-4.8285787106164123613318093945035804818364E-2L,
+-5.0301169421838218987124461766244507342648E-2L,
+-5.2349964705088137924875459464622098310997E-2L,
+-5.4431789996103111613753440311680967840214E-2L,
+-5.6546268881465384189752786409400404404794E-2L,
+-5.8693031345788023909329239565012647817664E-2L,
+-6.0871713627532018185577188079210189048340E-2L,
+-6.3081958078862169742820420185833800925568E-2L,
+-6.5323413029406789694910800219643791556918E-2L,
+-6.7595732653791419081537811574227049288168E-2L
+};
+
+/* ln(2) = ln2a + ln2b with extended precision. */
+static const long double
+  ln2a = 6.93145751953125e-1L,
+  ln2b = 1.4286068203094172321214581765680755001344E-6L;
+
+static const long double
+  ldbl_epsilon = 0x1p-106L;
+
+long double
+__ieee754_logl(long double x)
+{
+  long double z, y, w, t;
+  unsigned int m;
+  int k, e;
+  double xhi;
+  uint32_t hx, lx;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS (hx, lx, xhi);
+  m = hx;
+
+  /* Check for IEEE special cases.  */
+  k = m & 0x7fffffff;
+  /* log(0) = -infinity. */
+  if ((k | lx) == 0)
+    {
+      return -0.5L / ZERO;
+    }
+  /* log ( x < 0 ) = NaN */
+  if (m & 0x80000000)
+    {
+      return (x - x) / ZERO;
+    }
+  /* log (infinity or NaN) */
+  if (k >= 0x7ff00000)
+    {
+      return x + x;
+    }
+
+  /* On this interval the table is not used due to cancellation error.  */
+  if ((x <= 1.0078125L) && (x >= 0.9921875L))
+    {
+      if (x == 1.0L)
+	return 0.0L;
+      z = x - 1.0L;
+      k = 64;
+      t = 1.0L;
+      e = 0;
+    }
+  else
+    {
+      /* Extract exponent and reduce domain to 0.703125 <= u < 1.40625  */
+      unsigned int w0;
+      e = (int) (m >> 20) - (int) 0x3fe;
+      if (e == -1022)
+	{
+	  x *= 0x1p106L;
+	  xhi = ldbl_high (x);
+	  EXTRACT_WORDS (hx, lx, xhi);
+	  m = hx;
+	  e = (int) (m >> 20) - (int) 0x3fe - 106;
+	}
+      m &= 0xfffff;
+      w0 = m | 0x3fe00000;
+      m |= 0x100000;
+      /* Find lookup table index k from high order bits of the significand. */
+      if (m < 0x168000)
+	{
+	  k = (m - 0xff000) >> 13;
+	  /* t is the argument 0.5 + (k+26)/128
+	     of the nearest item to u in the lookup table.  */
+	  INSERT_WORDS (xhi, 0x3ff00000 + (k << 13), 0);
+	  t = xhi;
+	  w0 += 0x100000;
+	  e -= 1;
+	  k += 64;
+	}
+      else
+	{
+	  k = (m - 0xfe000) >> 14;
+	  INSERT_WORDS (xhi, 0x3fe00000 + (k << 14), 0);
+	  t = xhi;
+	}
+      x = __scalbnl (x, ((int) ((w0 - hx) * 2)) >> 21);
+      /* log(u) = log( t u/t ) = log(t) + log(u/t)
+	 log(t) is tabulated in the lookup table.
+	 Express log(u/t) = log(1+z),  where z = u/t - 1 = (u-t)/t.
+	 cf. Cody & Waite. */
+      z = (x - t) / t;
+    }
+  /* Series expansion of log(1+z).  */
+  w = z * z;
+  /* Avoid spurious underflows.  */
+  if (__glibc_unlikely (fabsl (z) <= ldbl_epsilon))
+    y = 0.0L;
+  else
+    {
+      y = ((((((((((((l15 * z
+		  + l14) * z
+		 + l13) * z
+		+ l12) * z
+	       + l11) * z
+	      + l10) * z
+	     + l9) * z
+	    + l8) * z
+	   + l7) * z
+	  + l6) * z
+	 + l5) * z
+	+ l4) * z
+       + l3) * z * w;
+      y -= 0.5 * w;
+    }
+  y += e * ln2b;  /* Base 2 exponent offset times ln(2).  */
+  y += z;
+  y += logtbl[k-26]; /* log(t) - (t-1) */
+  y += (t - 1.0L);
+  y += e * ln2a;
+  return y;
+}
+strong_alias (__ieee754_logl, __logl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_powl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_powl.c
new file mode 100644
index 0000000000..d6fbef6997
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_powl.c
@@ -0,0 +1,415 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Expansions and modifications for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_powl(x,y) return x**y
+ *
+ *		      n
+ * Method:  Let x =  2   * (1+f)
+ *	1. Compute and return log2(x) in two pieces:
+ *		log2(x) = w1 + w2,
+ *	   where w1 has 113-53 = 60 bit trailing zeros.
+ *	2. Perform y*log2(x) = n+y' by simulating muti-precision
+ *	   arithmetic, where |y'|<=0.5.
+ *	3. Return x**y = 2**n*exp(y'*log2)
+ *
+ * Special cases:
+ *	1.  (anything) ** 0  is 1
+ *	2.  (anything) ** 1  is itself
+ *	3.  (anything) ** NAN is NAN
+ *	4.  NAN ** (anything except 0) is NAN
+ *	5.  +-(|x| > 1) **  +INF is +INF
+ *	6.  +-(|x| > 1) **  -INF is +0
+ *	7.  +-(|x| < 1) **  +INF is +0
+ *	8.  +-(|x| < 1) **  -INF is +INF
+ *	9.  +-1         ** +-INF is NAN
+ *	10. +0 ** (+anything except 0, NAN)               is +0
+ *	11. -0 ** (+anything except 0, NAN, odd integer)  is +0
+ *	12. +0 ** (-anything except 0, NAN)               is +INF
+ *	13. -0 ** (-anything except 0, NAN, odd integer)  is +INF
+ *	14. -0 ** (odd integer) = -( +0 ** (odd integer) )
+ *	15. +INF ** (+anything except 0,NAN) is +INF
+ *	16. +INF ** (-anything except 0,NAN) is +0
+ *	17. -INF ** (anything)  = -0 ** (-anything)
+ *	18. (-anything) ** (integer) is (-1)**(integer)*(+anything**integer)
+ *	19. (-anything except 0 and inf) ** (non-integer) is NAN
+ *
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double bp[] = {
+  1.0L,
+  1.5L,
+};
+
+/* log_2(1.5) */
+static const long double dp_h[] = {
+  0.0,
+  5.8496250072115607565592654282227158546448E-1L
+};
+
+/* Low part of log_2(1.5) */
+static const long double dp_l[] = {
+  0.0,
+  1.0579781240112554492329533686862998106046E-16L
+};
+
+static const long double zero = 0.0L,
+  one = 1.0L,
+  two = 2.0L,
+  two113 = 1.0384593717069655257060992658440192E34L,
+  huge = 1.0e300L,
+  tiny = 1.0e-300L;
+
+/* 3/2 log x = 3 z + z^3 + z^3 (z^2 R(z^2))
+   z = (x-1)/(x+1)
+   1 <= x <= 1.25
+   Peak relative error 2.3e-37 */
+static const long double LN[] =
+{
+ -3.0779177200290054398792536829702930623200E1L,
+  6.5135778082209159921251824580292116201640E1L,
+ -4.6312921812152436921591152809994014413540E1L,
+  1.2510208195629420304615674658258363295208E1L,
+ -9.9266909031921425609179910128531667336670E-1L
+};
+static const long double LD[] =
+{
+ -5.129862866715009066465422805058933131960E1L,
+  1.452015077564081884387441590064272782044E2L,
+ -1.524043275549860505277434040464085593165E2L,
+  7.236063513651544224319663428634139768808E1L,
+ -1.494198912340228235853027849917095580053E1L
+  /* 1.0E0 */
+};
+
+/* exp(x) = 1 + x - x / (1 - 2 / (x - x^2 R(x^2)))
+   0 <= x <= 0.5
+   Peak relative error 5.7e-38  */
+static const long double PN[] =
+{
+  5.081801691915377692446852383385968225675E8L,
+  9.360895299872484512023336636427675327355E6L,
+  4.213701282274196030811629773097579432957E4L,
+  5.201006511142748908655720086041570288182E1L,
+  9.088368420359444263703202925095675982530E-3L,
+};
+static const long double PD[] =
+{
+  3.049081015149226615468111430031590411682E9L,
+  1.069833887183886839966085436512368982758E8L,
+  8.259257717868875207333991924545445705394E5L,
+  1.872583833284143212651746812884298360922E3L,
+  /* 1.0E0 */
+};
+
+static const long double
+  /* ln 2 */
+  lg2 = 6.9314718055994530941723212145817656807550E-1L,
+  lg2_h = 6.9314718055994528622676398299518041312695E-1L,
+  lg2_l = 2.3190468138462996154948554638754786504121E-17L,
+  ovt = 8.0085662595372944372e-0017L,
+  /* 2/(3*log(2)) */
+  cp = 9.6179669392597560490661645400126142495110E-1L,
+  cp_h = 9.6179669392597555432899980587535537779331E-1L,
+  cp_l = 5.0577616648125906047157785230014751039424E-17L;
+
+long double
+__ieee754_powl (long double x, long double y)
+{
+  long double z, ax, z_h, z_l, p_h, p_l;
+  long double y1, t1, t2, r, s, sgn, t, u, v, w;
+  long double s2, s_h, s_l, t_h, t_l, ay;
+  int32_t i, j, k, yisint, n;
+  uint32_t ix, iy;
+  int32_t hx, hy, hax;
+  double ohi, xhi, xlo, yhi, ylo;
+  uint32_t lx, ly, lj;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS (hx, lx, xhi);
+  ix = hx & 0x7fffffff;
+
+  ldbl_unpack (y, &yhi, &ylo);
+  EXTRACT_WORDS (hy, ly, yhi);
+  iy = hy & 0x7fffffff;
+
+  /* y==zero: x**0 = 1 */
+  if ((iy | ly) == 0 && !issignaling (x))
+    return one;
+
+  /* 1.0**y = 1; -1.0**+-Inf = 1 */
+  if (x == one && !issignaling (y))
+    return one;
+  if (x == -1.0L && ((iy - 0x7ff00000) | ly) == 0)
+    return one;
+
+  /* +-NaN return x+y */
+  if ((ix >= 0x7ff00000 && ((ix - 0x7ff00000) | lx) != 0)
+      || (iy >= 0x7ff00000 && ((iy - 0x7ff00000) | ly) != 0))
+    return x + y;
+
+  /* determine if y is an odd int when x < 0
+   * yisint = 0       ... y is not an integer
+   * yisint = 1       ... y is an odd int
+   * yisint = 2       ... y is an even int
+   */
+  yisint = 0;
+  if (hx < 0)
+    {
+      uint32_t low_ye;
+
+      GET_HIGH_WORD (low_ye, ylo);
+      if ((low_ye & 0x7fffffff) >= 0x43400000)	/* Low part >= 2^53 */
+	yisint = 2;		/* even integer y */
+      else if (iy >= 0x3ff00000)	/* 1.0 */
+	{
+	  if (__floorl (y) == y)
+	    {
+	      z = 0.5 * y;
+	      if (__floorl (z) == z)
+		yisint = 2;
+	      else
+		yisint = 1;
+	    }
+	}
+    }
+
+  ax = fabsl (x);
+
+  /* special value of y */
+  if (ly == 0)
+    {
+      if (iy == 0x7ff00000)	/* y is +-inf */
+	{
+	  if (ax > one)
+	    /* (|x|>1)**+-inf = inf,0 */
+	    return (hy >= 0) ? y : zero;
+	  else
+	    /* (|x|<1)**-,+inf = inf,0 */
+	    return (hy < 0) ? -y : zero;
+	}
+      if (ylo == 0.0)
+	{
+	  if (iy == 0x3ff00000)
+	    {			/* y is  +-1 */
+	      if (hy < 0)
+		return one / x;
+	      else
+		return x;
+	    }
+	  if (hy == 0x40000000)
+	    return x * x;		/* y is  2 */
+	  if (hy == 0x3fe00000)
+	    {			/* y is  0.5 */
+	      if (hx >= 0)		/* x >= +0 */
+		return __ieee754_sqrtl (x);
+	    }
+	}
+    }
+
+  /* special value of x */
+  if (lx == 0)
+    {
+      if (ix == 0x7ff00000 || ix == 0 || (ix == 0x3ff00000 && xlo == 0.0))
+	{
+	  z = ax;		/*x is +-0,+-inf,+-1 */
+	  if (hy < 0)
+	    z = one / z;	/* z = (1/|x|) */
+	  if (hx < 0)
+	    {
+	      if (((ix - 0x3ff00000) | yisint) == 0)
+		{
+		  z = (z - z) / (z - z);	/* (-1)**non-int is NaN */
+		}
+	      else if (yisint == 1)
+		z = -z;		/* (x<0)**odd = -(|x|**odd) */
+	    }
+	  return z;
+	}
+    }
+
+  /* (x<0)**(non-int) is NaN */
+  if (((((u_int32_t) hx >> 31) - 1) | yisint) == 0)
+    return (x - x) / (x - x);
+
+  /* sgn (sign of result -ve**odd) = -1 else = 1 */
+  sgn = one;
+  if (((((u_int32_t) hx >> 31) - 1) | (yisint - 1)) == 0)
+    sgn = -one;			/* (-ve)**(odd int) */
+
+  /* |y| is huge.
+     2^-16495 = 1/2 of smallest representable value.
+     If (1 - 1/131072)^y underflows, y > 1.4986e9 */
+  if (iy > 0x41d654b0)
+    {
+      /* if (1 - 2^-113)^y underflows, y > 1.1873e38 */
+      if (iy > 0x47d654b0)
+	{
+	  if (ix <= 0x3fefffff)
+	    return (hy < 0) ? sgn * huge * huge : sgn * tiny * tiny;
+	  if (ix >= 0x3ff00000)
+	    return (hy > 0) ? sgn * huge * huge : sgn * tiny * tiny;
+	}
+      /* over/underflow if x is not close to one */
+      if (ix < 0x3fefffff)
+	return (hy < 0) ? sgn * huge * huge : sgn * tiny * tiny;
+      if (ix > 0x3ff00000)
+	return (hy > 0) ? sgn * huge * huge : sgn * tiny * tiny;
+    }
+
+  ay = y > 0 ? y : -y;
+  if (ay < 0x1p-117)
+    y = y < 0 ? -0x1p-117 : 0x1p-117;
+
+  n = 0;
+  /* take care subnormal number */
+  if (ix < 0x00100000)
+    {
+      ax *= two113;
+      n -= 113;
+      ohi = ldbl_high (ax);
+      GET_HIGH_WORD (ix, ohi);
+    }
+  n += ((ix) >> 20) - 0x3ff;
+  j = ix & 0x000fffff;
+  /* determine interval */
+  ix = j | 0x3ff00000;		/* normalize ix */
+  if (j <= 0x39880)
+    k = 0;			/* |x|<sqrt(3/2) */
+  else if (j < 0xbb670)
+    k = 1;			/* |x|<sqrt(3)   */
+  else
+    {
+      k = 0;
+      n += 1;
+      ix -= 0x00100000;
+    }
+
+  ohi = ldbl_high (ax);
+  GET_HIGH_WORD (hax, ohi);
+  ax = __scalbnl (ax, ((int) ((ix - hax) * 2)) >> 21);
+
+  /* compute s = s_h+s_l = (x-1)/(x+1) or (x-1.5)/(x+1.5) */
+  u = ax - bp[k];		/* bp[0]=1.0, bp[1]=1.5 */
+  v = one / (ax + bp[k]);
+  s = u * v;
+  s_h = ldbl_high (s);
+
+  /* t_h=ax+bp[k] High */
+  t_h = ax + bp[k];
+  t_h = ldbl_high (t_h);
+  t_l = ax - (t_h - bp[k]);
+  s_l = v * ((u - s_h * t_h) - s_h * t_l);
+  /* compute log(ax) */
+  s2 = s * s;
+  u = LN[0] + s2 * (LN[1] + s2 * (LN[2] + s2 * (LN[3] + s2 * LN[4])));
+  v = LD[0] + s2 * (LD[1] + s2 * (LD[2] + s2 * (LD[3] + s2 * (LD[4] + s2))));
+  r = s2 * s2 * u / v;
+  r += s_l * (s_h + s);
+  s2 = s_h * s_h;
+  t_h = 3.0 + s2 + r;
+  t_h = ldbl_high (t_h);
+  t_l = r - ((t_h - 3.0) - s2);
+  /* u+v = s*(1+...) */
+  u = s_h * t_h;
+  v = s_l * t_h + t_l * s;
+  /* 2/(3log2)*(s+...) */
+  p_h = u + v;
+  p_h = ldbl_high (p_h);
+  p_l = v - (p_h - u);
+  z_h = cp_h * p_h;		/* cp_h+cp_l = 2/(3*log2) */
+  z_l = cp_l * p_h + p_l * cp + dp_l[k];
+  /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
+  t = (long double) n;
+  t1 = (((z_h + z_l) + dp_h[k]) + t);
+  t1 = ldbl_high (t1);
+  t2 = z_l - (((t1 - t) - dp_h[k]) - z_h);
+
+  /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
+  y1 = ldbl_high (y);
+  p_l = (y - y1) * t1 + y * t2;
+  p_h = y1 * t1;
+  z = p_l + p_h;
+  ohi = ldbl_high (z);
+  EXTRACT_WORDS (j, lj, ohi);
+  if (j >= 0x40d00000) /* z >= 16384 */
+    {
+      /* if z > 16384 */
+      if (((j - 0x40d00000) | lj) != 0)
+	return sgn * huge * huge;	/* overflow */
+      else
+	{
+	  if (p_l + ovt > z - p_h)
+	    return sgn * huge * huge;	/* overflow */
+	}
+    }
+  else if ((j & 0x7fffffff) >= 0x40d01b90)	/* z <= -16495 */
+    {
+      /* z < -16495 */
+      if (((j - 0xc0d01bc0) | lj) != 0)
+	return sgn * tiny * tiny;	/* underflow */
+      else
+	{
+	  if (p_l <= z - p_h)
+	    return sgn * tiny * tiny;	/* underflow */
+	}
+    }
+  /* compute 2**(p_h+p_l) */
+  i = j & 0x7fffffff;
+  k = (i >> 20) - 0x3ff;
+  n = 0;
+  if (i > 0x3fe00000)
+    {				/* if |z| > 0.5, set n = [z+0.5] */
+      n = __floorl (z + 0.5L);
+      t = n;
+      p_h -= t;
+    }
+  t = p_l + p_h;
+  t = ldbl_high (t);
+  u = t * lg2_h;
+  v = (p_l - (t - p_h)) * lg2 + t * lg2_l;
+  z = u + v;
+  w = v - (z - u);
+  /*  exp(z) */
+  t = z * z;
+  u = PN[0] + t * (PN[1] + t * (PN[2] + t * (PN[3] + t * PN[4])));
+  v = PD[0] + t * (PD[1] + t * (PD[2] + t * (PD[3] + t)));
+  t1 = z - t * u / v;
+  r = (z * t1) / (t1 - two) - (w + z * w);
+  z = one - (r - z);
+  z = __scalbnl (sgn * z, n);
+  math_check_force_underflow (z);
+  return z;
+}
+strong_alias (__ieee754_powl, __powl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
new file mode 100644
index 0000000000..5aa2c1c007
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_rem_pio2l.c
@@ -0,0 +1,279 @@
+/* Quad-precision floating point argument reduction.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <ieee754.h>
+
+/*
+ * Table of constants for 2/pi, 5628 hexadecimal digits of 2/pi
+ */
+static const int32_t two_over_pi[] = {
+0xa2f983, 0x6e4e44, 0x1529fc, 0x2757d1, 0xf534dd, 0xc0db62,
+0x95993c, 0x439041, 0xfe5163, 0xabdebb, 0xc561b7, 0x246e3a,
+0x424dd2, 0xe00649, 0x2eea09, 0xd1921c, 0xfe1deb, 0x1cb129,
+0xa73ee8, 0x8235f5, 0x2ebb44, 0x84e99c, 0x7026b4, 0x5f7e41,
+0x3991d6, 0x398353, 0x39f49c, 0x845f8b, 0xbdf928, 0x3b1ff8,
+0x97ffde, 0x05980f, 0xef2f11, 0x8b5a0a, 0x6d1f6d, 0x367ecf,
+0x27cb09, 0xb74f46, 0x3f669e, 0x5fea2d, 0x7527ba, 0xc7ebe5,
+0xf17b3d, 0x0739f7, 0x8a5292, 0xea6bfb, 0x5fb11f, 0x8d5d08,
+0x560330, 0x46fc7b, 0x6babf0, 0xcfbc20, 0x9af436, 0x1da9e3,
+0x91615e, 0xe61b08, 0x659985, 0x5f14a0, 0x68408d, 0xffd880,
+0x4d7327, 0x310606, 0x1556ca, 0x73a8c9, 0x60e27b, 0xc08c6b,
+0x47c419, 0xc367cd, 0xdce809, 0x2a8359, 0xc4768b, 0x961ca6,
+0xddaf44, 0xd15719, 0x053ea5, 0xff0705, 0x3f7e33, 0xe832c2,
+0xde4f98, 0x327dbb, 0xc33d26, 0xef6b1e, 0x5ef89f, 0x3a1f35,
+0xcaf27f, 0x1d87f1, 0x21907c, 0x7c246a, 0xfa6ed5, 0x772d30,
+0x433b15, 0xc614b5, 0x9d19c3, 0xc2c4ad, 0x414d2c, 0x5d000c,
+0x467d86, 0x2d71e3, 0x9ac69b, 0x006233, 0x7cd2b4, 0x97a7b4,
+0xd55537, 0xf63ed7, 0x1810a3, 0xfc764d, 0x2a9d64, 0xabd770,
+0xf87c63, 0x57b07a, 0xe71517, 0x5649c0, 0xd9d63b, 0x3884a7,
+0xcb2324, 0x778ad6, 0x23545a, 0xb91f00, 0x1b0af1, 0xdfce19,
+0xff319f, 0x6a1e66, 0x615799, 0x47fbac, 0xd87f7e, 0xb76522,
+0x89e832, 0x60bfe6, 0xcdc4ef, 0x09366c, 0xd43f5d, 0xd7de16,
+0xde3b58, 0x929bde, 0x2822d2, 0xe88628, 0x4d58e2, 0x32cac6,
+0x16e308, 0xcb7de0, 0x50c017, 0xa71df3, 0x5be018, 0x34132e,
+0x621283, 0x014883, 0x5b8ef5, 0x7fb0ad, 0xf2e91e, 0x434a48,
+0xd36710, 0xd8ddaa, 0x425fae, 0xce616a, 0xa4280a, 0xb499d3,
+0xf2a606, 0x7f775c, 0x83c2a3, 0x883c61, 0x78738a, 0x5a8caf,
+0xbdd76f, 0x63a62d, 0xcbbff4, 0xef818d, 0x67c126, 0x45ca55,
+0x36d9ca, 0xd2a828, 0x8d61c2, 0x77c912, 0x142604, 0x9b4612,
+0xc459c4, 0x44c5c8, 0x91b24d, 0xf31700, 0xad43d4, 0xe54929,
+0x10d5fd, 0xfcbe00, 0xcc941e, 0xeece70, 0xf53e13, 0x80f1ec,
+0xc3e7b3, 0x28f8c7, 0x940593, 0x3e71c1, 0xb3092e, 0xf3450b,
+0x9c1288, 0x7b20ab, 0x9fb52e, 0xc29247, 0x2f327b, 0x6d550c,
+0x90a772, 0x1fe76b, 0x96cb31, 0x4a1679, 0xe27941, 0x89dff4,
+0x9794e8, 0x84e6e2, 0x973199, 0x6bed88, 0x365f5f, 0x0efdbb,
+0xb49a48, 0x6ca467, 0x427271, 0x325d8d, 0xb8159f, 0x09e5bc,
+0x25318d, 0x3974f7, 0x1c0530, 0x010c0d, 0x68084b, 0x58ee2c,
+0x90aa47, 0x02e774, 0x24d6bd, 0xa67df7, 0x72486e, 0xef169f,
+0xa6948e, 0xf691b4, 0x5153d1, 0xf20acf, 0x339820, 0x7e4bf5,
+0x6863b2, 0x5f3edd, 0x035d40, 0x7f8985, 0x295255, 0xc06437,
+0x10d86d, 0x324832, 0x754c5b, 0xd4714e, 0x6e5445, 0xc1090b,
+0x69f52a, 0xd56614, 0x9d0727, 0x50045d, 0xdb3bb4, 0xc576ea,
+0x17f987, 0x7d6b49, 0xba271d, 0x296996, 0xacccc6, 0x5414ad,
+0x6ae290, 0x89d988, 0x50722c, 0xbea404, 0x940777, 0x7030f3,
+0x27fc00, 0xa871ea, 0x49c266, 0x3de064, 0x83dd97, 0x973fa3,
+0xfd9443, 0x8c860d, 0xde4131, 0x9d3992, 0x8c70dd, 0xe7b717,
+0x3bdf08, 0x2b3715, 0xa0805c, 0x93805a, 0x921110, 0xd8e80f,
+0xaf806c, 0x4bffdb, 0x0f9038, 0x761859, 0x15a562, 0xbbcb61,
+0xb989c7, 0xbd4010, 0x04f2d2, 0x277549, 0xf6b6eb, 0xbb22db,
+0xaa140a, 0x2f2689, 0x768364, 0x333b09, 0x1a940e, 0xaa3a51,
+0xc2a31d, 0xaeedaf, 0x12265c, 0x4dc26d, 0x9c7a2d, 0x9756c0,
+0x833f03, 0xf6f009, 0x8c402b, 0x99316d, 0x07b439, 0x15200c,
+0x5bc3d8, 0xc492f5, 0x4badc6, 0xa5ca4e, 0xcd37a7, 0x36a9e6,
+0x9492ab, 0x6842dd, 0xde6319, 0xef8c76, 0x528b68, 0x37dbfc,
+0xaba1ae, 0x3115df, 0xa1ae00, 0xdafb0c, 0x664d64, 0xb705ed,
+0x306529, 0xbf5657, 0x3aff47, 0xb9f96a, 0xf3be75, 0xdf9328,
+0x3080ab, 0xf68c66, 0x15cb04, 0x0622fa, 0x1de4d9, 0xa4b33d,
+0x8f1b57, 0x09cd36, 0xe9424e, 0xa4be13, 0xb52333, 0x1aaaf0,
+0xa8654f, 0xa5c1d2, 0x0f3f0b, 0xcd785b, 0x76f923, 0x048b7b,
+0x721789, 0x53a6c6, 0xe26e6f, 0x00ebef, 0x584a9b, 0xb7dac4,
+0xba66aa, 0xcfcf76, 0x1d02d1, 0x2df1b1, 0xc1998c, 0x77adc3,
+0xda4886, 0xa05df7, 0xf480c6, 0x2ff0ac, 0x9aecdd, 0xbc5c3f,
+0x6dded0, 0x1fc790, 0xb6db2a, 0x3a25a3, 0x9aaf00, 0x9353ad,
+0x0457b6, 0xb42d29, 0x7e804b, 0xa707da, 0x0eaa76, 0xa1597b,
+0x2a1216, 0x2db7dc, 0xfde5fa, 0xfedb89, 0xfdbe89, 0x6c76e4,
+0xfca906, 0x70803e, 0x156e85, 0xff87fd, 0x073e28, 0x336761,
+0x86182a, 0xeabd4d, 0xafe7b3, 0x6e6d8f, 0x396795, 0x5bbf31,
+0x48d784, 0x16df30, 0x432dc7, 0x356125, 0xce70c9, 0xb8cb30,
+0xfd6cbf, 0xa200a4, 0xe46c05, 0xa0dd5a, 0x476f21, 0xd21262,
+0x845cb9, 0x496170, 0xe0566b, 0x015299, 0x375550, 0xb7d51e,
+0xc4f133, 0x5f6e13, 0xe4305d, 0xa92e85, 0xc3b21d, 0x3632a1,
+0xa4b708, 0xd4b1ea, 0x21f716, 0xe4698f, 0x77ff27, 0x80030c,
+0x2d408d, 0xa0cd4f, 0x99a520, 0xd3a2b3, 0x0a5d2f, 0x42f9b4,
+0xcbda11, 0xd0be7d, 0xc1db9b, 0xbd17ab, 0x81a2ca, 0x5c6a08,
+0x17552e, 0x550027, 0xf0147f, 0x8607e1, 0x640b14, 0x8d4196,
+0xdebe87, 0x2afdda, 0xb6256b, 0x34897b, 0xfef305, 0x9ebfb9,
+0x4f6a68, 0xa82a4a, 0x5ac44f, 0xbcf82d, 0x985ad7, 0x95c7f4,
+0x8d4d0d, 0xa63a20, 0x5f57a4, 0xb13f14, 0x953880, 0x0120cc,
+0x86dd71, 0xb6dec9, 0xf560bf, 0x11654d, 0x6b0701, 0xacb08c,
+0xd0c0b2, 0x485551, 0x0efb1e, 0xc37295, 0x3b06a3, 0x3540c0,
+0x7bdc06, 0xcc45e0, 0xfa294e, 0xc8cad6, 0x41f3e8, 0xde647c,
+0xd8649b, 0x31bed9, 0xc397a4, 0xd45877, 0xc5e369, 0x13daf0,
+0x3c3aba, 0x461846, 0x5f7555, 0xf5bdd2, 0xc6926e, 0x5d2eac,
+0xed440e, 0x423e1c, 0x87c461, 0xe9fd29, 0xf3d6e7, 0xca7c22,
+0x35916f, 0xc5e008, 0x8dd7ff, 0xe26a6e, 0xc6fdb0, 0xc10893,
+0x745d7c, 0xb2ad6b, 0x9d6ecd, 0x7b723e, 0x6a11c6, 0xa9cff7,
+0xdf7329, 0xbac9b5, 0x5100b7, 0x0db2e2, 0x24ba74, 0x607de5,
+0x8ad874, 0x2c150d, 0x0c1881, 0x94667e, 0x162901, 0x767a9f,
+0xbefdfd, 0xef4556, 0x367ed9, 0x13d9ec, 0xb9ba8b, 0xfc97c4,
+0x27a831, 0xc36ef1, 0x36c594, 0x56a8d8, 0xb5a8b4, 0x0ecccf,
+0x2d8912, 0x34576f, 0x89562c, 0xe3ce99, 0xb920d6, 0xaa5e6b,
+0x9c2a3e, 0xcc5f11, 0x4a0bfd, 0xfbf4e1, 0x6d3b8e, 0x2c86e2,
+0x84d4e9, 0xa9b4fc, 0xd1eeef, 0xc9352e, 0x61392f, 0x442138,
+0xc8d91b, 0x0afc81, 0x6a4afb, 0xd81c2f, 0x84b453, 0x8c994e,
+0xcc2254, 0xdc552a, 0xd6c6c0, 0x96190b, 0xb8701a, 0x649569,
+0x605a26, 0xee523f, 0x0f117f, 0x11b5f4, 0xf5cbfc, 0x2dbc34,
+0xeebc34, 0xcc5de8, 0x605edd, 0x9b8e67, 0xef3392, 0xb817c9,
+0x9b5861, 0xbc57e1, 0xc68351, 0x103ed8, 0x4871dd, 0xdd1c2d,
+0xa118af, 0x462c21, 0xd7f359, 0x987ad9, 0xc0549e, 0xfa864f,
+0xfc0656, 0xae79e5, 0x362289, 0x22ad38, 0xdc9367, 0xaae855,
+0x382682, 0x9be7ca, 0xa40d51, 0xb13399, 0x0ed7a9, 0x480569,
+0xf0b265, 0xa7887f, 0x974c88, 0x36d1f9, 0xb39221, 0x4a827b,
+0x21cf98, 0xdc9f40, 0x5547dc, 0x3a74e1, 0x42eb67, 0xdf9dfe,
+0x5fd45e, 0xa4677b, 0x7aacba, 0xa2f655, 0x23882b, 0x55ba41,
+0x086e59, 0x862a21, 0x834739, 0xe6e389, 0xd49ee5, 0x40fb49,
+0xe956ff, 0xca0f1c, 0x8a59c5, 0x2bfa94, 0xc5c1d3, 0xcfc50f,
+0xae5adb, 0x86c547, 0x624385, 0x3b8621, 0x94792c, 0x876110,
+0x7b4c2a, 0x1a2c80, 0x12bf43, 0x902688, 0x893c78, 0xe4c4a8,
+0x7bdbe5, 0xc23ac4, 0xeaf426, 0x8a67f7, 0xbf920d, 0x2ba365,
+0xb1933d, 0x0b7cbd, 0xdc51a4, 0x63dd27, 0xdde169, 0x19949a,
+0x9529a8, 0x28ce68, 0xb4ed09, 0x209f44, 0xca984e, 0x638270,
+0x237c7e, 0x32b90f, 0x8ef5a7, 0xe75614, 0x08f121, 0x2a9db5,
+0x4d7e6f, 0x5119a5, 0xabf9b5, 0xd6df82, 0x61dd96, 0x023616,
+0x9f3ac4, 0xa1a283, 0x6ded72, 0x7a8d39, 0xa9b882, 0x5c326b,
+0x5b2746, 0xed3400, 0x7700d2, 0x55f4fc, 0x4d5901, 0x8071e0,
+0xe13f89, 0xb295f3, 0x64a8f1, 0xaea74b, 0x38fc4c, 0xeab2bb,
+0x47270b, 0xabc3a7, 0x34ba60, 0x52dd34, 0xf8563a, 0xeb7e8a,
+0x31bb36, 0x5895b7, 0x47f7a9, 0x94c3aa, 0xd39225, 0x1e7f3e,
+0xd8974e, 0xbba94f, 0xd8ae01, 0xe661b4, 0x393d8e, 0xa523aa,
+0x33068e, 0x1633b5, 0x3bb188, 0x1d3a9d, 0x4013d0, 0xcc1be5,
+0xf862e7, 0x3bf28f, 0x39b5bf, 0x0bc235, 0x22747e, 0xa247c0,
+0xd52d1f, 0x19add3, 0x9094df, 0x9311d0, 0xb42b25, 0x496db2,
+0xe264b2, 0x5ef135, 0x3bc6a4, 0x1a4ad0, 0xaac92e, 0x64e886,
+0x573091, 0x982cfb, 0x311b1a, 0x08728b, 0xbdcee1, 0x60e142,
+0xeb641d, 0xd0bba3, 0xe559d4, 0x597b8c, 0x2a4483, 0xf332ba,
+0xf84867, 0x2c8d1b, 0x2fa9b0, 0x50f3dd, 0xf9f573, 0xdb61b4,
+0xfe233e, 0x6c41a6, 0xeea318, 0x775a26, 0xbc5e5c, 0xcea708,
+0x94dc57, 0xe20196, 0xf1e839, 0xbe4851, 0x5d2d2f, 0x4e9555,
+0xd96ec2, 0xe7d755, 0x6304e0, 0xc02e0e, 0xfc40a0, 0xbbf9b3,
+0x7125a7, 0x222dfb, 0xf619d8, 0x838c1c, 0x6619e6, 0xb20d55,
+0xbb5137, 0x79e809, 0xaf9149, 0x0d73de, 0x0b0da5, 0xce7f58,
+0xac1934, 0x724667, 0x7a1a13, 0x9e26bc, 0x4555e7, 0x585cb5,
+0x711d14, 0x486991, 0x480d60, 0x56adab, 0xd62f64, 0x96ee0c,
+0x212ff3, 0x5d6d88, 0xa67684, 0x95651e, 0xab9e0a, 0x4ddefe,
+0x571010, 0x836a39, 0xf8ea31, 0x9e381d, 0xeac8b1, 0xcac96b,
+0x37f21e, 0xd505e9, 0x984743, 0x9fc56c, 0x0331b7, 0x3b8bf8,
+0x86e56a, 0x8dc343, 0x6230e7, 0x93cfd5, 0x6a8f2d, 0x733005,
+0x1af021, 0xa09fcb, 0x7415a1, 0xd56b23, 0x6ff725, 0x2f4bc7,
+0xb8a591, 0x7fac59, 0x5c55de, 0x212c38, 0xb13296, 0x5cff50,
+0x366262, 0xfa7b16, 0xf4d9a6, 0x2acfe7, 0xf07403, 0xd4d604,
+0x6fd916, 0x31b1bf, 0xcbb450, 0x5bd7c8, 0x0ce194, 0x6bd643,
+0x4fd91c, 0xdf4543, 0x5f3453, 0xe2b5aa, 0xc9aec8, 0x131485,
+0xf9d2bf, 0xbadb9e, 0x76f5b9, 0xaf15cf, 0xca3182, 0x14b56d,
+0xe9fe4d, 0x50fc35, 0xf5aed5, 0xa2d0c1, 0xc96057, 0x192eb6,
+0xe91d92, 0x07d144, 0xaea3c6, 0x343566, 0x26d5b4, 0x3161e2,
+0x37f1a2, 0x209eff, 0x958e23, 0x493798, 0x35f4a6, 0x4bdc02,
+0xc2be13, 0xbe80a0, 0x0b72a3, 0x115c5f, 0x1e1bd1, 0x0db4d3,
+0x869e85, 0x96976b, 0x2ac91f, 0x8a26c2, 0x3070f0, 0x041412,
+0xfc9fa5, 0xf72a38, 0x9c6878, 0xe2aa76, 0x50cfe1, 0x559274,
+0x934e38, 0x0a92f7, 0x5533f0, 0xa63db4, 0x399971, 0xe2b755,
+0xa98a7c, 0x008f19, 0xac54d2, 0x2ea0b4, 0xf5f3e0, 0x60c849,
+0xffd269, 0xae52ce, 0x7a5fdd, 0xe9ce06, 0xfb0ae8, 0xa50cce,
+0xea9d3e, 0x3766dd, 0xb834f5, 0x0da090, 0x846f88, 0x4ae3d5,
+0x099a03, 0x2eae2d, 0xfcb40a, 0xfb9b33, 0xe281dd, 0x1b16ba,
+0xd8c0af, 0xd96b97, 0xb52dc9, 0x9c277f, 0x5951d5, 0x21ccd6,
+0xb6496b, 0x584562, 0xb3baf2, 0xa1a5c4, 0x7ca2cf, 0xa9b93d,
+0x7b7b89, 0x483d38,
+};
+
+static const long double c[] = {
+/* 106 bits of pi/2 */
+#define PI_2_1 c[0]
+ 0x1.921fb54442d18469898cc517018p+0L,
+
+/* pi/2 - PI_2_1 */
+#define PI_2_1t c[1]
+ 0x3.839a252049c1114cf98e804178p-108L,
+};
+
+int32_t __ieee754_rem_pio2l(long double x, long double *y)
+{
+  long double z, w, t;
+  double tx[8];
+  int exp;
+  int64_t n, ix, hx, ixd;
+  u_int64_t lxd;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (hx, xhi);
+  ix = hx & 0x7fffffffffffffffLL;
+  if (ix <= 0x3fe921fb54442d10LL)	/* x in <-pi/4, pi/4> */
+    {
+      y[0] = x;
+      y[1] = 0;
+      return 0;
+    }
+
+  if (ix < 0x4002d97c7f3321d0LL)	/* |x| in <pi/4, 3pi/4) */
+    {
+      if (hx > 0)
+	{
+	  /* 106 + 106 bit PI is ok */
+	  z = x - PI_2_1;
+	  y[0] = z - PI_2_1t;
+	  y[1] = (z - y[0]) - PI_2_1t;
+	  return 1;
+	}
+      else
+        {
+	  /* 106 + 106 bit PI is ok */
+	  z = x + PI_2_1;
+	  y[0] = z + PI_2_1t;
+	  y[1] = (z - y[0]) + PI_2_1t;
+	  return -1;
+	}
+    }
+
+  if (ix >= 0x7ff0000000000000LL)	/* x is +=oo or NaN */
+    {
+      y[0] = x - x;
+      y[1] = y[0];
+      return 0;
+    }
+
+  /* Handle large arguments.
+     We split the 113 bits of the mantissa into 5 24bit integers
+     stored in a double array.  */
+  /* Make the IBM extended format 105 bit mantissa look like the ieee854 112
+     bit mantissa so the next operation will give the correct result.  */
+  ldbl_extract_mantissa (&ixd, &lxd, &exp, x);
+  exp = exp - 23;
+  /* This is faster than doing this in floating point, because we
+     have to convert it to integers anyway and like this we can keep
+     both integer and floating point units busy.  */
+  tx [0] = (double)(((ixd >> 25) & 0x7fffff) | 0x800000);
+  tx [1] = (double)((ixd >> 1) & 0xffffff);
+  tx [2] = (double)(((ixd << 23) | (lxd >> 41)) & 0xffffff);
+  tx [3] = (double)((lxd >> 17) & 0xffffff);
+  tx [4] = (double)((lxd << 7) & 0xffffff);
+
+  n = __kernel_rem_pio2 (tx, tx + 5, exp, ((lxd << 7) & 0xffffff) ? 5 : 4,
+			 3, two_over_pi);
+
+  /* The result is now stored in 3 double values, we need to convert it into
+     two long double values.  */
+  t = (long double) tx [6] + (long double) tx [7];
+  w = (long double) tx [5];
+
+  if (hx >= 0)
+    {
+      y[0] = w + t;
+      y[1] = t - (y[0] - w);
+      return n;
+    }
+  else
+    {
+      y[0] = -(w + t);
+      y[1] = -t - (y[0] + w);
+      return -n;
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
new file mode 100644
index 0000000000..68b8fb3519
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_remainderl.c
@@ -0,0 +1,81 @@
+/* e_fmodl.c -- long double version of e_fmod.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_remainderl(x,p)
+ * Return :
+ *	returns  x REM p  =  x - [x/p]*p as if in infinite
+ *	precise arithmetic, where [x/p] is the (infinite bit)
+ *	integer nearest x/p (in half way case choose the even one).
+ * Method :
+ *	Based on fmodl() return x-[x/p]chopped*p exactlp.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double zero = 0.0L;
+
+
+long double
+__ieee754_remainderl(long double x, long double p)
+{
+	int64_t hx,hp;
+	u_int64_t sx,lx,lp;
+	long double p_half;
+	double xhi, xlo, phi, plo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	ldbl_unpack (p, &phi, &plo);
+	EXTRACT_WORDS64 (hp, phi);
+	EXTRACT_WORDS64 (lp, plo);
+	sx = hx&0x8000000000000000ULL;
+	lp ^= hp & 0x8000000000000000ULL;
+	hp &= 0x7fffffffffffffffLL;
+	lx ^= sx;
+	hx &= 0x7fffffffffffffffLL;
+	if (lp == 0x8000000000000000ULL)
+	  lp = 0;
+	if (lx == 0x8000000000000000ULL)
+	  lx = 0;
+
+    /* purge off exception values */
+	if(hp==0) return (x*p)/(x*p);	/* p = 0 */
+	if((hx>=0x7ff0000000000000LL)||			/* x not finite */
+	   (hp>0x7ff0000000000000LL))			/* p is NaN */
+	    return (x*p)/(x*p);
+
+
+	if (hp<=0x7fdfffffffffffffLL) x = __ieee754_fmodl(x,p+p);	/* now x < 2p */
+	if (((hx-hp)|(lx-lp))==0) return zero*x;
+	x  = fabsl(x);
+	p  = fabsl(p);
+	if (hp<0x0020000000000000LL) {
+	    if(x+x>p) {
+		x-=p;
+		if(x+x>=p) x -= p;
+	    }
+	} else {
+	    p_half = 0.5L*p;
+	    if(x>p_half) {
+		x-=p;
+		if(x>=p_half) x -= p;
+	    }
+	}
+	if (sx)
+	  x = -x;
+	return x;
+}
+strong_alias (__ieee754_remainderl, __remainderl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
new file mode 100644
index 0000000000..67d9d24ce7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sinhl.c
@@ -0,0 +1,79 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+
+/* __ieee754_sinh(x)
+ * Method :
+ * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2
+ *	1. Replace x by |x| (sinh(-x) = -sinh(x)).
+ *	2.
+ *						    E + E/(E+1)
+ *	    0        <= x <= 40     :  sinh(x) := --------------, E=expm1(x)
+ *							2
+ *
+ *	    40       <= x <= lnovft :  sinh(x) := exp(x)/2
+ *	    lnovft   <= x <= ln2ovft:  sinh(x) := exp(x/2)/2 * exp(x/2)
+ *	    ln2ovft  <  x	    :  sinh(x) := x*shuge (overflow)
+ *
+ * Special cases:
+ *	sinh(x) is |x| if x is +INF, -INF, or NaN.
+ *	only sinh(0)=0 is exact for finite x.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double one = 1.0, shuge = 1.0e307;
+
+long double
+__ieee754_sinhl(long double x)
+{
+	long double t,w,h;
+	int64_t ix,jx;
+	double xhi;
+
+    /* High word of |x|. */
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (jx, xhi);
+	ix = jx&0x7fffffffffffffffLL;
+
+    /* x is INF or NaN */
+	if(ix>=0x7ff0000000000000LL) return x+x;
+
+	h = 0.5;
+	if (jx<0) h = -h;
+    /* |x| in [0,40], return sign(x)*0.5*(E+E/(E+1))) */
+	if (ix < 0x4044000000000000LL) {	/* |x|<40 */
+	    if (ix<0x3c90000000000000LL) {	/* |x|<2**-54 */
+		math_check_force_underflow (x);
+		if(shuge+x>one) return x;/* sinhl(tiny) = tiny with inexact */
+	    }
+	    t = __expm1l(fabsl(x));
+	    if(ix<0x3ff0000000000000LL) return h*(2.0*t-t*t/(t+one));
+	    w = t/(t+one);
+	    return h*(t+w);
+	}
+
+    /* |x| in [40, log(maxdouble)] return 0.5*exp(|x|) */
+	if (ix < 0x40862e42fefa39efLL)  return h*__ieee754_expl(fabsl(x));
+
+    /* |x| in [log(maxdouble), overflowthresold] */
+	if (ix <= 0x408633ce8fb9f87eLL) {
+	    w = __ieee754_expl(0.5*fabsl(x));
+	    t = h*w;
+	    return t*w;
+	}
+
+    /* |x| > overflowthresold, sinh(x) overflow */
+	return x*shuge;
+}
+strong_alias (__ieee754_sinhl, __sinhl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
new file mode 100644
index 0000000000..8089090533
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
@@ -0,0 +1,102 @@
+/*
+ * IBM Accurate Mathematical Library
+ * written by International Business Machines Corp.
+ * Copyright (C) 2001-2017 Free Software Foundation, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ */
+/*********************************************************************/
+/* MODULE_NAME: uroot.c                                              */
+/*                                                                   */
+/* FUNCTION:    usqrt                                                */
+/*                                                                   */
+/* FILES NEEDED: dla.h endian.h mydefs.h uroot.h                     */
+/*               uroot.tbl                                           */
+/*                                                                   */
+/* An ultimate sqrt routine. Given an IEEE double machine number x   */
+/* it computes the correctly rounded (to nearest) value of square    */
+/* root of x.                                                        */
+/* Assumption: Machine arithmetic operations are performed in        */
+/* round to nearest mode of IEEE 754 standard.                       */
+/*                                                                   */
+/*********************************************************************/
+
+#include <math_private.h>
+
+typedef union {int64_t i[2]; long double x; double d[2]; } mynumber;
+
+static const double
+  t512 = 0x1p512,
+  tm256 = 0x1p-256,
+  two54 = 0x1p54,	/* 0x4350000000000000 */
+  twom54 = 0x1p-54;	/* 0x3C90000000000000 */
+
+/*********************************************************************/
+/* An ultimate sqrt routine. Given an IEEE double machine number x   */
+/* it computes the correctly rounded (to nearest) value of square    */
+/* root of x.                                                        */
+/*********************************************************************/
+long double __ieee754_sqrtl(long double x)
+{
+  static const long double big = 134217728.0, big1 = 134217729.0;
+  long double t,s,i;
+  mynumber a,c;
+  uint64_t k, l;
+  int64_t m, n;
+  double d;
+
+  a.x=x;
+  k=a.i[0] & INT64_C(0x7fffffffffffffff);
+  /*----------------- 2^-1022  <= | x |< 2^1024  -----------------*/
+  if (k>INT64_C(0x000fffff00000000) && k<INT64_C(0x7ff0000000000000)) {
+    if (x < 0) return (big1-big1)/(big-big);
+    l = (k&INT64_C(0x001fffffffffffff))|INT64_C(0x3fe0000000000000);
+    if ((a.i[1] & INT64_C(0x7fffffffffffffff)) != 0) {
+      n = (int64_t) ((l - k) * 2) >> 53;
+      m = (a.i[1] >> 52) & 0x7ff;
+      if (m == 0) {
+	a.d[1] *= two54;
+	m = ((a.i[1] >> 52) & 0x7ff) - 54;
+      }
+      m += n;
+      if (m > 0)
+	a.i[1] = (a.i[1] & INT64_C(0x800fffffffffffff)) | (m << 52);
+      else if (m <= -54) {
+	a.i[1] &= INT64_C(0x8000000000000000);
+      } else {
+	m += 54;
+	a.i[1] = (a.i[1] & INT64_C(0x800fffffffffffff)) | (m << 52);
+	a.d[1] *= twom54;
+      }
+    }
+    a.i[0] = l;
+    s = a.x;
+    d = __ieee754_sqrt (a.d[0]);
+    c.i[0] = INT64_C(0x2000000000000000)+((k&INT64_C(0x7fe0000000000000))>>1);
+    c.i[1] = 0;
+    i = d;
+    t = 0.5L * (i + s / i);
+    i = 0.5L * (t + s / t);
+    return c.x * i;
+  }
+  else {
+    if (k>=INT64_C(0x7ff0000000000000))
+      /* sqrt (-Inf) = NaN, sqrt (NaN) = NaN, sqrt (+Inf) = +Inf.  */
+      return x * x + x;
+    if (x == 0) return x;
+    if (x < 0) return (big1-big1)/(big-big);
+    return tm256*__ieee754_sqrtl(x*t512);
+  }
+}
+strong_alias (__ieee754_sqrtl, __sqrtl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
new file mode 100644
index 0000000000..7e71cb008a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/gamma_productl.c
@@ -0,0 +1,42 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+   - 1, in the form R * (1 + *EPS) where the return value R is an
+   approximation to the product and *EPS is set to indicate the
+   approximate error in the return value.  X is such that all the
+   values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+   X is small enough that factors quadratic in it can be
+   neglected.  */
+
+long double
+__gamma_productl (long double x, long double x_eps, int n, long double *eps)
+{
+  long double ret = x;
+  *eps = x_eps / x;
+  for (int i = 1; i < n; i++)
+    {
+      *eps += x_eps / (x + i);
+      ret *= x + i;
+      /* FIXME: no error estimates for the multiplication.  */
+    }
+  return ret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ieee754.h b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ieee754.h
new file mode 100644
index 0000000000..7e31128996
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ieee754.h
@@ -0,0 +1,133 @@
+/* Copyright (C) 1992-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _IEEE754_H
+
+#define _IEEE754_H 1
+#include <features.h>
+
+#include <endian.h>
+
+__BEGIN_DECLS
+
+union ieee754_float
+  {
+    float f;
+
+    /* This is the IEEE 754 single-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:8;
+	unsigned int mantissa:23;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	unsigned int mantissa:23;
+	unsigned int exponent:8;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:8;
+	unsigned int quiet_nan:1;
+	unsigned int mantissa:22;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	unsigned int mantissa:22;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:8;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee_nan;
+  };
+
+#define IEEE754_FLOAT_BIAS	0x7f /* Added to exponent.  */
+
+
+union ieee754_double
+  {
+    double d;
+
+    /* This is the IEEE 754 double-precision format.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:11;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:20;
+	unsigned int mantissa1:32;
+#endif				/* Big endian.  */
+#if	__BYTE_ORDER == __LITTLE_ENDIAN
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:20;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+#endif				/* Little endian.  */
+      } ieee;
+
+    /* This format makes it easier to see if a NaN is a signalling NaN.  */
+    struct
+      {
+#if	__BYTE_ORDER == __BIG_ENDIAN
+	unsigned int negative:1;
+	unsigned int exponent:11;
+	unsigned int quiet_nan:1;
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa0:19;
+	unsigned int mantissa1:32;
+#else
+	/* Together these comprise the mantissa.  */
+	unsigned int mantissa1:32;
+	unsigned int mantissa0:19;
+	unsigned int quiet_nan:1;
+	unsigned int exponent:11;
+	unsigned int negative:1;
+#endif
+      } ieee_nan;
+  };
+
+#define IEEE754_DOUBLE_BIAS	0x3ff /* Added to exponent.  */
+
+
+/* IBM extended format for long double.
+
+   Each long double is made up of two IEEE doubles.  The value of the
+   long double is the sum of the values of the two parts.  The most
+   significant part is required to be the value of the long double
+   rounded to the nearest double, as specified by IEEE.  For Inf
+   values, the least significant part is required to be one of +0.0 or
+   -0.0.  No other requirements are made; so, for example, 1.0 may be
+   represented as (1.0, +0.0) or (1.0, -0.0), and the low part of a
+   NaN is don't-care.  */
+
+union ibm_extended_long_double
+  {
+    long double ld;
+    union ieee754_double d[2];
+   };
+
+__END_DECLS
+
+#endif /* ieee754.h */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/include/bits/iscanonical.h b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/include/bits/iscanonical.h
new file mode 100644
index 0000000000..bee080bd29
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/include/bits/iscanonical.h
@@ -0,0 +1,5 @@
+#include_next <bits/iscanonical.h>
+
+#ifndef _ISOMAC
+libm_hidden_proto (__iscanonicall)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_cosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
new file mode 100644
index 0000000000..0010d6274a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_cosl.c
@@ -0,0 +1,153 @@
+/* Quad-precision floating point cosine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double c[] = {
+#define ONE c[0]
+ 1.00000000000000000000000000000000000E+00L, /* 3fff0000000000000000000000000000 */
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+-5.00000000000000000000000000000000000E-01L, /* bffe0000000000000000000000000000 */
+ 4.16666666666666666666666666556146073E-02L, /* 3ffa5555555555555555555555395023 */
+-1.38888888888888888888309442601939728E-03L, /* bff56c16c16c16c16c16a566e42c0375 */
+ 2.48015873015862382987049502531095061E-05L, /* 3fefa01a01a019ee02dcf7da2d6d5444 */
+-2.75573112601362126593516899592158083E-07L, /* bfe927e4f5dce637cb0b54908754bde0 */
+
+/* cos x ~ ONE + x^2 ( COS1 + COS2 * x^2 + ... + COS7 * x^12 + COS8 * x^14 )
+   x in <0,0.1484375>  */
+#define COS1 c[6]
+#define COS2 c[7]
+#define COS3 c[8]
+#define COS4 c[9]
+#define COS5 c[10]
+#define COS6 c[11]
+#define COS7 c[12]
+#define COS8 c[13]
+-4.99999999999999999999999999999999759E-01L, /* bffdfffffffffffffffffffffffffffb */
+ 4.16666666666666666666666666651287795E-02L, /* 3ffa5555555555555555555555516f30 */
+-1.38888888888888888888888742314300284E-03L, /* bff56c16c16c16c16c16c16a463dfd0d */
+ 2.48015873015873015867694002851118210E-05L, /* 3fefa01a01a01a01a0195cebe6f3d3a5 */
+-2.75573192239858811636614709689300351E-07L, /* bfe927e4fb7789f5aa8142a22044b51f */
+ 2.08767569877762248667431926878073669E-09L, /* 3fe21eed8eff881d1e9262d7adff4373 */
+-1.14707451049343817400420280514614892E-11L, /* bfda9397496922a9601ed3d4ca48944b */
+ 4.77810092804389587579843296923533297E-14L, /* 3fd2ae5f8197cbcdcaf7c3fb4523414c */
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+-1.66666666666666666666666666666666659E-01L, /* bffc5555555555555555555555555555 */
+ 8.33333333333333333333333333146298442E-03L, /* 3ff81111111111111111111110fe195d */
+-1.98412698412698412697726277416810661E-04L, /* bff2a01a01a01a01a019e7121e080d88 */
+ 2.75573192239848624174178393552189149E-06L, /* 3fec71de3a556c640c6aaa51aa02ab41 */
+-2.50521016467996193495359189395805639E-08L, /* bfe5ae644ee90c47dc71839de75b2787 */
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const long double __sincosl_table[];
+
+long double
+__kernel_cosl(long double x, long double y)
+{
+  long double h, l, z, sin_l, cos_l_m1;
+  int64_t ix;
+  uint32_t tix, hix, index;
+  double xhi, hhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (ix, xhi);
+  tix = ((u_int64_t)ix) >> 32;
+  tix &= ~0x80000000;			/* tix = |x|'s high 32 bits */
+  if (tix < 0x3fc30000)			/* |x| < 0.1484375 */
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 16.  */
+      if (tix < 0x3c600000)		/* |x| < 2^-57 */
+	if (!((int)x)) return ONE;	/* generate inexact */
+      z = x * x;
+      return ONE + (z*(COS1+z*(COS2+z*(COS3+z*(COS4+
+		    z*(COS5+z*(COS6+z*(COS7+z*COS8))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 cosl(h+l) = cosl(h)cosl(l) - sinl(h)sinl(l).  */
+      int six = tix;
+      tix = ((six - 0x3ff00000) >> 4) + 0x3fff0000;
+      index = 0x3ffe - (tix >> 16);
+      hix = (tix + (0x200 << index)) & (0xfffffc00 << index);
+      x = fabsl (x);
+      switch (index)
+	{
+	case 0: index = ((45 << 10) + hix - 0x3ffe0000) >> 8; break;
+	case 1: index = ((13 << 11) + hix - 0x3ffd0000) >> 9; break;
+	default:
+	case 2: index = (hix - 0x3ffc3000) >> 10; break;
+	}
+      hix = (hix << 4) & 0x3fffffff;
+/*
+    The following should work for double but generates the wrong index.
+    For now the code above converts double to ieee extended to compute
+    the index back to double for the h value.
+
+      index = 0x3fe - (tix >> 20);
+      hix = (tix + (0x200 << index)) & (0xfffffc00 << index);
+      if (signbit (x))
+	{
+	  x = -x;
+	  y = -y;
+	}
+      switch (index)
+	{
+	case 0: index = ((45 << 14) + hix - 0x3fe00000) >> 12; break;
+	case 1: index = ((13 << 15) + hix - 0x3fd00000) >> 13; break;
+	default:
+	case 2: index = (hix - 0x3fc30000) >> 14; break;
+	}
+*/
+      INSERT_WORDS64 (hhi, ((uint64_t)hix) << 32);
+      h = hhi;
+      l = y - (h - x);
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      return __sincosl_table [index + SINCOSL_COS_HI]
+	     + (__sincosl_table [index + SINCOSL_COS_LO]
+		- (__sincosl_table [index + SINCOSL_SIN_HI] * sin_l
+		   - __sincosl_table [index + SINCOSL_COS_HI] * cos_l_m1));
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
new file mode 100644
index 0000000000..14b0359c15
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sincosl.c
@@ -0,0 +1,193 @@
+/* Quad-precision floating point sine and cosine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double c[] = {
+#define ONE c[0]
+ 1.00000000000000000000000000000000000E+00L, /* 3fff0000000000000000000000000000 */
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+-5.00000000000000000000000000000000000E-01L, /* bffe0000000000000000000000000000 */
+ 4.16666666666666666666666666556146073E-02L, /* 3ffa5555555555555555555555395023 */
+-1.38888888888888888888309442601939728E-03L, /* bff56c16c16c16c16c16a566e42c0375 */
+ 2.48015873015862382987049502531095061E-05L, /* 3fefa01a01a019ee02dcf7da2d6d5444 */
+-2.75573112601362126593516899592158083E-07L, /* bfe927e4f5dce637cb0b54908754bde0 */
+
+/* cos x ~ ONE + x^2 ( COS1 + COS2 * x^2 + ... + COS7 * x^12 + COS8 * x^14 )
+   x in <0,0.1484375>  */
+#define COS1 c[6]
+#define COS2 c[7]
+#define COS3 c[8]
+#define COS4 c[9]
+#define COS5 c[10]
+#define COS6 c[11]
+#define COS7 c[12]
+#define COS8 c[13]
+-4.99999999999999999999999999999999759E-01L, /* bffdfffffffffffffffffffffffffffb */
+ 4.16666666666666666666666666651287795E-02L, /* 3ffa5555555555555555555555516f30 */
+-1.38888888888888888888888742314300284E-03L, /* bff56c16c16c16c16c16c16a463dfd0d */
+ 2.48015873015873015867694002851118210E-05L, /* 3fefa01a01a01a01a0195cebe6f3d3a5 */
+-2.75573192239858811636614709689300351E-07L, /* bfe927e4fb7789f5aa8142a22044b51f */
+ 2.08767569877762248667431926878073669E-09L, /* 3fe21eed8eff881d1e9262d7adff4373 */
+-1.14707451049343817400420280514614892E-11L, /* bfda9397496922a9601ed3d4ca48944b */
+ 4.77810092804389587579843296923533297E-14L, /* 3fd2ae5f8197cbcdcaf7c3fb4523414c */
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+-1.66666666666666666666666666666666659E-01L, /* bffc5555555555555555555555555555 */
+ 8.33333333333333333333333333146298442E-03L, /* 3ff81111111111111111111110fe195d */
+-1.98412698412698412697726277416810661E-04L, /* bff2a01a01a01a01a019e7121e080d88 */
+ 2.75573192239848624174178393552189149E-06L, /* 3fec71de3a556c640c6aaa51aa02ab41 */
+-2.50521016467996193495359189395805639E-08L, /* bfe5ae644ee90c47dc71839de75b2787 */
+
+/* sin x ~ ONE * x + x^3 ( SIN1 + SIN2 * x^2 + ... + SIN7 * x^12 + SIN8 * x^14 )
+   x in <0,0.1484375>  */
+#define SIN1 c[19]
+#define SIN2 c[20]
+#define SIN3 c[21]
+#define SIN4 c[22]
+#define SIN5 c[23]
+#define SIN6 c[24]
+#define SIN7 c[25]
+#define SIN8 c[26]
+-1.66666666666666666666666666666666538e-01L, /* bffc5555555555555555555555555550 */
+ 8.33333333333333333333333333307532934e-03L, /* 3ff811111111111111111111110e7340 */
+-1.98412698412698412698412534478712057e-04L, /* bff2a01a01a01a01a01a019e7a626296 */
+ 2.75573192239858906520896496653095890e-06L, /* 3fec71de3a556c7338fa38527474b8f5 */
+-2.50521083854417116999224301266655662e-08L, /* bfe5ae64567f544e16c7de65c2ea551f */
+ 1.60590438367608957516841576404938118e-10L, /* 3fde6124613a811480538a9a41957115 */
+-7.64716343504264506714019494041582610e-13L, /* bfd6ae7f3d5aef30c7bc660b060ef365 */
+ 2.81068754939739570236322404393398135e-15L, /* 3fce9510115aabf87aceb2022a9a9180 */
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const long double __sincosl_table[];
+
+void
+__kernel_sincosl(long double x, long double y, long double *sinx, long double *cosx, int iy)
+{
+  long double h, l, z, sin_l, cos_l_m1;
+  int64_t ix;
+  uint32_t tix, hix, index;
+  double xhi, hhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (ix, xhi);
+  tix = ((uint64_t)ix) >> 32;
+  tix &= ~0x80000000;			/* tix = |x|'s high 32 bits */
+  if (tix < 0x3fc30000)			/* |x| < 0.1484375 */
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 16(17).  */
+      if (tix < 0x3c600000)		/* |x| < 2^-57 */
+	{
+	  math_check_force_underflow (x);
+	  if (!((int)x))			/* generate inexact */
+	    {
+	      *sinx = x;
+	      *cosx = ONE;
+	      return;
+	    }
+	}
+      z = x * x;
+      *sinx = x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
+			z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
+      *cosx = ONE + (z*(COS1+z*(COS2+z*(COS3+z*(COS4+
+		     z*(COS5+z*(COS6+z*(COS7+z*COS8))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 sinl(h+l) = sinl(h)cosl(l) + cosl(h)sinl(l) and
+	 cosl(h+l) = cosl(h)cosl(l) - sinl(h)sinl(l).  */
+      int six = tix;
+      tix = ((six - 0x3ff00000) >> 4) + 0x3fff0000;
+      index = 0x3ffe - (tix >> 16);
+      hix = (tix + (0x200 << index)) & (0xfffffc00 << index);
+      x = fabsl (x);
+      switch (index)
+	{
+	case 0: index = ((45 << 10) + hix - 0x3ffe0000) >> 8; break;
+	case 1: index = ((13 << 11) + hix - 0x3ffd0000) >> 9; break;
+	default:
+	case 2: index = (hix - 0x3ffc3000) >> 10; break;
+	}
+      hix = (hix << 4) & 0x3fffffff;
+/*
+    The following should work for double but generates the wrong index.
+    For now the code above converts double to ieee extended to compute
+    the index back to double for the h value.
+
+
+      index = 0x3fe - (tix >> 20);
+      hix = (tix + (0x2000 << index)) & (0xffffc000 << index);
+      if (signbit (x))
+	{
+	  x = -x;
+	  y = -y;
+	}
+      switch (index)
+	{
+	case 0: index = ((45 << 14) + hix - 0x3fe00000) >> 12; break;
+	case 1: index = ((13 << 15) + hix - 0x3fd00000) >> 13; break;
+	default:
+	case 2: index = (hix - 0x3fc30000) >> 14; break;
+	}
+*/
+      INSERT_WORDS64 (hhi, ((uint64_t)hix) << 32);
+      h = hhi;
+      if (iy)
+	l = y - (h - x);
+      else
+	l = x - h;
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      z = __sincosl_table [index + SINCOSL_SIN_HI]
+	  + (__sincosl_table [index + SINCOSL_SIN_LO]
+	     + (__sincosl_table [index + SINCOSL_SIN_HI] * cos_l_m1)
+	     + (__sincosl_table [index + SINCOSL_COS_HI] * sin_l));
+      *sinx = (ix < 0) ? -z : z;
+      *cosx = __sincosl_table [index + SINCOSL_COS_HI]
+	      + (__sincosl_table [index + SINCOSL_COS_LO]
+		 - (__sincosl_table [index + SINCOSL_SIN_HI] * sin_l
+		    - __sincosl_table [index + SINCOSL_COS_HI] * cos_l_m1));
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
new file mode 100644
index 0000000000..2138ccf13b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_sinl.c
@@ -0,0 +1,157 @@
+/* Quad-precision floating point sine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double c[] = {
+#define ONE c[0]
+ 1.00000000000000000000000000000000000E+00L, /* 3fff0000000000000000000000000000 */
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+-5.00000000000000000000000000000000000E-01L, /* bffe0000000000000000000000000000 */
+ 4.16666666666666666666666666556146073E-02L, /* 3ffa5555555555555555555555395023 */
+-1.38888888888888888888309442601939728E-03L, /* bff56c16c16c16c16c16a566e42c0375 */
+ 2.48015873015862382987049502531095061E-05L, /* 3fefa01a01a019ee02dcf7da2d6d5444 */
+-2.75573112601362126593516899592158083E-07L, /* bfe927e4f5dce637cb0b54908754bde0 */
+
+/* sin x ~ ONE * x + x^3 ( SIN1 + SIN2 * x^2 + ... + SIN7 * x^12 + SIN8 * x^14 )
+   x in <0,0.1484375>  */
+#define SIN1 c[6]
+#define SIN2 c[7]
+#define SIN3 c[8]
+#define SIN4 c[9]
+#define SIN5 c[10]
+#define SIN6 c[11]
+#define SIN7 c[12]
+#define SIN8 c[13]
+-1.66666666666666666666666666666666538e-01L, /* bffc5555555555555555555555555550 */
+ 8.33333333333333333333333333307532934e-03L, /* 3ff811111111111111111111110e7340 */
+-1.98412698412698412698412534478712057e-04L, /* bff2a01a01a01a01a01a019e7a626296 */
+ 2.75573192239858906520896496653095890e-06L, /* 3fec71de3a556c7338fa38527474b8f5 */
+-2.50521083854417116999224301266655662e-08L, /* bfe5ae64567f544e16c7de65c2ea551f */
+ 1.60590438367608957516841576404938118e-10L, /* 3fde6124613a811480538a9a41957115 */
+-7.64716343504264506714019494041582610e-13L, /* bfd6ae7f3d5aef30c7bc660b060ef365 */
+ 2.81068754939739570236322404393398135e-15L, /* 3fce9510115aabf87aceb2022a9a9180 */
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+-1.66666666666666666666666666666666659E-01L, /* bffc5555555555555555555555555555 */
+ 8.33333333333333333333333333146298442E-03L, /* 3ff81111111111111111111110fe195d */
+-1.98412698412698412697726277416810661E-04L, /* bff2a01a01a01a01a019e7121e080d88 */
+ 2.75573192239848624174178393552189149E-06L, /* 3fec71de3a556c640c6aaa51aa02ab41 */
+-2.50521016467996193495359189395805639E-08L, /* bfe5ae644ee90c47dc71839de75b2787 */
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const long double __sincosl_table[];
+
+long double
+__kernel_sinl(long double x, long double y, int iy)
+{
+  long double h, l, z, sin_l, cos_l_m1;
+  int64_t ix;
+  u_int32_t tix, hix, index;
+  double xhi, hhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (ix, xhi);
+  tix = ((u_int64_t)ix) >> 32;
+  tix &= ~0x80000000;			/* tix = |x|'s high 32 bits */
+  if (tix < 0x3fc30000)			/* |x| < 0.1484375 */
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 17.  */
+      if (tix < 0x3c600000)		/* |x| < 2^-57 */
+	{
+	  math_check_force_underflow (x);
+	  if (!((int)x)) return x;	/* generate inexact */
+	}
+      z = x * x;
+      return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
+		       z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 sinl(h+l) = sinl(h)cosl(l) + cosl(h)sinl(l).  */
+      int six = tix;
+      tix = ((six - 0x3ff00000) >> 4) + 0x3fff0000;
+      index = 0x3ffe - (tix >> 16);
+      hix = (tix + (0x200 << index)) & (0xfffffc00 << index);
+      x = fabsl (x);
+      switch (index)
+	{
+	case 0: index = ((45 << 10) + hix - 0x3ffe0000) >> 8; break;
+	case 1: index = ((13 << 11) + hix - 0x3ffd0000) >> 9; break;
+	default:
+	case 2: index = (hix - 0x3ffc3000) >> 10; break;
+	}
+      hix = (hix << 4) & 0x3fffffff;
+/*
+    The following should work for double but generates the wrong index.
+    For now the code above converts double to ieee extended to compute
+    the index back to double for the h value.
+
+      index = 0x3fe - (tix >> 20);
+      hix = (tix + (0x2000 << index)) & (0xffffc000 << index);
+      x = fabsl (x);
+      switch (index)
+	{
+	case 0: index = ((45 << 14) + hix - 0x3fe00000) >> 12; break;
+	case 1: index = ((13 << 15) + hix - 0x3fd00000) >> 13; break;
+	default:
+	case 2: index = (hix - 0x3fc30000) >> 14; break;
+	}
+*/
+      INSERT_WORDS64 (hhi, ((uint64_t)hix) << 32);
+      h = hhi;
+      if (iy)
+	l = (ix < 0 ? -y : y) - (h - x);
+      else
+	l = x - h;
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      z = __sincosl_table [index + SINCOSL_SIN_HI]
+	  + (__sincosl_table [index + SINCOSL_SIN_LO]
+	     + (__sincosl_table [index + SINCOSL_SIN_HI] * cos_l_m1)
+	     + (__sincosl_table [index + SINCOSL_COS_HI] * sin_l));
+      return (ix < 0) ? -z : z;
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
new file mode 100644
index 0000000000..232e00c345
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -0,0 +1,166 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+  Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __kernel_tanl( x, y, k )
+ * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input k indicates whether tan (if k=1) or
+ * -1/tan (if k= -1) is returned.
+ *
+ * Algorithm
+ *	1. Since tan(-x) = -tan(x), we need only to consider positive x.
+ *	2. if x < 2^-57, return x with inexact if x!=0.
+ *	3. tan(x) is approximated by a rational form x + x^3 / 3 + x^5 R(x^2)
+ *          on [0,0.67433].
+ *
+ *	   Note: tan(x+y) = tan(x) + tan'(x)*y
+ *		          ~ tan(x) + (1+x*x)*y
+ *	   Therefore, for better accuracy in computing tan(x+y), let
+ *		r = x^3 * R(x^2)
+ *	   then
+ *		tan(x+y) = x + (x^3 / 3 + (x^2 *(r+y)+y))
+ *
+ *      4. For x in [0.67433,pi/4],  let y = pi/4 - x, then
+ *		tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
+ *		       = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+static const long double
+  one = 1.0L,
+  pio4hi = 7.8539816339744830961566084581987569936977E-1L,
+  pio4lo = 2.1679525325309452561992610065108379921906E-35L,
+
+  /* tan x = x + x^3 / 3 + x^5 T(x^2)/U(x^2)
+     0 <= x <= 0.6743316650390625
+     Peak relative error 8.0e-36  */
+ TH =  3.333333333333333333333333333333333333333E-1L,
+ T0 = -1.813014711743583437742363284336855889393E7L,
+ T1 =  1.320767960008972224312740075083259247618E6L,
+ T2 = -2.626775478255838182468651821863299023956E4L,
+ T3 =  1.764573356488504935415411383687150199315E2L,
+ T4 = -3.333267763822178690794678978979803526092E-1L,
+
+ U0 = -1.359761033807687578306772463253710042010E8L,
+ U1 =  6.494370630656893175666729313065113194784E7L,
+ U2 = -4.180787672237927475505536849168729386782E6L,
+ U3 =  8.031643765106170040139966622980914621521E4L,
+ U4 = -5.323131271912475695157127875560667378597E2L;
+  /* 1.000000000000000000000000000000000000000E0 */
+
+
+long double
+__kernel_tanl (long double x, long double y, int iy)
+{
+  long double z, r, v, w, s;
+  int32_t ix, sign, hx, lx;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS (hx, lx, xhi);
+  ix = hx & 0x7fffffff;
+  if (ix < 0x3c600000)		/* x < 2**-57 */
+    {
+      if ((int) x == 0)		/* generate inexact */
+	{
+	  if ((ix | lx | (iy + 1)) == 0)
+	    return one / fabs (x);
+	  else if (iy == 1)
+	    {
+	      math_check_force_underflow (x);
+	      return x;
+	    }
+	  else
+	    return -one / x;
+	}
+    }
+  if (ix >= 0x3fe59420) /* |x| >= 0.6743316650390625 */
+    {
+      if ((hx & 0x80000000) != 0)
+	{
+	  x = -x;
+	  y = -y;
+	  sign = -1;
+	}
+      else
+	sign = 1;
+      z = pio4hi - x;
+      w = pio4lo - y;
+      x = z + w;
+      y = 0.0;
+    }
+  z = x * x;
+  r = T0 + z * (T1 + z * (T2 + z * (T3 + z * T4)));
+  v = U0 + z * (U1 + z * (U2 + z * (U3 + z * (U4 + z))));
+  r = r / v;
+
+  s = z * x;
+  r = y + z * (s * r + y);
+  r += TH * s;
+  w = x + r;
+  if (ix >= 0x3fe59420)
+    {
+      v = (long double) iy;
+      w = (v - 2.0 * (x - (w * w / (w + v) - r)));
+      /* SIGN is set for arguments that reach this code, but not
+	 otherwise, resulting in warnings that it may be used
+	 uninitialized although in the cases where it is used it has
+	 always been set.  */
+      DIAG_PUSH_NEEDS_COMMENT;
+      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      if (sign < 0)
+	w = -w;
+      DIAG_POP_NEEDS_COMMENT;
+      return w;
+    }
+  if (iy == 1)
+    return w;
+  else
+    {				/* if allow error up to 2 ulp,
+				   simply return -1.0/(x+r) here */
+      /*  compute -1.0/(x+r) accurately */
+      long double u1, z1;
+
+      u1 = ldbl_high (w);
+      v = r - (u1 - x);		/* u1+v = r+x */
+      z = -1.0 / w;
+      z1 = ldbl_high (z);
+      s = 1.0 + z1 * u1;
+      return z1 + z * (s + z1 * v);
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
new file mode 100644
index 0000000000..4146e5c2d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/ldbl2mpn.c
@@ -0,0 +1,197 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include "longlong.h"
+#include <ieee754.h>
+#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+
+/* Convert a `long double' in IBM extended format to a multi-precision
+   integer representing the significand scaled up by its number of
+   bits (106 for long double) and an integral power of two (MPN
+   frexpl). */
+
+
+/* When signs differ, the actual value is the difference between the
+   significant double and the less significant double.  Sometimes a
+   bit can be lost when we borrow from the significant mantissa.  */
+#define EXTRA_INTERNAL_PRECISION (7)
+
+mp_size_t
+__mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
+			   int *expt, int *is_neg,
+			   long double value)
+{
+  union ibm_extended_long_double u;
+  unsigned long long hi, lo;
+  int ediff;
+
+  u.ld = value;
+
+  *is_neg = u.d[0].ieee.negative;
+  *expt = (int) u.d[0].ieee.exponent - IEEE754_DOUBLE_BIAS;
+
+  lo = ((long long) u.d[1].ieee.mantissa0 << 32) | u.d[1].ieee.mantissa1;
+  hi = ((long long) u.d[0].ieee.mantissa0 << 32) | u.d[0].ieee.mantissa1;
+
+  /* Hold 7 extra bits of precision in the mantissa.  This allows
+     the normalizing shifts below to prevent losing precision when
+     the signs differ and the exponents are sufficiently far apart.  */
+  lo <<= EXTRA_INTERNAL_PRECISION;
+
+  /* If the lower double is not a denormal or zero then set the hidden
+     53rd bit.  */
+  if (u.d[1].ieee.exponent != 0)
+    lo |= 1ULL << (52 + EXTRA_INTERNAL_PRECISION);
+  else
+    lo = lo << 1;
+
+  /* The lower double is normalized separately from the upper.  We may
+     need to adjust the lower manitissa to reflect this.  */
+  ediff = u.d[0].ieee.exponent - u.d[1].ieee.exponent - 53;
+  if (ediff > 0)
+    {
+      if (ediff < 64)
+	lo = lo >> ediff;
+      else
+	lo = 0;
+    }
+  else if (ediff < 0)
+    lo = lo << -ediff;
+
+  /* The high double may be rounded and the low double reflects the
+     difference between the long double and the rounded high double
+     value.  This is indicated by a differnce between the signs of the
+     high and low doubles.  */
+  if (u.d[0].ieee.negative != u.d[1].ieee.negative
+      && lo != 0)
+    {
+      lo = (1ULL << (53 + EXTRA_INTERNAL_PRECISION)) - lo;
+      if (hi == 0)
+	{
+	  /* we have a borrow from the hidden bit, so shift left 1.  */
+	  hi = 0x000ffffffffffffeLL | (lo >> (52 + EXTRA_INTERNAL_PRECISION));
+	  lo = 0x0fffffffffffffffLL & (lo << 1);
+	  (*expt)--;
+	}
+      else
+	hi--;
+    }
+#if BITS_PER_MP_LIMB == 32
+  /* Combine the mantissas to be contiguous.  */
+  res_ptr[0] = lo >> EXTRA_INTERNAL_PRECISION;
+  res_ptr[1] = (hi << (53 - 32)) | (lo >> (32 + EXTRA_INTERNAL_PRECISION));
+  res_ptr[2] = hi >> 11;
+  res_ptr[3] = hi >> (32 + 11);
+  #define N 4
+#elif BITS_PER_MP_LIMB == 64
+  /* Combine the two mantissas to be contiguous.  */
+  res_ptr[0] = (hi << 53) | (lo >> EXTRA_INTERNAL_PRECISION);
+  res_ptr[1] = hi >> 11;
+  #define N 2
+#else
+  #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+/* The format does not fill the last limb.  There are some zeros.  */
+#define NUM_LEADING_ZEROS (BITS_PER_MP_LIMB \
+			   - (LDBL_MANT_DIG - ((N - 1) * BITS_PER_MP_LIMB)))
+
+  if (u.d[0].ieee.exponent == 0)
+    {
+      /* A biased exponent of zero is a special case.
+	 Either it is a zero or it is a denormal number.  */
+      if (res_ptr[0] == 0 && res_ptr[1] == 0
+	  && res_ptr[N - 2] == 0 && res_ptr[N - 1] == 0) /* Assumes N<=4.  */
+	/* It's zero.  */
+	*expt = 0;
+      else
+	{
+	  /* It is a denormal number, meaning it has no implicit leading
+	     one bit, and its exponent is in fact the format minimum.  We
+	     use DBL_MIN_EXP instead of LDBL_MIN_EXP below because the
+	     latter describes the properties of both parts together, but
+	     the exponent is computed from the high part only.  */
+	  int cnt;
+
+#if N == 2
+	  if (res_ptr[N - 1] != 0)
+	    {
+	      count_leading_zeros (cnt, res_ptr[N - 1]);
+	      cnt -= NUM_LEADING_ZEROS;
+	      res_ptr[N - 1] = res_ptr[N - 1] << cnt
+			       | (res_ptr[0] >> (BITS_PER_MP_LIMB - cnt));
+	      res_ptr[0] <<= cnt;
+	      *expt = DBL_MIN_EXP - 1 - cnt;
+	    }
+	  else
+	    {
+	      count_leading_zeros (cnt, res_ptr[0]);
+	      if (cnt >= NUM_LEADING_ZEROS)
+		{
+		  res_ptr[N - 1] = res_ptr[0] << (cnt - NUM_LEADING_ZEROS);
+		  res_ptr[0] = 0;
+		}
+	      else
+		{
+		  res_ptr[N - 1] = res_ptr[0] >> (NUM_LEADING_ZEROS - cnt);
+		  res_ptr[0] <<= BITS_PER_MP_LIMB - (NUM_LEADING_ZEROS - cnt);
+		}
+	      *expt = DBL_MIN_EXP - 1
+		- (BITS_PER_MP_LIMB - NUM_LEADING_ZEROS) - cnt;
+	    }
+#else
+	  int j, k, l;
+
+	  for (j = N - 1; j > 0; j--)
+	    if (res_ptr[j] != 0)
+	      break;
+
+	  count_leading_zeros (cnt, res_ptr[j]);
+	  cnt -= NUM_LEADING_ZEROS;
+	  l = N - 1 - j;
+	  if (cnt < 0)
+	    {
+	      cnt += BITS_PER_MP_LIMB;
+	      l--;
+	    }
+	  if (!cnt)
+	    for (k = N - 1; k >= l; k--)
+	      res_ptr[k] = res_ptr[k-l];
+	  else
+	    {
+	      for (k = N - 1; k > l; k--)
+		res_ptr[k] = res_ptr[k-l] << cnt
+			     | res_ptr[k-l-1] >> (BITS_PER_MP_LIMB - cnt);
+	      res_ptr[k--] = res_ptr[0] << cnt;
+	    }
+
+	  for (; k >= 0; k--)
+	    res_ptr[k] = 0;
+	  *expt = DBL_MIN_EXP - 1 - l * BITS_PER_MP_LIMB - cnt;
+#endif
+	}
+    }
+  else
+    /* Add the implicit leading one bit for a normalized number.  */
+    res_ptr[N - 1] |= (mp_limb_t) 1 << (LDBL_MANT_DIG - 1
+					- ((N - 1) * BITS_PER_MP_LIMB));
+
+  return N;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
new file mode 100644
index 0000000000..638812c50b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_negl.c
@@ -0,0 +1,532 @@
+/* lgammal expanding around zeros.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double lgamma_zeros[][2] =
+  {
+    { -0x2.74ff92c01f0d82abec9f315f1ap+0L, -0x7.12c334804d9a79cb5d46094d46p-112L },
+    { -0x2.bf6821437b20197995a4b4641fp+0L, 0x5.140b4ff4b7d6069e1bd7acc196p-108L },
+    { -0x3.24c1b793cb35efb8be699ad3dap+0L, 0x4.59abab3480539f1c0e926287cp-108L },
+    { -0x3.f48e2a8f85fca170d456129123p+0L, -0x6.cc320a4887d1cb4c711828a75ep-108L },
+    { -0x4.0a139e16656030c39f0b0de182p+0L, 0xe.d53e84029416e1242006b2b3dp-108L },
+    { -0x4.fdd5de9bbabf3510d0aa407698p+0L, -0x8.501d7d78125286f78d1e501f14p-108L },
+    { -0x5.021a95fc2db6432a4c56e5953ap+0L, 0xb.2133950fbcf2b01a8b9058dcccp-108L },
+    { -0x5.ffa4bd647d0357dd4ed62cbd32p+0L, 0x1.2071c071a2145d2982428f2269p-108L },
+    { -0x6.005ac9625f233b607c2d96d164p+0L, 0x7.a347953a96cbf30e1a0db20856p-108L },
+    { -0x6.fff2fddae1bbff3d626b65c24p+0L, 0x2.de0bfcff5c457ebcf4d3ad9674p-108L },
+    { -0x7.000cff7b7f87adf4482dcdb988p+0L, 0x7.d54d99e35a74d6407b80292df2p-108L },
+    { -0x7.fffe5fe05673c3ca9e82b522bp+0L, -0xc.a9d2e8837cd1f14bd3d05002e4p-108L },
+    { -0x8.0001a01459fc9f60cb3cec1cecp+0L, -0x8.576677ca538d88084310983b8p-108L },
+    { -0x8.ffffd1c425e80ffc864e957494p+0L, 0x1.a6181dfdef1807e3087e4bb163p-104L },
+    { -0x9.00002e3bb47d86d6d843fedc34p+0L, -0x1.1deb7ad09ec5e9d6e8ae2d548bp-104L },
+    { -0x9.fffffb606bdfdcd062ae77a504p+0L, -0x1.47c69d2eb6f33d170fce38ff818p-104L },
+    { -0xa.0000049f93bb9927b45d95e154p+0L, -0x4.1e03086db9146a9287bd4f2172p-108L },
+    { -0xa.ffffff9466e9f1b36dacd2adbcp+0L, -0x1.18d05a4e458062f3f95345a4dap-104L },
+    { -0xb.0000006b9915315d965a6ffea4p+0L, -0xe.4bea39000dcc1848023c5f6bdcp-112L },
+    { -0xb.fffffff7089387387de41acc3cp+0L, -0x1.3c978bd839c8c428b5efcf91ef8p-104L },
+    { -0xc.00000008f76c7731567c0f025p+0L, -0xf.387920df5675833859190eb128p-108L },
+    { -0xc.ffffffff4f6dcf617f97a5ffc8p+0L, 0xa.82ab72d76f32eaee2d1a42ed5p-108L },
+    { -0xd.00000000b092309c06683dd1b8p+0L, -0x1.03e3700857a15c19ac5a611de98p-104L },
+    { -0xd.fffffffff36345ab9e184a3e08p+0L, -0x1.d1176dc48e47f62d917973dd45p-104L },
+    { -0xe.000000000c9cba545e94e75ec4p+0L, -0x1.718f753e2501e757a17cf2ecbfp-104L },
+    { -0xe.ffffffffff28c060c6604ef304p+0L, 0x8.e0762c8ca8361c23e8393919c4p-108L },
+    { -0xf.0000000000d73f9f399bd0e42p+0L, -0xf.85e9ee31b0b890744fc0e3fbcp-108L },
+    { -0xf.fffffffffff28c060c6621f514p+0L, 0x1.18d1b2eec9d960bd9adc5be5f6p-104L },
+    { -0x1.000000000000d73f9f399da1428p+4L, 0x3.406c46e0e88305d2800f0e414cp-104L },
+    { -0x1.0ffffffffffff3569c47e7a93ep+4L, -0x1.c46a08a2e008a998ebabb8087fp-104L },
+    { -0x1.1000000000000ca963b81856888p+4L, -0x7.6ca5a3a64ec15db0a95caf2cap-108L },
+    { -0x1.1fffffffffffff4bec3ce23413p+4L, -0x2.d08b2b726187c841cb92cd5222p-104L },
+    { -0x1.20000000000000b413c31dcbec8p+4L, -0x2.4c3b2ffacbb4932f18dceedfd7p-104L },
+    { -0x1.2ffffffffffffff685b25cbf5f8p+4L, 0x2.ba3126cd1c7b7a0822d694705cp-104L },
+    { -0x1.30000000000000097a4da340a08p+4L, -0x2.b81b7b1f1f001c72bf914141efp-104L },
+    { -0x1.3fffffffffffffff86af516ff8p+4L, 0x8.9429818df2a87abafd48248a2p-108L },
+    { -0x1.40000000000000007950ae9008p+4L, -0x8.9413ccc8a353fda263f8ce973cp-108L },
+    { -0x1.4ffffffffffffffffa391c4249p+4L, 0x3.d5c63022b62b5484ba346524dbp-104L },
+    { -0x1.500000000000000005c6e3bdb7p+4L, -0x3.d5c62f55ed5322b2685c5e9a52p-104L },
+    { -0x1.5fffffffffffffffffbcc71a49p+4L, -0x2.01eb5aeb96c74d7ad25e060529p-104L },
+    { -0x1.6000000000000000004338e5b7p+4L, 0x2.01eb5aec04b2f2eb663e4e3d8ap-104L },
+    { -0x1.6ffffffffffffffffffd13c97d8p+4L, -0x1.d38fcc4d08d6fe5aa56ab04308p-104L },
+    { -0x1.70000000000000000002ec36828p+4L, 0x1.d38fcc4d090cee2f5d0b69a99cp-104L },
+    { -0x1.7fffffffffffffffffffe0d31p+4L, 0x1.972f577cca4b4c8cb1dc14001bp-104L },
+    { -0x1.800000000000000000001f2cfp+4L, -0x1.972f577cca4b3442e35f0040b38p-104L },
+    { -0x1.8ffffffffffffffffffffec0c3p+4L, -0x3.22e9a0572b1bb5b95f346a92d6p-104L },
+    { -0x1.90000000000000000000013f3dp+4L, 0x3.22e9a0572b1bb5c371ddb35617p-104L },
+    { -0x1.9ffffffffffffffffffffff3b88p+4L, -0x3.d01cad8d32e386fd783e97296dp-104L },
+    { -0x1.a0000000000000000000000c478p+4L, 0x3.d01cad8d32e386fd7c1ab8c1fep-104L },
+    { -0x1.afffffffffffffffffffffff8b8p+4L, -0x1.538f48cc5737d5979c39db806c8p-104L },
+    { -0x1.b00000000000000000000000748p+4L, 0x1.538f48cc5737d5979c3b3a6bdap-104L },
+    { -0x1.bffffffffffffffffffffffffcp+4L, 0x2.862898d42174dcf171470d8c8cp-104L },
+    { -0x1.c0000000000000000000000004p+4L, -0x2.862898d42174dcf171470d18bap-104L },
+    { -0x1.dp+4L, 0x2.4b3f31686b15af57c61ceecdf4p-104L },
+    { -0x1.dp+4L, -0x2.4b3f31686b15af57c61ceecdd1p-104L },
+    { -0x1.ep+4L, 0x1.3932c5047d60e60caded4c298ap-108L },
+    { -0x1.ep+4L, -0x1.3932c5047d60e60caded4c29898p-108L },
+    { -0x1.fp+4L, 0xa.1a6973c1fade2170f7237d36p-116L },
+    { -0x1.fp+4L, -0xa.1a6973c1fade2170f7237d36p-116L },
+    { -0x2p+4L, 0x5.0d34b9e0fd6f10b87b91be9bp-120L },
+    { -0x2p+4L, -0x5.0d34b9e0fd6f10b87b91be9bp-120L },
+    { -0x2.1p+4L, 0x2.73024a9ba1aa36a7059bff52e8p-124L },
+    { -0x2.1p+4L, -0x2.73024a9ba1aa36a7059bff52e8p-124L },
+    { -0x2.2p+4L, 0x1.2710231c0fd7a13f8a2b4af9d68p-128L },
+    { -0x2.2p+4L, -0x1.2710231c0fd7a13f8a2b4af9d68p-128L },
+    { -0x2.3p+4L, 0x8.6e2ce38b6c8f9419e3fad3f03p-136L },
+    { -0x2.3p+4L, -0x8.6e2ce38b6c8f9419e3fad3f03p-136L },
+    { -0x2.4p+4L, 0x3.bf30652185952560d71a254e4fp-140L },
+    { -0x2.4p+4L, -0x3.bf30652185952560d71a254e4fp-140L },
+    { -0x2.5p+4L, 0x1.9ec8d1c94e85af4c78b15c3d8ap-144L },
+    { -0x2.5p+4L, -0x1.9ec8d1c94e85af4c78b15c3d8ap-144L },
+    { -0x2.6p+4L, 0xa.ea565ce061d57489e9b8527628p-152L },
+    { -0x2.6p+4L, -0xa.ea565ce061d57489e9b8527628p-152L },
+    { -0x2.7p+4L, 0x4.7a6512692eb37804111dabad3p-156L },
+    { -0x2.7p+4L, -0x4.7a6512692eb37804111dabad3p-156L },
+    { -0x2.8p+4L, 0x1.ca8ed42a12ae3001a07244abadp-160L },
+    { -0x2.8p+4L, -0x1.ca8ed42a12ae3001a07244abadp-160L },
+    { -0x2.9p+4L, 0xb.2f30e1ce812063f12e7e8d8d98p-168L },
+    { -0x2.9p+4L, -0xb.2f30e1ce812063f12e7e8d8d98p-168L },
+    { -0x2.ap+4L, 0x4.42bd49d4c37a0db136489772e4p-172L },
+    { -0x2.ap+4L, -0x4.42bd49d4c37a0db136489772e4p-172L },
+    { -0x2.bp+4L, 0x1.95db45257e5122dcbae56def37p-176L },
+    { -0x2.bp+4L, -0x1.95db45257e5122dcbae56def37p-176L },
+    { -0x2.cp+4L, 0x9.3958d81ff63527ecf993f3fb7p-184L },
+    { -0x2.cp+4L, -0x9.3958d81ff63527ecf993f3fb7p-184L },
+    { -0x2.dp+4L, 0x3.47970e4440c8f1c058bd238c99p-188L },
+    { -0x2.dp+4L, -0x3.47970e4440c8f1c058bd238c99p-188L },
+    { -0x2.ep+4L, 0x1.240804f65951062ca46e4f25c6p-192L },
+    { -0x2.ep+4L, -0x1.240804f65951062ca46e4f25c6p-192L },
+    { -0x2.fp+4L, 0x6.36a382849fae6de2d15362d8a4p-200L },
+    { -0x2.fp+4L, -0x6.36a382849fae6de2d15362d8a4p-200L },
+    { -0x3p+4L, 0x2.123680d6dfe4cf4b9b1bcb9d8cp-204L },
+  };
+
+static const long double e_hi = 0x2.b7e151628aed2a6abf7158809dp+0L;
+static const long double e_lo = -0xb.0c389d18e9f0c74b25a9587b28p-112L;
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
+   approximation to lgamma function.  */
+
+static const long double lgamma_coeff[] =
+  {
+    0x1.555555555555555555555555558p-4L,
+    -0xb.60b60b60b60b60b60b60b60b6p-12L,
+    0x3.4034034034034034034034034p-12L,
+    -0x2.7027027027027027027027027p-12L,
+    0x3.72a3c5631fe46ae1d4e700dca9p-12L,
+    -0x7.daac36664f1f207daac36664f2p-12L,
+    0x1.a41a41a41a41a41a41a41a41a4p-8L,
+    -0x7.90a1b2c3d4e5f708192a3b4c5ep-8L,
+    0x2.dfd2c703c0cfff430edfd2c704p-4L,
+    -0x1.6476701181f39edbdb9ce625988p+0L,
+    0xd.672219167002d3a7a9c886459cp+0L,
+    -0x9.cd9292e6660d55b3f712eb9e08p+4L,
+    0x8.911a740da740da740da740da74p+8L,
+    -0x8.d0cc570e255bf59ff6eec24b48p+12L,
+    0xa.8d1044d3708d1c219ee4fdc448p+16L,
+    -0xe.8844d8a169abbc406169abbc4p+20L,
+    0x1.6d29a0f6433b79890cede624338p+28L,
+    -0x2.88a233b3c8cddaba9809357126p+32L,
+    0x5.0dde6f27500939a85c40939a86p+36L,
+    -0xb.4005bde03d4642a243581714bp+40L,
+    0x1.bc8cd6f8f1f755c78753cdb5d6p+48L,
+    -0x4.bbebb143bb94de5a0284fa7ec4p+52L,
+    0xe.2e1337f5af0bed90b6b0a352d4p+56L,
+    -0x2.e78250162b62405ad3e4bfe61bp+64L,
+    0xa.5f7eef9e71ac7c80326ab4cc8cp+68L,
+    -0x2.83be0395e550213369924971b2p+76L,
+  };
+
+#define NCOEFF (sizeof (lgamma_coeff) / sizeof (lgamma_coeff[0]))
+
+/* Polynomial approximations to (|gamma(x)|-1)(x-n)/(x-x0), where n is
+   the integer end-point of the half-integer interval containing x and
+   x0 is the zero of lgamma in that half-integer interval.  Each
+   polynomial is expressed in terms of x-xm, where xm is the midpoint
+   of the interval for which the polynomial applies.  */
+
+static const long double poly_coeff[] =
+  {
+    /* Interval [-2.125, -2] (polynomial degree 21).  */
+    -0x1.0b71c5c54d42eb6c17f30b7aa9p+0L,
+    -0xc.73a1dc05f34951602554c6d76cp-4L,
+    -0x1.ec841408528b51473e6c42f1c58p-4L,
+    -0xe.37c9da26fc3c9a3c1844c04b84p-4L,
+    -0x1.03cd87c519305703b00b046ce4p-4L,
+    -0xe.ae9ada65e09aa7f1c817c91048p-4L,
+    0x9.b11855a4864b571b6a4f571c88p-8L,
+    -0xe.f28c133e697a95ba2dabb97584p-4L,
+    0x2.6ec14a1c586a7ddb6c4be90fe1p-4L,
+    -0xf.57cab973e14496f0900851c0d4p-4L,
+    0x4.5b0fc25f16b0df37175495c70cp-4L,
+    -0xf.f50e59f1a8fb8c402091e3cd3cp-4L,
+    0x6.5f5eae1681d1e50e575c3d4d36p-4L,
+    -0x1.0d2422dac7ea8a52db6bf0d14fp+0L,
+    0x8.820008f221eae5a36e15913bacp-4L,
+    -0x1.1f492eec53b9481ea23a7e944ep+0L,
+    0xa.cb55b4d662945e8cf1f81ee5b4p-4L,
+    -0x1.3616863983e131d7935700ccd48p+0L,
+    0xd.43c783ebab66074d18709d5cap-4L,
+    -0x1.51d5dbc56bc85976871c6e51f78p+0L,
+    0x1.06253af656eb6b2ed998387aabp+0L,
+    -0x1.7d910a0aadc63d7a1ef7690dbb8p+0L,
+    /* Interval [-2.25, -2.125] (polynomial degree 22).  */
+    -0xf.2930890d7d675a80c36afb0fd4p-4L,
+    -0xc.a5cfde054eab5c6770daeca684p-4L,
+    0x3.9c9e0fdebb07cdf89c61d434adp-4L,
+    -0x1.02a5ad35605fcf4af65a67fe8a8p+0L,
+    0x9.6e9b1185bb48be9de18d8bbeb8p-4L,
+    -0x1.4d8332f3cfbfa116fdf648372cp+0L,
+    0x1.1c0c8cb4d9f4b1d495142b53ebp+0L,
+    -0x1.c9a6f5ae9130ccfb9b7e39136f8p+0L,
+    0x1.d7e9307fd58a2e85209d0e83eap+0L,
+    -0x2.921cb3473d96462f22c171712fp+0L,
+    0x2.e8d59113b6f3fc1ed3b556b62cp+0L,
+    -0x3.cbab931624e3b6cf299cea1213p+0L,
+    0x4.7d9f0f05d2c4cf91e41ea1f048p+0L,
+    -0x5.ade9cba31affa276fe516135eep+0L,
+    0x6.dc983a62cf6ddc935ae3c5b9ap+0L,
+    -0x8.8d9ed100b2a7813f82cbd83e3cp+0L,
+    0xa.6fa0926892835a9a29c9b8db8p+0L,
+    -0xc.ebc90aff4ffe319d70bef0d61p+0L,
+    0xf.d69cf50ab226bacece014c0b44p+0L,
+    -0x1.389964ac7cfef4578eec028e5c8p+4L,
+    0x1.7ff0d2090164e25901f97cab3bp+4L,
+    -0x1.e9e6d282da6bd004619d073071p+4L,
+    0x2.5d719ab6ad4be8b5c32b0fba2ap+4L,
+    /* Interval [-2.375, -2.25] (polynomial degree 24).  */
+    -0xd.7d28d505d6181218a25f31d5e4p-4L,
+    -0xe.69649a3040985140cdf946827cp-4L,
+    0xb.0d74a2827d053a8d4459500f88p-4L,
+    -0x1.924b0922853617cac181b097e48p+0L,
+    0x1.d49b12bccf0a568582e2dbf8ep+0L,
+    -0x3.0898bb7d8c4093e6360d26bbc5p+0L,
+    0x4.207a6cac711cb538684f74619ep+0L,
+    -0x6.39ee63ea4fb1dcac86ab337e3cp+0L,
+    0x8.e2e2556a797b64a1b9328a3978p+0L,
+    -0xd.0e83ac82552ee5596df1706ff4p+0L,
+    0x1.2e4525e0ce666e48fac68ddcdep+4L,
+    -0x1.b8e350d6a8f6597ed2eb3c2eff8p+4L,
+    0x2.805cd69b9197ee0089dd1b1c46p+4L,
+    -0x3.a42585423e4d00db075f2d687ep+4L,
+    0x5.4b4f409f874e2a7dcd8aa4a62ap+4L,
+    -0x7.b3c5829962ca1b95535db9cc4ep+4L,
+    0xb.33b7b928986ec6b219e2e15a98p+4L,
+    -0x1.04b76dec4115106bb16316d9cd8p+8L,
+    0x1.7b366d8d46f179d5c5302d6534p+8L,
+    -0x2.2799846ddc54813d40da622b99p+8L,
+    0x3.2253a862c1078a3ccabac65bebp+8L,
+    -0x4.8d92cebc90a4a29816f4952f4ep+8L,
+    0x6.9ebb8f9d72c66c80c4f4492e7ap+8L,
+    -0xa.2850a483f9ba0e43f5848b5cd8p+8L,
+    0xe.e1b6bdce83b27944edab8c428p+8L,
+    /* Interval [-2.5, -2.375] (polynomial degree 25).  */
+    -0xb.74ea1bcfff94b2c01afba9daa8p-4L,
+    -0x1.2a82bd590c37538cab143308e3p+0L,
+    0x1.88020f828b966fec66b8648d16p+0L,
+    -0x3.32279f040eb694970e9db0308bp+0L,
+    0x5.57ac82517767e68a72142041b4p+0L,
+    -0x9.c2aedcfe22833de438786dc658p+0L,
+    0x1.12c132f1f5577f99dbfb7ecb408p+4L,
+    -0x1.ea94e26628a3de3557dc349db8p+4L,
+    0x3.66b4ac4fa582f5cbe7e19d10c6p+4L,
+    -0x6.0cf746a9cf4cbcb0004cb01f66p+4L,
+    0xa.c102ef2c20d5a313cbfd37f5b8p+4L,
+    -0x1.31ebff06e8f08f58d1c35eacfdp+8L,
+    0x2.1fd6f0c0e788660ba1f1573722p+8L,
+    -0x3.c6d760404305e75356a86a11d6p+8L,
+    0x6.b6d18e0c31a2ba4d5b5ac78676p+8L,
+    -0xb.efaf5426343e6b41a823ed6c44p+8L,
+    0x1.53852db2fe01305b9f336d132d8p+12L,
+    -0x2.5b977cb2b568382e71ca93a36bp+12L,
+    0x4.310d090a6119c7d85a2786a616p+12L,
+    -0x7.73a518387ef1d4d04917dfb25cp+12L,
+    0xd.3f965798601aabd24bdaa6e68cp+12L,
+    -0x1.78db20b0b166480c93cf0031198p+16L,
+    0x2.9be0068b65cf13bd1cf71f0eccp+16L,
+    -0x4.a221230466b9cd51d5b811d6b6p+16L,
+    0x8.f6f8c13e2b52aa3e30a4ce6898p+16L,
+    -0x1.02145337ff16b44fa7c2adf7f28p+20L,
+    /* Interval [-2.625, -2.5] (polynomial degree 26).  */
+    -0x3.d10108c27ebafad533c20eac33p-4L,
+    0x1.cd557caff7d2b2085f41dbec538p+0L,
+    0x3.819b4856d399520dad9776ebb9p+0L,
+    0x6.8505cbad03dc34c5e42e89c4b4p+0L,
+    0xb.c1b2e653a9e38f82b3997134a8p+0L,
+    0x1.50a53a38f1481381051544750ep+4L,
+    0x2.57ae00cbe5232cbeef4e94eb2cp+4L,
+    0x4.2b156301b8604db82856d5767p+4L,
+    0x7.6989ed23ca3ca751fc9c32eb88p+4L,
+    0xd.2dd29765579396f3a456772c44p+4L,
+    0x1.76e1c3430eb8630991d1aa8a248p+8L,
+    0x2.9a77bf548873743fe65d025f56p+8L,
+    0x4.a0d62ed7266389753842d7be74p+8L,
+    0x8.3a6184dd32d31ec73fc6f2d37cp+8L,
+    0xe.a0ade153a3bf0247db49e11ae8p+8L,
+    0x1.a01359fa74d4eaf8858bbc35f68p+12L,
+    0x2.e3b0a32845cbc135bae4a5216cp+12L,
+    0x5.23012653815fe88456170a7dc6p+12L,
+    0x9.21c92dcde748ec199bc9c65738p+12L,
+    0x1.03c0f3621b4c67d2d86e5e813d8p+16L,
+    0x1.cdc884edcc9f5404f2708551cb8p+16L,
+    0x3.35025f0b1624d1ffc86688bf03p+16L,
+    0x5.b3bd9562ebf2409c5ce99929ep+16L,
+    0xa.1a229b1986d9f89cb80abccfdp+16L,
+    0x1.1e69136ebd520146d51837f3308p+20L,
+    0x2.2d2738c72449db2524171b9271p+20L,
+    0x4.036e80cc6621b836f94f426834p+20L,
+    /* Interval [-2.75, -2.625] (polynomial degree 24).  */
+    -0x6.b5d252a56e8a75458a27ed1c2ep-4L,
+    0x1.28d60383da3ac721aed3c57949p+0L,
+    0x1.db6513ada8a66ea77d87d9a796p+0L,
+    0x2.e217118f9d348a27f7506c4b4fp+0L,
+    0x4.450112c5cbf725a0fb982fc44cp+0L,
+    0x6.4af99151eae7810a75a5fceac8p+0L,
+    0x9.2db598b4a97a7f69ab7be31128p+0L,
+    0xd.62bef9c22471f5f17955733c6p+0L,
+    0x1.379f294e412bd6255506135f4a8p+4L,
+    0x1.c5827349d8865d858d4f85f3c38p+4L,
+    0x2.93a7e7a75b755bbea1785a1349p+4L,
+    0x3.bf9bb882afed66a08b22ed7a45p+4L,
+    0x5.73c737828d2044aca95fdef33ep+4L,
+    0x7.ee46534920f1c81574db260f0ep+4L,
+    0xb.891c6b837b513eaf1592fe78ccp+4L,
+    0x1.0c775d815bf741526a3dd66ded8p+8L,
+    0x1.867ee44cf11f26455a8924a56bp+8L,
+    0x2.37fe968baa1018e55cae680f1dp+8L,
+    0x3.3a2c557f686679eb5d8e960fd1p+8L,
+    0x4.b1ba0539d4d80cc9174738b992p+8L,
+    0x6.d3fd80155b6d2211956cb6bc5ap+8L,
+    0x9.eb5a96b0ee3d9ca523f5fbc1fp+8L,
+    0xe.6b37429c1acc7dc19ef312dda4p+8L,
+    0x1.621132d6aa138b203a28e4792fp+12L,
+    0x2.09610219270e2ce11a985d4d36p+12L,
+    /* Interval [-2.875, -2.75] (polynomial degree 23).  */
+    -0x8.a41b1e4f36ff88dc820815607cp-4L,
+    0xc.da87d3b69dc0f2f9c6f368b8c8p-4L,
+    0x1.1474ad5c36158a7bea04fd30b28p+0L,
+    0x1.761ecb90c555df6555b7dbb9ce8p+0L,
+    0x1.d279bff9ae291caf6c4b17497f8p+0L,
+    0x2.4e5d00559a6e2b9b5d7e35b575p+0L,
+    0x2.d57545a75cee8743b1ff6e22b8p+0L,
+    0x3.8514eee3aac88b89d2d4ddef4ep+0L,
+    0x4.5235e3b6e1891fd9c975383318p+0L,
+    0x5.562acdb10eef3c14a780490e3cp+0L,
+    0x6.8ec8965c76f0b261bc41b5e532p+0L,
+    0x8.15251aca144a98a1e1c0981388p+0L,
+    0x9.f08d56ab9e7eee9515a457214cp+0L,
+    0xc.3dbbeda2620d5be4fe8621ce6p+0L,
+    0xf.0f5bfd65b3feb6d745a2cdbf9cp+0L,
+    0x1.28a6ccd8dd27fb90fcaa31d37dp+4L,
+    0x1.6d0a3a3091c3d64cfd1a3c5769p+4L,
+    0x1.c1570107e02d5ab0b8bea6d6c98p+4L,
+    0x2.28fc9b295b583fa469de7acceap+4L,
+    0x2.a8a4cac0217026bbdbce34f4adp+4L,
+    0x3.4532c98bce75262ac0ede53edep+4L,
+    0x4.062fd9ba18e00e55c25a4f0688p+4L,
+    0x5.22e00e6d9846a3451fad5587f8p+4L,
+    0x6.5d0f7ce92a0bf928d4a30e92c6p+4L,
+    /* Interval [-3, -2.875] (polynomial degree 22).  */
+    -0xa.046d667e468f3e44dcae1afcc8p-4L,
+    0x9.70b88dcc006c214d8d996fdf7p-4L,
+    0xa.a8a39421c86d3ff24931a093c4p-4L,
+    0xd.2f4d1363f324da2b357c850124p-4L,
+    0xd.ca9aa1a3a5c00de11bf5d7047p-4L,
+    0xf.cf09c31eeb52a45dfb25e50ebcp-4L,
+    0x1.04b133a39ed8a096914cc78812p+0L,
+    0x1.22b547a06edda9447f516a2ee7p+0L,
+    0x1.2c57fce7db86a91c8d0f12077b8p+0L,
+    0x1.4aade4894708fb8b78365e9bf88p+0L,
+    0x1.579c8b7b67ec5179ecc4e9c7dp+0L,
+    0x1.776820e7fc7361c50e7ef40a88p+0L,
+    0x1.883ab28c72ef238ada6c480ab18p+0L,
+    0x1.aa2ef6e1d11b9fcea06a1dcab1p+0L,
+    0x1.bf4ad50f2dd2aeb02395ea08648p+0L,
+    0x1.e40206a5477615838e02279dfc8p+0L,
+    0x1.fdcbcfd4b0777fb173b85d5b398p+0L,
+    0x2.25e32b3b3c89e833029169a17bp+0L,
+    0x2.44ce344ff0bda6570fe3d0a76dp+0L,
+    0x2.70bfba6fa079faf2dbf31d2216p+0L,
+    0x2.953e22a97725cc179ad21024fap+0L,
+    0x2.d8ccc51524659a499eee0f267p+0L,
+    0x3.080fbb09c14936c2171c8a51bcp+0L,
+  };
+
+static const size_t poly_deg[] =
+  {
+    21,
+    22,
+    24,
+    25,
+    26,
+    24,
+    23,
+    22,
+  };
+
+static const size_t poly_end[] =
+  {
+    21,
+    44,
+    69,
+    95,
+    122,
+    147,
+    171,
+    194,
+  };
+
+/* Compute sin (pi * X) for -0.25 <= X <= 0.5.  */
+
+static long double
+lg_sinpi (long double x)
+{
+  if (x <= 0.25L)
+    return __sinl (M_PIl * x);
+  else
+    return __cosl (M_PIl * (0.5L - x));
+}
+
+/* Compute cos (pi * X) for -0.25 <= X <= 0.5.  */
+
+static long double
+lg_cospi (long double x)
+{
+  if (x <= 0.25L)
+    return __cosl (M_PIl * x);
+  else
+    return __sinl (M_PIl * (0.5L - x));
+}
+
+/* Compute cot (pi * X) for -0.25 <= X <= 0.5.  */
+
+static long double
+lg_cotpi (long double x)
+{
+  return lg_cospi (x) / lg_sinpi (x);
+}
+
+/* Compute lgamma of a negative argument -48 < X < -2, setting
+   *SIGNGAMP accordingly.  */
+
+long double
+__lgamma_negl (long double x, int *signgamp)
+{
+  /* Determine the half-integer region X lies in, handle exact
+     integers and determine the sign of the result.  */
+  int i = __floorl (-2 * x);
+  if ((i & 1) == 0 && i == -2 * x)
+    return 1.0L / 0.0L;
+  long double xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
+  i -= 4;
+  *signgamp = ((i & 2) == 0 ? -1 : 1);
+
+  SET_RESTORE_ROUNDL (FE_TONEAREST);
+
+  /* Expand around the zero X0 = X0_HI + X0_LO.  */
+  long double x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
+  long double xdiff = x - x0_hi - x0_lo;
+
+  /* For arguments in the range -3 to -2, use polynomial
+     approximations to an adjusted version of the gamma function.  */
+  if (i < 2)
+    {
+      int j = __floorl (-8 * x) - 16;
+      long double xm = (-33 - 2 * j) * 0.0625L;
+      long double x_adj = x - xm;
+      size_t deg = poly_deg[j];
+      size_t end = poly_end[j];
+      long double g = poly_coeff[end];
+      for (size_t j = 1; j <= deg; j++)
+	g = g * x_adj + poly_coeff[end - j];
+      return __log1pl (g * xdiff / (x - xn));
+    }
+
+  /* The result we want is log (sinpi (X0) / sinpi (X))
+     + log (gamma (1 - X0) / gamma (1 - X)).  */
+  long double x_idiff = fabsl (xn - x), x0_idiff = fabsl (xn - x0_hi - x0_lo);
+  long double log_sinpi_ratio;
+  if (x0_idiff < x_idiff * 0.5L)
+    /* Use log not log1p to avoid inaccuracy from log1p of arguments
+       close to -1.  */
+    log_sinpi_ratio = __ieee754_logl (lg_sinpi (x0_idiff)
+				      / lg_sinpi (x_idiff));
+  else
+    {
+      /* Use log1p not log to avoid inaccuracy from log of arguments
+	 close to 1.  X0DIFF2 has positive sign if X0 is further from
+	 XN than X is from XN, negative sign otherwise.  */
+      long double x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5L;
+      long double sx0d2 = lg_sinpi (x0diff2);
+      long double cx0d2 = lg_cospi (x0diff2);
+      log_sinpi_ratio = __log1pl (2 * sx0d2
+				  * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
+    }
+
+  long double log_gamma_ratio;
+  long double y0 = 1 - x0_hi;
+  long double y0_eps = -x0_hi + (1 - y0) - x0_lo;
+  long double y = 1 - x;
+  long double y_eps = -x + (1 - y);
+  /* We now wish to compute LOG_GAMMA_RATIO
+     = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)).  XDIFF
+     accurately approximates the difference Y0 + Y0_EPS - Y -
+     Y_EPS.  Use Stirling's approximation.  First, we may need to
+     adjust into the range where Stirling's approximation is
+     sufficiently accurate.  */
+  long double log_gamma_adj = 0;
+  if (i < 18)
+    {
+      int n_up = (19 - i) / 2;
+      long double ny0, ny0_eps, ny, ny_eps;
+      ny0 = y0 + n_up;
+      ny0_eps = y0 - (ny0 - n_up) + y0_eps;
+      y0 = ny0;
+      y0_eps = ny0_eps;
+      ny = y + n_up;
+      ny_eps = y - (ny - n_up) + y_eps;
+      y = ny;
+      y_eps = ny_eps;
+      long double prodm1 = __lgamma_productl (xdiff, y - n_up, y_eps, n_up);
+      log_gamma_adj = -__log1pl (prodm1);
+    }
+  long double log_gamma_high
+    = (xdiff * __log1pl ((y0 - e_hi - e_lo + y0_eps) / e_hi)
+       + (y - 0.5L + y_eps) * __log1pl (xdiff / y) + log_gamma_adj);
+  /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)).  */
+  long double y0r = 1 / y0, yr = 1 / y;
+  long double y0r2 = y0r * y0r, yr2 = yr * yr;
+  long double rdiff = -xdiff / (y * y0);
+  long double bterm[NCOEFF];
+  long double dlast = rdiff, elast = rdiff * yr * (yr + y0r);
+  bterm[0] = dlast * lgamma_coeff[0];
+  for (size_t j = 1; j < NCOEFF; j++)
+    {
+      long double dnext = dlast * y0r2 + elast;
+      long double enext = elast * yr2;
+      bterm[j] = dnext * lgamma_coeff[j];
+      dlast = dnext;
+      elast = enext;
+    }
+  long double log_gamma_low = 0;
+  for (size_t j = 0; j < NCOEFF; j++)
+    log_gamma_low += bterm[NCOEFF - 1 - j];
+  log_gamma_ratio = log_gamma_high + log_gamma_low;
+
+  return log_sinpi_ratio + log_gamma_ratio;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
new file mode 100644
index 0000000000..92c1cffd67
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/lgamma_productl.c
@@ -0,0 +1,38 @@
+/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Compute the product of 1 + (T / (X + X_EPS)), 1 + (T / (X + X_EPS +
+   1)), ..., 1 + (T / (X + X_EPS + N - 1)), minus 1.  X is such that
+   all the values X + 1, ..., X + N - 1 are exactly representable, and
+   X_EPS / X is small enough that factors quadratic in it can be
+   neglected.  */
+
+long double
+__lgamma_productl (long double t, long double x, long double x_eps, int n)
+{
+  long double x_full = x + x_eps;
+  long double ret = 0;
+  for (int i = 0; i < n; i++)
+    /* FIXME: no extra precision used.  */
+    ret += (t / (x_full + i)) * (1 + ret);
+  return ret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
new file mode 100644
index 0000000000..8f2984e924
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/math_ldbl.h
@@ -0,0 +1,290 @@
+/* Manipulation of the bit representation of 'long double' quantities.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_LDBL_H_
+#define _MATH_LDBL_H_ 1
+
+#include <ieee754.h>
+#include <stdint.h>
+
+/* To suit our callers we return *hi64 and *lo64 as if they came from
+   an ieee854 112 bit mantissa, that is, 48 bits in *hi64 (plus one
+   implicit bit) and 64 bits in *lo64.  */
+
+static inline void
+ldbl_extract_mantissa (int64_t *hi64, uint64_t *lo64, int *exp, long double x)
+{
+  /* We have 105 bits of mantissa plus one implicit digit.  Since
+     106 bits are representable we use the first implicit digit for
+     the number before the decimal point and the second implicit bit
+     as bit 53 of the mantissa.  */
+  uint64_t hi, lo;
+  union ibm_extended_long_double u;
+
+  u.ld = x;
+  *exp = u.d[0].ieee.exponent - IEEE754_DOUBLE_BIAS;
+
+  lo = ((uint64_t) u.d[1].ieee.mantissa0 << 32) | u.d[1].ieee.mantissa1;
+  hi = ((uint64_t) u.d[0].ieee.mantissa0 << 32) | u.d[0].ieee.mantissa1;
+
+  if (u.d[0].ieee.exponent != 0)
+    {
+      int ediff;
+
+      /* If not a denormal or zero then we have an implicit 53rd bit.  */
+      hi |= (uint64_t) 1 << 52;
+
+      if (u.d[1].ieee.exponent != 0)
+	lo |= (uint64_t) 1 << 52;
+      else
+	/* A denormal is to be interpreted as having a biased exponent
+	   of 1.  */
+	lo = lo << 1;
+
+      /* We are going to shift 4 bits out of hi later, because we only
+	 want 48 bits in *hi64.  That means we want 60 bits in lo, but
+	 we currently only have 53.  Shift the value up.  */
+      lo = lo << 7;
+
+      /* The lower double is normalized separately from the upper.
+	 We may need to adjust the lower mantissa to reflect this.
+	 The difference between the exponents can be larger than 53
+	 when the low double is much less than 1ULP of the upper
+	 (in which case there are significant bits, all 0's or all
+	 1's, between the two significands).  The difference between
+	 the exponents can be less than 53 when the upper double
+	 exponent is nearing its minimum value (in which case the low
+	 double is denormal ie. has an exponent of zero).  */
+      ediff = u.d[0].ieee.exponent - u.d[1].ieee.exponent - 53;
+      if (ediff > 0)
+	{
+	  if (ediff < 64)
+	    lo = lo >> ediff;
+	  else
+	    lo = 0;
+	}
+      else if (ediff < 0)
+	lo = lo << -ediff;
+
+      if (u.d[0].ieee.negative != u.d[1].ieee.negative
+	  && lo != 0)
+	{
+	  hi--;
+	  lo = ((uint64_t) 1 << 60) - lo;
+	  if (hi < (uint64_t) 1 << 52)
+	    {
+	      /* We have a borrow from the hidden bit, so shift left 1.  */
+	      hi = (hi << 1) | (lo >> 59);
+	      lo = (((uint64_t) 1 << 60) - 1) & (lo << 1);
+	      *exp = *exp - 1;
+	    }
+	}
+    }
+  else
+    /* If the larger magnitude double is denormal then the smaller
+       one must be zero.  */
+    hi = hi << 1;
+
+  *lo64 = (hi << 60) | lo;
+  *hi64 = hi >> 4;
+}
+
+static inline long double
+ldbl_insert_mantissa (int sign, int exp, int64_t hi64, uint64_t lo64)
+{
+  union ibm_extended_long_double u;
+  int expnt2;
+  uint64_t hi, lo;
+
+  u.d[0].ieee.negative = sign;
+  u.d[1].ieee.negative = sign;
+  u.d[0].ieee.exponent = exp + IEEE754_DOUBLE_BIAS;
+  u.d[1].ieee.exponent = 0;
+  expnt2 = exp - 53 + IEEE754_DOUBLE_BIAS;
+
+  /* Expect 113 bits (112 bits + hidden) right justified in two longs.
+     The low order 53 bits (52 + hidden) go into the lower double */
+  lo = (lo64 >> 7) & (((uint64_t) 1 << 53) - 1);
+  /* The high order 53 bits (52 + hidden) go into the upper double */
+  hi = lo64 >> 60;
+  hi |= hi64 << 4;
+
+  if (lo != 0)
+    {
+      int lzcount;
+
+      /* hidden bit of low double controls rounding of the high double.
+	 If hidden is '1' and either the explicit mantissa is non-zero
+	 or hi is odd, then round up hi and adjust lo (2nd mantissa)
+	 plus change the sign of the low double to compensate.  */
+      if ((lo & ((uint64_t) 1 << 52)) != 0
+	  && ((hi & 1) != 0 || (lo & (((uint64_t) 1 << 52) - 1)) != 0))
+	{
+	  hi++;
+	  if ((hi & ((uint64_t) 1 << 53)) != 0)
+	    {
+	      hi = hi >> 1;
+	      u.d[0].ieee.exponent++;
+	    }
+	  u.d[1].ieee.negative = !sign;
+	  lo = ((uint64_t) 1 << 53) - lo;
+	}
+
+      /* Normalize the low double.  Shift the mantissa left until
+	 the hidden bit is '1' and adjust the exponent accordingly.  */
+
+      if (sizeof (lo) == sizeof (long))
+	lzcount = __builtin_clzl (lo);
+      else if ((lo >> 32) != 0)
+	lzcount = __builtin_clzl ((long) (lo >> 32));
+      else
+	lzcount = __builtin_clzl ((long) lo) + 32;
+      lzcount = lzcount - (64 - 53);
+      lo <<= lzcount;
+      expnt2 -= lzcount;
+
+      if (expnt2 >= 1)
+	/* Not denormal.  */
+	u.d[1].ieee.exponent = expnt2;
+      else
+	{
+	  /* Is denormal.  Note that biased exponent of 0 is treated
+	     as if it was 1, hence the extra shift.  */
+	  if (expnt2 > -53)
+	    lo >>= 1 - expnt2;
+	  else
+	    lo = 0;
+	}
+    }
+  else
+    u.d[1].ieee.negative = 0;
+
+  u.d[1].ieee.mantissa1 = lo;
+  u.d[1].ieee.mantissa0 = lo >> 32;
+  u.d[0].ieee.mantissa1 = hi;
+  u.d[0].ieee.mantissa0 = hi >> 32;
+  return u.ld;
+}
+
+/* Handy utility functions to pack/unpack/cononicalize and find the nearbyint
+   of long double implemented as double double.  */
+static inline long double
+default_ldbl_pack (double a, double aa)
+{
+  union ibm_extended_long_double u;
+  u.d[0].d = a;
+  u.d[1].d = aa;
+  return u.ld;
+}
+
+static inline void
+default_ldbl_unpack (long double l, double *a, double *aa)
+{
+  union ibm_extended_long_double u;
+  u.ld = l;
+  *a = u.d[0].d;
+  *aa = u.d[1].d;
+}
+
+#ifndef ldbl_pack
+# define ldbl_pack   default_ldbl_pack
+#endif
+#ifndef ldbl_unpack
+# define ldbl_unpack default_ldbl_unpack
+#endif
+
+/* Extract high double.  */
+#define ldbl_high(x) ((double) x)
+
+/* Convert a finite long double to canonical form.
+   Does not handle +/-Inf properly.  */
+static inline void
+ldbl_canonicalize (double *a, double *aa)
+{
+  double xh, xl;
+
+  xh = *a + *aa;
+  xl = (*a - xh) + *aa;
+  *a = xh;
+  *aa = xl;
+}
+
+/* Simple inline nearbyint (double) function.
+   Only works in the default rounding mode
+   but is useful in long double rounding functions.  */
+static inline double
+ldbl_nearbyint (double a)
+{
+  double two52 = 0x1p52;
+
+  if (__glibc_likely ((__builtin_fabs (a) < two52)))
+    {
+      if (__glibc_likely ((a > 0.0)))
+	{
+	  a += two52;
+	  a -= two52;
+	}
+      else if (__glibc_likely ((a < 0.0)))
+	{
+	  a = two52 - a;
+	  a = -(a - two52);
+	}
+    }
+  return a;
+}
+
+/* Canonicalize a result from an integer rounding function, in any
+   rounding mode.  *A and *AA are finite and integers, with *A being
+   nonzero; if the result is not already canonical, *AA is plus or
+   minus a power of 2 that does not exceed the least set bit in
+   *A.  */
+static inline void
+ldbl_canonicalize_int (double *a, double *aa)
+{
+  /* Previously we used EXTRACT_WORDS64 from math_private.h, but in order
+     to avoid including internal headers we duplicate that code here.  */
+  uint64_t ax, aax;
+  union { double value; uint64_t word; } extractor;
+  extractor.value = *a;
+  ax = extractor.word;
+  extractor.value = *aa;
+  aax = extractor.word;
+
+  int expdiff = ((ax >> 52) & 0x7ff) - ((aax >> 52) & 0x7ff);
+  if (expdiff <= 53)
+    {
+      if (expdiff == 53)
+	{
+	  /* Half way between two double values; noncanonical iff the
+	     low bit of A's mantissa is 1.  */
+	  if ((ax & 1) != 0)
+	    {
+	      *a += 2 * *aa;
+	      *aa = -*aa;
+	    }
+	}
+      else
+	{
+	  /* The sum can be represented in a single double.  */
+	  *a += *aa;
+	  *aa = 0;
+	}
+    }
+}
+
+#endif /* math_ldbl.h */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
new file mode 100644
index 0000000000..92b28b8b5d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/mpn2ldbl.c
@@ -0,0 +1,161 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <ieee754.h>
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+
+/* Need to set this when including gmp headers after system headers.  */
+#define HAVE_ALLOCA 1
+
+#include "gmp.h"
+#include "gmp-impl.h"
+
+/* Convert a multi-precision integer of the needed number of bits (106
+   for long double) and an integral power of two to a `long double' in
+   IBM extended format.  */
+
+long double
+__mpn_construct_long_double (mp_srcptr frac_ptr, int expt, int sign)
+{
+  union ibm_extended_long_double u;
+  unsigned long lzcount;
+  unsigned long long hi, lo;
+  int exponent2;
+
+  u.d[0].ieee.negative = sign;
+  u.d[1].ieee.negative = sign;
+  u.d[0].ieee.exponent = expt + IEEE754_DOUBLE_BIAS;
+  u.d[1].ieee.exponent = 0;
+  exponent2 = expt - 53 + IEEE754_DOUBLE_BIAS;
+
+#if BITS_PER_MP_LIMB == 32
+  /* The low order 53 bits (52 + hidden) go into the lower double */
+  lo = frac_ptr[0];
+  lo |= (frac_ptr[1] & ((1LL << (53 - 32)) - 1)) << 32;
+  /* The high order 53 bits (52 + hidden) go into the upper double */
+  hi = (frac_ptr[1] >> (53 - 32)) & ((1 << 11) - 1);
+  hi |= ((unsigned long long) frac_ptr[2]) << 11;
+  hi |= ((unsigned long long) frac_ptr[3]) << (32 + 11);
+#elif BITS_PER_MP_LIMB == 64
+  /* The low order 53 bits (52 + hidden) go into the lower double */
+  lo = frac_ptr[0] & (((mp_limb_t) 1 << 53) - 1);
+  /* The high order 53 bits (52 + hidden) go into the upper double */
+  hi = (frac_ptr[0] >> 53) & (((mp_limb_t) 1 << 11) - 1);
+  hi |= (frac_ptr[1] << 11);
+#else
+  #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+
+  if ((hi & (1LL << 52)) == 0 && (hi | lo) != 0)
+    {
+      /* denormal number  */
+      unsigned long long val = hi ? hi : lo;
+
+      if (sizeof (val) == sizeof (long))
+	lzcount = __builtin_clzl (val);
+      else if ((val >> 32) != 0)
+	lzcount = __builtin_clzl ((long) (val >> 32));
+      else
+	lzcount = __builtin_clzl ((long) val) + 32;
+      if (hi)
+	lzcount = lzcount - (64 - 53);
+      else
+	lzcount = lzcount + 53 - (64 - 53);
+
+      if (lzcount > u.d[0].ieee.exponent)
+	{
+	  lzcount = u.d[0].ieee.exponent;
+	  u.d[0].ieee.exponent = 0;
+	  exponent2 -= lzcount;
+	}
+      else
+	{
+	  u.d[0].ieee.exponent -= (lzcount - 1);
+	  exponent2 -= (lzcount - 1);
+	}
+
+      if (lzcount <= 53)
+	{
+	  hi = (hi << lzcount) | (lo >> (53 - lzcount));
+	  lo = (lo << lzcount) & ((1LL << 53) - 1);
+	}
+      else
+	{
+	  hi = lo << (lzcount - 53);
+	  lo = 0;
+	}
+    }
+
+  if (lo != 0)
+    {
+      /* hidden bit of low double controls rounding of the high double.
+	 If hidden is '1' and either the explicit mantissa is non-zero
+	 or hi is odd, then round up hi and adjust lo (2nd mantissa)
+	 plus change the sign of the low double to compensate.  */
+      if ((lo & (1LL << 52)) != 0
+	  && ((hi & 1) != 0 || (lo & ((1LL << 52) - 1)) != 0))
+	{
+	  hi++;
+	  if ((hi & (1LL << 53)) != 0)
+	    {
+	      hi >>= 1;
+	      u.d[0].ieee.exponent++;
+	      if (u.d[0].ieee.exponent == IEEE754_DOUBLE_BIAS + DBL_MAX_EXP)
+		{
+		  /* Overflow.  The appropriate overflowed result must
+		     be produced (if an infinity, that means the low
+		     part must be zero).  */
+		  __set_errno (ERANGE);
+		  return (sign ? -LDBL_MAX : LDBL_MAX) * LDBL_MAX;
+		}
+	    }
+	  u.d[1].ieee.negative = !sign;
+	  lo = (1LL << 53) - lo;
+	}
+
+      /* Normalize the low double.  Shift the mantissa left until
+	 the hidden bit is '1' and adjust the exponent accordingly.  */
+
+      if (sizeof (lo) == sizeof (long))
+	lzcount = __builtin_clzl (lo);
+      else if ((lo >> 32) != 0)
+	lzcount = __builtin_clzl ((long) (lo >> 32));
+      else
+	lzcount = __builtin_clzl ((long) lo) + 32;
+      lzcount = lzcount - (64 - 53);
+      lo <<= lzcount;
+      exponent2 -= lzcount;
+
+      if (exponent2 > 0)
+	u.d[1].ieee.exponent = exponent2;
+      else if (exponent2 > -53)
+	lo >>= 1 - exponent2;
+      else
+	lo = 0;
+    }
+  else
+    u.d[1].ieee.negative = 0;
+
+  u.d[1].ieee.mantissa1 = lo;
+  u.d[1].ieee.mantissa0 = lo >> 32;
+  u.d[0].ieee.mantissa1 = hi;
+  u.d[0].ieee.mantissa0 = hi >> 32;
+
+  return u.ld;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
new file mode 100644
index 0000000000..2f87ec17cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/printf_fphex.c
@@ -0,0 +1,139 @@
+/* Print floating point number in hexadecimal notation according to ISO C99.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define PRINT_FPHEX_LONG_DOUBLE \
+do {									      \
+      /* We have 105 bits of mantissa plus one implicit digit.  Since	      \
+	 106 bits are representable without rest using hexadecimal	      \
+	 digits we use only the implicit digits for the number before	      \
+	 the decimal point.  */						      \
+      unsigned long long int num0, num1;				      \
+      unsigned long long hi, lo;					      \
+      int ediff;							      \
+      union ibm_extended_long_double u;					      \
+      u.ld = fpnum.ldbl;						      \
+									      \
+      assert (sizeof (long double) == 16);				      \
+									      \
+      lo = ((long long)u.d[1].ieee.mantissa0 << 32) | u.d[1].ieee.mantissa1;  \
+      hi = ((long long)u.d[0].ieee.mantissa0 << 32) | u.d[0].ieee.mantissa1;  \
+      lo <<= 7; /* pre-shift lo to match ieee854.  */			      \
+      /* If the lower double is not a denormal or zero then set the hidden    \
+	 53rd bit.  */							      \
+      if (u.d[1].ieee.exponent != 0)					      \
+	lo |= (1ULL << (52 + 7));					      \
+      else								      \
+	lo <<= 1;							      \
+      /* The lower double is normalized separately from the upper.  We	      \
+	 may need to adjust the lower manitissa to reflect this.  */	      \
+      ediff = u.d[0].ieee.exponent - u.d[1].ieee.exponent - 53;		      \
+      if (ediff > 63)							      \
+	lo = 0;								      \
+      else if (ediff > 0)						      \
+	lo = lo >> ediff;						      \
+      else if (ediff < 0)						      \
+	lo = lo << -ediff;						      \
+      if (u.d[0].ieee.negative != u.d[1].ieee.negative			      \
+	  && lo != 0)							      \
+	{								      \
+	  lo = (1ULL << 60) - lo;					      \
+	  if (hi == 0L)							      \
+	    {								      \
+	      /* we have a borrow from the hidden bit, so shift left 1.  */   \
+	      hi = 0xffffffffffffeLL | (lo >> 59);			      \
+	      lo = 0xfffffffffffffffLL & (lo << 1);			      \
+	      u.d[0].ieee.exponent--;					      \
+	    }								      \
+	  else								      \
+	    hi--;							      \
+        }								      \
+      num1 = (hi << 60) | lo;						      \
+      num0 = hi >> 4;							      \
+									      \
+      zero_mantissa = (num0|num1) == 0;					      \
+									      \
+      if (sizeof (unsigned long int) > 6)				      \
+	{								      \
+	  numstr = _itoa_word (num1, numbuf + sizeof numbuf, 16,	      \
+			       info->spec == 'A');			      \
+	  wnumstr = _itowa_word (num1,					      \
+				 wnumbuf + sizeof (wnumbuf) / sizeof (wchar_t),\
+				 16, info->spec == 'A');		      \
+	}								      \
+      else								      \
+	{								      \
+	  numstr = _itoa (num1, numbuf + sizeof numbuf, 16,		      \
+			  info->spec == 'A');				      \
+	  wnumstr = _itowa (num1,					      \
+			    wnumbuf + sizeof (wnumbuf) / sizeof (wchar_t),    \
+			    16, info->spec == 'A');			      \
+	}								      \
+									      \
+      while (numstr > numbuf + (sizeof numbuf - 64 / 4))		      \
+	{								      \
+	  *--numstr = '0';						      \
+	  *--wnumstr = L'0';						      \
+	}								      \
+									      \
+      if (sizeof (unsigned long int) > 6)				      \
+	{								      \
+	  numstr = _itoa_word (num0, numstr, 16, info->spec == 'A');	      \
+	  wnumstr = _itowa_word (num0, wnumstr, 16, info->spec == 'A');	      \
+	}								      \
+      else								      \
+	{								      \
+	  numstr = _itoa (num0, numstr, 16, info->spec == 'A');		      \
+	  wnumstr = _itowa (num0, wnumstr, 16, info->spec == 'A');	      \
+	}								      \
+									      \
+      /* Fill with zeroes.  */						      \
+      while (numstr > numbuf + (sizeof numbuf - 112 / 4))		      \
+	{								      \
+	  *--numstr = '0';						      \
+	  *--wnumstr = L'0';						      \
+	}								      \
+									      \
+      leading = u.d[0].ieee.exponent == 0 ? '0' : '1';			      \
+									      \
+      exponent = u.d[0].ieee.exponent;					      \
+									      \
+      if (exponent == 0)						      \
+	{								      \
+	  if (zero_mantissa)						      \
+	    expnegative = 0;						      \
+	  else								      \
+	    {								      \
+	      /* This is a denormalized number.  */			      \
+	      expnegative = 1;						      \
+	      exponent = IEEE754_DOUBLE_BIAS - 1;			      \
+	    }								      \
+	}								      \
+      else if (exponent >= IEEE754_DOUBLE_BIAS)				      \
+	{								      \
+	  expnegative = 0;						      \
+	  exponent -= IEEE754_DOUBLE_BIAS;				      \
+	}								      \
+      else								      \
+	{								      \
+	  expnegative = 1;						      \
+	  exponent = -(exponent - IEEE754_DOUBLE_BIAS);			      \
+	}								      \
+} while (0)
+
+#include <stdio-common/printf_fphex.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
new file mode 100644
index 0000000000..aa9a9ba213
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
@@ -0,0 +1,63 @@
+/* @(#)s_asinh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_asinh.c,v 1.9 1995/05/12 04:57:37 jtc Exp $";
+#endif
+
+/* asinh(x)
+ * Method :
+ *	Based on
+ *		asinh(x) = sign(x) * log [ |x| + sqrt(x*x+1) ]
+ *	we have
+ *	asinh(x) := x  if  1+x*x=1,
+ *		 := sign(x)*(log(x)+ln2)) for large |x|, else
+ *		 := sign(x)*log(2|x|+1/(|x|+sqrt(x*x+1))) if|x|>2, else
+ *		 := sign(x)*log1p(|x| + x^2/(1 + sqrt(1+x^2)))
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+static const long double
+one =  1.00000000000000000000e+00L, /* 0x3ff0000000000000, 0 */
+ln2 =  0.6931471805599453094172321214581766L, /* 0x3fe62e42fefa39ef, 0x3c7abc9e3b398040 */
+huge=  1.00000000000000000000e+300L;
+
+long double __asinhl(long double x)
+{
+	long double t,w;
+	int64_t hx,ix;
+	double xhi;
+
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (hx, xhi);
+	ix = hx&0x7fffffffffffffffLL;
+	if(ix>=0x7ff0000000000000LL) return x+x;	/* x is inf or NaN */
+	if(ix< 0x3c70000000000000LL) {	/* |x|<2**-56 */
+	    math_check_force_underflow (x);
+	    if(huge+x>one) return x;	/* return x inexact except 0 */
+	}
+	if(ix>0x4370000000000000LL) {	/* |x| > 2**56 */
+	    w = __ieee754_logl(fabsl(x))+ln2;
+	} else if (ix>0x4000000000000000LL) {	/* 2**56 >= |x| > 2.0 */
+	    t = fabs(x);
+	    w = __ieee754_logl(2.0*t+one/(__ieee754_sqrtl(x*x+one)+t));
+	} else {		/* 2.0 >= |x| >= 2**-56 */
+	    t = x*x;
+	    w =__log1pl(fabsl(x)+t/(one+__ieee754_sqrtl(one+t)));
+	}
+	if(hx>0) return w; else return -w;
+}
+long_double_symbol (libm, __asinhl, asinhl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_atanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_atanl.c
new file mode 100644
index 0000000000..0560d820ae
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_atanl.c
@@ -0,0 +1,250 @@
+/*							s_atanl.c
+ *
+ *	Inverse circular tangent for 128-bit long double precision
+ *      (arctangent)
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, atanl();
+ *
+ * y = atanl( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns radian angle between -pi/2 and +pi/2 whose tangent is x.
+ *
+ * The function uses a rational approximation of the form
+ * t + t^3 P(t^2)/Q(t^2), optimized for |t| < 0.09375.
+ *
+ * The argument is reduced using the identity
+ *    arctan x - arctan u  =  arctan ((x-u)/(1 + ux))
+ * and an 83-entry lookup table for arctan u, with u = 0, 1/8, ..., 10.25.
+ * Use of the table improves the execution speed of the routine.
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      -19, 19       4e5       1.7e-34     5.4e-35
+ *
+ *
+ * WARNING:
+ *
+ * This program uses integer operations on bit fields of floating-point
+ * numbers.  It does not work with data structures other than the
+ * structure assumed.
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier <moshier@na-net.ornl.gov>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+/* arctan(k/8), k = 0, ..., 82 */
+static const long double atantbl[84] = {
+  0.0000000000000000000000000000000000000000E0L,
+  1.2435499454676143503135484916387102557317E-1L, /* arctan(0.125)  */
+  2.4497866312686415417208248121127581091414E-1L,
+  3.5877067027057222039592006392646049977698E-1L,
+  4.6364760900080611621425623146121440202854E-1L,
+  5.5859931534356243597150821640166127034645E-1L,
+  6.4350110879328438680280922871732263804151E-1L,
+  7.1882999962162450541701415152590465395142E-1L,
+  7.8539816339744830961566084581987572104929E-1L,
+  8.4415398611317100251784414827164750652594E-1L,
+  8.9605538457134395617480071802993782702458E-1L,
+  9.4200004037946366473793717053459358607166E-1L,
+  9.8279372324732906798571061101466601449688E-1L,
+  1.0191413442663497346383429170230636487744E0L,
+  1.0516502125483736674598673120862998296302E0L,
+  1.0808390005411683108871567292171998202703E0L,
+  1.1071487177940905030170654601785370400700E0L,
+  1.1309537439791604464709335155363278047493E0L,
+  1.1525719972156675180401498626127513797495E0L,
+  1.1722738811284763866005949441337046149712E0L,
+  1.1902899496825317329277337748293183376012E0L,
+  1.2068173702852525303955115800565576303133E0L,
+  1.2220253232109896370417417439225704908830E0L,
+  1.2360594894780819419094519711090786987027E0L,
+  1.2490457723982544258299170772810901230778E0L,
+  1.2610933822524404193139408812473357720101E0L,
+  1.2722973952087173412961937498224804940684E0L,
+  1.2827408797442707473628852511364955306249E0L,
+  1.2924966677897852679030914214070816845853E0L,
+  1.3016288340091961438047858503666855921414E0L,
+  1.3101939350475556342564376891719053122733E0L,
+  1.3182420510168370498593302023271362531155E0L,
+  1.3258176636680324650592392104284756311844E0L,
+  1.3329603993374458675538498697331558093700E0L,
+  1.3397056595989995393283037525895557411039E0L,
+  1.3460851583802539310489409282517796256512E0L,
+  1.3521273809209546571891479413898128509842E0L,
+  1.3578579772154994751124898859640585287459E0L,
+  1.3633001003596939542892985278250991189943E0L,
+  1.3684746984165928776366381936948529556191E0L,
+  1.3734007669450158608612719264449611486510E0L,
+  1.3780955681325110444536609641291551522494E0L,
+  1.3825748214901258580599674177685685125566E0L,
+  1.3868528702577214543289381097042486034883E0L,
+  1.3909428270024183486427686943836432060856E0L,
+  1.3948567013423687823948122092044222644895E0L,
+  1.3986055122719575950126700816114282335732E0L,
+  1.4021993871854670105330304794336492676944E0L,
+  1.4056476493802697809521934019958079881002E0L,
+  1.4089588955564736949699075250792569287156E0L,
+  1.4121410646084952153676136718584891599630E0L,
+  1.4152014988178669079462550975833894394929E0L,
+  1.4181469983996314594038603039700989523716E0L,
+  1.4209838702219992566633046424614466661176E0L,
+  1.4237179714064941189018190466107297503086E0L,
+  1.4263547484202526397918060597281265695725E0L,
+  1.4288992721907326964184700745371983590908E0L,
+  1.4313562697035588982240194668401779312122E0L,
+  1.4337301524847089866404719096698873648610E0L,
+  1.4360250423171655234964275337155008780675E0L,
+  1.4382447944982225979614042479354815855386E0L,
+  1.4403930189057632173997301031392126865694E0L,
+  1.4424730991091018200252920599377292525125E0L,
+  1.4444882097316563655148453598508037025938E0L,
+  1.4464413322481351841999668424758804165254E0L,
+  1.4483352693775551917970437843145232637695E0L,
+  1.4501726582147939000905940595923466567576E0L,
+  1.4519559822271314199339700039142990228105E0L,
+  1.4536875822280323362423034480994649820285E0L,
+  1.4553696664279718992423082296859928222270E0L,
+  1.4570043196511885530074841089245667532358E0L,
+  1.4585935117976422128825857356750737658039E0L,
+  1.4601391056210009726721818194296893361233E0L,
+  1.4616428638860188872060496086383008594310E0L,
+  1.4631064559620759326975975316301202111560E0L,
+  1.4645314639038178118428450961503371619177E0L,
+  1.4659193880646627234129855241049975398470E0L,
+  1.4672716522843522691530527207287398276197E0L,
+  1.4685896086876430842559640450619880951144E0L,
+  1.4698745421276027686510391411132998919794E0L,
+  1.4711276743037345918528755717617308518553E0L,
+  1.4723501675822635384916444186631899205983E0L,
+  1.4735431285433308455179928682541563973416E0L, /* arctan(10.25) */
+  1.5707963267948966192313216916397514420986E0L  /* pi/2 */
+};
+
+
+/* arctan t = t + t^3 p(t^2) / q(t^2)
+   |t| <= 0.09375
+   peak relative error 5.3e-37 */
+
+static const long double
+  p0 = -4.283708356338736809269381409828726405572E1L,
+  p1 = -8.636132499244548540964557273544599863825E1L,
+  p2 = -5.713554848244551350855604111031839613216E1L,
+  p3 = -1.371405711877433266573835355036413750118E1L,
+  p4 = -8.638214309119210906997318946650189640184E-1L,
+  q0 = 1.285112506901621042780814422948906537959E2L,
+  q1 = 3.361907253914337187957855834229672347089E2L,
+  q2 = 3.180448303864130128268191635189365331680E2L,
+  q3 = 1.307244136980865800160844625025280344686E2L,
+  q4 = 2.173623741810414221251136181221172551416E1L;
+  /* q5 = 1.000000000000000000000000000000000000000E0 */
+
+
+long double
+__atanl (long double x)
+{
+  int32_t k, sign, lx;
+  long double t, u, p, q;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS (k, lx, xhi);
+  sign = k & 0x80000000;
+
+  /* Check for IEEE special cases.  */
+  k &= 0x7fffffff;
+  if (k >= 0x7ff00000)
+    {
+      /* NaN. */
+      if (((k - 0x7ff00000) | lx) != 0)
+	return (x + x);
+
+      /* Infinity. */
+      if (sign)
+	return -atantbl[83];
+      else
+	return atantbl[83];
+    }
+
+  if (k <= 0x3c800000) /* |x| <= 2**-55.  */
+    {
+      math_check_force_underflow (x);
+      /* Raise inexact.  */
+      if (1e300L + x > 0.0)
+	return x;
+    }
+
+  if (k >= 0x46c00000) /* |x| >= 2**109.  */
+    {
+      /* Saturate result to {-,+}pi/2.  */
+      if (sign)
+	return -atantbl[83];
+      else
+	return atantbl[83];
+    }
+
+  if (sign)
+      x = -x;
+
+  if (k >= 0x40248000) /* 10.25 */
+    {
+      k = 83;
+      t = -1.0/x;
+    }
+  else
+    {
+      /* Index of nearest table element.
+	 Roundoff to integer is asymmetrical to avoid cancellation when t < 0
+         (cf. fdlibm). */
+      k = 8.0 * x + 0.25;
+      u = 0.125 * k;
+      /* Small arctan argument.  */
+      t = (x - u) / (1.0 + x * u);
+    }
+
+  /* Arctan of small argument t.  */
+  u = t * t;
+  p =     ((((p4 * u) + p3) * u + p2) * u + p1) * u + p0;
+  q = ((((u + q4) * u + q3) * u + q2) * u + q1) * u + q0;
+  u = t * u * p / q  +  t;
+
+  /* arctan x = arctan u  +  arctan t */
+  u = atantbl[k] + u;
+  if (sign)
+    return (-u);
+  else
+    return u;
+}
+
+long_double_symbol (libm, __atanl, atanl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
new file mode 100644
index 0000000000..64bfc46414
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
@@ -0,0 +1,10 @@
+/* Looks like we can use ieee854 s_cbrtl.c as is for IBM extended format. */
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+
+#define _Float128 long double
+#define L(x) x ## L
+
+#include <sysdeps/ieee754/ldbl-128/s_cbrtl.c>
+long_double_symbol (libm, __cbrtl, cbrtl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ceill.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
new file mode 100644
index 0000000000..c451825c62
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ceill.c
@@ -0,0 +1,62 @@
+/* Ceil (round to +inf) long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+
+long double
+__ceill (long double x)
+{
+  double xh, xl, hi, lo;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Return Inf, Nan, +/-0 unchanged.  */
+  if (__builtin_expect (xh != 0.0
+			&& __builtin_isless (__builtin_fabs (xh),
+					     __builtin_inf ()), 1))
+    {
+      hi = __ceil (xh);
+      if (hi != xh)
+	{
+	  /* The high part is not an integer; the low part does not
+	     affect the result.  */
+	  xh = hi;
+	  xl = 0;
+	}
+      else
+	{
+	  /* The high part is a nonzero integer.  */
+	  lo = __ceil (xl);
+	  xh = hi;
+	  xl = lo;
+	  ldbl_canonicalize_int (&xh, &xl);
+	}
+    }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
+
+  return ldbl_pack (xh, xl);
+}
+
+long_double_symbol (libm, __ceill, ceill);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c
new file mode 100644
index 0000000000..3b8ec1a74d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_copysignl.c
@@ -0,0 +1,41 @@
+/* s_copysignl.c -- long double version of s_copysign.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * copysignl(long double x, long double y)
+ * copysignl(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __copysignl(long double x, long double y)
+{
+  if (signbit (x) != signbit (y))
+    x = -x;
+  return x;
+}
+
+#if IS_IN (libm)
+long_double_symbol (libm, __copysignl, copysignl);
+#else
+long_double_symbol (libc, __copysignl, copysignl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cosl.c
new file mode 100644
index 0000000000..54c6cc77d2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_cosl.c
@@ -0,0 +1,88 @@
+/* s_cosl.c -- long double version of s_cos.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* cosl(x)
+ * Return cosine function of x.
+ *
+ * kernel function:
+ *	__kernel_sinl		... sine function on [-pi/4,pi/4]
+ *	__kernel_cosl		... cosine function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __cosl(long double x)
+{
+	long double y[2],z=0.0L;
+	int64_t n, ix;
+	double xhi;
+
+    /* High word of x. */
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (ix, xhi);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffffffffffffLL;
+	if(ix <= 0x3fe921fb54442d18LL)
+	  return __kernel_cosl(x,z);
+
+    /* cos(Inf or NaN) is NaN */
+	else if (ix>=0x7ff0000000000000LL) {
+	    if (ix == 0x7ff0000000000000LL)
+		__set_errno (EDOM);
+	    return x-x;
+	}
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    switch(n&3) {
+		case 0:
+		    return  __kernel_cosl(y[0],y[1]);
+		case 1:
+		    return -__kernel_sinl(y[0],y[1],1);
+		case 2:
+		    return -__kernel_cosl(y[0],y[1]);
+		default:
+		    return  __kernel_sinl(y[0],y[1],1);
+	    }
+	}
+}
+long_double_symbol (libm, __cosl, cosl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_erfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
new file mode 100644
index 0000000000..7b761b0afa
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
@@ -0,0 +1,970 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Modifications and expansions for 128-bit long double are
+   Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+   and are incorporated herein by permission of the author.  The author
+   reserves the right to distribute this material elsewhere under different
+   copying permissions.  These modifications are distributed here under
+   the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* double erf(double x)
+ * double erfc(double x)
+ *			     x
+ *		      2      |\
+ *     erf(x)  =  ---------  | exp(-t*t)dt
+ *		   sqrt(pi) \|
+ *			     0
+ *
+ *     erfc(x) =  1-erf(x)
+ *  Note that
+ *		erf(-x) = -erf(x)
+ *		erfc(-x) = 2 - erfc(x)
+ *
+ * Method:
+ *	1.  erf(x)  = x + x*R(x^2) for |x| in [0, 7/8]
+ *	   Remark. The formula is derived by noting
+ *          erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
+ *	   and that
+ *          2/sqrt(pi) = 1.128379167095512573896158903121545171688
+ *	   is close to one.
+ *
+ *      1a. erf(x)  = 1 - erfc(x), for |x| > 1.0
+ *          erfc(x) = 1 - erf(x)  if |x| < 1/4
+ *
+ *      2. For |x| in [7/8, 1], let s = |x| - 1, and
+ *         c = 0.84506291151 rounded to single (24 bits)
+ *	erf(s + c)  = sign(x) * (c  + P1(s)/Q1(s))
+ *	   Remark: here we use the taylor series expansion at x=1.
+ *		erf(1+s) = erf(1) + s*Poly(s)
+ *			 = 0.845.. + P1(s)/Q1(s)
+ *	   Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
+ *
+ *      3. For x in [1/4, 5/4],
+ *	erfc(s + const)  = erfc(const)  + s P1(s)/Q1(s)
+ *              for const = 1/4, 3/8, ..., 9/8
+ *              and 0 <= s <= 1/8 .
+ *
+ *      4. For x in [5/4, 107],
+ *	erfc(x) = (1/x)*exp(-x*x-0.5625 + R(z))
+ *              z=1/x^2
+ *         The interval is partitioned into several segments
+ *         of width 1/8 in 1/x.
+ *	erf(x) = 1.0 - erfc(x) if x < 25.6283 else
+ *	erf(x) = sign(x)*(1.0 - tiny)
+ *
+ *      Note1:
+ *	   To compute exp(-x*x-0.5625+R/S), let s be a single
+ *	   precision number and s := x; then
+ *		-x*x = -s*s + (s-x)*(s+x)
+ *	        exp(-x*x-0.5626+R/S) =
+ *			exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
+ *      Note2:
+ *	   Here 4 and 5 make use of the asymptotic series
+ *			  exp(-x*x)
+ *		erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
+ *			  x*sqrt(pi)
+ *
+ *      Note3:
+ * 	   For x higher than 25.6283, erf(x) underflows.
+ *
+ *      5. For inf > x >= 107
+ *	erf(x)  = sign(x) *(1 - tiny)  (raise inexact)
+ *	erfc(x) = tiny*tiny (raise underflow) if x > 0
+ *			= 2 - tiny if x<0
+ *
+ *      7. Special case:
+ *	erf(0)  = 0, erf(inf)  = 1, erf(-inf) = -1,
+ *	erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
+ *		erfc/erf(NaN) is NaN
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+#include <fix-int-fp-convert-zero.h>
+
+/* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static long double
+neval (long double x, const long double *p, int n)
+{
+  long double y;
+
+  p += n;
+  y = *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+/* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
+
+static long double
+deval (long double x, const long double *p, int n)
+{
+  long double y;
+
+  p += n;
+  y = x + *p--;
+  do
+    {
+      y = y * x + *p--;
+    }
+  while (--n > 0);
+  return y;
+}
+
+
+
+static const long double
+tiny = 1e-300L,
+  one = 1.0L,
+  two = 2.0L,
+  /* 2/sqrt(pi) - 1 */
+  efx = 1.2837916709551257389615890312154517168810E-1L;
+
+
+/* erf(x)  = x  + x R(x^2)
+   0 <= x <= 7/8
+   Peak relative error 1.8e-35  */
+#define NTN1 8
+static const long double TN1[NTN1 + 1] =
+{
+ -3.858252324254637124543172907442106422373E10L,
+  9.580319248590464682316366876952214879858E10L,
+  1.302170519734879977595901236693040544854E10L,
+  2.922956950426397417800321486727032845006E9L,
+  1.764317520783319397868923218385468729799E8L,
+  1.573436014601118630105796794840834145120E7L,
+  4.028077380105721388745632295157816229289E5L,
+  1.644056806467289066852135096352853491530E4L,
+  3.390868480059991640235675479463287886081E1L
+};
+#define NTD1 8
+static const long double TD1[NTD1 + 1] =
+{
+  -3.005357030696532927149885530689529032152E11L,
+  -1.342602283126282827411658673839982164042E11L,
+  -2.777153893355340961288511024443668743399E10L,
+  -3.483826391033531996955620074072768276974E9L,
+  -2.906321047071299585682722511260895227921E8L,
+  -1.653347985722154162439387878512427542691E7L,
+  -6.245520581562848778466500301865173123136E5L,
+  -1.402124304177498828590239373389110545142E4L,
+  -1.209368072473510674493129989468348633579E2L
+/* 1.0E0 */
+};
+
+
+/* erf(z+1)  = erf_const + P(z)/Q(z)
+   -.125 <= z <= 0
+   Peak relative error 7.3e-36  */
+static const long double erf_const = 0.845062911510467529296875L;
+#define NTN2 8
+static const long double TN2[NTN2 + 1] =
+{
+ -4.088889697077485301010486931817357000235E1L,
+  7.157046430681808553842307502826960051036E3L,
+ -2.191561912574409865550015485451373731780E3L,
+  2.180174916555316874988981177654057337219E3L,
+  2.848578658049670668231333682379720943455E2L,
+  1.630362490952512836762810462174798925274E2L,
+  6.317712353961866974143739396865293596895E0L,
+  2.450441034183492434655586496522857578066E1L,
+  5.127662277706787664956025545897050896203E-1L
+};
+#define NTD2 8
+static const long double TD2[NTD2 + 1] =
+{
+  1.731026445926834008273768924015161048885E4L,
+  1.209682239007990370796112604286048173750E4L,
+  1.160950290217993641320602282462976163857E4L,
+  5.394294645127126577825507169061355698157E3L,
+  2.791239340533632669442158497532521776093E3L,
+  8.989365571337319032943005387378993827684E2L,
+  2.974016493766349409725385710897298069677E2L,
+  6.148192754590376378740261072533527271947E1L,
+  1.178502892490738445655468927408440847480E1L
+ /* 1.0E0 */
+};
+
+
+/* erfc(x + 0.25) = erfc(0.25) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.4e-35  */
+#define NRNr13 8
+static const long double RNr13[NRNr13 + 1] =
+{
+ -2.353707097641280550282633036456457014829E3L,
+  3.871159656228743599994116143079870279866E2L,
+ -3.888105134258266192210485617504098426679E2L,
+ -2.129998539120061668038806696199343094971E1L,
+ -8.125462263594034672468446317145384108734E1L,
+  8.151549093983505810118308635926270319660E0L,
+ -5.033362032729207310462422357772568553670E0L,
+ -4.253956621135136090295893547735851168471E-2L,
+ -8.098602878463854789780108161581050357814E-2L
+};
+#define NRDr13 7
+static const long double RDr13[NRDr13 + 1] =
+{
+  2.220448796306693503549505450626652881752E3L,
+  1.899133258779578688791041599040951431383E2L,
+  1.061906712284961110196427571557149268454E3L,
+  7.497086072306967965180978101974566760042E1L,
+  2.146796115662672795876463568170441327274E2L,
+  1.120156008362573736664338015952284925592E1L,
+  2.211014952075052616409845051695042741074E1L,
+  6.469655675326150785692908453094054988938E-1L
+ /* 1.0E0 */
+};
+/* erfc(0.25) = C13a + C13b to extra precision.  */
+static const long double C13a = 0.723663330078125L;
+static const long double C13b = 1.0279753638067014931732235184287934646022E-5L;
+
+
+/* erfc(x + 0.375) = erfc(0.375) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.2e-35  */
+#define NRNr14 8
+static const long double RNr14[NRNr14 + 1] =
+{
+ -2.446164016404426277577283038988918202456E3L,
+  6.718753324496563913392217011618096698140E2L,
+ -4.581631138049836157425391886957389240794E2L,
+ -2.382844088987092233033215402335026078208E1L,
+ -7.119237852400600507927038680970936336458E1L,
+  1.313609646108420136332418282286454287146E1L,
+ -6.188608702082264389155862490056401365834E0L,
+ -2.787116601106678287277373011101132659279E-2L,
+ -2.230395570574153963203348263549700967918E-2L
+};
+#define NRDr14 7
+static const long double RDr14[NRDr14 + 1] =
+{
+  2.495187439241869732696223349840963702875E3L,
+  2.503549449872925580011284635695738412162E2L,
+  1.159033560988895481698051531263861842461E3L,
+  9.493751466542304491261487998684383688622E1L,
+  2.276214929562354328261422263078480321204E2L,
+  1.367697521219069280358984081407807931847E1L,
+  2.276988395995528495055594829206582732682E1L,
+  7.647745753648996559837591812375456641163E-1L
+ /* 1.0E0 */
+};
+/* erfc(0.375) = C14a + C14b to extra precision.  */
+static const long double C14a = 0.5958709716796875L;
+static const long double C14b = 1.2118885490201676174914080878232469565953E-5L;
+
+/* erfc(x + 0.5) = erfc(0.5) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 4.7e-36  */
+#define NRNr15 8
+static const long double RNr15[NRNr15 + 1] =
+{
+ -2.624212418011181487924855581955853461925E3L,
+  8.473828904647825181073831556439301342756E2L,
+ -5.286207458628380765099405359607331669027E2L,
+ -3.895781234155315729088407259045269652318E1L,
+ -6.200857908065163618041240848728398496256E1L,
+  1.469324610346924001393137895116129204737E1L,
+ -6.961356525370658572800674953305625578903E0L,
+  5.145724386641163809595512876629030548495E-3L,
+  1.990253655948179713415957791776180406812E-2L
+};
+#define NRDr15 7
+static const long double RDr15[NRDr15 + 1] =
+{
+  2.986190760847974943034021764693341524962E3L,
+  5.288262758961073066335410218650047725985E2L,
+  1.363649178071006978355113026427856008978E3L,
+  1.921707975649915894241864988942255320833E2L,
+  2.588651100651029023069013885900085533226E2L,
+  2.628752920321455606558942309396855629459E1L,
+  2.455649035885114308978333741080991380610E1L,
+  1.378826653595128464383127836412100939126E0L
+  /* 1.0E0 */
+};
+/* erfc(0.5) = C15a + C15b to extra precision.  */
+static const long double C15a = 0.4794921875L;
+static const long double C15b = 7.9346869534623172533461080354712635484242E-6L;
+
+/* erfc(x + 0.625) = erfc(0.625) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 5.1e-36  */
+#define NRNr16 8
+static const long double RNr16[NRNr16 + 1] =
+{
+ -2.347887943200680563784690094002722906820E3L,
+  8.008590660692105004780722726421020136482E2L,
+ -5.257363310384119728760181252132311447963E2L,
+ -4.471737717857801230450290232600243795637E1L,
+ -4.849540386452573306708795324759300320304E1L,
+  1.140885264677134679275986782978655952843E1L,
+ -6.731591085460269447926746876983786152300E0L,
+  1.370831653033047440345050025876085121231E-1L,
+  2.022958279982138755020825717073966576670E-2L,
+};
+#define NRDr16 7
+static const long double RDr16[NRDr16 + 1] =
+{
+  3.075166170024837215399323264868308087281E3L,
+  8.730468942160798031608053127270430036627E2L,
+  1.458472799166340479742581949088453244767E3L,
+  3.230423687568019709453130785873540386217E2L,
+  2.804009872719893612081109617983169474655E2L,
+  4.465334221323222943418085830026979293091E1L,
+  2.612723259683205928103787842214809134746E1L,
+  2.341526751185244109722204018543276124997E0L,
+  /* 1.0E0 */
+};
+/* erfc(0.625) = C16a + C16b to extra precision.  */
+static const long double C16a = 0.3767547607421875L;
+static const long double C16b = 4.3570693945275513594941232097252997287766E-6L;
+
+/* erfc(x + 0.75) = erfc(0.75) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.7e-35  */
+#define NRNr17 8
+static const long double RNr17[NRNr17 + 1] =
+{
+  -1.767068734220277728233364375724380366826E3L,
+  6.693746645665242832426891888805363898707E2L,
+  -4.746224241837275958126060307406616817753E2L,
+  -2.274160637728782675145666064841883803196E1L,
+  -3.541232266140939050094370552538987982637E1L,
+  6.988950514747052676394491563585179503865E0L,
+  -5.807687216836540830881352383529281215100E0L,
+  3.631915988567346438830283503729569443642E-1L,
+  -1.488945487149634820537348176770282391202E-2L
+};
+#define NRDr17 7
+static const long double RDr17[NRDr17 + 1] =
+{
+  2.748457523498150741964464942246913394647E3L,
+  1.020213390713477686776037331757871252652E3L,
+  1.388857635935432621972601695296561952738E3L,
+  3.903363681143817750895999579637315491087E2L,
+  2.784568344378139499217928969529219886578E2L,
+  5.555800830216764702779238020065345401144E1L,
+  2.646215470959050279430447295801291168941E1L,
+  2.984905282103517497081766758550112011265E0L,
+  /* 1.0E0 */
+};
+/* erfc(0.75) = C17a + C17b to extra precision.  */
+static const long double C17a = 0.2888336181640625L;
+static const long double C17b = 1.0748182422368401062165408589222625794046E-5L;
+
+
+/* erfc(x + 0.875) = erfc(0.875) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 2.2e-35  */
+#define NRNr18 8
+static const long double RNr18[NRNr18 + 1] =
+{
+ -1.342044899087593397419622771847219619588E3L,
+  6.127221294229172997509252330961641850598E2L,
+ -4.519821356522291185621206350470820610727E2L,
+  1.223275177825128732497510264197915160235E1L,
+ -2.730789571382971355625020710543532867692E1L,
+  4.045181204921538886880171727755445395862E0L,
+ -4.925146477876592723401384464691452700539E0L,
+  5.933878036611279244654299924101068088582E-1L,
+ -5.557645435858916025452563379795159124753E-2L
+};
+#define NRDr18 7
+static const long double RDr18[NRDr18 + 1] =
+{
+  2.557518000661700588758505116291983092951E3L,
+  1.070171433382888994954602511991940418588E3L,
+  1.344842834423493081054489613250688918709E3L,
+  4.161144478449381901208660598266288188426E2L,
+  2.763670252219855198052378138756906980422E2L,
+  5.998153487868943708236273854747564557632E1L,
+  2.657695108438628847733050476209037025318E1L,
+  3.252140524394421868923289114410336976512E0L,
+  /* 1.0E0 */
+};
+/* erfc(0.875) = C18a + C18b to extra precision.  */
+static const long double C18a = 0.215911865234375L;
+static const long double C18b = 1.3073705765341685464282101150637224028267E-5L;
+
+/* erfc(x + 1.0) = erfc(1.0) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 1.6e-35  */
+#define NRNr19 8
+static const long double RNr19[NRNr19 + 1] =
+{
+ -1.139180936454157193495882956565663294826E3L,
+  6.134903129086899737514712477207945973616E2L,
+ -4.628909024715329562325555164720732868263E2L,
+  4.165702387210732352564932347500364010833E1L,
+ -2.286979913515229747204101330405771801610E1L,
+  1.870695256449872743066783202326943667722E0L,
+ -4.177486601273105752879868187237000032364E0L,
+  7.533980372789646140112424811291782526263E-1L,
+ -8.629945436917752003058064731308767664446E-2L
+};
+#define NRDr19 7
+static const long double RDr19[NRDr19 + 1] =
+{
+  2.744303447981132701432716278363418643778E3L,
+  1.266396359526187065222528050591302171471E3L,
+  1.466739461422073351497972255511919814273E3L,
+  4.868710570759693955597496520298058147162E2L,
+  2.993694301559756046478189634131722579643E2L,
+  6.868976819510254139741559102693828237440E1L,
+  2.801505816247677193480190483913753613630E1L,
+  3.604439909194350263552750347742663954481E0L,
+  /* 1.0E0 */
+};
+/* erfc(1.0) = C19a + C19b to extra precision.  */
+static const long double C19a = 0.15728759765625L;
+static const long double C19b = 1.1609394035130658779364917390740703933002E-5L;
+
+/* erfc(x + 1.125) = erfc(1.125) + x R(x)
+   0 <= x < 0.125
+   Peak relative error 3.6e-36  */
+#define NRNr20 8
+static const long double RNr20[NRNr20 + 1] =
+{
+ -9.652706916457973956366721379612508047640E2L,
+  5.577066396050932776683469951773643880634E2L,
+ -4.406335508848496713572223098693575485978E2L,
+  5.202893466490242733570232680736966655434E1L,
+ -1.931311847665757913322495948705563937159E1L,
+ -9.364318268748287664267341457164918090611E-2L,
+ -3.306390351286352764891355375882586201069E0L,
+  7.573806045289044647727613003096916516475E-1L,
+ -9.611744011489092894027478899545635991213E-2L
+};
+#define NRDr20 7
+static const long double RDr20[NRDr20 + 1] =
+{
+  3.032829629520142564106649167182428189014E3L,
+  1.659648470721967719961167083684972196891E3L,
+  1.703545128657284619402511356932569292535E3L,
+  6.393465677731598872500200253155257708763E2L,
+  3.489131397281030947405287112726059221934E2L,
+  8.848641738570783406484348434387611713070E1L,
+  3.132269062552392974833215844236160958502E1L,
+  4.430131663290563523933419966185230513168E0L
+ /* 1.0E0 */
+};
+/* erfc(1.125) = C20a + C20b to extra precision.  */
+static const long double C20a = 0.111602783203125L;
+static const long double C20b = 8.9850951672359304215530728365232161564636E-6L;
+
+/* erfc(1/x) = 1/x exp (-1/x^2 - 0.5625 + R(1/x^2))
+   7/8 <= 1/x < 1
+   Peak relative error 1.4e-35  */
+#define NRNr8 9
+static const long double RNr8[NRNr8 + 1] =
+{
+  3.587451489255356250759834295199296936784E1L,
+  5.406249749087340431871378009874875889602E2L,
+  2.931301290625250886238822286506381194157E3L,
+  7.359254185241795584113047248898753470923E3L,
+  9.201031849810636104112101947312492532314E3L,
+  5.749697096193191467751650366613289284777E3L,
+  1.710415234419860825710780802678697889231E3L,
+  2.150753982543378580859546706243022719599E2L,
+  8.740953582272147335100537849981160931197E0L,
+  4.876422978828717219629814794707963640913E-2L
+};
+#define NRDr8 8
+static const long double RDr8[NRDr8 + 1] =
+{
+  6.358593134096908350929496535931630140282E1L,
+  9.900253816552450073757174323424051765523E2L,
+  5.642928777856801020545245437089490805186E3L,
+  1.524195375199570868195152698617273739609E4L,
+  2.113829644500006749947332935305800887345E4L,
+  1.526438562626465706267943737310282977138E4L,
+  5.561370922149241457131421914140039411782E3L,
+  9.394035530179705051609070428036834496942E2L,
+  6.147019596150394577984175188032707343615E1L
+  /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp (-1/x^2 - 0.5625 + R(1/x^2))
+   0.75 <= 1/x <= 0.875
+   Peak relative error 2.0e-36  */
+#define NRNr7 9
+static const long double RNr7[NRNr7 + 1] =
+{
+ 1.686222193385987690785945787708644476545E1L,
+ 1.178224543567604215602418571310612066594E3L,
+ 1.764550584290149466653899886088166091093E4L,
+ 1.073758321890334822002849369898232811561E5L,
+ 3.132840749205943137619839114451290324371E5L,
+ 4.607864939974100224615527007793867585915E5L,
+ 3.389781820105852303125270837910972384510E5L,
+ 1.174042187110565202875011358512564753399E5L,
+ 1.660013606011167144046604892622504338313E4L,
+ 6.700393957480661937695573729183733234400E2L
+};
+#define NRDr7 9
+static const long double RDr7[NRDr7 + 1] =
+{
+-1.709305024718358874701575813642933561169E3L,
+-3.280033887481333199580464617020514788369E4L,
+-2.345284228022521885093072363418750835214E5L,
+-8.086758123097763971926711729242327554917E5L,
+-1.456900414510108718402423999575992450138E6L,
+-1.391654264881255068392389037292702041855E6L,
+-6.842360801869939983674527468509852583855E5L,
+-1.597430214446573566179675395199807533371E5L,
+-1.488876130609876681421645314851760773480E4L,
+-3.511762950935060301403599443436465645703E2L
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   5/8 <= 1/x < 3/4
+   Peak relative error 1.9e-35  */
+#define NRNr6 9
+static const long double RNr6[NRNr6 + 1] =
+{
+ 1.642076876176834390623842732352935761108E0L,
+ 1.207150003611117689000664385596211076662E2L,
+ 2.119260779316389904742873816462800103939E3L,
+ 1.562942227734663441801452930916044224174E4L,
+ 5.656779189549710079988084081145693580479E4L,
+ 1.052166241021481691922831746350942786299E5L,
+ 9.949798524786000595621602790068349165758E4L,
+ 4.491790734080265043407035220188849562856E4L,
+ 8.377074098301530326270432059434791287601E3L,
+ 4.506934806567986810091824791963991057083E2L
+};
+#define NRDr6 9
+static const long double RDr6[NRDr6 + 1] =
+{
+-1.664557643928263091879301304019826629067E2L,
+-3.800035902507656624590531122291160668452E3L,
+-3.277028191591734928360050685359277076056E4L,
+-1.381359471502885446400589109566587443987E5L,
+-3.082204287382581873532528989283748656546E5L,
+-3.691071488256738343008271448234631037095E5L,
+-2.300482443038349815750714219117566715043E5L,
+-6.873955300927636236692803579555752171530E4L,
+-8.262158817978334142081581542749986845399E3L,
+-2.517122254384430859629423488157361983661E2L
+ /* 1.00 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/2 <= 1/x < 5/8
+   Peak relative error 4.6e-36  */
+#define NRNr5 10
+static const long double RNr5[NRNr5 + 1] =
+{
+-3.332258927455285458355550878136506961608E-3L,
+-2.697100758900280402659586595884478660721E-1L,
+-6.083328551139621521416618424949137195536E0L,
+-6.119863528983308012970821226810162441263E1L,
+-3.176535282475593173248810678636522589861E2L,
+-8.933395175080560925809992467187963260693E2L,
+-1.360019508488475978060917477620199499560E3L,
+-1.075075579828188621541398761300910213280E3L,
+-4.017346561586014822824459436695197089916E2L,
+-5.857581368145266249509589726077645791341E1L,
+-2.077715925587834606379119585995758954399E0L
+};
+#define NRDr5 9
+static const long double RDr5[NRDr5 + 1] =
+{
+ 3.377879570417399341550710467744693125385E-1L,
+ 1.021963322742390735430008860602594456187E1L,
+ 1.200847646592942095192766255154827011939E2L,
+ 7.118915528142927104078182863387116942836E2L,
+ 2.318159380062066469386544552429625026238E3L,
+ 4.238729853534009221025582008928765281620E3L,
+ 4.279114907284825886266493994833515580782E3L,
+ 2.257277186663261531053293222591851737504E3L,
+ 5.570475501285054293371908382916063822957E2L,
+ 5.142189243856288981145786492585432443560E1L
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   3/8 <= 1/x < 1/2
+   Peak relative error 2.0e-36  */
+#define NRNr4 10
+static const long double RNr4[NRNr4 + 1] =
+{
+ 3.258530712024527835089319075288494524465E-3L,
+ 2.987056016877277929720231688689431056567E-1L,
+ 8.738729089340199750734409156830371528862E0L,
+ 1.207211160148647782396337792426311125923E2L,
+ 8.997558632489032902250523945248208224445E2L,
+ 3.798025197699757225978410230530640879762E3L,
+ 9.113203668683080975637043118209210146846E3L,
+ 1.203285891339933238608683715194034900149E4L,
+ 8.100647057919140328536743641735339740855E3L,
+ 2.383888249907144945837976899822927411769E3L,
+ 2.127493573166454249221983582495245662319E2L
+};
+#define NRDr4 10
+static const long double RDr4[NRDr4 + 1] =
+{
+-3.303141981514540274165450687270180479586E-1L,
+-1.353768629363605300707949368917687066724E1L,
+-2.206127630303621521950193783894598987033E2L,
+-1.861800338758066696514480386180875607204E3L,
+-8.889048775872605708249140016201753255599E3L,
+-2.465888106627948210478692168261494857089E4L,
+-3.934642211710774494879042116768390014289E4L,
+-3.455077258242252974937480623730228841003E4L,
+-1.524083977439690284820586063729912653196E4L,
+-2.810541887397984804237552337349093953857E3L,
+-1.343929553541159933824901621702567066156E2L
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/4 <= 1/x < 3/8
+   Peak relative error 8.4e-37  */
+#define NRNr3 11
+static const long double RNr3[NRNr3 + 1] =
+{
+-1.952401126551202208698629992497306292987E-6L,
+-2.130881743066372952515162564941682716125E-4L,
+-8.376493958090190943737529486107282224387E-3L,
+-1.650592646560987700661598877522831234791E-1L,
+-1.839290818933317338111364667708678163199E0L,
+-1.216278715570882422410442318517814388470E1L,
+-4.818759344462360427612133632533779091386E1L,
+-1.120994661297476876804405329172164436784E2L,
+-1.452850765662319264191141091859300126931E2L,
+-9.485207851128957108648038238656777241333E1L,
+-2.563663855025796641216191848818620020073E1L,
+-1.787995944187565676837847610706317833247E0L
+};
+#define NRDr3 10
+static const long double RDr3[NRDr3 + 1] =
+{
+ 1.979130686770349481460559711878399476903E-4L,
+ 1.156941716128488266238105813374635099057E-2L,
+ 2.752657634309886336431266395637285974292E-1L,
+ 3.482245457248318787349778336603569327521E0L,
+ 2.569347069372696358578399521203959253162E1L,
+ 1.142279000180457419740314694631879921561E2L,
+ 3.056503977190564294341422623108332700840E2L,
+ 4.780844020923794821656358157128719184422E2L,
+ 4.105972727212554277496256802312730410518E2L,
+ 1.724072188063746970865027817017067646246E2L,
+ 2.815939183464818198705278118326590370435E1L
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/8 <= 1/x < 1/4
+   Peak relative error 1.5e-36  */
+#define NRNr2 11
+static const long double RNr2[NRNr2 + 1] =
+{
+-2.638914383420287212401687401284326363787E-8L,
+-3.479198370260633977258201271399116766619E-6L,
+-1.783985295335697686382487087502222519983E-4L,
+-4.777876933122576014266349277217559356276E-3L,
+-7.450634738987325004070761301045014986520E-2L,
+-7.068318854874733315971973707247467326619E-1L,
+-4.113919921935944795764071670806867038732E0L,
+-1.440447573226906222417767283691888875082E1L,
+-2.883484031530718428417168042141288943905E1L,
+-2.990886974328476387277797361464279931446E1L,
+-1.325283914915104866248279787536128997331E1L,
+-1.572436106228070195510230310658206154374E0L
+};
+#define NRDr2 10
+static const long double RDr2[NRDr2 + 1] =
+{
+ 2.675042728136731923554119302571867799673E-6L,
+ 2.170997868451812708585443282998329996268E-4L,
+ 7.249969752687540289422684951196241427445E-3L,
+ 1.302040375859768674620410563307838448508E-1L,
+ 1.380202483082910888897654537144485285549E0L,
+ 8.926594113174165352623847870299170069350E0L,
+ 3.521089584782616472372909095331572607185E1L,
+ 8.233547427533181375185259050330809105570E1L,
+ 1.072971579885803033079469639073292840135E2L,
+ 6.943803113337964469736022094105143158033E1L,
+ 1.775695341031607738233608307835017282662E1L
+ /* 1.0E0 */
+};
+
+/* erfc(1/x) = 1/x exp(-1/x^2 - 0.5625 + R(1/x^2))
+   1/128 <= 1/x < 1/8
+   Peak relative error 2.2e-36  */
+#define NRNr1 9
+static const long double RNr1[NRNr1 + 1] =
+{
+-4.250780883202361946697751475473042685782E-8L,
+-5.375777053288612282487696975623206383019E-6L,
+-2.573645949220896816208565944117382460452E-4L,
+-6.199032928113542080263152610799113086319E-3L,
+-8.262721198693404060380104048479916247786E-2L,
+-6.242615227257324746371284637695778043982E-1L,
+-2.609874739199595400225113299437099626386E0L,
+-5.581967563336676737146358534602770006970E0L,
+-5.124398923356022609707490956634280573882E0L,
+-1.290865243944292370661544030414667556649E0L
+};
+#define NRDr1 8
+static const long double RDr1[NRDr1 + 1] =
+{
+ 4.308976661749509034845251315983612976224E-6L,
+ 3.265390126432780184125233455960049294580E-4L,
+ 9.811328839187040701901866531796570418691E-3L,
+ 1.511222515036021033410078631914783519649E-1L,
+ 1.289264341917429958858379585970225092274E0L,
+ 6.147640356182230769548007536914983522270E0L,
+ 1.573966871337739784518246317003956180750E1L,
+ 1.955534123435095067199574045529218238263E1L,
+ 9.472613121363135472247929109615785855865E0L
+  /* 1.0E0 */
+};
+
+
+long double
+__erfl (long double x)
+{
+  long double a, y, z;
+  int32_t i, ix, hx;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  GET_HIGH_WORD (hx, xhi);
+  ix = hx & 0x7fffffff;
+
+  if (ix >= 0x7ff00000)
+    {				/* erf(nan)=nan */
+      i = ((uint32_t) hx >> 31) << 1;
+      return (long double) (1 - i) + one / x;	/* erf(+-inf)=+-1 */
+    }
+
+  if (ix >= 0x3ff00000) /* |x| >= 1.0 */
+    {
+      if (ix >= 0x4039A0DE)
+	{
+	/* __erfcl (x) underflows if x > 25.6283 */
+	  if ((hx & 0x80000000) == 0)
+	    return one-tiny;
+	  else
+	    return tiny-one;
+	}
+      else
+	{
+	  y = __erfcl (x);
+	  return (one - y);
+	}
+    }
+  a = x;
+  if ((hx & 0x80000000) != 0)
+    a = -a;
+  z = x * x;
+  if (ix < 0x3fec0000)  /* a < 0.875 */
+    {
+      if (ix < 0x3c600000) /* |x|<2**-57 */
+	{
+	  if (ix < 0x00800000)
+	    {
+	      /* erf (-0) = -0.  Unfortunately, for IBM extended double
+		 0.0625 * (16.0 * x + (16.0 * efx) * x) for x = -0
+		 evaluates to 0.  */
+	      if (x == 0)
+		return x;
+	      long double ret = 0.0625 * (16.0 * x + (16.0 * efx) * x);
+	      math_check_force_underflow (ret);
+	      return ret;
+	    }
+	  return x + efx * x;
+	}
+      y = a + a * neval (z, TN1, NTN1) / deval (z, TD1, NTD1);
+    }
+  else
+    {
+      a = a - one;
+      y = erf_const + neval (a, TN2, NTN2) / deval (a, TD2, NTD2);
+    }
+
+  if (hx & 0x80000000) /* x < 0 */
+    y = -y;
+  return( y );
+}
+
+long_double_symbol (libm, __erfl, erfl);
+long double
+__erfcl (long double x)
+{
+  long double y, z, p, r;
+  int32_t i, ix;
+  uint32_t hx;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  GET_HIGH_WORD (hx, xhi);
+  ix = hx & 0x7fffffff;
+
+  if (ix >= 0x7ff00000)
+    {				/* erfc(nan)=nan */
+      /* erfc(+-inf)=0,2 */
+      long double ret = (long double) ((hx >> 31) << 1) + one / x;
+      if (FIX_INT_FP_CONVERT_ZERO && ret == 0.0L)
+	return 0.0L;
+      return ret;
+    }
+
+  if (ix < 0x3fd00000) /* |x| <1/4 */
+    {
+      if (ix < 0x38d00000) /* |x|<2**-114 */
+	return one - x;
+      return one - __erfl (x);
+    }
+  if (ix < 0x3ff40000) /* 1.25 */
+    {
+      if ((hx & 0x80000000) != 0)
+	x = -x;
+      i = 8.0 * x;
+      switch (i)
+	{
+	case 2:
+	  z = x - 0.25L;
+	  y = C13b + z * neval (z, RNr13, NRNr13) / deval (z, RDr13, NRDr13);
+	  y += C13a;
+	  break;
+	case 3:
+	  z = x - 0.375L;
+	  y = C14b + z * neval (z, RNr14, NRNr14) / deval (z, RDr14, NRDr14);
+	  y += C14a;
+	  break;
+	case 4:
+	  z = x - 0.5L;
+	  y = C15b + z * neval (z, RNr15, NRNr15) / deval (z, RDr15, NRDr15);
+	  y += C15a;
+	  break;
+	case 5:
+	  z = x - 0.625L;
+	  y = C16b + z * neval (z, RNr16, NRNr16) / deval (z, RDr16, NRDr16);
+	  y += C16a;
+	  break;
+	case 6:
+	  z = x - 0.75L;
+	  y = C17b + z * neval (z, RNr17, NRNr17) / deval (z, RDr17, NRDr17);
+	  y += C17a;
+	  break;
+	case 7:
+	  z = x - 0.875L;
+	  y = C18b + z * neval (z, RNr18, NRNr18) / deval (z, RDr18, NRDr18);
+	  y += C18a;
+	  break;
+	case 8:
+	  z = x - 1.0L;
+	  y = C19b + z * neval (z, RNr19, NRNr19) / deval (z, RDr19, NRDr19);
+	  y += C19a;
+	  break;
+	default: /* i == 9.  */
+	  z = x - 1.125L;
+	  y = C20b + z * neval (z, RNr20, NRNr20) / deval (z, RDr20, NRDr20);
+	  y += C20a;
+	  break;
+	}
+      if (hx & 0x80000000)
+	y = 2.0L - y;
+      return y;
+    }
+  /* 1.25 < |x| < 107 */
+  if (ix < 0x405ac000)
+    {
+      /* x < -9 */
+      if (hx >= 0xc0220000)
+	return two - tiny;
+
+      if ((hx & 0x80000000) != 0)
+	x = -x;
+      z = one / (x * x);
+      i = 8.0 / x;
+      switch (i)
+	{
+	default:
+	case 0:
+	  p = neval (z, RNr1, NRNr1) / deval (z, RDr1, NRDr1);
+	  break;
+	case 1:
+	  p = neval (z, RNr2, NRNr2) / deval (z, RDr2, NRDr2);
+	  break;
+	case 2:
+	  p = neval (z, RNr3, NRNr3) / deval (z, RDr3, NRDr3);
+	  break;
+	case 3:
+	  p = neval (z, RNr4, NRNr4) / deval (z, RDr4, NRDr4);
+	  break;
+	case 4:
+	  p = neval (z, RNr5, NRNr5) / deval (z, RDr5, NRDr5);
+	  break;
+	case 5:
+	  p = neval (z, RNr6, NRNr6) / deval (z, RDr6, NRDr6);
+	  break;
+	case 6:
+	  p = neval (z, RNr7, NRNr7) / deval (z, RDr7, NRDr7);
+	  break;
+	case 7:
+	  p = neval (z, RNr8, NRNr8) / deval (z, RDr8, NRDr8);
+	  break;
+	}
+      z = (float) x;
+      r = __ieee754_expl (-z * z - 0.5625) *
+	__ieee754_expl ((z - x) * (z + x) + p);
+      if ((hx & 0x80000000) == 0)
+	{
+	  long double ret = r / x;
+	  if (ret == 0)
+	    __set_errno (ERANGE);
+	  return ret;
+	}
+      else
+	return two - r / x;
+    }
+  else
+    {
+      if ((hx & 0x80000000) == 0)
+	{
+	  __set_errno (ERANGE);
+	  return tiny * tiny;
+	}
+      else
+	return two - tiny;
+    }
+}
+
+long_double_symbol (libm, __erfcl, erfcl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
new file mode 100644
index 0000000000..42d57c6eec
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_expm1l.c
@@ -0,0 +1,152 @@
+/*							expm1l.c
+ *
+ *	Exponential function, minus 1
+ *      128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, expm1l();
+ *
+ * y = expm1l( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns e (2.71828...) raised to the x power, minus one.
+ *
+ * Range reduction is accomplished by separating the argument
+ * into an integer k and fraction f such that
+ *
+ *     x    k  f
+ *    e  = 2  e.
+ *
+ * An expansion x + .5 x^2 + x^3 R(x) approximates exp(f) - 1
+ * in the basic range [-0.5 ln 2, 0.5 ln 2].
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE    -79,+MAXLOG    100,000     1.7e-34     4.5e-35
+ *
+ */
+
+/* Copyright 2001 by Stephen L. Moshier
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+/* exp(x) - 1 = x + 0.5 x^2 + x^3 P(x)/Q(x)
+   -.5 ln 2  <  x  <  .5 ln 2
+   Theoretical peak relative error = 8.1e-36  */
+
+static const long double
+  P0 = 2.943520915569954073888921213330863757240E8L,
+  P1 = -5.722847283900608941516165725053359168840E7L,
+  P2 = 8.944630806357575461578107295909719817253E6L,
+  P3 = -7.212432713558031519943281748462837065308E5L,
+  P4 = 4.578962475841642634225390068461943438441E4L,
+  P5 = -1.716772506388927649032068540558788106762E3L,
+  P6 = 4.401308817383362136048032038528753151144E1L,
+  P7 = -4.888737542888633647784737721812546636240E-1L,
+  Q0 = 1.766112549341972444333352727998584753865E9L,
+  Q1 = -7.848989743695296475743081255027098295771E8L,
+  Q2 = 1.615869009634292424463780387327037251069E8L,
+  Q3 = -2.019684072836541751428967854947019415698E7L,
+  Q4 = 1.682912729190313538934190635536631941751E6L,
+  Q5 = -9.615511549171441430850103489315371768998E4L,
+  Q6 = 3.697714952261803935521187272204485251835E3L,
+  Q7 = -8.802340681794263968892934703309274564037E1L,
+  /* Q8 = 1.000000000000000000000000000000000000000E0 */
+/* C1 + C2 = ln 2 */
+
+  C1 = 6.93145751953125E-1L,
+  C2 = 1.428606820309417232121458176568075500134E-6L,
+/* ln 2^-114 */
+  minarg = -7.9018778583833765273564461846232128760607E1L, big = 1e290L;
+
+
+long double
+__expm1l (long double x)
+{
+  long double px, qx, xx;
+  int32_t ix, lx, sign;
+  int k;
+  double xhi;
+
+  /* Detect infinity and NaN.  */
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS (ix, lx, xhi);
+  sign = ix & 0x80000000;
+  ix &= 0x7fffffff;
+  if (!sign && ix >= 0x40600000)
+    return __expl (x);
+  if (ix >= 0x7ff00000)
+    {
+      /* Infinity (which must be negative infinity). */
+      if (((ix - 0x7ff00000) | lx) == 0)
+	return -1.0L;
+      /* NaN.  Invalid exception if signaling.  */
+      return x + x;
+    }
+
+  /* expm1(+- 0) = +- 0.  */
+  if ((ix | lx) == 0)
+    return x;
+
+  /* Minimum value.  */
+  if (x < minarg)
+    return (4.0/big - 1.0L);
+
+  /* Express x = ln 2 (k + remainder), remainder not exceeding 1/2. */
+  xx = C1 + C2;			/* ln 2. */
+  px = __floorl (0.5 + x / xx);
+  k = px;
+  /* remainder times ln 2 */
+  x -= px * C1;
+  x -= px * C2;
+
+  /* Approximate exp(remainder ln 2).  */
+  px = (((((((P7 * x
+	      + P6) * x
+	     + P5) * x + P4) * x + P3) * x + P2) * x + P1) * x + P0) * x;
+
+  qx = (((((((x
+	      + Q7) * x
+	     + Q6) * x + Q5) * x + Q4) * x + Q3) * x + Q2) * x + Q1) * x + Q0;
+
+  xx = x * x;
+  qx = x + (0.5 * xx + xx * px / qx);
+
+  /* exp(x) = exp(k ln 2) exp(remainder ln 2) = 2^k exp(remainder ln 2).
+
+  We have qx = exp(remainder ln 2) - 1, so
+  exp(x) - 1 = 2^k (qx + 1) - 1
+             = 2^k qx + 2^k - 1.  */
+
+  px = __ldexpl (1.0L, k);
+  x = px * qx + (px - 1.0);
+  return x;
+}
+libm_hidden_def (__expm1l)
+long_double_symbol (libm, __expm1l, expm1l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c
new file mode 100644
index 0000000000..c801c97065
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fabsl.c
@@ -0,0 +1,44 @@
+/* s_fabsl.c -- long double version of s_fabs.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+
+/*
+ * fabsl(x) returns the absolute value of x.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __fabsl(long double x)
+{
+	u_int64_t hx, lx;
+	double xhi, xlo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	lx = lx ^ ( hx & 0x8000000000000000LL );
+	hx = hx & 0x7fffffffffffffffLL;
+	INSERT_WORDS64 (xhi, hx);
+	INSERT_WORDS64 (xlo, lx);
+	x = ldbl_pack (xhi, xlo);
+	return x;
+}
+long_double_symbol (libm, __fabsl, fabsl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_finitel.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_finitel.c
new file mode 100644
index 0000000000..3b9e3de292
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_finitel.c
@@ -0,0 +1,49 @@
+/* s_finitel.c -- long double version of s_finite.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * finitel(x) returns 1 is x is finite, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+int
+___finitel (long double x)
+{
+  uint64_t hx;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (hx, xhi);
+  hx &= 0x7ff0000000000000LL;
+  hx -= 0x7ff0000000000000LL;
+  return hx >> 63;
+}
+hidden_ver (___finitel, __finitel)
+weak_alias (___finitel, ____finitel)
+#if IS_IN (libm)
+long_double_symbol (libm, ____finitel, finitel);
+long_double_symbol (libm, ___finitel, __finitel);
+#else
+long_double_symbol (libc, ____finitel, finitel);
+long_double_symbol (libc, ___finitel, __finitel);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_floorl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
new file mode 100644
index 0000000000..6b837c7bcd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_floorl.c
@@ -0,0 +1,62 @@
+/* Round to int long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+
+long double
+__floorl (long double x)
+{
+  double xh, xl, hi, lo;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Return Inf, Nan, +/-0 unchanged.  */
+  if (__builtin_expect (xh != 0.0
+			&& __builtin_isless (__builtin_fabs (xh),
+					     __builtin_inf ()), 1))
+    {
+      hi = __floor (xh);
+      if (hi != xh)
+	{
+	  /* The high part is not an integer; the low part does not
+	     affect the result.  */
+	  xh = hi;
+	  xl = 0;
+	}
+      else
+	{
+	  /* The high part is a nonzero integer.  */
+	  lo = __floor (xl);
+	  xh = hi;
+	  xl = lo;
+	  ldbl_canonicalize_int (&xh, &xl);
+	}
+    }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
+
+  return ldbl_pack (xh, xl);
+}
+
+long_double_symbol (libm, __floorl, floorl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fmal.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
new file mode 100644
index 0000000000..9098e79df9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fmal.c
@@ -0,0 +1,257 @@
+/* Compute x * y + z as ternary operation.
+   Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by David Flaherty <flaherty@linux.vnet.ibm.com>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+#include <mul_split.h>
+#include <stdlib.h>
+
+/* Calculate X + Y exactly and store the result in *HI + *LO.  It is
+   given that |X| >= |Y| and the values are small enough that no
+   overflow occurs.  */
+
+static void
+add_split (double *hi, double *lo, double x, double y)
+{
+  /* Apply Dekker's algorithm.  */
+  *hi = x + y;
+  *lo = (x - *hi) + y;
+}
+
+/* Value with extended range, used in intermediate computations.  */
+typedef struct
+{
+  /* Value in [0.5, 1), as from frexp, or 0.  */
+  double val;
+  /* Exponent of power of 2 it is multiplied by, or 0 for zero.  */
+  int exp;
+} ext_val;
+
+/* Store D as an ext_val value.  */
+
+static void
+store_ext_val (ext_val *v, double d)
+{
+  v->val = __frexp (d, &v->exp);
+}
+
+/* Store X * Y as ext_val values *V0 and *V1.  */
+
+static void
+mul_ext_val (ext_val *v0, ext_val *v1, double x, double y)
+{
+  int xexp, yexp;
+  x = __frexp (x, &xexp);
+  y = __frexp (y, &yexp);
+  double hi, lo;
+  mul_split (&hi, &lo, x, y);
+  store_ext_val (v0, hi);
+  if (hi != 0)
+    v0->exp += xexp + yexp;
+  store_ext_val (v1, lo);
+  if (lo != 0)
+    v1->exp += xexp + yexp;
+}
+
+/* Compare absolute values of ext_val values pointed to by P and Q for
+   qsort.  */
+
+static int
+compare (const void *p, const void *q)
+{
+  const ext_val *pe = p;
+  const ext_val *qe = q;
+  if (pe->val == 0)
+    return qe->val == 0 ? 0 : -1;
+  else if (qe->val == 0)
+    return 1;
+  else if (pe->exp < qe->exp)
+    return -1;
+  else if (pe->exp > qe->exp)
+    return 1;
+  else
+    {
+      double pd = fabs (pe->val);
+      double qd = fabs (qe->val);
+      if (pd < qd)
+	return -1;
+      else if (pd == qd)
+	return 0;
+      else
+	return 1;
+    }
+}
+
+/* Calculate *X + *Y exactly, storing the high part in *X (rounded to
+   nearest) and the low part in *Y.  It is given that |X| >= |Y|.  */
+
+static void
+add_split_ext (ext_val *x, ext_val *y)
+{
+  int xexp = x->exp, yexp = y->exp;
+  if (y->val == 0 || xexp - yexp > 53)
+    return;
+  double hi = x->val;
+  double lo = __scalbn (y->val, yexp - xexp);
+  add_split (&hi, &lo, hi, lo);
+  store_ext_val (x, hi);
+  if (hi != 0)
+    x->exp += xexp;
+  store_ext_val (y, lo);
+  if (lo != 0)
+    y->exp += xexp;
+}
+
+long double
+__fmal (long double x, long double y, long double z)
+{
+  double xhi, xlo, yhi, ylo, zhi, zlo;
+  int64_t hx, hy, hz;
+  int xexp, yexp, zexp;
+  double scale_val;
+  int scale_exp;
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  xexp = (hx & 0x7ff0000000000000LL) >> 52;
+  ldbl_unpack (y, &yhi, &ylo);
+  EXTRACT_WORDS64 (hy, yhi);
+  yexp = (hy & 0x7ff0000000000000LL) >> 52;
+  ldbl_unpack (z, &zhi, &zlo);
+  EXTRACT_WORDS64 (hz, zhi);
+  zexp = (hz & 0x7ff0000000000000LL) >> 52;
+
+  /* If z is Inf or NaN, but x and y are finite, avoid any exceptions
+     from computing x * y.  */
+  if (zexp == 0x7ff && xexp != 0x7ff && yexp != 0x7ff)
+    return (z + x) + y;
+
+  /* If z is zero and x are y are nonzero, compute the result as x * y
+     to avoid the wrong sign of a zero result if x * y underflows to
+     0.  */
+  if (z == 0 && x != 0 && y != 0)
+    return x * y;
+
+  /* If x or y or z is Inf/NaN, or if x * y is zero, compute as x * y
+     + z.  */
+  if (xexp == 0x7ff || yexp == 0x7ff || zexp == 0x7ff
+      || x == 0 || y == 0)
+    return (x * y) + z;
+
+  {
+    SET_RESTORE_ROUND (FE_TONEAREST);
+
+    ext_val vals[10];
+    store_ext_val (&vals[0], zhi);
+    store_ext_val (&vals[1], zlo);
+    mul_ext_val (&vals[2], &vals[3], xhi, yhi);
+    mul_ext_val (&vals[4], &vals[5], xhi, ylo);
+    mul_ext_val (&vals[6], &vals[7], xlo, yhi);
+    mul_ext_val (&vals[8], &vals[9], xlo, ylo);
+    qsort (vals, 10, sizeof (ext_val), compare);
+    /* Add up the values so that each element of VALS has absolute
+       value at most equal to the last set bit of the next nonzero
+       element.  */
+    for (size_t i = 0; i <= 8; i++)
+      {
+	add_split_ext (&vals[i + 1], &vals[i]);
+	qsort (vals + i + 1, 9 - i, sizeof (ext_val), compare);
+      }
+    /* Add up the values in the other direction, so that each element
+       of VALS has absolute value less than 5ulp of the next
+       value.  */
+    size_t dstpos = 9;
+    for (size_t i = 1; i <= 9; i++)
+      {
+	if (vals[dstpos].val == 0)
+	  {
+	    vals[dstpos] = vals[9 - i];
+	    vals[9 - i].val = 0;
+	    vals[9 - i].exp = 0;
+	  }
+	else
+	  {
+	    add_split_ext (&vals[dstpos], &vals[9 - i]);
+	    if (vals[9 - i].val != 0)
+	      {
+		if (9 - i < dstpos - 1)
+		  {
+		    vals[dstpos - 1] = vals[9 - i];
+		    vals[9 - i].val = 0;
+		    vals[9 - i].exp = 0;
+		  }
+		dstpos--;
+	      }
+	  }
+      }
+    /* If the result is an exact zero, it results from adding two
+       values with opposite signs; recompute in the original rounding
+       mode.  */
+    if (vals[9].val == 0)
+      goto zero_out;
+    /* Adding the top three values will now give a result as accurate
+       as the underlying long double arithmetic.  */
+    add_split_ext (&vals[9], &vals[8]);
+    if (compare (&vals[8], &vals[7]) < 0)
+      {
+	ext_val tmp = vals[7];
+	vals[7] = vals[8];
+	vals[8] = tmp;
+      }
+    add_split_ext (&vals[8], &vals[7]);
+    add_split_ext (&vals[9], &vals[8]);
+    if (vals[9].exp > DBL_MAX_EXP || vals[9].exp < DBL_MIN_EXP)
+      {
+	/* Overflow or underflow, with the result depending on the
+	   original rounding mode, but not on the low part computed
+	   here.  */
+	scale_val = vals[9].val;
+	scale_exp = vals[9].exp;
+	goto scale_out;
+      }
+    double hi = __scalbn (vals[9].val, vals[9].exp);
+    double lo = __scalbn (vals[8].val, vals[8].exp);
+    /* It is possible that the low part became subnormal and was
+       rounded so that the result is no longer canonical.  */
+    ldbl_canonicalize (&hi, &lo);
+    long double ret = ldbl_pack (hi, lo);
+    math_check_force_underflow (ret);
+    return ret;
+  }
+
+ scale_out:
+  scale_val = math_opt_barrier (scale_val);
+  scale_val = __scalbn (scale_val, scale_exp);
+  if (fabs (scale_val) == DBL_MAX)
+    return __copysignl (LDBL_MAX, scale_val);
+  math_check_force_underflow (scale_val);
+  return scale_val;
+
+ zero_out:;
+  double zero = 0.0;
+  zero = math_opt_barrier (zero);
+  return zero - zero;
+}
+#if IS_IN (libm)
+long_double_symbol (libm, __fmal, fmal);
+#else
+long_double_symbol (libc, __fmal, fmal);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
new file mode 100644
index 0000000000..82d520bc7f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fpclassifyl.c
@@ -0,0 +1,97 @@
+/* Return classification value corresponding to argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+  /*
+   *		hx                  lx
+   * +NaN	7ffn nnnn nnnn nnnn xxxx xxxx xxxx xxxx
+   * -NaN	fffn nnnn nnnn nnnn xxxx xxxx xxxx xxxx
+   * +Inf	7ff0 0000 0000 0000 xxxx xxxx xxxx xxxx
+   * -Inf	fff0 0000 0000 0000 xxxx xxxx xxxx xxxx
+   * +0		0000 0000 0000 0000 xxxx xxxx xxxx xxxx
+   * -0		8000 0000 0000 0000 xxxx xxxx xxxx xxxx
+   * +normal	0360 0000 0000 0000 0000 0000 0000 0000 (smallest)
+   * -normal	8360 0000 0000 0000 0000 0000 0000 0000 (smallest)
+   * +normal	7fef ffff ffff ffff 7c8f ffff ffff fffe (largest)
+   * +normal	ffef ffff ffff ffff fc8f ffff ffff fffe (largest)
+   * +denorm	0360 0000 0000 0000 8000 0000 0000 0001 (largest)
+   * -denorm	8360 0000 0000 0000 0000 0000 0000 0001 (largest)
+   * +denorm	000n nnnn nnnn nnnn xxxx xxxx xxxx xxxx
+   * -denorm	800n nnnn nnnn nnnn xxxx xxxx xxxx xxxx
+   */
+
+int
+___fpclassifyl (long double x)
+{
+  u_int64_t hx, lx;
+  int retval = FP_NORMAL;
+  double xhi, xlo;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  if ((hx & 0x7ff0000000000000ULL) == 0x7ff0000000000000ULL) {
+      /* +/-NaN or +/-Inf */
+      if (hx & 0x000fffffffffffffULL) {
+	  /* +/-NaN */
+	  retval = FP_NAN;
+      } else {
+	  retval = FP_INFINITE;
+      }
+  } else {
+      /* +/-zero or +/- normal or +/- denormal */
+      if (hx & 0x7fffffffffffffffULL) {
+	  /* +/- normal or +/- denormal */
+	  if ((hx & 0x7ff0000000000000ULL) > 0x0360000000000000ULL) {
+	      /* +/- normal */
+	      retval = FP_NORMAL;
+	  } else {
+	      if ((hx & 0x7ff0000000000000ULL) == 0x0360000000000000ULL) {
+		  EXTRACT_WORDS64 (lx, xlo);
+		  if ((lx & 0x7fffffffffffffff)	/* lower is non-zero */
+		  && ((lx^hx) & 0x8000000000000000ULL)) { /* and sign differs */
+		      /* +/- denormal */
+		      retval = FP_SUBNORMAL;
+		  } else {
+		      /* +/- normal */
+		      retval = FP_NORMAL;
+		  }
+	      } else {
+		  /* +/- denormal */
+		  retval = FP_SUBNORMAL;
+	      }
+	  }
+      } else {
+	  /* +/- zero */
+	  retval = FP_ZERO;
+      }
+  }
+
+  return retval;
+}
+long_double_symbol (libm, ___fpclassifyl, __fpclassifyl);
+#ifdef __LONG_DOUBLE_MATH_OPTIONAL
+libm_hidden_ver (___fpclassifyl, __fpclassifyl)
+#else
+libm_hidden_def (__fpclassifyl)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c
new file mode 100644
index 0000000000..210c5d2ed4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_frexpl.c
@@ -0,0 +1,148 @@
+/* s_frexpl.c -- long double version of s_frexp.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * for non-zero x
+ *	x = frexpl(arg,&exp);
+ * return a long double fp quantity x such that 0.5 <= |x| <1.0
+ * and the corresponding binary exponent "exp". That is
+ *	arg = x*2^exp.
+ * If arg is inf, 0.0, or NaN, then frexpl(arg,&exp) returns arg
+ * with *exp=0.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __frexpl(long double x, int *eptr)
+{
+  uint64_t hx, lx, ix, ixl;
+  int64_t explo, expon;
+  double xhi, xlo;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  EXTRACT_WORDS64 (lx, xlo);
+  ixl = 0x7fffffffffffffffULL & lx;
+  ix  = 0x7fffffffffffffffULL & hx;
+  expon = 0;
+  if (ix >= 0x7ff0000000000000ULL || ix == 0)
+    {
+      /* 0,inf,nan.  */
+      *eptr = expon;
+      return x + x;
+    }
+  expon = ix >> 52;
+  if (expon == 0)
+    {
+      /* Denormal high double, the low double must be 0.0.  */
+      int cnt;
+
+      /* Normalize.  */
+      if (sizeof (ix) == sizeof (long))
+	cnt = __builtin_clzl (ix);
+      else if ((ix >> 32) != 0)
+	cnt = __builtin_clzl ((long) (ix >> 32));
+      else
+	cnt = __builtin_clzl ((long) ix) + 32;
+      cnt = cnt - 12;
+      expon -= cnt;
+      ix <<= cnt + 1;
+    }
+  expon -= 1022;
+  ix &= 0x000fffffffffffffULL;
+  hx &= 0x8000000000000000ULL;
+  hx |= (1022LL << 52) | ix;
+
+  if (ixl != 0)
+    {
+      /* If the high double is an exact power of two and the low
+	 double has the opposite sign, then the exponent calculated
+	 from the high double is one too big.  */
+      if (ix == 0
+	  && (int64_t) (hx ^ lx) < 0)
+	{
+	  hx += 1LL << 52;
+	  expon -= 1;
+	}
+
+      explo = ixl >> 52;
+      if (explo == 0)
+	{
+	  /* The low double started out as a denormal.  Normalize its
+	     mantissa and adjust the exponent.  */
+	  int cnt;
+
+	  if (sizeof (ixl) == sizeof (long))
+	    cnt = __builtin_clzl (ixl);
+	  else if ((ixl >> 32) != 0)
+	    cnt = __builtin_clzl ((long) (ixl >> 32));
+	  else
+	    cnt = __builtin_clzl ((long) ixl) + 32;
+	  cnt = cnt - 12;
+	  explo -= cnt;
+	  ixl <<= cnt + 1;
+	}
+
+      /* With variable precision we can't assume much about the
+	 magnitude of the returned low double.  It may even be a
+	 denormal.  */
+      explo -= expon;
+      ixl &= 0x000fffffffffffffULL;
+      lx  &= 0x8000000000000000ULL;
+      if (explo <= 0)
+	{
+	  /* Handle denormal low double.  */
+	  if (explo > -52)
+	    {
+	      ixl |= 1LL << 52;
+	      ixl >>= 1 - explo;
+	    }
+	  else
+	    {
+	      ixl = 0;
+	      lx = 0;
+	      if ((hx & 0x7ff0000000000000ULL) == (1023LL << 52))
+		{
+		  /* Oops, the adjustment we made above for values a
+		     little smaller than powers of two turned out to
+		     be wrong since the returned low double will be
+		     zero.  This can happen if the input was
+		     something weird like 0x1p1000 - 0x1p-1000.  */
+		  hx -= 1LL << 52;
+		  expon += 1;
+		}
+	    }
+	  explo = 0;
+	}
+      lx |= (explo << 52) | ixl;
+    }
+
+  INSERT_WORDS64 (xhi, hx);
+  INSERT_WORDS64 (xlo, lx);
+  x = ldbl_pack (xhi, xlo);
+  *eptr = expon;
+  return x;
+}
+#if IS_IN (libm)
+long_double_symbol (libm, __frexpl, frexpl);
+#else
+long_double_symbol (libc, __frexpl, frexpl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c
new file mode 100644
index 0000000000..e323b4c25b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 0
+#define FUNC fromfpl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
new file mode 100644
index 0000000000..8b9108e84d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpl_main.c
@@ -0,0 +1,147 @@
+/* Round to integer type.  ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#define BIAS 0x3ff
+#define MANT_DIG 53
+
+#if UNSIGNED
+# define RET_TYPE uintmax_t
+#else
+# define RET_TYPE intmax_t
+#endif
+
+#include <fromfp.h>
+
+RET_TYPE
+FUNC (long double x, int round, unsigned int width)
+{
+  double hi, lo;
+  if (width > INTMAX_WIDTH)
+    width = INTMAX_WIDTH;
+  uint64_t hx, lx;
+  ldbl_unpack (x, &hi, &lo);
+  EXTRACT_WORDS64 (hx, hi);
+  EXTRACT_WORDS64 (lx, lo);
+  bool negative = (hx & 0x8000000000000000ULL) != 0;
+  bool lo_negative = (lx & 0x8000000000000000ULL) != 0;
+  if (width == 0)
+    return fromfp_domain_error (negative, width);
+  hx &= 0x7fffffffffffffffULL;
+  lx &= 0x7fffffffffffffffULL;
+  if ((hx | lx) == 0)
+    return 0;
+  int hi_exponent = hx >> (MANT_DIG - 1);
+  hi_exponent -= BIAS;
+  int exponent = hi_exponent;
+  hx &= ((1ULL << (MANT_DIG - 1)) - 1);
+  if (hx == 0 && lx != 0 && lo_negative != negative)
+    exponent--;
+  int max_exponent = fromfp_max_exponent (negative, width);
+  if (exponent > max_exponent)
+    return fromfp_domain_error (negative, width);
+  int lo_exponent = lx >> (MANT_DIG - 1);
+  lo_exponent -= BIAS;
+
+  /* Convert the high part to integer.  */
+  hx |= 1ULL << (MANT_DIG - 1);
+  uintmax_t uret;
+  bool half_bit, more_bits;
+  if (hi_exponent >= MANT_DIG - 1)
+    {
+      uret = hx;
+      uret <<= hi_exponent - (MANT_DIG - 1);
+      half_bit = false;
+      more_bits = false;
+    }
+  else if (hi_exponent >= -1)
+    {
+      uint64_t h = 1ULL << (MANT_DIG - 2 - hi_exponent);
+      half_bit = (hx & h) != 0;
+      more_bits = (hx & (h - 1)) != 0;
+      uret = hx >> (MANT_DIG - 1 - hi_exponent);
+    }
+  else
+    {
+      uret = 0;
+      half_bit = false;
+      more_bits = true;
+    }
+
+  /* Likewise, the low part.  */
+  if (lx != 0)
+    {
+      uintmax_t lo_uret;
+      bool lo_half_bit, lo_more_bits;
+      lx &= ((1ULL << (MANT_DIG - 1)) - 1);
+      lx |= 1ULL << (MANT_DIG - 1);
+      /* The high part exponent is at most 64, so the low part
+	 exponent is at most 11.  */
+      if (lo_exponent >= -1)
+	{
+	  uint64_t h = 1ULL << (MANT_DIG - 2 - lo_exponent);
+	  lo_half_bit = (lx & h) != 0;
+	  lo_more_bits = (lx & (h - 1)) != 0;
+	  lo_uret = lx >> (MANT_DIG - 1 - lo_exponent);
+	}
+      else
+	{
+	  lo_uret = 0;
+	  lo_half_bit = false;
+	  lo_more_bits = true;
+	}
+      if (lo_negative == negative)
+	{
+	  uret += lo_uret;
+	  half_bit |= lo_half_bit;
+	  more_bits |= lo_more_bits;
+	}
+      else
+	{
+	  uret -= lo_uret;
+	  if (lo_half_bit)
+	    {
+	      uret--;
+	      half_bit = true;
+	    }
+	  if (lo_more_bits && !more_bits)
+	    {
+	      if (half_bit)
+		{
+		  half_bit = false;
+		  more_bits = true;
+		}
+	      else
+		{
+		  uret--;
+		  half_bit = true;
+		  more_bits = true;
+		}
+	    }
+	}
+    }
+
+  return fromfp_round_and_return (negative, uret, half_bit, more_bits, round,
+				  exponent, max_exponent, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c
new file mode 100644
index 0000000000..2f3189d7de
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_fromfpxl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 1
+#define FUNC fromfpxl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
new file mode 100644
index 0000000000..420b17837e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_getpayloadl.c
@@ -0,0 +1,34 @@
+/* Get NaN payload.  ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fix-int-fp-convert-zero.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+long double
+getpayloadl (const long double *x)
+{
+  double xhi = ldbl_high (*x);
+  uint64_t ix;
+  EXTRACT_WORDS64 (ix, xhi);
+  ix &= 0x7ffffffffffffULL;
+  if (FIX_INT_FP_CONVERT_ZERO && ix == 0)
+    return 0.0L;
+  return (long double) ix;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
new file mode 100644
index 0000000000..24999a920d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_iscanonicall.c
@@ -0,0 +1,60 @@
+/* Test whether long double value is canonical.  ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+int
+__iscanonicall (long double x)
+{
+  double xhi, xlo;
+  uint64_t hx, lx;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  EXTRACT_WORDS64 (lx, xlo);
+  int64_t ix = hx & 0x7fffffffffffffffULL;
+  int64_t iy = lx & 0x7fffffffffffffffULL;
+  int hexp = (ix & 0x7ff0000000000000LL) >> 52;
+  int lexp = (iy & 0x7ff0000000000000LL) >> 52;
+
+  if (iy == 0)
+    /* Low part 0 is always OK.  */
+    return 1;
+
+  if (hexp == 0x7ff)
+    /* If a NaN, the low part does not matter.  If an infinity, the
+       low part must be 0, in which case we have already returned.  */
+    return ix != 0x7ff0000000000000LL;
+
+  /* The high part is finite and the low part is nonzero.  There must
+     be sufficient difference between the exponents.  */
+  bool low_p2;
+  if (lexp == 0)
+    {
+      /* Adjust the exponent for subnormal low part.  */
+      lexp = 12 - __builtin_clzll (iy);
+      low_p2 = iy == (1LL << (51 + lexp));
+    }
+  else
+    low_p2 = (iy & 0xfffffffffffffLL) == 0;
+  int expdiff = hexp - lexp;
+  return expdiff > 53 || (expdiff == 53 && low_p2 && (ix & 1) == 0);
+}
+libm_hidden_def (__iscanonicall)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isinfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isinfl.c
new file mode 100644
index 0000000000..730aa4d8d1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isinfl.c
@@ -0,0 +1,40 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Change for long double by Jakub Jelinek <jj@ultra.linux.cz>
+ * Public domain.
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * isinfl(x) returns 1 if x is inf, -1 if x is -inf, else 0;
+ * no branching!
+ * slightly dodgy in relying on signed shift right copying sign bit
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+int
+___isinfl (long double x)
+{
+  double xhi;
+  int64_t hx, mask;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (hx, xhi);
+
+  mask = (hx & 0x7fffffffffffffffLL) ^ 0x7ff0000000000000LL;
+  mask |= -mask;
+  mask >>= 63;
+  return ~mask & (hx >> 62);
+}
+hidden_ver (___isinfl, __isinfl)
+#if !IS_IN (libm)
+weak_alias (___isinfl, ____isinfl)
+long_double_symbol (libc, ___isinfl, isinfl);
+long_double_symbol (libc, ____isinfl, __isinfl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isnanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isnanl.c
new file mode 100644
index 0000000000..9980875df2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_isnanl.c
@@ -0,0 +1,46 @@
+/* s_isnanl.c -- long double version of s_isnan.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * isnanl(x) returns 1 is x is nan, else 0;
+ * no branching!
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+int
+___isnanl (long double x)
+{
+  uint64_t hx;
+  double xhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (hx, xhi);
+  hx &= 0x7fffffffffffffffLL;
+  hx = 0x7ff0000000000000LL - hx;
+  return (int) (hx >> 63);
+}
+hidden_ver (___isnanl, __isnanl)
+#if !IS_IN (libm)
+weak_alias (___isnanl, ____isnanl)
+long_double_symbol (libc, ___isnanl, isnanl);
+long_double_symbol (libc, ____isnanl, __isnanl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
new file mode 100644
index 0000000000..feb7edea5d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_issignalingl.c
@@ -0,0 +1,49 @@
+/* Test for signaling NaN.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+
+int
+__issignalingl (long double x)
+{
+  uint64_t xi;
+  /* For inspecting NaN status, we only have to look at the first of the pair
+     of IEEE 754 64-bit precision numbers.  */
+  double xhi;
+
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (xi, xhi);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error untested
+  /* We only have to care about the high-order bit of x's significand, because
+     having it set (sNaN) already makes the significand different from that
+     used to designate infinity.  */
+  return (xi & UINT64_C (0x7ff8000000000000)) == UINT64_C (0x7ff8000000000000);
+#else
+  /* To keep the following comparison simple, toggle the quiet/signaling bit,
+     so that it is set for sNaNs.  This is inverse to IEEE 754-2008 (as well as
+     common practice for IEEE 754-1985).  */
+  xi ^= UINT64_C (0x0008000000000000);
+  /* We have to compare for greater (instead of greater or equal), because x's
+     significand being all-zero designates infinity not NaN.  */
+  return (xi & UINT64_C (0x7fffffffffffffff)) > UINT64_C (0x7ff8000000000000);
+#endif
+}
+libm_hidden_def (__issignalingl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
new file mode 100644
index 0000000000..fbf38bf717
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llrintl.c
@@ -0,0 +1,140 @@
+/* Round to long long int long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <fenv.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+
+long long
+__llrintl (long double x)
+{
+  double xh, xl;
+  long long res, hi, lo;
+  int save_round;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Limit the range of values handled by the conversion to long long.
+     We do this because we aren't sure whether that conversion properly
+     raises FE_INVALID.  */
+  if (__builtin_expect
+      ((__builtin_fabs (xh) <= -(double) (-__LONG_LONG_MAX__ - 1)), 1)
+#if !defined (FE_INVALID)
+      || 1
+#endif
+    )
+    {
+      save_round = fegetround ();
+
+      if (__glibc_unlikely ((xh == -(double) (-__LONG_LONG_MAX__ - 1))))
+	{
+	  /* When XH is 9223372036854775808.0, converting to long long will
+	     overflow, resulting in an invalid operation.  However, XL might
+	     be negative and of sufficient magnitude that the overall long
+	     double is in fact in range.  Avoid raising an exception.  In any
+	     case we need to convert this value specially, because
+	     the converted value is not exactly represented as a double
+	     thus subtracting HI from XH suffers rounding error.  */
+	  hi = __LONG_LONG_MAX__;
+	  xh = 1.0;
+	}
+      else
+	{
+	  hi = (long long) xh;
+	  xh -= hi;
+	}
+      ldbl_canonicalize (&xh, &xl);
+
+      lo = (long long) xh;
+
+      /* Peg at max/min values, assuming that the above conversions do so.
+         Strictly speaking, we can return anything for values that overflow,
+         but this is more useful.  */
+      res = hi + lo;
+
+      /* This is just sign(hi) == sign(lo) && sign(res) != sign(hi).  */
+      if (__glibc_unlikely (((~(hi ^ lo) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      xh -= lo;
+      ldbl_canonicalize (&xh, &xl);
+
+      hi = res;
+      switch (save_round)
+	{
+	case FE_TONEAREST:
+	  if (fabs (xh) < 0.5
+	      || (fabs (xh) == 0.5
+		  && ((xh > 0.0 && xl < 0.0)
+		      || (xh < 0.0 && xl > 0.0)
+		      || (xl == 0.0 && (res & 1) == 0))))
+	    return res;
+
+	  if (xh < 0.0)
+	    res -= 1;
+	  else
+	    res += 1;
+	  break;
+
+	case FE_TOWARDZERO:
+	  if (res > 0 && (xh < 0.0 || (xh == 0.0 && xl < 0.0)))
+	    res -= 1;
+	  else if (res < 0 && (xh > 0.0 || (xh == 0.0 && xl > 0.0)))
+	    res += 1;
+	  return res;
+	  break;
+
+	case FE_UPWARD:
+	  if (xh > 0.0 || (xh == 0.0 && xl > 0.0))
+	    res += 1;
+	  break;
+
+	case FE_DOWNWARD:
+	  if (xh < 0.0 || (xh == 0.0 && xl < 0.0))
+	    res -= 1;
+	  break;
+	}
+
+      if (__glibc_unlikely (((~(hi ^ (res - hi)) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      return res;
+    }
+  else
+    {
+      if (xh > 0.0)
+	hi = __LONG_LONG_MAX__;
+      else if (xh < 0.0)
+	hi = -__LONG_LONG_MAX__ - 1;
+      else
+	/* Nan */
+	hi = 0;
+    }
+
+overflow:
+#ifdef FE_INVALID
+  feraiseexcept (FE_INVALID);
+#endif
+  return hi;
+}
+
+long_double_symbol (libm, __llrintl, llrintl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
new file mode 100644
index 0000000000..609cc864de
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_llroundl.c
@@ -0,0 +1,120 @@
+/* Round to long long int long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <fenv.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+long long
+__llroundl (long double x)
+{
+  double xh, xl;
+  long long res, hi, lo;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Limit the range of values handled by the conversion to long long.
+     We do this because we aren't sure whether that conversion properly
+     raises FE_INVALID.  */
+  if (__builtin_expect
+      ((__builtin_fabs (xh) <= -(double) (-__LONG_LONG_MAX__ - 1)), 1)
+#if !defined (FE_INVALID)
+      || 1
+#endif
+    )
+    {
+      if (__glibc_unlikely ((xh == -(double) (-__LONG_LONG_MAX__ - 1))))
+	{
+	  /* When XH is 9223372036854775808.0, converting to long long will
+	     overflow, resulting in an invalid operation.  However, XL might
+	     be negative and of sufficient magnitude that the overall long
+	     double is in fact in range.  Avoid raising an exception.  In any
+	     case we need to convert this value specially, because
+	     the converted value is not exactly represented as a double
+	     thus subtracting HI from XH suffers rounding error.  */
+	  hi = __LONG_LONG_MAX__;
+	  xh = 1.0;
+	}
+      else
+	{
+	  hi = (long long) xh;
+	  xh -= hi;
+	}
+      ldbl_canonicalize (&xh, &xl);
+
+      lo = (long long) xh;
+
+      /* Peg at max/min values, assuming that the above conversions do so.
+         Strictly speaking, we can return anything for values that overflow,
+         but this is more useful.  */
+      res = hi + lo;
+
+      /* This is just sign(hi) == sign(lo) && sign(res) != sign(hi).  */
+      if (__glibc_unlikely (((~(hi ^ lo) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      xh -= lo;
+      ldbl_canonicalize (&xh, &xl);
+
+      hi = res;
+      if (xh > 0.5)
+	{
+	  res += 1;
+	}
+      else if (xh == 0.5)
+	{
+	  if (xl > 0.0 || (xl == 0.0 && res >= 0))
+	    res += 1;
+	}
+      else if (-xh > 0.5)
+	{
+	  res -= 1;
+	}
+      else if (-xh == 0.5)
+	{
+	  if (xl < 0.0 || (xl == 0.0 && res <= 0))
+	    res -= 1;
+	}
+
+      if (__glibc_unlikely (((~(hi ^ (res - hi)) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      return res;
+    }
+  else
+    {
+      if (xh > 0.0)
+	hi = __LONG_LONG_MAX__;
+      else if (xh < 0.0)
+	hi = -__LONG_LONG_MAX__ - 1;
+      else
+	/* Nan */
+	hi = 0;
+    }
+
+overflow:
+#ifdef FE_INVALID
+  feraiseexcept (FE_INVALID);
+#endif
+  return hi;
+}
+
+long_double_symbol (libm, __llroundl, llroundl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
new file mode 100644
index 0000000000..5457892a98
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_log1pl.c
@@ -0,0 +1,249 @@
+/*							log1pl.c
+ *
+ *      Relative error logarithm
+ *	Natural logarithm of 1+x, 128-bit long double precision
+ *
+ *
+ *
+ * SYNOPSIS:
+ *
+ * long double x, y, log1pl();
+ *
+ * y = log1pl( x );
+ *
+ *
+ *
+ * DESCRIPTION:
+ *
+ * Returns the base e (2.718...) logarithm of 1+x.
+ *
+ * The argument 1+x is separated into its exponent and fractional
+ * parts.  If the exponent is between -1 and +1, the logarithm
+ * of the fraction is approximated by
+ *
+ *     log(1+x) = x - 0.5 x^2 + x^3 P(x)/Q(x).
+ *
+ * Otherwise, setting  z = 2(w-1)/(w+1),
+ *
+ *     log(w) = z + z^3 P(z)/Q(z).
+ *
+ *
+ *
+ * ACCURACY:
+ *
+ *                      Relative error:
+ * arithmetic   domain     # trials      peak         rms
+ *    IEEE      -1, 8       100000      1.9e-34     4.3e-35
+ */
+
+/* Copyright 2001 by Stephen L. Moshier
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+/* Coefficients for log(1+x) = x - x^2 / 2 + x^3 P(x)/Q(x)
+ * 1/sqrt(2) <= 1+x < sqrt(2)
+ * Theoretical peak relative error = 5.3e-37,
+ * relative peak error spread = 2.3e-14
+ */
+static const long double
+  P12 = 1.538612243596254322971797716843006400388E-6L,
+  P11 = 4.998469661968096229986658302195402690910E-1L,
+  P10 = 2.321125933898420063925789532045674660756E1L,
+  P9 = 4.114517881637811823002128927449878962058E2L,
+  P8 = 3.824952356185897735160588078446136783779E3L,
+  P7 = 2.128857716871515081352991964243375186031E4L,
+  P6 = 7.594356839258970405033155585486712125861E4L,
+  P5 = 1.797628303815655343403735250238293741397E5L,
+  P4 = 2.854829159639697837788887080758954924001E5L,
+  P3 = 3.007007295140399532324943111654767187848E5L,
+  P2 = 2.014652742082537582487669938141683759923E5L,
+  P1 = 7.771154681358524243729929227226708890930E4L,
+  P0 = 1.313572404063446165910279910527789794488E4L,
+  /* Q12 = 1.000000000000000000000000000000000000000E0L, */
+  Q11 = 4.839208193348159620282142911143429644326E1L,
+  Q10 = 9.104928120962988414618126155557301584078E2L,
+  Q9 = 9.147150349299596453976674231612674085381E3L,
+  Q8 = 5.605842085972455027590989944010492125825E4L,
+  Q7 = 2.248234257620569139969141618556349415120E5L,
+  Q6 = 6.132189329546557743179177159925690841200E5L,
+  Q5 = 1.158019977462989115839826904108208787040E6L,
+  Q4 = 1.514882452993549494932585972882995548426E6L,
+  Q3 = 1.347518538384329112529391120390701166528E6L,
+  Q2 = 7.777690340007566932935753241556479363645E5L,
+  Q1 = 2.626900195321832660448791748036714883242E5L,
+  Q0 = 3.940717212190338497730839731583397586124E4L;
+
+/* Coefficients for log(x) = z + z^3 P(z^2)/Q(z^2),
+ * where z = 2(x-1)/(x+1)
+ * 1/sqrt(2) <= x < sqrt(2)
+ * Theoretical peak relative error = 1.1e-35,
+ * relative peak error spread 1.1e-9
+ */
+static const long double
+  R5 = -8.828896441624934385266096344596648080902E-1L,
+  R4 = 8.057002716646055371965756206836056074715E1L,
+  R3 = -2.024301798136027039250415126250455056397E3L,
+  R2 = 2.048819892795278657810231591630928516206E4L,
+  R1 = -8.977257995689735303686582344659576526998E4L,
+  R0 = 1.418134209872192732479751274970992665513E5L,
+  /* S6 = 1.000000000000000000000000000000000000000E0L, */
+  S5 = -1.186359407982897997337150403816839480438E2L,
+  S4 = 3.998526750980007367835804959888064681098E3L,
+  S3 = -5.748542087379434595104154610899551484314E4L,
+  S2 = 4.001557694070773974936904547424676279307E5L,
+  S1 = -1.332535117259762928288745111081235577029E6L,
+  S0 = 1.701761051846631278975701529965589676574E6L;
+
+/* C1 + C2 = ln 2 */
+static const long double C1 = 6.93145751953125E-1L;
+static const long double C2 = 1.428606820309417232121458176568075500134E-6L;
+
+static const long double sqrth = 0.7071067811865475244008443621048490392848L;
+/* ln (2^16384 * (1 - 2^-113)) */
+static const long double zero = 0.0L;
+
+
+long double
+__log1pl (long double xm1)
+{
+  long double x, y, z, r, s;
+  double xhi;
+  int32_t hx, lx;
+  int e;
+
+  /* Test for NaN or infinity input. */
+  xhi = ldbl_high (xm1);
+  EXTRACT_WORDS (hx, lx, xhi);
+  if (hx >= 0x7ff00000)
+    return xm1 + xm1;
+
+  /* log1p(+- 0) = +- 0.  */
+  if (((hx & 0x7fffffff) | lx) == 0)
+    return xm1;
+
+  if (xm1 >= 0x1p107L)
+    x = xm1;
+  else
+    x = xm1 + 1.0L;
+
+  /* log1p(-1) = -inf */
+  if (x <= 0.0L)
+    {
+      if (x == 0.0L)
+	return (-1.0L / 0.0L);
+      else
+	return (zero / (x - x));
+    }
+
+  /* Separate mantissa from exponent.  */
+
+  /* Use frexp used so that denormal numbers will be handled properly.  */
+  x = __frexpl (x, &e);
+
+  /* Logarithm using log(x) = z + z^3 P(z^2)/Q(z^2),
+     where z = 2(x-1)/x+1).  */
+  if ((e > 2) || (e < -2))
+    {
+      if (x < sqrth)
+	{			/* 2( 2x-1 )/( 2x+1 ) */
+	  e -= 1;
+	  z = x - 0.5L;
+	  y = 0.5L * z + 0.5L;
+	}
+      else
+	{			/*  2 (x-1)/(x+1)   */
+	  z = x - 0.5L;
+	  z -= 0.5L;
+	  y = 0.5L * x + 0.5L;
+	}
+      x = z / y;
+      z = x * x;
+      r = ((((R5 * z
+	      + R4) * z
+	     + R3) * z
+	    + R2) * z
+	   + R1) * z
+	+ R0;
+      s = (((((z
+	       + S5) * z
+	      + S4) * z
+	     + S3) * z
+	    + S2) * z
+	   + S1) * z
+	+ S0;
+      z = x * (z * r / s);
+      z = z + e * C2;
+      z = z + x;
+      z = z + e * C1;
+      return (z);
+    }
+
+
+  /* Logarithm using log(1+x) = x - .5x^2 + x^3 P(x)/Q(x). */
+
+  if (x < sqrth)
+    {
+      e -= 1;
+      if (e != 0)
+	x = 2.0L * x - 1.0L;	/*  2x - 1  */
+      else
+	x = xm1;
+    }
+  else
+    {
+      if (e != 0)
+	x = x - 1.0L;
+      else
+	x = xm1;
+    }
+  z = x * x;
+  r = (((((((((((P12 * x
+		 + P11) * x
+		+ P10) * x
+	       + P9) * x
+	      + P8) * x
+	     + P7) * x
+	    + P6) * x
+	   + P5) * x
+	  + P4) * x
+	 + P3) * x
+	+ P2) * x
+       + P1) * x
+    + P0;
+  s = (((((((((((x
+		 + Q11) * x
+		+ Q10) * x
+	       + Q9) * x
+	      + Q8) * x
+	     + Q7) * x
+	    + Q6) * x
+	   + Q5) * x
+	  + Q4) * x
+	 + Q3) * x
+	+ Q2) * x
+       + Q1) * x
+    + Q0;
+  y = x * (z * r / s);
+  y = y + e * C2;
+  z = y - 0.5L * z;
+  z = z + x;
+  z = z + e * C1;
+  return (z);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_logbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_logbl.c
new file mode 100644
index 0000000000..3c07c5e8e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_logbl.c
@@ -0,0 +1,63 @@
+/* s_logbl.c -- long double version of s_logb.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * long double logbl(x)
+ * IEEE 754 logb. Included to pass IEEE test suite. Not recommend.
+ * Use ilogb instead.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+#include <fix-int-fp-convert-zero.h>
+
+long double
+__logbl (long double x)
+{
+  int64_t hx, hxs, rhx;
+  double xhi, xlo;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  hxs = hx;
+  hx &= 0x7fffffffffffffffLL;	/* high |x| */
+  if (hx == 0)
+    return -1.0 / fabs (x);
+  if (hx >= 0x7ff0000000000000LL)
+    return x * x;
+  if (__glibc_unlikely ((rhx = hx >> 52) == 0))
+    {
+      /* POSIX specifies that denormal number is treated as
+         though it were normalized.  */
+      rhx -= __builtin_clzll (hx) - 12;
+    }
+  else if ((hx & 0x000fffffffffffffLL) == 0)
+    {
+      /* If the high part is a power of 2, and the low part is nonzero
+	 with the opposite sign, the low part affects the
+	 exponent.  */
+      int64_t lx;
+      EXTRACT_WORDS64 (lx, xlo);
+      if ((hxs ^ lx) < 0 && (lx & 0x7fffffffffffffffLL) != 0)
+	rhx--;
+    }
+  if (FIX_INT_FP_CONVERT_ZERO && rhx == 1023)
+    return 0.0L;
+  return (long double) (rhx - 1023);
+}
+#ifndef __logbl
+long_double_symbol (libm, __logbl, logbl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
new file mode 100644
index 0000000000..b404cab8e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lrintl.c
@@ -0,0 +1,155 @@
+/* Round to long int long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <fenv.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+
+long
+__lrintl (long double x)
+{
+  double xh, xl;
+  long res, hi, lo;
+  int save_round;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Limit the range of values handled by the conversion to long.
+     We do this because we aren't sure whether that conversion properly
+     raises FE_INVALID.  */
+  if (
+#if __LONG_MAX__ == 2147483647
+      __builtin_expect
+      ((__builtin_fabs (xh) <= (double) __LONG_MAX__ + 2), 1)
+#else
+      __builtin_expect
+      ((__builtin_fabs (xh) <= -(double) (-__LONG_MAX__ - 1)), 1)
+#endif
+#if !defined (FE_INVALID)
+      || 1
+#endif
+    )
+    {
+      save_round = fegetround ();
+
+#if __LONG_MAX__ == 2147483647
+      long long llhi = (long long) xh;
+      if (llhi != (long) llhi)
+	hi = llhi < 0 ? -__LONG_MAX__ - 1 : __LONG_MAX__;
+      else
+	hi = llhi;
+      xh -= hi;
+#else
+      if (__glibc_unlikely ((xh == -(double) (-__LONG_MAX__ - 1))))
+	{
+	  /* When XH is 9223372036854775808.0, converting to long long will
+	     overflow, resulting in an invalid operation.  However, XL might
+	     be negative and of sufficient magnitude that the overall long
+	     double is in fact in range.  Avoid raising an exception.  In any
+	     case we need to convert this value specially, because
+	     the converted value is not exactly represented as a double
+	     thus subtracting HI from XH suffers rounding error.  */
+	  hi = __LONG_MAX__;
+	  xh = 1.0;
+	}
+      else
+	{
+	  hi = (long) xh;
+	  xh -= hi;
+	}
+#endif
+      ldbl_canonicalize (&xh, &xl);
+
+      lo = (long) xh;
+
+      /* Peg at max/min values, assuming that the above conversions do so.
+         Strictly speaking, we can return anything for values that overflow,
+         but this is more useful.  */
+      res = hi + lo;
+
+      /* This is just sign(hi) == sign(lo) && sign(res) != sign(hi).  */
+      if (__glibc_unlikely (((~(hi ^ lo) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      xh -= lo;
+      ldbl_canonicalize (&xh, &xl);
+
+      hi = res;
+      switch (save_round)
+	{
+	case FE_TONEAREST:
+	  if (fabs (xh) < 0.5
+	      || (fabs (xh) == 0.5
+		  && ((xh > 0.0 && xl < 0.0)
+		      || (xh < 0.0 && xl > 0.0)
+		      || (xl == 0.0 && (res & 1) == 0))))
+	    return res;
+
+	  if (xh < 0.0)
+	    res -= 1;
+	  else
+	    res += 1;
+	  break;
+
+	case FE_TOWARDZERO:
+	  if (res > 0 && (xh < 0.0 || (xh == 0.0 && xl < 0.0)))
+	    res -= 1;
+	  else if (res < 0 && (xh > 0.0 || (xh == 0.0 && xl > 0.0)))
+	    res += 1;
+	  return res;
+	  break;
+
+	case FE_UPWARD:
+	  if (xh > 0.0 || (xh == 0.0 && xl > 0.0))
+	    res += 1;
+	  break;
+
+	case FE_DOWNWARD:
+	  if (xh < 0.0 || (xh == 0.0 && xl < 0.0))
+	    res -= 1;
+	  break;
+	}
+
+      if (__glibc_unlikely (((~(hi ^ (res - hi)) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      return res;
+    }
+  else
+    {
+      if (xh > 0.0)
+	hi = __LONG_MAX__;
+      else if (xh < 0.0)
+	hi = -__LONG_MAX__ - 1;
+      else
+	/* Nan */
+	hi = 0;
+    }
+
+overflow:
+#ifdef FE_INVALID
+  feraiseexcept (FE_INVALID);
+#endif
+  return hi;
+}
+
+long_double_symbol (libm, __lrintl, lrintl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
new file mode 100644
index 0000000000..f9ae37e844
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_lroundl.c
@@ -0,0 +1,135 @@
+/* Round to long int long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <fenv.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+long
+__lroundl (long double x)
+{
+  double xh, xl;
+  long res, hi, lo;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Limit the range of values handled by the conversion to long.
+     We do this because we aren't sure whether that conversion properly
+     raises FE_INVALID.  */
+  if (
+#if __LONG_MAX__ == 2147483647
+      __builtin_expect
+      ((__builtin_fabs (xh) <= (double) __LONG_MAX__ + 2), 1)
+#else
+      __builtin_expect
+      ((__builtin_fabs (xh) <= -(double) (-__LONG_MAX__ - 1)), 1)
+#endif
+#if !defined (FE_INVALID)
+      || 1
+#endif
+    )
+    {
+#if __LONG_MAX__ == 2147483647
+      long long llhi = (long long) xh;
+      if (llhi != (long) llhi)
+	hi = llhi < 0 ? -__LONG_MAX__ - 1 : __LONG_MAX__;
+      else
+	hi = llhi;
+      xh -= hi;
+#else
+      if (__glibc_unlikely ((xh == -(double) (-__LONG_MAX__ - 1))))
+	{
+	  /* When XH is 9223372036854775808.0, converting to long long will
+	     overflow, resulting in an invalid operation.  However, XL might
+	     be negative and of sufficient magnitude that the overall long
+	     double is in fact in range.  Avoid raising an exception.  In any
+	     case we need to convert this value specially, because
+	     the converted value is not exactly represented as a double
+	     thus subtracting HI from XH suffers rounding error.  */
+	  hi = __LONG_MAX__;
+	  xh = 1.0;
+	}
+      else
+	{
+	  hi = (long) xh;
+	  xh -= hi;
+	}
+#endif
+      ldbl_canonicalize (&xh, &xl);
+
+      lo = (long) xh;
+
+      /* Peg at max/min values, assuming that the above conversions do so.
+         Strictly speaking, we can return anything for values that overflow,
+         but this is more useful.  */
+      res = hi + lo;
+
+      /* This is just sign(hi) == sign(lo) && sign(res) != sign(hi).  */
+      if (__glibc_unlikely (((~(hi ^ lo) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      xh -= lo;
+      ldbl_canonicalize (&xh, &xl);
+
+      hi = res;
+      if (xh > 0.5)
+	{
+	  res += 1;
+	}
+      else if (xh == 0.5)
+	{
+	  if (xl > 0.0 || (xl == 0.0 && res >= 0))
+	    res += 1;
+	}
+      else if (-xh > 0.5)
+	{
+	  res -= 1;
+	}
+      else if (-xh == 0.5)
+	{
+	  if (xl < 0.0 || (xl == 0.0 && res <= 0))
+	    res -= 1;
+	}
+
+      if (__glibc_unlikely (((~(hi ^ (res - hi)) & (res ^ hi)) < 0)))
+	goto overflow;
+
+      return res;
+    }
+  else
+    {
+      if (xh > 0.0)
+	hi = __LONG_MAX__;
+      else if (xh < 0.0)
+	hi = -__LONG_MAX__ - 1;
+      else
+	/* Nan */
+	hi = 0;
+    }
+
+overflow:
+#ifdef FE_INVALID
+  feraiseexcept (FE_INVALID);
+#endif
+  return hi;
+}
+
+long_double_symbol (libm, __lroundl, lroundl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_modfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_modfl.c
new file mode 100644
index 0000000000..260cc3e33c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_modfl.c
@@ -0,0 +1,96 @@
+/* s_modfl.c -- long double version of s_modf.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * modfl(long double x, long double *iptr)
+ * return fraction part of x, and return x's integral part in *iptr.
+ * Method:
+ *	Bit twiddling.
+ *
+ * Exception:
+ *	No exception.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+static const long double one = 1.0;
+
+long double __modfl(long double x, long double *iptr)
+{
+	int64_t i0,i1,j0;
+	u_int64_t i;
+	double xhi, xlo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (i0, xhi);
+	EXTRACT_WORDS64 (i1, xlo);
+	i1 &= 0x000fffffffffffffLL;
+	j0 = ((i0>>52)&0x7ff)-0x3ff;	/* exponent of x */
+	if(j0<52) {			/* integer part in high x */
+	    if(j0<0) {			/* |x|<1 */
+		/* *iptr = +-0 */
+		INSERT_WORDS64 (xhi, i0&0x8000000000000000ULL);
+		*iptr = xhi;
+		return x;
+	    } else {
+		i = (0x000fffffffffffffLL)>>j0;
+		if(((i0&i)|(i1&0x7fffffffffffffffLL))==0) {		/* x is integral */
+		    *iptr = x;
+		    /* return +-0 */
+		    INSERT_WORDS64 (xhi, i0&0x8000000000000000ULL);
+		    x = xhi;
+		    return x;
+		} else {
+		    INSERT_WORDS64 (xhi, i0&(~i));
+		    *iptr = xhi;
+		    return x - *iptr;
+		}
+	    }
+	} else if (j0>103) {		/* no fraction part */
+	    *iptr = x*one;
+	    /* We must handle NaNs separately.  */
+	    if ((i0 & 0x7fffffffffffffffLL) > 0x7ff0000000000000LL)
+	      return x*one;
+	    /* return +-0 */
+	    INSERT_WORDS64 (xhi, i0&0x8000000000000000ULL);
+	    x = xhi;
+	    return x;
+	} else {			/* fraction part in low x */
+	    i = -1ULL>>(j0-52);
+	    if((i1&i)==0) { 		/* x is integral */
+		*iptr = x;
+		/* return +-0 */
+		INSERT_WORDS64 (xhi, i0&0x8000000000000000ULL);
+		x = xhi;
+		return x;
+	    } else {
+		INSERT_WORDS64 (xhi, i0);
+		INSERT_WORDS64 (xlo, i1&(~i));
+		*iptr = ldbl_pack (xhi, xlo);
+		return x - *iptr;
+	    }
+	}
+}
+#if IS_IN (libm)
+long_double_symbol (libm, __modfl, modfl);
+#else
+long_double_symbol (libc, __modfl, modfl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
new file mode 100644
index 0000000000..18b052cecb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c
@@ -0,0 +1,21 @@
+/* Round to int long double floating-point values without raising inexact.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define USE_AS_NEARBYINTL
+#include "s_rintl.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
new file mode 100644
index 0000000000..0d6469d548
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextafterl.c
@@ -0,0 +1,160 @@
+/* s_nextafterl.c -- long double version of s_nextafter.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* IEEE functions
+ *	nextafterl(x,y)
+ *	return the next machine floating-point number of x in the
+ *	direction toward y.
+ *   Special cases:
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __nextafterl(long double x, long double y)
+{
+	int64_t hx, hy, ihx, ihy, lx;
+	double xhi, xlo, yhi;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	yhi = ldbl_high (y);
+	EXTRACT_WORDS64 (hy, yhi);
+	ihx = hx&0x7fffffffffffffffLL;		/* |hx| */
+	ihy = hy&0x7fffffffffffffffLL;		/* |hy| */
+
+	if((ihx>0x7ff0000000000000LL) ||	/* x is nan */
+	   (ihy>0x7ff0000000000000LL))		/* y is nan */
+	    return x+y; /* signal the nan */
+	if(x==y)
+	    return y;		/* x=y, return y */
+	if(ihx == 0) {				/* x == 0 */
+	    long double u;			/* return +-minsubnormal */
+	    hy = (hy & 0x8000000000000000ULL) | 1;
+	    INSERT_WORDS64 (yhi, hy);
+	    x = yhi;
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+
+	long double u;
+	if(x > y) {	/* x > y, x -= ulp */
+	    /* This isn't the largest magnitude correctly rounded
+	       long double as you can see from the lowest mantissa
+	       bit being zero.  It is however the largest magnitude
+	       long double with a 106 bit mantissa, and nextafterl
+	       is insane with variable precision.  So to make
+	       nextafterl sane we assume 106 bit precision.  */
+	    if((hx==0xffefffffffffffffLL)&&(lx==0xfc8ffffffffffffeLL)) {
+	      u = x+x;	/* overflow, return -inf */
+	      math_force_eval (u);
+	      __set_errno (ERANGE);
+	      return y;
+	    }
+	    if (hx >= 0x7ff0000000000000LL) {
+	      u = 0x1.fffffffffffff7ffffffffffff8p+1023L;
+	      return u;
+	    }
+	    if(ihx <= 0x0360000000000000LL) {  /* x <= LDBL_MIN */
+	      u = math_opt_barrier (x);
+	      x -= LDBL_TRUE_MIN;
+	      if (ihx < 0x0360000000000000LL
+		  || (hx > 0 && lx <= 0)
+		  || (hx < 0 && lx > 1)) {
+		u = u * u;
+		math_force_eval (u);		/* raise underflow flag */
+		__set_errno (ERANGE);
+	      }
+	      /* Avoid returning -0 in FE_DOWNWARD mode.  */
+	      if (x == 0.0L)
+		return 0.0L;
+	      return x;
+	    }
+	    /* If the high double is an exact power of two and the low
+	       double is the opposite sign, then 1ulp is one less than
+	       what we might determine from the high double.  Similarly
+	       if X is an exact power of two, and positive, because
+	       making it a little smaller will result in the exponent
+	       decreasing by one and normalisation of the mantissa.   */
+	    if ((hx & 0x000fffffffffffffLL) == 0
+		&& ((lx != 0 && (hx ^ lx) < 0)
+		    || (lx == 0 && hx >= 0)))
+	      ihx -= 1LL << 52;
+	    if (ihx < (106LL << 52)) { /* ulp will denormal */
+	      INSERT_WORDS64 (yhi, ihx & (0x7ffLL<<52));
+	      u = yhi * 0x1p-105;
+	    } else {
+	      INSERT_WORDS64 (yhi, (ihx & (0x7ffLL<<52))-(105LL<<52));
+	      u = yhi;
+	    }
+	    return x - u;
+	} else {				/* x < y, x += ulp */
+	    if((hx==0x7fefffffffffffffLL)&&(lx==0x7c8ffffffffffffeLL)) {
+	      u = x+x;	/* overflow, return +inf */
+	      math_force_eval (u);
+	      __set_errno (ERANGE);
+	      return y;
+	    }
+	    if ((uint64_t) hx >= 0xfff0000000000000ULL) {
+	      u = -0x1.fffffffffffff7ffffffffffff8p+1023L;
+	      return u;
+	    }
+	    if(ihx <= 0x0360000000000000LL) {  /* x <= LDBL_MIN */
+	      u = math_opt_barrier (x);
+	      x += LDBL_TRUE_MIN;
+	      if (ihx < 0x0360000000000000LL
+		  || (hx > 0 && lx < 0 && lx != 0x8000000000000001LL)
+		  || (hx < 0 && lx >= 0)) {
+		u = u * u;
+		math_force_eval (u);		/* raise underflow flag */
+		__set_errno (ERANGE);
+	      }
+	      if (x == 0.0L)	/* handle negative LDBL_TRUE_MIN case */
+		x = -0.0L;
+	      return x;
+	    }
+	    /* If the high double is an exact power of two and the low
+	       double is the opposite sign, then 1ulp is one less than
+	       what we might determine from the high double.  Similarly
+	       if X is an exact power of two, and negative, because
+	       making it a little larger will result in the exponent
+	       decreasing by one and normalisation of the mantissa.   */
+	    if ((hx & 0x000fffffffffffffLL) == 0
+		&& ((lx != 0 && (hx ^ lx) < 0)
+		    || (lx == 0 && hx < 0)))
+	      ihx -= 1LL << 52;
+	    if (ihx < (106LL << 52)) { /* ulp will denormal */
+	      INSERT_WORDS64 (yhi, ihx & (0x7ffLL<<52));
+	      u = yhi * 0x1p-105;
+	    } else {
+	      INSERT_WORDS64 (yhi, (ihx & (0x7ffLL<<52))-(105LL<<52));
+	      u = yhi;
+	    }
+	    return x + u;
+	}
+}
+strong_alias (__nextafterl, __nexttowardl)
+long_double_symbol (libm, __nextafterl, nextafterl);
+long_double_symbol (libm, __nexttowardl, nexttowardl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c
new file mode 100644
index 0000000000..d8f4fc6523
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttoward.c
@@ -0,0 +1,90 @@
+/* s_nexttoward.c
+ * Conversion from s_nextafter.c by Ulrich Drepper, Cygnus Support,
+ * drepper@cygnus.com and Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* IEEE functions
+ *	nexttoward(x,y)
+ *	return the next machine floating-point number of x in the
+ *	direction toward y.
+ *   Special cases:
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+
+double __nexttoward(double x, long double y)
+{
+	int32_t hx,ix;
+	int64_t hy,iy;
+	uint32_t lx;
+	double yhi;
+
+	EXTRACT_WORDS(hx,lx,x);
+	yhi = ldbl_high (y);
+	EXTRACT_WORDS64(hy,yhi);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = hy&0x7fffffffffffffffLL;	/* |y| */
+
+	if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) ||   /* x is nan */
+	   iy>0x7ff0000000000000LL)			    /* y is nan */
+	   return x+y;
+	if((long double) x==y) return y;	/* x=y, return y */
+	if((ix|lx)==0) {			/* x == 0 */
+	    double u;
+	    INSERT_WORDS(x,(uint32_t)((hy>>32)&0x80000000),1);/* return +-minsub */
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if (x > y) {			/* x > 0 */
+		if(lx==0) hx -= 1;
+		lx -= 1;
+	    } else {				/* x < y, x += ulp */
+		lx += 1;
+		if(lx==0) hx += 1;
+	    }
+	} else {				/* x < 0 */
+	    if (x < y) {			/* x < 0 */
+		if(lx==0) hx -= 1;
+		lx -= 1;
+	    } else {				/* x > y, x += ulp */
+		lx += 1;
+		if(lx==0) hx += 1;
+	    }
+	}
+	hy = hx&0x7ff00000;
+	if(hy>=0x7ff00000) {
+	  double u = x+x;			/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00100000) {
+	    double u = x*x;			/* underflow */
+	    math_force_eval (u);		/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	INSERT_WORDS(x,hx,lx);
+	return x;
+}
+long_double_symbol (libm, __nexttoward, nexttoward);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c
new file mode 100644
index 0000000000..7c5d1cc112
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nexttowardf.c
@@ -0,0 +1,79 @@
+/* s_nexttowardf.c -- float version of s_nextafter.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com
+ * and Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+
+float __nexttowardf(float x, long double y)
+{
+	int32_t hx,ix;
+	int64_t hy,iy;
+	double yhi;
+
+	GET_FLOAT_WORD(hx,x);
+	yhi = ldbl_high (y);
+	EXTRACT_WORDS64 (hy, yhi);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = hy&0x7fffffffffffffffLL;	/* |y| */
+
+	if((ix>0x7f800000) ||   /* x is nan */
+	   (iy>0x7ff0000000000000LL))
+				/* y is nan */
+	   return x+y;
+	if((long double) x==y) return y;	/* x=y, return y */
+	if(ix==0) {				/* x == 0 */
+	    float u;
+	    SET_FLOAT_WORD(x,(u_int32_t)((hy>>32)&0x80000000)|1);/* return +-minsub*/
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if(x > y) {				/* x -= ulp */
+		hx -= 1;
+	    } else {				/* x < y, x += ulp */
+		hx += 1;
+	    }
+	} else {				/* x < 0 */
+	    if(x < y) {				/* x -= ulp */
+		hx -= 1;
+	    } else {				/* x > y, x += ulp */
+		hx += 1;
+	    }
+	}
+	hy = hx&0x7f800000;
+	if(hy>=0x7f800000) {
+	  float u = x+x;		/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00800000) {		/* underflow */
+	    float u = x*x;
+	    math_force_eval (u);	/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	SET_FLOAT_WORD(x,hx);
+	return x;
+}
+long_double_symbol (libm, __nexttowardf, nexttowardf);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
new file mode 100644
index 0000000000..bf74f0e1ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_nextupl.c
@@ -0,0 +1,78 @@
+/* Return the least floating-point number greater than X.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+/* Return the least floating-point number greater than X.  */
+long double
+__nextupl (long double x)
+{
+  int64_t hx, ihx, lx;
+  double xhi, xlo, yhi;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  EXTRACT_WORDS64 (lx, xlo);
+  ihx = hx & 0x7fffffffffffffffLL;
+
+  if (ihx > 0x7ff0000000000000LL)	/* x is nan.  */
+    return x + x;		/* Signal the nan.  */
+  if (ihx == 0)
+    return LDBL_TRUE_MIN;
+
+  long double u;
+  if ((hx == 0x7fefffffffffffffLL) && (lx == 0x7c8ffffffffffffeLL))
+    return INFINITY;
+  if ((uint64_t) hx >= 0xfff0000000000000ULL)
+    {
+      u = -0x1.fffffffffffff7ffffffffffff8p+1023L;
+      return u;
+    }
+  if (ihx <= 0x0360000000000000LL)
+    {				/* x <= LDBL_MIN.  */
+      x += LDBL_TRUE_MIN;
+      if (x == 0.0L)		/* Handle negative LDBL_TRUE_MIN case.  */
+        x = -0.0L;
+      return x;
+    }
+  /* If the high double is an exact power of two and the low
+     double is the opposite sign, then 1ulp is one less than
+     what we might determine from the high double.  Similarly
+     if X is an exact power of two, and negative, because
+     making it a little larger will result in the exponent
+     decreasing by one and normalisation of the mantissa.   */
+  if ((hx & 0x000fffffffffffffLL) == 0
+      && ((lx != 0 && lx != 0x8000000000000000LL && (hx ^ lx) < 0)
+          || ((lx == 0 || lx == 0x8000000000000000LL) && hx < 0)))
+    ihx -= 1LL << 52;
+  if (ihx < (106LL << 52))
+    {				/* ulp will denormal.  */
+      INSERT_WORDS64 (yhi, ihx & (0x7ffLL << 52));
+      u = yhi * 0x1p-105;
+    }
+  else
+    {
+      INSERT_WORDS64 (yhi, (ihx & (0x7ffLL << 52)) - (105LL << 52));
+      u = yhi;
+    }
+  return x + u;
+}
+
+weak_alias (__nextupl, nextupl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_remquol.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
new file mode 100644
index 0000000000..9b6ec09d41
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_remquol.c
@@ -0,0 +1,119 @@
+/* Compute remainder and a congruent to the quotient.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>, 1999.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+
+static const long double zero = 0.0;
+
+
+long double
+__remquol (long double x, long double y, int *quo)
+{
+  int64_t hx,hy;
+  u_int64_t sx,lx,ly,qs;
+  int cquo;
+  double xhi, xlo, yhi, ylo;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  EXTRACT_WORDS64 (lx, xlo);
+  ldbl_unpack (y, &yhi, &ylo);
+  EXTRACT_WORDS64 (hy, yhi);
+  EXTRACT_WORDS64 (ly, ylo);
+  sx = hx & 0x8000000000000000ULL;
+  qs = sx ^ (hy & 0x8000000000000000ULL);
+  ly ^= hy & 0x8000000000000000ULL;
+  hy &= 0x7fffffffffffffffLL;
+  lx ^= sx;
+  hx &= 0x7fffffffffffffffLL;
+
+  /* Purge off exception values.  */
+  if (hy == 0)
+    return (x * y) / (x * y); 			/* y = 0 */
+  if ((hx >= 0x7ff0000000000000LL)		/* x not finite */
+      || (hy > 0x7ff0000000000000LL))		/* y is NaN */
+    return (x * y) / (x * y);
+
+  if (hy <= 0x7fbfffffffffffffLL)
+    x = __ieee754_fmodl (x, 8 * y);              /* now x < 8y */
+
+  if (((hx - hy) | (lx - ly)) == 0)
+    {
+      *quo = qs ? -1 : 1;
+      return zero * x;
+    }
+
+  x  = fabsl (x);
+  y  = fabsl (y);
+  cquo = 0;
+
+  if (hy <= 0x7fcfffffffffffffLL && x >= 4 * y)
+    {
+      x -= 4 * y;
+      cquo += 4;
+    }
+  if (hy <= 0x7fdfffffffffffffLL && x >= 2 * y)
+    {
+      x -= 2 * y;
+      cquo += 2;
+    }
+
+  if (hy < 0x0020000000000000LL)
+    {
+      if (x + x > y)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x + x >= y)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+  else
+    {
+      long double y_half = 0.5L * y;
+      if (x > y_half)
+	{
+	  x -= y;
+	  ++cquo;
+	  if (x >= y_half)
+	    {
+	      x -= y;
+	      ++cquo;
+	    }
+	}
+    }
+
+  *quo = qs ? -cquo : cquo;
+
+  /* Ensure correct sign of zero result in round-downward mode.  */
+  if (x == 0.0L)
+    x = 0.0L;
+  if (sx)
+    x = -x;
+  return x;
+}
+long_double_symbol (libm, __remquol, remquol);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_rintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
new file mode 100644
index 0000000000..ea8c2bca0e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_rintl.c
@@ -0,0 +1,129 @@
+/* Round to int long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This has been coded in assembler because GCC makes such a mess of it
+   when it's coded in C.  */
+
+#include <math.h>
+#include <fenv.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+#ifdef USE_AS_NEARBYINTL
+# define rintl nearbyintl
+# define __rintl __nearbyintl
+#endif
+
+
+long double
+__rintl (long double x)
+{
+  double xh, xl, hi, lo;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Return Inf, Nan, +/-0 unchanged.  */
+  if (__builtin_expect (xh != 0.0
+			&& __builtin_isless (__builtin_fabs (xh),
+					     __builtin_inf ()), 1))
+    {
+      double orig_xh;
+      int save_round = fegetround ();
+
+      /* Long double arithmetic, including the canonicalisation below,
+	 only works in round-to-nearest mode.  */
+#ifdef USE_AS_NEARBYINTL
+      SET_RESTORE_ROUND_NOEX (FE_TONEAREST);
+#else
+      fesetround (FE_TONEAREST);
+#endif
+
+      /* Convert the high double to integer.  */
+      orig_xh = xh;
+      hi = ldbl_nearbyint (xh);
+
+      /* Subtract integral high part from the value.  If the low double
+	 happens to be exactly 0.5 or -0.5, you might think that this
+	 subtraction could result in an incorrect conversion.  For
+	 instance, subtracting an odd number would cause this function
+	 to round in the wrong direction.  However, if we have a
+	 canonical long double with the low double 0.5 or -0.5, then the
+	 high double must be even.  */
+      xh -= hi;
+      ldbl_canonicalize (&xh, &xl);
+
+      /* Now convert the low double, adjusted for any remainder from the
+	 high double.  */
+      lo = ldbl_nearbyint (xh);
+
+      xh -= lo;
+      ldbl_canonicalize (&xh, &xl);
+
+      switch (save_round)
+	{
+	case FE_TONEAREST:
+	  if (xl > 0.0 && xh == 0.5)
+	    lo += 1.0;
+	  else if (xl < 0.0 && -xh == 0.5)
+	    lo -= 1.0;
+	  break;
+
+	case FE_TOWARDZERO:
+	  if (orig_xh < 0.0)
+	    goto do_up;
+	  /* Fall thru */
+
+	case FE_DOWNWARD:
+	  if (xh < 0.0 || (xh == 0.0 && xl < 0.0))
+	    lo -= 1.0;
+	  break;
+
+	case FE_UPWARD:
+	do_up:
+	  if (xh > 0.0 || (xh == 0.0 && xl > 0.0))
+	    lo += 1.0;
+	  break;
+	}
+
+      /* Ensure the final value is canonical.  In certain cases,
+         rounding causes hi,lo calculated so far to be non-canonical.  */
+      xh = hi;
+      xl = lo;
+      ldbl_canonicalize (&xh, &xl);
+
+      /* Ensure we return -0 rather than +0 when appropriate.  */
+      if (orig_xh < 0.0)
+	xh = -__builtin_fabs (xh);
+
+#ifdef USE_AS_NEARBYINTL
+      math_force_eval (xh);
+      math_force_eval (xl);
+#else
+      fesetround (save_round);
+#endif
+    }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
+
+  return ldbl_pack (xh, xl);
+}
+
+long_double_symbol (libm, __rintl, rintl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
new file mode 100644
index 0000000000..f4221cda4b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundevenl.c
@@ -0,0 +1,69 @@
+/* Round to nearest integer value, rounding halfway cases to even.
+   ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+long double
+roundevenl (long double x)
+{
+  double xh, xl, hi;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  if (xh != 0 && isfinite (xh))
+    {
+      hi = roundeven (xh);
+      if (hi != xh)
+	{
+	  /* The high part is not an integer; the low part only
+	     affects the result if the high part is exactly half way
+	     between two integers and the low part is nonzero in the
+	     opposite direction to the rounding of the high part.  */
+	  double diff = hi - xh;
+	  if (fabs (diff) == 0.5)
+	    {
+	      if (xl < 0 && diff > 0)
+		xh = hi - 1;
+	      else if (xl > 0 && diff < 0)
+		xh = hi + 1;
+	      else
+		xh = hi;
+	    }
+	  else
+	    xh = hi;
+	  xl = 0;
+	}
+      else
+	{
+	  /* The high part is a nonzero integer.  Rounding the low
+	     part to nearest, ties round to even, is always correct,
+	     as a high part that is an odd integer together with a low
+	     part with magnitude 0.5 is not a valid long double.  */
+	  xl = roundeven (xl);
+	  xh = hi;
+	  ldbl_canonicalize_int (&xh, &xl);
+	}
+    }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
+
+  return ldbl_pack (xh, xl);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
new file mode 100644
index 0000000000..0b70e24637
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_roundl.c
@@ -0,0 +1,87 @@
+/* Round to int long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* This has been coded in assembler because GCC makes such a mess of it
+   when it's coded in C.  */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+
+long double
+__roundl (long double x)
+{
+  double xh, xl, hi, lo;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Return Inf, Nan, +/-0 unchanged.  */
+  if (__builtin_expect (xh != 0.0
+			&& __builtin_isless (__builtin_fabs (xh),
+					     __builtin_inf ()), 1))
+    {
+      hi = __round (xh);
+      if (hi != xh)
+	{
+	  /* The high part is not an integer; the low part only
+	     affects the result if the high part is exactly half way
+	     between two integers and the low part is nonzero with the
+	     opposite sign.  */
+	  if (fabs (hi - xh) == 0.5)
+	    {
+	      if (xh > 0 && xl < 0)
+		xh = hi - 1;
+	      else if (xh < 0 && xl > 0)
+		xh = hi + 1;
+	      else
+		xh = hi;
+	    }
+	  else
+	    xh = hi;
+	  xl = 0;
+	}
+      else
+	{
+	  /* The high part is a nonzero integer.  */
+	  lo = __round (xl);
+	  if (fabs (lo - xl) == 0.5)
+	    {
+	      if (xh > 0 && xl < 0)
+		xl = lo + 1;
+	      else if (xh < 0 && lo > 0)
+		xl = lo - 1;
+	      else
+		xl = lo;
+	    }
+	  else
+	    xl = lo;
+	  xh = hi;
+	  ldbl_canonicalize_int (&xh, &xl);
+	}
+    }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
+
+  return ldbl_pack (xh, xl);
+}
+
+long_double_symbol (libm, __roundl, roundl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c
new file mode 100644
index 0000000000..031635267f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalblnl.c
@@ -0,0 +1,104 @@
+/* s_scalblnl.c -- long double version of s_scalbln.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/* @(#)s_scalbln.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * scalblnl (long double x, long int n)
+ * scalblnl(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+static const long double
+twolm54 = 5.55111512312578270212e-17, /* 0x3C90000000000000, 0 */
+huge   = 1.0E+300L,
+tiny   = 1.0E-300L;
+static const double
+two54 = 1.80143985094819840000e+16, /* 0x4350000000000000 */
+twom54 = 5.55111512312578270212e-17; /* 0x3C90000000000000 */
+
+long double __scalblnl (long double x, long int n)
+{
+	int64_t k,l,hx,lx;
+	union { int64_t i; double d; } u;
+	double xhi, xlo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	k = (hx>>52)&0x7ff;		/* extract exponent */
+	l = (lx>>52)&0x7ff;
+	if (k==0) {				/* 0 or subnormal x */
+	    if ((hx&0x7fffffffffffffffULL)==0) return x; /* +-0 */
+	    u.i = hx;
+	    u.d *= two54;
+	    hx = u.i;
+	    k = ((hx>>52)&0x7ff) - 54;
+	}
+	else if (k==0x7ff) return x+x;		/* NaN or Inf */
+	if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow */
+	if (n> 50000 || k+n > 0x7fe)
+	  return huge*__copysignl(huge,x); /* overflow */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+	k = k+n;
+	if (k > 0) {				/* normal result */
+	    hx = (hx&0x800fffffffffffffULL)|(k<<52);
+	    if ((lx & 0x7fffffffffffffffULL) == 0) { /* low part +-0 */
+		INSERT_WORDS64 (xhi, hx);
+		INSERT_WORDS64 (xlo, lx);
+		x = ldbl_pack (xhi, xlo);
+		return x;
+	    }
+	    if (l == 0) { /* low part subnormal */
+		u.i = lx;
+		u.d *= two54;
+		lx = u.i;
+		l = ((lx>>52)&0x7ff) - 54;
+	    }
+	    l = l + n;
+	    if (l > 0)
+		lx = (lx&0x800fffffffffffffULL)|(l<<52);
+	    else if (l <= -54)
+		lx = (lx&0x8000000000000000ULL);
+	    else {
+		l += 54;
+		u.i = (lx&0x800fffffffffffffULL)|(l<<52);
+		u.d *= twom54;
+		lx = u.i;
+	    }
+	    INSERT_WORDS64 (xhi, hx);
+	    INSERT_WORDS64 (xlo, lx);
+	    x = ldbl_pack (xhi, xlo);
+	    return x;
+	}
+	if (k <= -54)
+	  return tiny*__copysignl(tiny,x); 	/*underflow*/
+	k += 54;				/* subnormal result */
+	lx &= 0x8000000000000000ULL;
+	hx &= 0x800fffffffffffffULL;
+	INSERT_WORDS64 (xhi, hx|(k<<52));
+	INSERT_WORDS64 (xlo, lx);
+	x = ldbl_pack (xhi, xlo);
+	return x*twolm54;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c
new file mode 100644
index 0000000000..0c4508835e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_scalbnl.c
@@ -0,0 +1,104 @@
+/* s_scalbnl.c -- long double version of s_scalbn.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/* @(#)s_scalbn.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * scalbnl (long double x, int n)
+ * scalbnl(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+static const long double
+twolm54 = 5.55111512312578270212e-17, /* 0x3C90000000000000, 0 */
+huge   = 1.0E+300L,
+tiny   = 1.0E-300L;
+static const double
+two54 = 1.80143985094819840000e+16, /* 0x4350000000000000 */
+twom54 = 5.55111512312578270212e-17; /* 0x3C90000000000000 */
+
+long double __scalbnl (long double x, int n)
+{
+	int64_t k,l,hx,lx;
+	union { int64_t i; double d; } u;
+	double xhi, xlo;
+
+	ldbl_unpack (x, &xhi, &xlo);
+	EXTRACT_WORDS64 (hx, xhi);
+	EXTRACT_WORDS64 (lx, xlo);
+	k = (hx>>52)&0x7ff;		/* extract exponent */
+	l = (lx>>52)&0x7ff;
+	if (k==0) {				/* 0 or subnormal x */
+	    if ((hx&0x7fffffffffffffffULL)==0) return x; /* +-0 */
+	    u.i = hx;
+	    u.d *= two54;
+	    hx = u.i;
+	    k = ((hx>>52)&0x7ff) - 54;
+	}
+	else if (k==0x7ff) return x+x;		/* NaN or Inf */
+	if (n< -50000) return tiny*__copysignl(tiny,x); /*underflow */
+	if (n> 50000 || k+n > 0x7fe)
+	  return huge*__copysignl(huge,x); /* overflow */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+	k = k+n;
+	if (k > 0) {				/* normal result */
+	    hx = (hx&0x800fffffffffffffULL)|(k<<52);
+	    if ((lx & 0x7fffffffffffffffULL) == 0) { /* low part +-0 */
+		INSERT_WORDS64 (xhi, hx);
+		INSERT_WORDS64 (xlo, lx);
+		x = ldbl_pack (xhi, xlo);
+		return x;
+	    }
+	    if (l == 0) { /* low part subnormal */
+		u.i = lx;
+		u.d *= two54;
+		lx = u.i;
+		l = ((lx>>52)&0x7ff) - 54;
+	    }
+	    l = l + n;
+	    if (l > 0)
+		lx = (lx&0x800fffffffffffffULL)|(l<<52);
+	    else if (l <= -54)
+		lx = (lx&0x8000000000000000ULL);
+	    else {
+		l += 54;
+		u.i = (lx&0x800fffffffffffffULL)|(l<<52);
+		u.d *= twom54;
+		lx = u.i;
+	    }
+	    INSERT_WORDS64 (xhi, hx);
+	    INSERT_WORDS64 (xlo, lx);
+	    x = ldbl_pack (xhi, xlo);
+	    return x;
+	}
+	if (k <= -54)
+	  return tiny*__copysignl(tiny,x); 	/*underflow*/
+	k += 54;				/* subnormal result */
+	lx &= 0x8000000000000000ULL;
+	hx &= 0x800fffffffffffffULL;
+	INSERT_WORDS64 (xhi, hx|(k<<52));
+	INSERT_WORDS64 (xlo, lx);
+	x = ldbl_pack (xhi, xlo);
+	return x*twolm54;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c
new file mode 100644
index 0000000000..1aba33e6e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl.c
@@ -0,0 +1,3 @@
+#define SIG 0
+#define FUNC setpayloadl
+#include <s_setpayloadl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
new file mode 100644
index 0000000000..9aa02cdf93
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c
@@ -0,0 +1,60 @@
+/* Set NaN payload.  ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+#define SET_HIGH_BIT (HIGH_ORDER_BIT_IS_SET_FOR_SNAN ? SIG : !SIG)
+#define BIAS 0x3ff
+#define PAYLOAD_DIG 51
+#define EXPLICIT_MANT_DIG 52
+
+int
+FUNC (long double *x, long double payload)
+{
+  double hi, lo;
+  uint64_t hx, lx;
+
+  ldbl_unpack (payload, &hi, &lo);
+  EXTRACT_WORDS64 (hx, hi);
+  EXTRACT_WORDS64 (lx, lo);
+  int exponent = hx >> EXPLICIT_MANT_DIG;
+  /* Test if argument is (a) negative or too large; (b) too small,
+     except for 0 when allowed; (c) not an integer.  All valid
+     arguments have the low part zero.  */
+  if ((lx & 0x7fffffffffffffffULL) != 0
+      || exponent >= BIAS + PAYLOAD_DIG
+      || (exponent < BIAS && !(SET_HIGH_BIT && hx == 0))
+      || (hx & ((1ULL << (BIAS + EXPLICIT_MANT_DIG - exponent)) - 1)) != 0)
+    {
+      *x = 0.0L;
+      return 1;
+    }
+  if (hx != 0)
+    {
+      hx &= (1ULL << EXPLICIT_MANT_DIG) - 1;
+      hx |= 1ULL << EXPLICIT_MANT_DIG;
+      hx >>= BIAS + EXPLICIT_MANT_DIG - exponent;
+    }
+  hx |= 0x7ff0000000000000ULL | (SET_HIGH_BIT ? 0x8000000000000ULL : 0);
+  INSERT_WORDS64 (hi, hx);
+  *x = ldbl_pack (hi, 0.0);
+  return 0;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c
new file mode 100644
index 0000000000..d97e2c8206
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_setpayloadsigl.c
@@ -0,0 +1,3 @@
+#define SIG 1
+#define FUNC setpayloadsigl
+#include <s_setpayloadl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
new file mode 100644
index 0000000000..d6ceede69f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_signbitl.c
@@ -0,0 +1,32 @@
+/* Return nonzero value if number is negative.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+
+int
+___signbitl (long double x)
+{
+  return __builtin_signbitl (x);
+}
+#if IS_IN (libm)
+long_double_symbol (libm, ___signbitl, __signbitl);
+#else
+long_double_symbol (libc, ___signbitl, __signbitl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
new file mode 100644
index 0000000000..8329979931
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sincosl.c
@@ -0,0 +1,76 @@
+/* Compute sine and cosine of argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997 and
+		  Jakub Jelinek <jj@ultra.linux.cz>.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <math.h>
+
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+void
+__sincosl (long double x, long double *sinx, long double *cosx)
+{
+  int64_t ix;
+  double xhi;
+
+  /* High word of x. */
+  xhi = ldbl_high (x);
+  EXTRACT_WORDS64 (ix, xhi);
+
+  /* |x| ~< pi/4 */
+  ix &= 0x7fffffffffffffffLL;
+  if (ix <= 0x3fe921fb54442d10LL)
+    __kernel_sincosl (x, 0.0L, sinx, cosx, 0);
+  else if (ix >= 0x7ff0000000000000LL)
+    {
+      /* sin(Inf or NaN) is NaN */
+      *sinx = *cosx = x - x;
+      if (isinf (x))
+	__set_errno (EDOM);
+    }
+  else
+    {
+      /* Argument reduction needed.  */
+      long double y[2];
+      int n;
+
+      n = __ieee754_rem_pio2l (x, y);
+      switch (n & 3)
+	{
+	case 0:
+	  __kernel_sincosl (y[0], y[1], sinx, cosx, 1);
+	  break;
+	case 1:
+	  __kernel_sincosl (y[0], y[1], cosx, sinx, 1);
+	  *cosx = -*cosx;
+	  break;
+	case 2:
+	  __kernel_sincosl (y[0], y[1], sinx, cosx, 1);
+	  *sinx = -*sinx;
+	  *cosx = -*cosx;
+	  break;
+	default:
+	  __kernel_sincosl (y[0], y[1], cosx, sinx, 1);
+	  *sinx = -*sinx;
+	  break;
+	}
+    }
+}
+long_double_symbol (libm, __sincosl, sincosl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sinl.c
new file mode 100644
index 0000000000..087921a913
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_sinl.c
@@ -0,0 +1,85 @@
+/* s_sinl.c -- long double version of s_sin.c.
+ * Conversion to long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* sinl(x)
+ * Return sine function of x.
+ *
+ * kernel function:
+ *	__kernel_sinl		... sine function on [-pi/4,pi/4]
+ *	__kernel_cosl		... cose function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __sinl(long double x)
+{
+	long double y[2],z=0.0L;
+	int64_t n, ix;
+	double xhi;
+
+    /* High word of x. */
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (ix, xhi);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffffffffffffLL;
+	if(ix <= 0x3fe921fb54442d10LL)
+	  return __kernel_sinl(x,z,0);
+
+    /* sin(Inf or NaN) is NaN */
+	else if (ix>=0x7ff0000000000000LL) {
+	    if (ix == 0x7ff0000000000000LL)
+		__set_errno (EDOM);
+	    return x-x;
+	}
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_sinl(y[0],y[1],1);
+		case 1: return  __kernel_cosl(y[0],y[1]);
+		case 2: return -__kernel_sinl(y[0],y[1],1);
+		default:
+			return -__kernel_cosl(y[0],y[1]);
+	    }
+	}
+}
+long_double_symbol (libm, __sinl, sinl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c
new file mode 100644
index 0000000000..e6457a1c1c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanhl.c
@@ -0,0 +1,87 @@
+/* @(#)s_tanh.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_tanh.c,v 1.7 1995/05/10 20:48:22 jtc Exp $";
+#endif
+
+/* Tanh(x)
+ * Return the Hyperbolic Tangent of x
+ *
+ * Method :
+ *				       x    -x
+ *				      e  - e
+ *	0. tanh(x) is defined to be -----------
+ *				       x    -x
+ *				      e  + e
+ *	1. reduce x to non-negative by tanh(-x) = -tanh(x).
+ *	2.  0      <= x <= 2**-57 : tanh(x) := x*(one+x)
+ *					        -t
+ *	    2**-57 <  x <=  1     : tanh(x) := -----; t = expm1(-2x)
+ *					       t + 2
+ *						     2
+ *	    1      <= x <=  40.0  : tanh(x) := 1-  ----- ; t=expm1(2x)
+ *						   t + 2
+ *	    40.0   <  x <= INF    : tanh(x) := 1.
+ *
+ * Special cases:
+ *	tanh(NaN) is NaN;
+ *	only tanh(0)=0 is exact for finite argument.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+static const long double one=1.0L, two=2.0L, tiny = 1.0e-300L;
+
+long double __tanhl(long double x)
+{
+	long double t,z;
+	int64_t jx,ix;
+	double xhi;
+
+    /* High word of |x|. */
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (jx, xhi);
+	ix = jx&0x7fffffffffffffffLL;
+
+    /* x is INF or NaN */
+	if(ix>=0x7ff0000000000000LL) {
+	    if (jx>=0) return one/x+one;    /* tanh(+-inf)=+-1 */
+	    else       return one/x-one;    /* tanh(NaN) = NaN */
+	}
+
+    /* |x| < 40 */
+	if (ix < 0x4044000000000000LL) {		/* |x|<40 */
+	    if (ix == 0)
+		return x;		/* x == +-0 */
+	    if (ix<0x3c60000000000000LL) 	/* |x|<2**-57 */
+	      {
+		math_check_force_underflow (x);
+		return x;		/* tanh(small) = small */
+	      }
+	    if (ix>=0x3ff0000000000000LL) {	/* |x|>=1  */
+		t = __expm1l(two*fabsl(x));
+		z = one - two/(t+two);
+	    } else {
+	        t = __expm1l(-two*fabsl(x));
+	        z= -t/(t+two);
+	    }
+    /* |x| > 40, return +-1 */
+	} else {
+	    z = one - tiny;		/* raised inexact flag */
+	}
+	return (jx>=0)? z: -z;
+}
+long_double_symbol (libm, __tanhl, tanhl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanl.c
new file mode 100644
index 0000000000..66b8a0621e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_tanl.c
@@ -0,0 +1,79 @@
+/* s_tanl.c -- long double version of s_tan.c.
+ * Conversion to IEEE quad long double by Jakub Jelinek, jj@ultra.linux.cz.
+ */
+
+/* @(#)s_tan.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* tanl(x)
+ * Return tangent function of x.
+ *
+ * kernel function:
+ *	__kernel_tanl		... tangent function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __tanl(long double x)
+{
+	long double y[2],z=0.0L;
+	int64_t n, ix;
+	double xhi;
+
+    /* High word of x. */
+	xhi = ldbl_high (x);
+	EXTRACT_WORDS64 (ix, xhi);
+
+    /* |x| ~< pi/4 */
+	ix &= 0x7fffffffffffffffLL;
+	if(ix <= 0x3fe921fb54442d10LL) return __kernel_tanl(x,z,1);
+
+    /* tanl(Inf or NaN) is NaN */
+	else if (ix>=0x7ff0000000000000LL) {
+	    if (ix == 0x7ff0000000000000LL)
+		__set_errno (EDOM);
+	    return x-x;		/* NaN */
+	}
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    return __kernel_tanl(y[0],y[1],1-((n&1)<<1)); /*   1 -- n even
+							-1 -- n odd */
+	}
+}
+long_double_symbol (libm, __tanl, tanl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
new file mode 100644
index 0000000000..963376a7cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalorderl.c
@@ -0,0 +1,62 @@
+/* Total order operation.  ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalorderl (long double x, long double y)
+{
+  double xhi, xlo, yhi, ylo;
+  int64_t hx, hy, lx, ly;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  ldbl_unpack (y, &yhi, &ylo);
+  EXTRACT_WORDS64 (hy, yhi);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error not implemented
+#endif
+  uint64_t hx_sign = hx >> 63;
+  uint64_t hy_sign = hy >> 63;
+  int64_t hx_adj = hx ^ (hx_sign >> 1);
+  int64_t hy_adj = hy ^ (hy_sign >> 1);
+  if (hx_adj < hy_adj)
+    return 1;
+  else if (hx_adj > hy_adj)
+    return 0;
+
+  /* The high doubles are identical.  If they are NaNs or both the low
+     parts are zero, the low parts are not significant (and if they
+     are infinities, both the low parts must be zero).  */
+  if ((hx & 0x7fffffffffffffffULL) >= 0x7ff0000000000000ULL)
+    return 1;
+  EXTRACT_WORDS64 (lx, xlo);
+  EXTRACT_WORDS64 (ly, ylo);
+  if (((lx | ly) & 0x7fffffffffffffffULL) == 0)
+    return 1;
+
+  /* Otherwise compare the low parts.  */
+  uint64_t lx_sign = lx >> 63;
+  uint64_t ly_sign = ly >> 63;
+  lx ^= lx_sign >> 1;
+  ly ^= ly_sign >> 1;
+  return lx <= ly;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
new file mode 100644
index 0000000000..f7480909df
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_totalordermagl.c
@@ -0,0 +1,64 @@
+/* Total order operation on absolute values.  ldbl-128ibm version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalordermagl (long double x, long double y)
+{
+  double xhi, xlo, yhi, ylo;
+  int64_t hx, hy, lx, ly;
+
+  ldbl_unpack (x, &xhi, &xlo);
+  EXTRACT_WORDS64 (hx, xhi);
+  ldbl_unpack (y, &yhi, &ylo);
+  EXTRACT_WORDS64 (hy, yhi);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error not implemented
+#endif
+  uint64_t x_sign = hx & 0x8000000000000000ULL;
+  uint64_t y_sign = hy & 0x8000000000000000ULL;
+  hx ^= x_sign;
+  hy ^= y_sign;
+  if (hx < hy)
+    return 1;
+  else if (hx > hy)
+    return 0;
+
+  /* The high doubles are identical.  If they are NaNs or both the low
+     parts are zero, the low parts are not significant (and if they
+     are infinities, both the low parts must be zero).  */
+  if (hx >= 0x7ff0000000000000ULL)
+    return 1;
+  EXTRACT_WORDS64 (lx, xlo);
+  EXTRACT_WORDS64 (ly, ylo);
+  if (((lx | ly) & 0x7fffffffffffffffULL) == 0)
+    return 1;
+  lx ^= x_sign;
+  ly ^= y_sign;
+
+  /* Otherwise compare the low parts.  */
+  uint64_t lx_sign = lx >> 63;
+  uint64_t ly_sign = ly >> 63;
+  lx ^= lx_sign >> 1;
+  ly ^= ly_sign >> 1;
+  return lx <= ly;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_truncl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
new file mode 100644
index 0000000000..ecabf9d711
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_truncl.c
@@ -0,0 +1,62 @@
+/* Truncate (toward zero) long double floating-point values.
+   IBM extended format long double version.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+#include <ieee754.h>
+
+
+long double
+__truncl (long double x)
+{
+  double xh, xl, hi, lo;
+
+  ldbl_unpack (x, &xh, &xl);
+
+  /* Return Inf, Nan, +/-0 unchanged.  */
+  if (__builtin_expect (xh != 0.0
+			&& __builtin_isless (__builtin_fabs (xh),
+					     __builtin_inf ()), 1))
+    {
+      hi = __trunc (xh);
+      if (hi != xh)
+	{
+	  /* The high part is not an integer; the low part does not
+	     affect the result.  */
+	  xh = hi;
+	  xl = 0;
+	}
+      else
+	{
+	  /* The high part is a nonzero integer.  */
+	  lo = xh > 0 ? __floor (xl) : __ceil (xl);
+	  xh = hi;
+	  xl = lo;
+	  ldbl_canonicalize_int (&xh, &xl);
+	}
+    }
+  else
+    /* Quiet signaling NaN arguments.  */
+    xh += xh;
+
+  return ldbl_pack (xh, xl);
+}
+
+long_double_symbol (libm, __truncl, truncl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c
new file mode 100644
index 0000000000..c686daa4a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 0
+#define FUNC ufromfpl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c
new file mode 100644
index 0000000000..906066c83c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/s_ufromfpxl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 1
+#define FUNC ufromfpxl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h
new file mode 100644
index 0000000000..198fe48f5c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtod_nan_ldouble.h
@@ -0,0 +1,30 @@
+/* Convert string for NaN payload to corresponding NaN.  For ldbl-128ibm.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define FLOAT		long double
+#define SET_MANTISSA(flt, mant)					\
+  do								\
+    {								\
+      union ibm_extended_long_double u;				\
+      u.ld = (flt);						\
+      u.d[0].ieee_nan.mantissa0 = (mant) >> 32;			\
+      u.d[0].ieee_nan.mantissa1 = (mant);			\
+      if ((u.d[0].ieee.mantissa0 | u.d[0].ieee.mantissa1) != 0)	\
+	(flt) = u.ld;						\
+    }								\
+  while (0)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtold_l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
new file mode 100644
index 0000000000..37034cb254
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/strtold_l.c
@@ -0,0 +1,60 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <xlocale.h>
+
+/* The actual implementation for all floating point sizes is in strtod.c.
+   These macros tell it to produce the `long double' version, `strtold'.  */
+
+#define FLOAT		long double
+#define FLT		LDBL
+#ifdef USE_WIDE_CHAR
+extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, __locale_t);
+# define STRTOF		__new_wcstold_l
+# define __STRTOF	____new_wcstold_l
+# define ____STRTOF_INTERNAL ____wcstold_l_internal
+# define STRTOF_NAN	__wcstold_nan
+#else
+extern long double ____new_strtold_l (const char *, char **, __locale_t);
+# define STRTOF		__new_strtold_l
+# define __STRTOF	____new_strtold_l
+# define ____STRTOF_INTERNAL ____strtold_l_internal
+# define STRTOF_NAN	__strtold_nan
+#endif
+extern __typeof (__STRTOF) STRTOF;
+libc_hidden_proto (__STRTOF)
+libc_hidden_proto (STRTOF)
+#define MPN2FLOAT	__mpn_construct_long_double
+#define FLOAT_HUGE_VAL	HUGE_VALL
+
+#include <strtod_l.c>
+
+#ifdef __LONG_DOUBLE_MATH_OPTIONAL
+# include <math_ldbl_opt.h>
+# ifdef USE_WIDE_CHAR
+weak_alias (____new_wcstold_l, ___new_wcstold_l);
+long_double_symbol (libc, ___new_wcstold_l, wcstold_l);
+long_double_symbol (libc, ____new_wcstold_l, __wcstold_l);
+# else
+weak_alias (____new_strtold_l, ___new_strtold_l);
+long_double_symbol (libc, ___new_strtold_l, strtold_l);
+long_double_symbol (libc, ____new_strtold_l, __strtold_l);
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
new file mode 100644
index 0000000000..22c59150be
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/t_sincosl.c
@@ -0,0 +1,693 @@
+/* Quad-precision floating point sine and cosine tables.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* For 0.1484375 + n/128.0, n=0..82 this table contains
+   first 113 bits of cosine, then at least 113 additional
+   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 gmp.
+ */
+
+const long double __sincosl_table[] = {
+
+/* x =  1.48437500000000000000000000000000000e-01L 3ffc3000000000000000000000000000 */
+/* cos(x) = 0.fd2f5320e1b790209b4dda2f98 f79caaa7b873aff1014b0fbc52 43766d03cb006bc837c4358 */
+ 0x0.fd2f5320e1b790209b4dda2f98p0L,
+ 0x0.f79caaa7b873aff1014b0fbc52p-104L,
+/* sin(x) = 0.25dc50bc95711d0d9787d108fd 438cf5959ee0bfb7a1e36e8b1a 112968f356657420e9cc9ea */
+ 0x0.25dc50bc95711d0d9787d108fdp0L,
+ 0x0.438cf5959ee0bfb7a1e36e8b1ap-104L,
+
+/* x = 1.56250000000000000000000000000000000e-01 3ffc4000000000000000000000000000 */
+/* cos(x) = 0.fce1a053e621438b6d60c76e8c 45bf0a9dc71aa16f922acc10e9 5144ec796a249813c9cb649 */
+ 0x0.fce1a053e621438b6d60c76e8cp0L,
+ 0x0.45bf0a9dc71aa16f922acc10e9p-104L,
+/* sin(x) = 0.27d66258bacd96a3eb335b365c 87d59438c5142bb56a489e9b8d b9d36234ffdebb6bdc22d8e */
+ 0x0.27d66258bacd96a3eb335b365cp0L,
+ 0x0.87d59438c5142bb56a489e9b8dp-104L,
+
+/* x = 1.64062500000000000000000000000000000e-01 3ffc5000000000000000000000000000 */
+/* cos(x) = 0.fc8ffa01ba6807417e05962b0d 9fdf1fddb0cc4c07d22e19e080 19bffa50a6c7acdb40307a3 */
+ 0x0.fc8ffa01ba6807417e05962b0dp0L,
+ 0x0.9fdf1fddb0cc4c07d22e19e080p-104L,
+/* sin(x) = 0.29cfd49b8be4f665276cab01cb f0426934906c3dd105473b226e 410b1450f62e53ff7c6cce1 */
+ 0x0.29cfd49b8be4f665276cab01cbp0L,
+ 0x0.f0426934906c3dd105473b226ep-104L,
+
+/* x = 1.71875000000000000000000000000000000e-01 3ffc6000000000000000000000000000 */
+/* cos(x) = 0.fc3a6170f767ac735d63d99a9d 439e1db5e59d3ef153a4265d58 55850ed82b536bf361b80e3 */
+ 0x0.fc3a6170f767ac735d63d99a9dp0L,
+ 0x0.439e1db5e59d3ef153a4265d58p-104L,
+/* sin(x) = 0.2bc89f9f424de5485de7ce03b2 514952b9faf5648c3244d4736f eb95dbb9da49f3b58a9253b */
+ 0x0.2bc89f9f424de5485de7ce03b2p0L,
+ 0x0.514952b9faf5648c3244d4736fp-104L,
+
+/* x = 1.79687500000000000000000000000000000e-01 3ffc7000000000000000000000000000 */
+/* cos(x) = 0.fbe0d7f7fef11e70aa43b8abf4 f6a457cea20c8f3f676b47781f 9821bbe9ce04b3c7b981c0b */
+ 0x0.fbe0d7f7fef11e70aa43b8abf4p0L,
+ 0x0.f6a457cea20c8f3f676b47781fp-104L,
+/* sin(x) = 0.2dc0bb80b49a97ffb34e8dd1f8 db9df7af47ed2dcf58b12c8e78 27e048cae929da02c04ecac */
+ 0x0.2dc0bb80b49a97ffb34e8dd1f8p0L,
+ 0x0.db9df7af47ed2dcf58b12c8e78p-104L,
+
+/* x = 1.87500000000000000000000000000000000e-01 3ffc8000000000000000000000000000 */
+/* cos(x) = 0.fb835efcf670dd2ce6fe792469 7eea13ea358867e9cdb3899b78 3f4f9f43aa5626e8b67b3bc */
+ 0x0.fb835efcf670dd2ce6fe792469p0L,
+ 0x0.7eea13ea358867e9cdb3899b78p-104L,
+/* sin(x) = 0.2fb8205f75e56a2b56a1c4792f 856258769af396e0189ef72c05 e4df59a6b00e4b44a6ea515 */
+ 0x0.2fb8205f75e56a2b56a1c4792fp0L,
+ 0x0.856258769af396e0189ef72c05p-104L,
+
+/* x = 1.95312500000000000000000000000000000e-01 3ffc9000000000000000000000000000 */
+/* cos(x) = 0.fb21f7f5c156696b00ac1fe28a c5fd76674a92b4df80d9c8a46c 684399005deccc41386257c */
+ 0x0.fb21f7f5c156696b00ac1fe28ap0L,
+ 0x0.c5fd76674a92b4df80d9c8a46cp-104L,
+/* sin(x) = 0.31aec65df552876f82ece9a235 6713246eba6799983d7011b0b3 698d6e1da919c15d57c30c1 */
+ 0x0.31aec65df552876f82ece9a235p0L,
+ 0x0.6713246eba6799983d7011b0b3p-104L,
+
+/* x = 2.03125000000000000000000000000000000e-01 3ffca000000000000000000000000000 */
+/* cos(x) = 0.fabca467fb3cb8f1d069f01d8e a33ade5bfd68296ecd1cc9f7b7 609bbcf3676e726c3301334 */
+ 0x0.fabca467fb3cb8f1d069f01d8ep0L,
+ 0x0.a33ade5bfd68296ecd1cc9f7b7p-104L,
+/* sin(x) = 0.33a4a5a19d86246710f602c44d f4fa513f4639ce938477aeeabb 82e8e0a7ed583a188879fd4 */
+ 0x0.33a4a5a19d86246710f602c44dp0L,
+ 0x0.f4fa513f4639ce938477aeeabbp-104L,
+
+/* x = 2.10937500000000000000000000000000000e-01 3ffcb000000000000000000000000000 */
+/* cos(x) = 0.fa5365e8f1d3ca27be1db5d76a e64d983d7470a4ab0f4ccf65a2 b8c67a380df949953a09bc1 */
+ 0x0.fa5365e8f1d3ca27be1db5d76ap0L,
+ 0x0.e64d983d7470a4ab0f4ccf65a2p-104L,
+/* sin(x) = 0.3599b652f40ec999df12a0a4c8 561de159c98d4e54555de518b9 7f48886f715d8df5f4f093e */
+ 0x0.3599b652f40ec999df12a0a4c8p0L,
+ 0x0.561de159c98d4e54555de518b9p-104L,
+
+/* x = 2.18750000000000000000000000000000000e-01 3ffcc000000000000000000000000000 */
+/* cos(x) = 0.f9e63e1d9e8b6f6f2e296bae5b 5ed9c11fd7fa2fe11e09fc7bde 901abed24b6365e72f7db4e */
+ 0x0.f9e63e1d9e8b6f6f2e296bae5bp0L,
+ 0x0.5ed9c11fd7fa2fe11e09fc7bdep-104L,
+/* sin(x) = 0.378df09db8c332ce0d2b53d865 582e4526ea336c768f68c32b49 6c6d11c1cd241bb9f1da523 */
+ 0x0.378df09db8c332ce0d2b53d865p0L,
+ 0x0.582e4526ea336c768f68c32b49p-104L,
+
+/* x = 2.26562500000000000000000000000000000e-01 3ffcd000000000000000000000000000 */
+/* cos(x) = 0.f9752eba9fff6b98842beadab0 54a932fb0f8d5b875ae63d6b22 88d09b148921aeb6e52f61b */
+ 0x0.f9752eba9fff6b98842beadab0p0L,
+ 0x0.54a932fb0f8d5b875ae63d6b22p-104L,
+/* sin(x) = 0.39814cb10513453cb97b21bc1c a6a337b150c21a675ab85503bc 09a436a10ab1473934e20c8 */
+ 0x0.39814cb10513453cb97b21bc1cp0L,
+ 0x0.a6a337b150c21a675ab85503bcp-104L,
+
+/* x = 2.34375000000000000000000000000000000e-01 3ffce000000000000000000000000000 */
+/* cos(x) = 0.f90039843324f9b940416c1984 b6cbed1fc733d97354d4265788 a86150493ce657cae032674 */
+ 0x0.f90039843324f9b940416c1984p0L,
+ 0x0.b6cbed1fc733d97354d4265788p-104L,
+/* sin(x) = 0.3b73c2bf6b4b9f668ef9499c81 f0d965087f1753fa64b086e58c b8470515c18c1412f8c2e02 */
+ 0x0.3b73c2bf6b4b9f668ef9499c81p0L,
+ 0x0.f0d965087f1753fa64b086e58cp-104L,
+
+/* x = 2.42187500000000000000000000000000000e-01 3ffcf000000000000000000000000000 */
+/* cos(x) = 0.f887604e2c39dbb20e4ec58250 59a789ffc95b275ad9954078ba 8a28d3fcfe9cc2c1d49697b */
+ 0x0.f887604e2c39dbb20e4ec58250p0L,
+ 0x0.59a789ffc95b275ad9954078bap-104L,
+/* sin(x) = 0.3d654aff15cb457a0fca854698 aba33039a8a40626609204472d 9d40309b626eccc6dff0ffa */
+ 0x0.3d654aff15cb457a0fca854698p0L,
+ 0x0.aba33039a8a40626609204472dp-104L,
+
+/* x = 2.50000000000000000000000000000000000e-01 3ffd0000000000000000000000000000 */
+/* cos(x) = 0.f80aa4fbef750ba783d33cb95f 94f8a41426dbe79edc4a023ef9 ec13c944551c0795b84fee1 */
+ 0x0.f80aa4fbef750ba783d33cb95fp0L,
+ 0x0.94f8a41426dbe79edc4a023ef9p-104L,
+/* sin(x) = 0.3f55dda9e62aed7513bd7b8e6a 3d1635dd5676648d7db525898d 7086af9330f03c7f285442a */
+ 0x0.3f55dda9e62aed7513bd7b8e6ap0L,
+ 0x0.3d1635dd5676648d7db525898dp-104L,
+
+/* x = 2.57812500000000000000000000000000000e-01 3ffd0800000000000000000000000000 */
+/* cos(x) = 0.f78a098069792daabc9ee42591 b7c5a68cb1ab822aeb446b3311 b4ba5371b8970e2c1547ad7 */
+ 0x0.f78a098069792daabc9ee42591p0L,
+ 0x0.b7c5a68cb1ab822aeb446b3311p-104L,
+/* sin(x) = 0.414572fd94556e6473d6202713 88dd47c0ba050cdb5270112e3e 370e8c4705ae006426fb5d5 */
+ 0x0.414572fd94556e6473d6202713p0L,
+ 0x0.88dd47c0ba050cdb5270112e3ep-104L,
+
+/* x = 2.65625000000000000000000000000000000e-01 3ffd1000000000000000000000000000 */
+/* cos(x) = 0.f7058fde0788dfc805b8fe8878 9e4f4253e3c50afe8b22f41159 620ab5940ff7df9557c0d1f */
+ 0x0.f7058fde0788dfc805b8fe8878p0L,
+ 0x0.9e4f4253e3c50afe8b22f41159p-104L,
+/* sin(x) = 0.4334033bcd90d6604f5f36c1d4 b84451a87150438275b77470b5 0e5b968fa7962b5ffb379b7 */
+ 0x0.4334033bcd90d6604f5f36c1d4p0L,
+ 0x0.b84451a87150438275b77470b5p-104L,
+
+/* x = 2.73437500000000000000000000000000000e-01 3ffd1800000000000000000000000000 */
+/* cos(x) = 0.f67d3a26af7d07aa4bd6d42af8 c0067fefb96d5b46c031eff536 27f215ea3242edc3f2e13eb */
+ 0x0.f67d3a26af7d07aa4bd6d42af8p0L,
+ 0x0.c0067fefb96d5b46c031eff536p-104L,
+/* sin(x) = 0.452186aa5377ab20bbf2524f52 e3a06a969f47166ab88cf88c11 1ad12c55941021ef3317a1a */
+ 0x0.452186aa5377ab20bbf2524f52p0L,
+ 0x0.e3a06a969f47166ab88cf88c11p-104L,
+
+/* x = 2.81250000000000000000000000000000000e-01 3ffd2000000000000000000000000000 */
+/* cos(x) = 0.f5f10a7bb77d3dfa0c1da8b578 42783280d01ce3c0f82bae3b9d 623c168d2e7c29977994451 */
+ 0x0.f5f10a7bb77d3dfa0c1da8b578p0L,
+ 0x0.42783280d01ce3c0f82bae3b9dp-104L,
+/* sin(x) = 0.470df5931ae1d946076fe0dcff 47fe31bb2ede618ebc607821f8 462b639e1f4298b5ae87fd3 */
+ 0x0.470df5931ae1d946076fe0dcffp0L,
+ 0x0.47fe31bb2ede618ebc607821f8p-104L,
+
+/* x = 2.89062500000000000000000000000000000e-01 3ffd2800000000000000000000000000 */
+/* cos(x) = 0.f561030ddd7a78960ea9f4a32c 6521554995667f5547bafee9ec 48b3155cdb0f7fd00509713 */
+ 0x0.f561030ddd7a78960ea9f4a32cp0L,
+ 0x0.6521554995667f5547bafee9ecp-104L,
+/* sin(x) = 0.48f948446abcd6b0f7fccb100e 7a1b26eccad880b0d24b59948c 7cdd49514d44b933e6985c2 */
+ 0x0.48f948446abcd6b0f7fccb100ep0L,
+ 0x0.7a1b26eccad880b0d24b59948cp-104L,
+
+/* x = 2.96875000000000000000000000000000000e-01 3ffd3000000000000000000000000000 */
+/* cos(x) = 0.f4cd261d3e6c15bb369c875863 0d2ac00b7ace2a51c0631bfeb3 9ed158ba924cc91e259c195 */
+ 0x0.f4cd261d3e6c15bb369c875863p0L,
+ 0x0.0d2ac00b7ace2a51c0631bfeb3p-104L,
+/* sin(x) = 0.4ae37710fad27c8aa9c4cf96c0 3519b9ce07dc08a1471775499f 05c29f86190aaebaeb9716e */
+ 0x0.4ae37710fad27c8aa9c4cf96c0p0L,
+ 0x0.3519b9ce07dc08a1471775499fp-104L,
+
+/* x = 3.04687500000000000000000000000000000e-01 3ffd3800000000000000000000000000 */
+/* cos(x) = 0.f43575f94d4f6b272f5fb76b14 d2a64ab52df1ee8ddf7c651034 e5b2889305a9ea9015d758a */
+ 0x0.f43575f94d4f6b272f5fb76b14p0L,
+ 0x0.d2a64ab52df1ee8ddf7c651034p-104L,
+/* sin(x) = 0.4ccc7a50127e1de0cb6b40c302 c651f7bded4f9e7702b0471ae0 288d091a37391950907202f */
+ 0x0.4ccc7a50127e1de0cb6b40c302p0L,
+ 0x0.c651f7bded4f9e7702b0471ae0p-104L,
+
+/* x = 3.12500000000000000000000000000000000e-01 3ffd4000000000000000000000000000 */
+/* cos(x) = 0.f399f500c9e9fd37ae9957263d ab8877102beb569f101ee44953 50868e5847d181d50d3cca2 */
+ 0x0.f399f500c9e9fd37ae9957263dp0L,
+ 0x0.ab8877102beb569f101ee44953p-104L,
+/* sin(x) = 0.4eb44a5da74f600207aaa090f0 734e288603ffadb3eb2542a469 77b105f8547128036dcf7f0 */
+ 0x0.4eb44a5da74f600207aaa090f0p0L,
+ 0x0.734e288603ffadb3eb2542a469p-104L,
+
+/* x = 3.20312500000000000000000000000000000e-01 3ffd4800000000000000000000000000 */
+/* cos(x) = 0.f2faa5a1b74e82fd61fa05f917 7380e8e69b7b15a945e8e5ae11 24bf3d12b0617e03af4fab5 */
+ 0x0.f2faa5a1b74e82fd61fa05f917p0L,
+ 0x0.7380e8e69b7b15a945e8e5ae11p-104L,
+/* sin(x) = 0.509adf9a7b9a5a0f638a8fa3a6 0a199418859f18b37169a644fd b986c21ecb00133853bc35b */
+ 0x0.509adf9a7b9a5a0f638a8fa3a6p0L,
+ 0x0.0a199418859f18b37169a644fdp-104L,
+
+/* x = 3.28125000000000000000000000000000000e-01 3ffd5000000000000000000000000000 */
+/* cos(x) = 0.f2578a595224dd2e6bfa2eb2f9 9cc674f5ea6f479eae2eb58018 6897ae3f893df1113ca06b8 */
+ 0x0.f2578a595224dd2e6bfa2eb2f9p0L,
+ 0x0.9cc674f5ea6f479eae2eb58018p-104L,
+/* sin(x) = 0.5280326c3cf481823ba6bb08ea c82c2093f2bce3c4eb4ee3dec7 df41c92c8a4226098616075 */
+ 0x0.5280326c3cf481823ba6bb08eap0L,
+ 0x0.c82c2093f2bce3c4eb4ee3dec7p-104L,
+
+/* x = 3.35937500000000000000000000000000000e-01 3ffd5800000000000000000000000000 */
+/* cos(x) = 0.f1b0a5b406b526d886c55feadc 8d0dcc8eb9ae2ac707051771b4 8e05b25b000009660bdb3e3 */
+ 0x0.f1b0a5b406b526d886c55feadcp0L,
+ 0x0.8d0dcc8eb9ae2ac707051771b4p-104L,
+/* sin(x) = 0.54643b3da29de9b357155eef0f 332fb3e66c83bf4dddd9491c5e b8e103ccd92d6175220ed51 */
+ 0x0.54643b3da29de9b357155eef0fp0L,
+ 0x0.332fb3e66c83bf4dddd9491c5ep-104L,
+
+/* x = 3.43750000000000000000000000000000000e-01 3ffd6000000000000000000000000000 */
+/* cos(x) = 0.f105fa4d66b607a67d44e04272 5204435142ac8ad54dfb0907a4 f6b56b06d98ee60f19e557a */
+ 0x0.f105fa4d66b607a67d44e04272p0L,
+ 0x0.5204435142ac8ad54dfb0907a4p-104L,
+/* sin(x) = 0.5646f27e8bd65cbe3a5d61ff06 572290ee826d9674a00246b05a e26753cdfc90d9ce81a7d02 */
+ 0x0.5646f27e8bd65cbe3a5d61ff06p0L,
+ 0x0.572290ee826d9674a00246b05ap-104L,
+
+/* x = 3.51562500000000000000000000000000000e-01 3ffd6800000000000000000000000000 */
+/* cos(x) = 0.f0578ad01ede707fa39c09dc6b 984afef74f3dc8d0efb0f4c5a6 b13771145b3e0446fe33887 */
+ 0x0.f0578ad01ede707fa39c09dc6bp0L,
+ 0x0.984afef74f3dc8d0efb0f4c5a6p-104L,
+/* sin(x) = 0.582850a41e1dd46c7f602ea244 cdbbbfcdfa8f3189be794dda42 7ce090b5f85164f1f80ac13 */
+ 0x0.582850a41e1dd46c7f602ea244p0L,
+ 0x0.cdbbbfcdfa8f3189be794dda42p-104L,
+
+/* x = 3.59375000000000000000000000000000000e-01 3ffd7000000000000000000000000000 */
+/* cos(x) = 0.efa559f5ec3aec3a4eb0331927 8a2d41fcf9189462261125fe61 47b078f1daa0b06750a1654 */
+ 0x0.efa559f5ec3aec3a4eb0331927p0L,
+ 0x0.8a2d41fcf9189462261125fe61p-104L,
+/* sin(x) = 0.5a084e28e35fda2776dfdbbb55 31d74ced2b5d17c0b1afc46475 29d50c295e36d8ceec126c1 */
+ 0x0.5a084e28e35fda2776dfdbbb55p0L,
+ 0x0.31d74ced2b5d17c0b1afc46475p-104L,
+
+/* x = 3.67187500000000000000000000000000000e-01 3ffd7800000000000000000000000000 */
+/* cos(x) = 0.eeef6a879146af0bf9b95ea2ea 0ac0d3e2e4d7e15d93f48cbd41 bf8e4fded40bef69e19eafa */
+ 0x0.eeef6a879146af0bf9b95ea2eap0L,
+ 0x0.0ac0d3e2e4d7e15d93f48cbd41p-104L,
+/* sin(x) = 0.5be6e38ce8095542bc14ee9da0 d36483e6734bcab2e07624188a f5653f114eeb46738fa899d */
+ 0x0.5be6e38ce8095542bc14ee9da0p0L,
+ 0x0.d36483e6734bcab2e07624188ap-104L,
+
+/* x = 3.75000000000000000000000000000000000e-01 3ffd8000000000000000000000000000 */
+/* cos(x) = 0.ee35bf5ccac89052cd91ddb734 d3a47e262e3b609db604e21705 3803be0091e76daf28a89b7 */
+ 0x0.ee35bf5ccac89052cd91ddb734p0L,
+ 0x0.d3a47e262e3b609db604e21705p-104L,
+/* sin(x) = 0.5dc40955d9084f48a94675a249 8de5d851320ff5528a6afb3f2e 24de240fce6cbed1ba0ccd6 */
+ 0x0.5dc40955d9084f48a94675a249p0L,
+ 0x0.8de5d851320ff5528a6afb3f2ep-104L,
+
+/* x = 3.82812500000000000000000000000000000e-01 3ffd8800000000000000000000000000 */
+/* cos(x) = 0.ed785b5c44741b4493c56bcb9d 338a151c6f6b85d8f8aca658b2 8572c162b199680eb9304da */
+ 0x0.ed785b5c44741b4493c56bcb9dp0L,
+ 0x0.338a151c6f6b85d8f8aca658b2p-104L,
+/* sin(x) = 0.5f9fb80f21b53649c432540a50 e22c53057ff42ae0fdf1307760 dc0093f99c8efeb2fbd7073 */
+ 0x0.5f9fb80f21b53649c432540a50p0L,
+ 0x0.e22c53057ff42ae0fdf1307760p-104L,
+
+/* x = 3.90625000000000000000000000000000000e-01 3ffd9000000000000000000000000000 */
+/* cos(x) = 0.ecb7417b8d4ee3fec37aba4073 aa48f1f14666006fb431d96713 03c8100d10190ec8179c41d */
+ 0x0.ecb7417b8d4ee3fec37aba4073p0L,
+ 0x0.aa48f1f14666006fb431d96713p-104L,
+/* sin(x) = 0.6179e84a09a5258a40e9b5face 03e525f8b5753cd0105d93fe62 98010c3458e84d75fe420e9 */
+ 0x0.6179e84a09a5258a40e9b5facep0L,
+ 0x0.03e525f8b5753cd0105d93fe62p-104L,
+
+/* x = 3.98437500000000000000000000000000000e-01 3ffd9800000000000000000000000000 */
+/* cos(x) = 0.ebf274bf0bda4f62447e56a093 626798d3013b5942b1abfd155a acc9dc5c6d0806a20d6b9c1 */
+ 0x0.ebf274bf0bda4f62447e56a093p0L,
+ 0x0.626798d3013b5942b1abfd155ap-104L,
+/* sin(x) = 0.6352929dd264bd44a02ea76632 5d8aa8bd9695fc8def3caefba5 b94c9a3c873f7b2d3776ead */
+ 0x0.6352929dd264bd44a02ea76632p0L,
+ 0x0.5d8aa8bd9695fc8def3caefba5p-104L,
+
+/* x = 4.06250000000000000000000000000000000e-01 3ffda000000000000000000000000000 */
+/* cos(x) = 0.eb29f839f201fd13b937968279 16a78f15c85230a4e8ea4b2155 8265a14367e1abb4c30695a */
+ 0x0.eb29f839f201fd13b937968279p0L,
+ 0x0.16a78f15c85230a4e8ea4b2155p-104L,
+/* sin(x) = 0.6529afa7d51b129631ec197c0a 840a11d7dc5368b0a47956feb2 85caa8371c4637ef17ef01b */
+ 0x0.6529afa7d51b129631ec197c0ap0L,
+ 0x0.840a11d7dc5368b0a47956feb2p-104L,
+
+/* x = 4.14062500000000000000000000000000000e-01 3ffda800000000000000000000000000 */
+/* cos(x) = 0.ea5dcf0e30cf03e6976ef0b1ec 26515fba47383855c3b4055a99 b5e86824b2cd1a691fdca7b */
+ 0x0.ea5dcf0e30cf03e6976ef0b1ecp0L,
+ 0x0.26515fba47383855c3b4055a99p-104L,
+/* sin(x) = 0.66ff380ba0144109e39a320b0a 3fa5fd65ea0585bcbf9b1a769a 9b0334576c658139e1a1cbe */
+ 0x0.66ff380ba0144109e39a320b0ap0L,
+ 0x0.3fa5fd65ea0585bcbf9b1a769ap-104L,
+
+/* x = 4.21875000000000000000000000000000000e-01 3ffdb000000000000000000000000000 */
+/* cos(x) = 0.e98dfc6c6be031e60dd3089cbd d18a75b1f6b2c1e97f79225202 f03dbea45b07a5ec4efc062 */
+ 0x0.e98dfc6c6be031e60dd3089cbdp0L,
+ 0x0.d18a75b1f6b2c1e97f79225202p-104L,
+/* sin(x) = 0.68d32473143327973bc712bcc4 ccddc47630d755850c0655243b 205934dc49ffed8eb76adcb */
+ 0x0.68d32473143327973bc712bcc4p0L,
+ 0x0.ccddc47630d755850c0655243bp-104L,
+
+/* x = 4.29687500000000000000000000000000000e-01 3ffdb800000000000000000000000000 */
+/* cos(x) = 0.e8ba8393eca7821aa563d83491 b6101189b3b101c3677f73d7ba d7c10f9ee02b7ab4009739a */
+ 0x0.e8ba8393eca7821aa563d83491p0L,
+ 0x0.b6101189b3b101c3677f73d7bap-104L,
+/* sin(x) = 0.6aa56d8e8249db4eb60a761fe3 f9e559be456b9e13349ca99b0b fb787f22b95db3b70179615 */
+ 0x0.6aa56d8e8249db4eb60a761fe3p0L,
+ 0x0.f9e559be456b9e13349ca99b0bp-104L,
+
+/* x = 4.37500000000000000000000000000000000e-01 3ffdc000000000000000000000000000 */
+/* cos(x) = 0.e7e367d2956cfb16b6aa11e541 9cd0057f5c132a6455bf064297 e6a76fe2b72bb630d6d50ff */
+ 0x0.e7e367d2956cfb16b6aa11e541p0L,
+ 0x0.9cd0057f5c132a6455bf064297p-104L,
+/* sin(x) = 0.6c760c14c8585a51dbd34660ae 6c52ac7036a0b40887a0b63724 f8b4414348c3063a637f457 */
+ 0x0.6c760c14c8585a51dbd34660aep0L,
+ 0x0.6c52ac7036a0b40887a0b63724p-104L,
+
+/* x = 4.45312500000000000000000000000000000e-01 3ffdc800000000000000000000000000 */
+/* cos(x) = 0.e708ac84d4172a3e2737662213 429e14021074d7e702e77d72a8 f1101a7e70410df8273e9aa */
+ 0x0.e708ac84d4172a3e2737662213p0L,
+ 0x0.429e14021074d7e702e77d72a8p-104L,
+/* sin(x) = 0.6e44f8c36eb10a1c752d093c00 f4d47ba446ac4c215d26b03164 42f168459e677d06e7249e3 */
+ 0x0.6e44f8c36eb10a1c752d093c00p0L,
+ 0x0.f4d47ba446ac4c215d26b03164p-104L,
+
+/* x = 4.53125000000000000000000000000000000e-01 3ffdd000000000000000000000000000 */
+/* cos(x) = 0.e62a551594b970a770b15d41d4 c0e483e47aca550111df6966f9 e7ac3a94ae49e6a71eb031e */
+ 0x0.e62a551594b970a770b15d41d4p0L,
+ 0x0.c0e483e47aca550111df6966f9p-104L,
+/* sin(x) = 0.70122c5ec5028c8cff33abf4fd 340ccc382e038379b09cf04f9a 52692b10b72586060cbb001 */
+ 0x0.70122c5ec5028c8cff33abf4fdp0L,
+ 0x0.340ccc382e038379b09cf04f9ap-104L,
+
+/* x = 4.60937500000000000000000000000000000e-01 3ffdd800000000000000000000000000 */
+/* cos(x) = 0.e54864fe33e8575cabf5bd0e5c f1b1a8bc7c0d5f61702450fa6b 6539735820dd2603ae355d5 */
+ 0x0.e54864fe33e8575cabf5bd0e5cp0L,
+ 0x0.f1b1a8bc7c0d5f61702450fa6bp-104L,
+/* sin(x) = 0.71dd9fb1ff4677853acb970a9f 6729c6e3aac247b1c57cea66c7 7413f1f98e8b9e98e49d851 */
+ 0x0.71dd9fb1ff4677853acb970a9fp0L,
+ 0x0.6729c6e3aac247b1c57cea66c7p-104L,
+
+/* x = 4.68750000000000000000000000000000000e-01 3ffde000000000000000000000000000 */
+/* cos(x) = 0.e462dfc670d421ab3d1a159012 28f146a0547011202bf5ab01f9 14431859aef577966bc4fa4 */
+ 0x0.e462dfc670d421ab3d1a159012p0L,
+ 0x0.28f146a0547011202bf5ab01f9p-104L,
+/* sin(x) = 0.73a74b8f52947b681baf6928eb 3fb021769bf4779bad0e3aa9b1 cdb75ec60aad9fc63ff19d5 */
+ 0x0.73a74b8f52947b681baf6928ebp0L,
+ 0x0.3fb021769bf4779bad0e3aa9b1p-104L,
+
+/* x = 4.76562500000000000000000000000000000e-01 3ffde800000000000000000000000000 */
+/* cos(x) = 0.e379c9045f29d517c4808aa497 c2057b2b3d109e76c0dc302d4d 0698b36e3f0bdbf33d8e952 */
+ 0x0.e379c9045f29d517c4808aa497p0L,
+ 0x0.c2057b2b3d109e76c0dc302d4dp-104L,
+/* sin(x) = 0.756f28d011d98528a44a75fc29 c779bd734ecdfb582fdb74b68a 4c4c4be54cfd0b2d3ad292f */
+ 0x0.756f28d011d98528a44a75fc29p0L,
+ 0x0.c779bd734ecdfb582fdb74b68ap-104L,
+
+/* x = 4.84375000000000000000000000000000000e-01 3ffdf000000000000000000000000000 */
+/* cos(x) = 0.e28d245c58baef72225e232abc 003c4366acd9eb4fc2808c2ab7 fe7676cf512ac7f945ae5fb */
+ 0x0.e28d245c58baef72225e232abcp0L,
+ 0x0.003c4366acd9eb4fc2808c2ab7p-104L,
+/* sin(x) = 0.77353054ca72690d4c6e171fd9 9e6b39fa8e1ede5f052fd29645 34c75340970a3a9cd3c5c32 */
+ 0x0.77353054ca72690d4c6e171fd9p0L,
+ 0x0.9e6b39fa8e1ede5f052fd29645p-104L,
+
+/* x = 4.92187500000000000000000000000000000e-01 3ffdf800000000000000000000000000 */
+/* cos(x) = 0.e19cf580eeec046aa1422fa748 07ecefb2a1911c94e7b5f20a00 f70022d940193691e5bd790 */
+ 0x0.e19cf580eeec046aa1422fa748p0L,
+ 0x0.07ecefb2a1911c94e7b5f20a00p-104L,
+/* sin(x) = 0.78f95b0560a9a3bd6df7bd981d c38c61224d08bc20631ea932e6 05e53b579e9e0767dfcbbcb */
+ 0x0.78f95b0560a9a3bd6df7bd981dp0L,
+ 0x0.c38c61224d08bc20631ea932e6p-104L,
+
+/* x = 5.00000000000000000000000000000000000e-01 3ffe0000000000000000000000000000 */
+/* cos(x) = 0.e0a94032dbea7cedbddd9da2fa fad98556566b3a89f43eabd723 50af3e8b19e801204d8fe2e */
+ 0x0.e0a94032dbea7cedbddd9da2fap0L,
+ 0x0.fad98556566b3a89f43eabd723p-104L,
+/* sin(x) = 0.7abba1d12c17bfa1d92f0d93f6 0ded9992f45b4fcaf13cd58b30 3693d2a0db47db35ae8a3a9 */
+ 0x0.7abba1d12c17bfa1d92f0d93f6p0L,
+ 0x0.0ded9992f45b4fcaf13cd58b30p-104L,
+
+/* x = 5.07812500000000000000000000000000000e-01 3ffe0400000000000000000000000000 */
+/* cos(x) = 0.dfb20840f3a9b36f7ae2c51534 2890b5ec583b8366cc2b55029e 95094d31112383f2553498b */
+ 0x0.dfb20840f3a9b36f7ae2c51534p0L,
+ 0x0.2890b5ec583b8366cc2b55029ep-104L,
+/* sin(x) = 0.7c7bfdaf13e5ed17212f8a7525 bfb113aba6c0741b5362bb8d59 282a850b63716bca0c910f0 */
+ 0x0.7c7bfdaf13e5ed17212f8a7525p0L,
+ 0x0.bfb113aba6c0741b5362bb8d59p-104L,
+
+/* x = 5.15625000000000000000000000000000000e-01 3ffe0800000000000000000000000000 */
+/* cos(x) = 0.deb7518814a7a931bbcc88c109 cd41c50bf8bb48f20ae8c36628 d1d3d57574f7dc58f27d91c */
+ 0x0.deb7518814a7a931bbcc88c109p0L,
+ 0x0.cd41c50bf8bb48f20ae8c36628p-104L,
+/* sin(x) = 0.7e3a679daaf25c676542bcb402 8d0964172961c921823a4ef0c3 a9070d886dbd073f6283699 */
+ 0x0.7e3a679daaf25c676542bcb402p0L,
+ 0x0.8d0964172961c921823a4ef0c3p-104L,
+
+/* x = 5.23437500000000000000000000000000000e-01 3ffe0c00000000000000000000000000 */
+/* cos(x) = 0.ddb91ff318799172bd2452d0a3 889f5169c64a0094bcf0b8aa7d cf0d7640a2eba68955a80be */
+ 0x0.ddb91ff318799172bd2452d0a3p0L,
+ 0x0.889f5169c64a0094bcf0b8aa7dp-104L,
+/* sin(x) = 0.7ff6d8a34bd5e8fa54c97482db 5159df1f24e8038419c0b448b9 eea8939b5d4dfcf40900257 */
+ 0x0.7ff6d8a34bd5e8fa54c97482dbp0L,
+ 0x0.5159df1f24e8038419c0b448b9p-104L,
+
+/* x = 5.31250000000000000000000000000000000e-01 3ffe1000000000000000000000000000 */
+/* cos(x) = 0.dcb7777ac420705168f31e3eb7 80ce9c939ecada62843b54522f 5407eb7f21e556059fcd734 */
+ 0x0.dcb7777ac420705168f31e3eb7p0L,
+ 0x0.80ce9c939ecada62843b54522fp-104L,
+/* sin(x) = 0.81b149ce34caa5a4e650f8d09f d4d6aa74206c32ca951a93074c 83b2d294d25dbb0f7fdfad2 */
+ 0x0.81b149ce34caa5a4e650f8d09fp0L,
+ 0x0.d4d6aa74206c32ca951a93074cp-104L,
+
+/* x = 5.39062500000000000000000000000000000e-01 3ffe1400000000000000000000000000 */
+/* cos(x) = 0.dbb25c25b8260c14f6e7bc98ec 991b70c65335198b0ab628bad2 0cc7b229d4dd62183cfa055 */
+ 0x0.dbb25c25b8260c14f6e7bc98ecp0L,
+ 0x0.991b70c65335198b0ab628bad2p-104L,
+/* sin(x) = 0.8369b434a372da7eb5c8a71fe3 6ce1e0b2b493f6f5cb2e38bcae c2a556b3678c401940d1c3c */
+ 0x0.8369b434a372da7eb5c8a71fe3p0L,
+ 0x0.6ce1e0b2b493f6f5cb2e38bcaep-104L,
+
+/* x = 5.46875000000000000000000000000000000e-01 3ffe1800000000000000000000000000 */
+/* cos(x) = 0.daa9d20860827063fde51c09e8 55e9932e1b17143e7244fd267a 899d41ae1f3bc6a0ec42e27 */
+ 0x0.daa9d20860827063fde51c09e8p0L,
+ 0x0.55e9932e1b17143e7244fd267ap-104L,
+/* sin(x) = 0.852010f4f0800521378bd8dd61 4753d080c2e9e0775ffc609947 b9132f5357404f464f06a58 */
+ 0x0.852010f4f0800521378bd8dd61p0L,
+ 0x0.4753d080c2e9e0775ffc609947p-104L,
+
+/* x = 5.54687500000000000000000000000000000e-01 3ffe1c00000000000000000000000000 */
+/* cos(x) = 0.d99ddd44e44a43d4d4a3a3ed95 204106fd54d78e8c7684545c0d a0b7c2c72be7a89b7c182ad */
+ 0x0.d99ddd44e44a43d4d4a3a3ed95p0L,
+ 0x0.204106fd54d78e8c7684545c0dp-104L,
+/* sin(x) = 0.86d45935ab396cb4e421e822de e54f3562dfcefeaa782184c234 01d231f5ad981a1cc195b18 */
+ 0x0.86d45935ab396cb4e421e822dep0L,
+ 0x0.e54f3562dfcefeaa782184c234p-104L,
+
+/* x = 5.62500000000000000000000000000000000e-01 3ffe2000000000000000000000000000 */
+/* cos(x) = 0.d88e820b1526311dd561efbc0c 1a9a5375eb26f65d246c5744b1 3ca26a7e0fd42556da843c8 */
+ 0x0.d88e820b1526311dd561efbc0cp0L,
+ 0x0.1a9a5375eb26f65d246c5744b1p-104L,
+/* sin(x) = 0.88868625b4e1dbb23133101330 22527200c143a5cb16637cb7da f8ade82459ff2e98511f40f */
+ 0x0.88868625b4e1dbb23133101330p0L,
+ 0x0.22527200c143a5cb16637cb7dap-104L,
+
+/* x = 5.70312500000000000000000000000000000e-01 3ffe2400000000000000000000000000 */
+/* cos(x) = 0.d77bc4985e93a607c9d868b906 bbc6bbe3a04258814acb035846 8b826fc91bd4d814827f65e */
+ 0x0.d77bc4985e93a607c9d868b906p0L,
+ 0x0.bbc6bbe3a04258814acb035846p-104L,
+/* sin(x) = 0.8a3690fc5bfc11bf9535e2739a 8512f448a41251514bbed7fc18 d530f9b4650fcbb2861b0aa */
+ 0x0.8a3690fc5bfc11bf9535e2739ap0L,
+ 0x0.8512f448a41251514bbed7fc18p-104L,
+
+/* x = 5.78125000000000000000000000000000000e-01 3ffe2800000000000000000000000000 */
+/* cos(x) = 0.d665a937b4ef2b1f6d51bad6d9 88a4419c1d7051faf31a9efa15 1d7631117efac03713f950a */
+ 0x0.d665a937b4ef2b1f6d51bad6d9p0L,
+ 0x0.88a4419c1d7051faf31a9efa15p-104L,
+/* sin(x) = 0.8be472f9776d809af2b8817124 3d63d66dfceeeb739cc894e023 fbc165a0e3f26ff729c5d57 */
+ 0x0.8be472f9776d809af2b8817124p0L,
+ 0x0.3d63d66dfceeeb739cc894e023p-104L,
+
+/* x = 5.85937500000000000000000000000000000e-01 3ffe2c00000000000000000000000000 */
+/* cos(x) = 0.d54c3441844897fc8f853f0655 f1ba695eba9fbfd7439dbb1171 d862d9d9146ca5136f825ac */
+ 0x0.d54c3441844897fc8f853f0655p0L,
+ 0x0.f1ba695eba9fbfd7439dbb1171p-104L,
+/* sin(x) = 0.8d902565817ee7839bce3cd128 060119492cd36d42d82ada30d7 f8bde91324808377ddbf5d4 */
+ 0x0.8d902565817ee7839bce3cd128p0L,
+ 0x0.060119492cd36d42d82ada30d7p-104L,
+
+/* x = 5.93750000000000000000000000000000000e-01 3ffe3000000000000000000000000000 */
+/* cos(x) = 0.d42f6a1b9f0168cdf031c2f63c 8d9304d86f8d34cb1d5fccb68c a0f2241427fc18d1fd5bbdf */
+ 0x0.d42f6a1b9f0168cdf031c2f63cp0L,
+ 0x0.8d9304d86f8d34cb1d5fccb68cp-104L,
+/* sin(x) = 0.8f39a191b2ba6122a3fa4f41d5 a3ffd421417d46f19a22230a14 f7fcc8fce5c75b4b28b29d1 */
+ 0x0.8f39a191b2ba6122a3fa4f41d5p0L,
+ 0x0.a3ffd421417d46f19a22230a14p-104L,
+
+/* x = 6.01562500000000000000000000000000000e-01 3ffe3400000000000000000000000000 */
+/* cos(x) = 0.d30f4f392c357ab0661c5fa8a7 d9b26627846fef214b1d19a223 79ff9eddba087cf410eb097 */
+ 0x0.d30f4f392c357ab0661c5fa8a7p0L,
+ 0x0.d9b26627846fef214b1d19a223p-104L,
+/* sin(x) = 0.90e0e0d81ca678796cc92c8ea8 c2815bc72ca78abe571bfa8576 aacc571e096a33237e0e830 */
+ 0x0.90e0e0d81ca678796cc92c8ea8p0L,
+ 0x0.c2815bc72ca78abe571bfa8576p-104L,
+
+/* x = 6.09375000000000000000000000000000000e-01 3ffe3800000000000000000000000000 */
+/* cos(x) = 0.d1ebe81a95ee752e48a26bcd32 d6e922d7eb44b8ad2232f69307 95e84b56317269b9dd1dfa6 */
+ 0x0.d1ebe81a95ee752e48a26bcd32p0L,
+ 0x0.d6e922d7eb44b8ad2232f69307p-104L,
+/* sin(x) = 0.9285dc9bc45dd9ea3d02457bcc e59c4175aab6ff7929a8d28719 5525fdace200dba032874fb */
+ 0x0.9285dc9bc45dd9ea3d02457bccp0L,
+ 0x0.e59c4175aab6ff7929a8d28719p-104L,
+
+/* x = 6.17187500000000000000000000000000000e-01 3ffe3c00000000000000000000000000 */
+/* cos(x) = 0.d0c5394d772228195e25736c03 574707de0af1ca344b13bd3914 bfe27518e9e426f5deff1e1 */
+ 0x0.d0c5394d772228195e25736c03p0L,
+ 0x0.574707de0af1ca344b13bd3914p-104L,
+/* sin(x) = 0.94288e48bd0335fc41c4cbd292 0497a8f5d1d8185c99fa0081f9 0c27e2a53ffdd208a0dbe69 */
+ 0x0.94288e48bd0335fc41c4cbd292p0L,
+ 0x0.0497a8f5d1d8185c99fa0081f9p-104L,
+
+/* x = 6.25000000000000000000000000000000000e-01 3ffe4000000000000000000000000000 */
+/* cos(x) = 0.cf9b476c897c25c5bfe750dd3f 308eaf7bcc1ed00179a256870f 4200445043dcdb1974b5878 */
+ 0x0.cf9b476c897c25c5bfe750dd3fp0L,
+ 0x0.308eaf7bcc1ed00179a256870fp-104L,
+/* sin(x) = 0.95c8ef544210ec0b91c49bd2aa 09e8515fa61a156ebb10f5f8c2 32a6445b61ebf3c2ec268f9 */
+ 0x0.95c8ef544210ec0b91c49bd2aap0L,
+ 0x0.09e8515fa61a156ebb10f5f8c2p-104L,
+
+/* x = 6.32812500000000000000000000000000000e-01 3ffe4400000000000000000000000000 */
+/* cos(x) = 0.ce6e171f92f2e27f32225327ec 440ddaefae248413efc0e58cee e1ae369aabe73f88c87ed1a */
+ 0x0.ce6e171f92f2e27f32225327ecp0L,
+ 0x0.440ddaefae248413efc0e58ceep-104L,
+/* sin(x) = 0.9766f93cd18413a6aafc1cfc6f c28abb6817bf94ce349901ae3f 48c3215d3eb60acc5f78903 */
+ 0x0.9766f93cd18413a6aafc1cfc6fp0L,
+ 0x0.c28abb6817bf94ce349901ae3fp-104L,
+
+/* x = 6.40625000000000000000000000000000000e-01 3ffe4800000000000000000000000000 */
+/* cos(x) = 0.cd3dad1b5328a2e459f993f4f5 108819faccbc4eeba9604e81c7 adad51cc8a2561631a06826 */
+ 0x0.cd3dad1b5328a2e459f993f4f5p0L,
+ 0x0.108819faccbc4eeba9604e81c7p-104L,
+/* sin(x) = 0.9902a58a45e27bed68412b426b 675ed503f54d14c8172e0d373f 42cadf04daf67319a7f94be */
+ 0x0.9902a58a45e27bed68412b426bp0L,
+ 0x0.675ed503f54d14c8172e0d373fp-104L,
+
+/* x = 6.48437500000000000000000000000000000e-01 3ffe4c00000000000000000000000000 */
+/* cos(x) = 0.cc0a0e21709883a3ff00911e11 a07ee3bd7ea2b04e081be99be0 264791170761ae64b8b744a */
+ 0x0.cc0a0e21709883a3ff00911e11p0L,
+ 0x0.a07ee3bd7ea2b04e081be99be0p-104L,
+/* sin(x) = 0.9a9bedcdf01b38d993f3d78207 81de292033ead73b89e28f3931 3dbe3a6e463f845b5fa8490 */
+ 0x0.9a9bedcdf01b38d993f3d78207p0L,
+ 0x0.81de292033ead73b89e28f3931p-104L,
+
+/* x = 6.56250000000000000000000000000000000e-01 3ffe5000000000000000000000000000 */
+/* cos(x) = 0.cad33f00658fe5e8204bbc0f3a 66a0e6a773f87987a780b243d7 be83b3db1448ca0e0e62787 */
+ 0x0.cad33f00658fe5e8204bbc0f3ap0L,
+ 0x0.66a0e6a773f87987a780b243d7p-104L,
+/* sin(x) = 0.9c32cba2b14156ef05256c4f85 7991ca6a547cd7ceb1ac8a8e62 a282bd7b9183648a462bd04 */
+ 0x0.9c32cba2b14156ef05256c4f85p0L,
+ 0x0.7991ca6a547cd7ceb1ac8a8e62p-104L,
+
+/* x = 6.64062500000000000000000000000000000e-01 3ffe5400000000000000000000000000 */
+/* cos(x) = 0.c99944936cf48c8911ff93fe64 b3ddb7981e414bdaf6aae12035 77de44878c62bc3bc9cf7b9 */
+ 0x0.c99944936cf48c8911ff93fe64p0L,
+ 0x0.b3ddb7981e414bdaf6aae12035p-104L,
+/* sin(x) = 0.9dc738ad14204e689ac582d0f8 5826590feece34886cfefe2e08 cf2bb8488d55424dc9d3525 */
+ 0x0.9dc738ad14204e689ac582d0f8p0L,
+ 0x0.5826590feece34886cfefe2e08p-104L,
+
+/* x = 6.71875000000000000000000000000000000e-01 3ffe5800000000000000000000000000 */
+/* cos(x) = 0.c85c23c26ed7b6f014ef546c47 929682122876bfbf157de0aff3 c4247d820c746e32cd4174f */
+ 0x0.c85c23c26ed7b6f014ef546c47p0L,
+ 0x0.929682122876bfbf157de0aff3p-104L,
+/* sin(x) = 0.9f592e9b66a9cf906a3c7aa3c1 0199849040c45ec3f0a7475973 11038101780c5f266059dbf */
+ 0x0.9f592e9b66a9cf906a3c7aa3c1p0L,
+ 0x0.0199849040c45ec3f0a7475973p-104L,
+
+/* x = 6.79687500000000000000000000000000000e-01 3ffe5c00000000000000000000000000 */
+/* cos(x) = 0.c71be181ecd6875ce2da5615a0 3cca207d9adcb9dfb0a1d6c40a 4f0056437f1a59ccddd06ee */
+ 0x0.c71be181ecd6875ce2da5615a0p0L,
+ 0x0.3cca207d9adcb9dfb0a1d6c40ap-104L,
+/* sin(x) = 0.a0e8a725d33c828c11fa50fd9e 9a15ffecfad43f3e534358076b 9b0f6865694842b1e8c67dc */
+ 0x0.a0e8a725d33c828c11fa50fd9ep0L,
+ 0x0.9a15ffecfad43f3e534358076bp-104L,
+
+/* x = 6.87500000000000000000000000000000000e-01 3ffe6000000000000000000000000000 */
+/* cos(x) = 0.c5d882d2ee48030c7c07d28e98 1e34804f82ed4cf93655d23653 89b716de6ad44676a1cc5da */
+ 0x0.c5d882d2ee48030c7c07d28e98p0L,
+ 0x0.1e34804f82ed4cf93655d23653p-104L,
+/* sin(x) = 0.a2759c0e79c35582527c32b55f 5405c182c66160cb1d9eb7bb0b 7cdf4ad66f317bda4332914 */
+ 0x0.a2759c0e79c35582527c32b55fp0L,
+ 0x0.5405c182c66160cb1d9eb7bb0bp-104L,
+
+/* x = 6.95312500000000000000000000000000000e-01 3ffe6400000000000000000000000000 */
+/* cos(x) = 0.c4920cc2ec38fb891b38827db0 8884fc66371ac4c2052ca8885b 981bbcfd3bb7b093ee31515 */
+ 0x0.c4920cc2ec38fb891b38827db0p0L,
+ 0x0.8884fc66371ac4c2052ca8885bp-104L,
+/* sin(x) = 0.a400072188acf49cd6b173825e 038346f105e1301afe642bcc36 4cea455e21e506e3e927ed8 */
+ 0x0.a400072188acf49cd6b173825ep0L,
+ 0x0.038346f105e1301afe642bcc36p-104L,
+
+/* x = 7.03125000000000000000000000000000000e-01 3ffe6800000000000000000000000000 */
+/* cos(x) = 0.c348846bbd3631338ffe2bfe9d d1381a35b4e9c0c51b4c13fe37 6bad1bf5caacc4542be0aa9 */
+ 0x0.c348846bbd3631338ffe2bfe9dp0L,
+ 0x0.d1381a35b4e9c0c51b4c13fe37p-104L,
+/* sin(x) = 0.a587e23555bb08086d02b9c662 cdd29316c3e9bd08d93793634a 21b1810cce73bdb97a99b9e */
+ 0x0.a587e23555bb08086d02b9c662p0L,
+ 0x0.cdd29316c3e9bd08d93793634ap-104L,
+
+/* x = 7.10937500000000000000000000000000000e-01 3ffe6c00000000000000000000000000 */
+/* cos(x) = 0.c1fbeef380e4ffdd5a613ec872 2f643ffe814ec2343e53adb549 627224fdc9f2a7b77d3d69f */
+ 0x0.c1fbeef380e4ffdd5a613ec872p0L,
+ 0x0.2f643ffe814ec2343e53adb549p-104L,
+/* sin(x) = 0.a70d272a76a8d4b6da0ec90712 bb748b96dabf88c3079246f3db 7eea6e58ead4ed0e2843303 */
+ 0x0.a70d272a76a8d4b6da0ec90712p0L,
+ 0x0.bb748b96dabf88c3079246f3dbp-104L,
+
+/* x = 7.18750000000000000000000000000000000e-01 3ffe7000000000000000000000000000 */
+/* cos(x) = 0.c0ac518c8b6ae710ba37a3eeb9 0cb15aebcb8bed4356fb507a48 a6e97de9aa6d9660116b436 */
+ 0x0.c0ac518c8b6ae710ba37a3eeb9p0L,
+ 0x0.0cb15aebcb8bed4356fb507a48p-104L,
+/* sin(x) = 0.a88fcfebd9a8dd47e2f3c76ef9 e2439920f7e7fbe735f8bcc985 491ec6f12a2d4214f8cfa99 */
+ 0x0.a88fcfebd9a8dd47e2f3c76ef9p0L,
+ 0x0.e2439920f7e7fbe735f8bcc985p-104L,
+
+/* x = 7.26562500000000000000000000000000000e-01 3ffe7400000000000000000000000000 */
+/* cos(x) = 0.bf59b17550a440687596929656 7cf3e3b4e483061877c02811c6 cae85fad5a6c3da58f49292 */
+ 0x0.bf59b17550a440687596929656p0L,
+ 0x0.7cf3e3b4e483061877c02811c6p-104L,
+/* sin(x) = 0.aa0fd66eddb921232c28520d39 11b8a03193b47f187f1471ac21 6fbcd5bb81029294d3a73f1 */
+ 0x0.aa0fd66eddb921232c28520d39p0L,
+ 0x0.11b8a03193b47f187f1471ac21p-104L,
+
+/* x = 7.34375000000000000000000000000000000e-01 3ffe7800000000000000000000000000 */
+/* cos(x) = 0.be0413f84f2a771c614946a88c bf4da1d75a5560243de8f2283f efa0ea4a48468a52d51d8b3 */
+ 0x0.be0413f84f2a771c614946a88cp0L,
+ 0x0.bf4da1d75a5560243de8f2283fp-104L,
+/* sin(x) = 0.ab8d34b36acd987210ed343ec6 5d7e3adc2e7109fce43d55c8d5 7dfdf55b9e01d2cc1f1b9ec */
+ 0x0.ab8d34b36acd987210ed343ec6p0L,
+ 0x0.5d7e3adc2e7109fce43d55c8d5p-104L,
+
+/* x = 7.42187500000000000000000000000000000e-01 3ffe7c00000000000000000000000000 */
+/* cos(x) = 0.bcab7e6bfb2a14a9b122c574a3 76bec98ab14808c64a4e731b34 047e217611013ac99c0f25d */
+ 0x0.bcab7e6bfb2a14a9b122c574a3p0L,
+ 0x0.76bec98ab14808c64a4e731b34p-104L,
+/* sin(x) = 0.ad07e4c409d08c4fa3a9057bb0 ac24b8636e74e76f51e09bd6b2 319707cbd9f5e254643897a */
+ 0x0.ad07e4c409d08c4fa3a9057bb0p0L,
+ 0x0.ac24b8636e74e76f51e09bd6b2p-104L,
+
+/* x = 7.50000000000000000000000000000000000e-01 3ffe8000000000000000000000000000 */
+/* cos(x) = 0.bb4ff632a908f73ec151839cb9 d993b4e0bfb8f20e7e44e6e4ae e845e35575c3106dbe6fd06 */
+ 0x0.bb4ff632a908f73ec151839cb9p0L,
+ 0x0.d993b4e0bfb8f20e7e44e6e4aep-104L,
+/* sin(x) = 0.ae7fe0b5fc786b2d966e1d6af1 40a488476747c2646425fc7533 f532cd044cb10a971a49a6a */
+ 0x0.ae7fe0b5fc786b2d966e1d6af1p0L,
+ 0x0.40a488476747c2646425fc7533p-104L,
+
+/* x = 7.57812500000000000000000000000000000e-01 3ffe8400000000000000000000000000 */
+/* cos(x) = 0.b9f180ba77dd0751628e135a95 08299012230f14becacdd14c3f 8862d122de5b56d55b53360 */
+ 0x0.b9f180ba77dd0751628e135a95p0L,
+ 0x0.08299012230f14becacdd14c3fp-104L,
+/* sin(x) = 0.aff522a954f2ba16d9defdc416 e33f5e9a5dfd5a6c228e0abc4d 521327ff6e2517a7b3851dd */
+ 0x0.aff522a954f2ba16d9defdc416p0L,
+ 0x0.e33f5e9a5dfd5a6c228e0abc4dp-104L,
+
+/* x = 7.65625000000000000000000000000000000e-01 3ffe8800000000000000000000000000 */
+/* cos(x) = 0.b890237d3bb3c284b614a05390 16bfa1053730bbdf940fa895e1 85f8e58884d3dda15e63371 */
+ 0x0.b890237d3bb3c284b614a05390p0L,
+ 0x0.16bfa1053730bbdf940fa895e1p-104L,
+/* sin(x) = 0.b167a4c90d63c4244cf5493b7c c23bd3c3c1225e078baa0c53d6 d400b926281f537a1a260e6 */
+ 0x0.b167a4c90d63c4244cf5493b7cp0L,
+ 0x0.c23bd3c3c1225e078baa0c53d6p-104L,
+
+/* x = 7.73437500000000000000000000000000000e-01 3ffe8c00000000000000000000000000 */
+/* cos(x) = 0.b72be40067aaf2c050dbdb7a14 c3d7d4f203f6b3f0224a4afe55 d6ec8e92b508fd5c5984b3b */
+ 0x0.b72be40067aaf2c050dbdb7a14p0L,
+ 0x0.c3d7d4f203f6b3f0224a4afe55p-104L,
+/* sin(x) = 0.b2d7614b1f3aaa24df2d6e20a7 7e1ca3e6d838c03e29c1bcb026 e6733324815fadc9eb89674 */
+ 0x0.b2d7614b1f3aaa24df2d6e20a7p0L,
+ 0x0.7e1ca3e6d838c03e29c1bcb026p-104L,
+
+/* x = 7.81250000000000000000000000000000000e-01 3ffe9000000000000000000000000000 */
+/* cos(x) = 0.b5c4c7d4f7dae915ac786ccf4b 1a498d3e73b6e5e74fe7519d9c 53ee6d6b90e881bddfc33e1 */
+ 0x0.b5c4c7d4f7dae915ac786ccf4bp0L,
+ 0x0.1a498d3e73b6e5e74fe7519d9cp-104L,
+/* sin(x) = 0.b44452709a5975290591376543 4a59d111f0433eb2b133f7d103 207e2aeb4aae111ddc385b3 */
+ 0x0.b44452709a5975290591376543p0L,
+ 0x0.4a59d111f0433eb2b133f7d103p-104L,
+
+/* x = 7.89062500000000000000000000000000000e-01 3ffe9400000000000000000000000000 */
+/* cos(x) = 0.b45ad4975b1294cadca4cf40ec 8f22a68cd14b175835239a37e6 3acb85e8e9505215df18140 */
+ 0x0.b45ad4975b1294cadca4cf40ecp0L,
+ 0x0.8f22a68cd14b175835239a37e6p-104L,
+/* sin(x) = 0.b5ae7285bc10cf515753847e8f 8b7a30e0a580d929d770103509 880680f7b8b0e8ad23b65d8 */
+ 0x0.b5ae7285bc10cf515753847e8fp0L,
+ 0x0.8b7a30e0a580d929d770103509p-104L
+};
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
new file mode 100644
index 0000000000..75735db18e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-canonical-ldbl-128ibm.c
@@ -0,0 +1,230 @@
+/* Test iscanonical and canonicalizel for ldbl-128ibm.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_ldbl.h>
+#include <stdbool.h>
+#include <stdio.h>
+
+struct test
+{
+  double hi, lo;
+  bool canonical;
+};
+
+static const struct test tests[] =
+  {
+    { __builtin_nan (""), 0.0, true },
+    { __builtin_nan (""), DBL_MAX, true },
+    { __builtin_nan (""), __builtin_inf (), true },
+    { __builtin_nan (""), __builtin_nan (""), true },
+    { __builtin_nan (""), __builtin_nans (""), true },
+    { __builtin_nans (""), 0.0, true },
+    { __builtin_nans (""), DBL_MAX, true },
+    { __builtin_nans (""), __builtin_inf (), true },
+    { __builtin_nans (""), __builtin_nan (""), true },
+    { __builtin_nans (""), __builtin_nans (""), true },
+    { __builtin_inf (), 0.0, true },
+    { __builtin_inf (), -0.0, true },
+    { -__builtin_inf (), 0.0, true },
+    { -__builtin_inf (), -0.0, true },
+    { __builtin_inf (), DBL_TRUE_MIN, false },
+    { __builtin_inf (), -DBL_TRUE_MIN, false },
+    { -__builtin_inf (), DBL_TRUE_MIN, false },
+    { -__builtin_inf (), -DBL_TRUE_MIN, false },
+    { __builtin_inf (), DBL_MIN, false },
+    { __builtin_inf (), -DBL_MIN, false },
+    { -__builtin_inf (), DBL_MIN, false },
+    { -__builtin_inf (), -DBL_MIN, false },
+    { __builtin_inf (), __builtin_inf (), false },
+    { __builtin_inf (), -__builtin_inf (), false },
+    { -__builtin_inf (), __builtin_inf (), false },
+    { -__builtin_inf (), -__builtin_inf (), false },
+    { __builtin_inf (), __builtin_nan (""), false },
+    { __builtin_inf (), -__builtin_nan (""), false },
+    { -__builtin_inf (), __builtin_nan (""), false },
+    { -__builtin_inf (), -__builtin_nan (""), false },
+    { 0.0, 0.0, true },
+    { 0.0, -0.0, true },
+    { -0.0, 0.0, true },
+    { -0.0, -0.0, true },
+    { 0.0, DBL_TRUE_MIN, false },
+    { 0.0, -DBL_TRUE_MIN, false },
+    { -0.0, DBL_TRUE_MIN, false },
+    { -0.0, -DBL_TRUE_MIN, false },
+    { 0.0, DBL_MAX, false },
+    { 0.0, -DBL_MAX, false },
+    { -0.0, DBL_MAX, false },
+    { -0.0, -DBL_MAX, false },
+    { 0.0, __builtin_inf (), false },
+    { 0.0, -__builtin_inf (), false },
+    { -0.0, __builtin_inf (), false },
+    { -0.0, -__builtin_inf (), false },
+    { 0.0, __builtin_nan (""), false },
+    { 0.0, -__builtin_nan (""), false },
+    { -0.0, __builtin_nan (""), false },
+    { -0.0, -__builtin_nan (""), false },
+    { 1.0, 0.0, true },
+    { 1.0, -0.0, true },
+    { -1.0, 0.0, true },
+    { -1.0, -0.0, true },
+    { 1.0, DBL_TRUE_MIN, true },
+    { 1.0, -DBL_TRUE_MIN, true },
+    { -1.0, DBL_TRUE_MIN, true },
+    { -1.0, -DBL_TRUE_MIN, true },
+    { 1.0, DBL_MAX, false },
+    { 1.0, -DBL_MAX, false },
+    { -1.0, DBL_MAX, false },
+    { -1.0, -DBL_MAX, false },
+    { 1.0, __builtin_inf (), false },
+    { 1.0, -__builtin_inf (), false },
+    { -1.0, __builtin_inf (), false },
+    { -1.0, -__builtin_inf (), false },
+    { 1.0, __builtin_nan (""), false },
+    { 1.0, -__builtin_nan (""), false },
+    { -1.0, __builtin_nan (""), false },
+    { -1.0, -__builtin_nan (""), false },
+    { 0x1p1023, 0x1.1p969, true },
+    { 0x1p1023, -0x1.1p969, true },
+    { -0x1p1023, 0x1.1p969, true },
+    { -0x1p1023, -0x1.1p969, true },
+    { 0x1p1023, 0x1.1p970, false },
+    { 0x1p1023, -0x1.1p970, false },
+    { -0x1p1023, 0x1.1p970, false },
+    { -0x1p1023, -0x1.1p970, false },
+    { 0x1p1023, 0x1p970, true },
+    { 0x1p1023, -0x1p970, true },
+    { -0x1p1023, 0x1p970, true },
+    { -0x1p1023, -0x1p970, true },
+    { 0x1.0000000000001p1023, 0x1p970, false },
+    { 0x1.0000000000001p1023, -0x1p970, false },
+    { -0x1.0000000000001p1023, 0x1p970, false },
+    { -0x1.0000000000001p1023, -0x1p970, false },
+    { 0x1p-969, 0x1.1p-1023, true },
+    { 0x1p-969, -0x1.1p-1023, true },
+    { -0x1p-969, 0x1.1p-1023, true },
+    { -0x1p-969, -0x1.1p-1023, true },
+    { 0x1p-969, 0x1.1p-1022, false },
+    { 0x1p-969, -0x1.1p-1022, false },
+    { -0x1p-969, 0x1.1p-1022, false },
+    { -0x1p-969, -0x1.1p-1022, false },
+    { 0x1p-969, 0x1p-1022, true },
+    { 0x1p-969, -0x1p-1022, true },
+    { -0x1p-969, 0x1p-1022, true },
+    { -0x1p-969, -0x1p-1022, true },
+    { 0x1.0000000000001p-969, 0x1p-1022, false },
+    { 0x1.0000000000001p-969, -0x1p-1022, false },
+    { -0x1.0000000000001p-969, 0x1p-1022, false },
+    { -0x1.0000000000001p-969, -0x1p-1022, false },
+    { 0x1p-970, 0x1.1p-1024, true },
+    { 0x1p-970, -0x1.1p-1024, true },
+    { -0x1p-970, 0x1.1p-1024, true },
+    { -0x1p-970, -0x1.1p-1024, true },
+    { 0x1p-970, 0x1.1p-1023, false },
+    { 0x1p-970, -0x1.1p-1023, false },
+    { -0x1p-970, 0x1.1p-1023, false },
+    { -0x1p-970, -0x1.1p-1023, false },
+    { 0x1p-970, 0x1p-1023, true },
+    { 0x1p-970, -0x1p-1023, true },
+    { -0x1p-970, 0x1p-1023, true },
+    { -0x1p-970, -0x1p-1023, true },
+    { 0x1.0000000000001p-970, 0x1p-1023, false },
+    { 0x1.0000000000001p-970, -0x1p-1023, false },
+    { -0x1.0000000000001p-970, 0x1p-1023, false },
+    { -0x1.0000000000001p-970, -0x1p-1023, false },
+    { 0x1p-1000, 0x1.1p-1054, true },
+    { 0x1p-1000, -0x1.1p-1054, true },
+    { -0x1p-1000, 0x1.1p-1054, true },
+    { -0x1p-1000, -0x1.1p-1054, true },
+    { 0x1p-1000, 0x1.1p-1053, false },
+    { 0x1p-1000, -0x1.1p-1053, false },
+    { -0x1p-1000, 0x1.1p-1053, false },
+    { -0x1p-1000, -0x1.1p-1053, false },
+    { 0x1p-1000, 0x1p-1053, true },
+    { 0x1p-1000, -0x1p-1053, true },
+    { -0x1p-1000, 0x1p-1053, true },
+    { -0x1p-1000, -0x1p-1053, true },
+    { 0x1.0000000000001p-1000, 0x1p-1053, false },
+    { 0x1.0000000000001p-1000, -0x1p-1053, false },
+    { -0x1.0000000000001p-1000, 0x1p-1053, false },
+    { -0x1.0000000000001p-1000, -0x1p-1053, false },
+    { 0x1p-1021, 0x1p-1074, true },
+    { 0x1p-1021, -0x1p-1074, true },
+    { -0x1p-1021, 0x1p-1074, true },
+    { -0x1p-1021, -0x1p-1074, true },
+    { 0x1.0000000000001p-1021, 0x1p-1074, false },
+    { 0x1.0000000000001p-1021, -0x1p-1074, false },
+    { -0x1.0000000000001p-1021, 0x1p-1074, false },
+    { -0x1.0000000000001p-1021, -0x1p-1074, false },
+    { 0x1p-1022, 0x1p-1074, false },
+    { 0x1p-1022, -0x1p-1074, false },
+    { -0x1p-1022, 0x1p-1074, false },
+    { -0x1p-1022, -0x1p-1074, false },
+  };
+
+static int
+do_test (void)
+{
+  int result = 0;
+
+  for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
+    {
+      long double ld = ldbl_pack (tests[i].hi, tests[i].lo);
+      bool canonical = iscanonical (ld);
+      if (canonical == tests[i].canonical)
+	{
+	  printf ("PASS: iscanonical test %zu\n", i);
+	  long double ldc = 12345.0L;
+	  bool canonicalize_ret = canonicalizel (&ldc, &ld);
+	  if (canonicalize_ret == !canonical)
+	    {
+	      printf ("PASS: canonicalizel test %zu\n", i);
+	      bool canon_ok;
+	      if (!canonical)
+		canon_ok = ldc == 12345.0L;
+	      else if (isnan (ld))
+		canon_ok = isnan (ldc) && !issignaling (ldc);
+	      else
+		canon_ok = ldc == ld;
+	      if (canon_ok)
+		printf ("PASS: canonicalized value test %zu\n", i);
+	      else
+		{
+		  printf ("FAIL: canonicalized value test %zu\n", i);
+		  result = 1;
+		}
+	    }
+	  else
+	    {
+	      printf ("FAIL: canonicalizel test %zu\n", i);
+	      result = 1;
+	    }
+	}
+      else
+	{
+	  printf ("FAIL: iscanonical test %zu\n", i);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
new file mode 100644
index 0000000000..c9bfcfc5a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodl-ldbl-128ibm.c
@@ -0,0 +1,21 @@
+/* Test for ldbl-128ibm fmodl handling of equal values (bug 19602).
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define FUNC fmodl
+#define SETUP
+#include "test-fmodrem-ldbl-128ibm.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
new file mode 100644
index 0000000000..a7cc042a15
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-fmodrem-ldbl-128ibm.c
@@ -0,0 +1,84 @@
+/* Test for ldbl-128ibm fmodl etc. handling of equal values.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <float.h>
+#include <math.h>
+#include <stdio.h>
+
+/* FUNC is defined to be the name of the function to test.  */
+#define STRX(x) #x
+#define STR(x) STRX (x)
+#define SFUNC STR (FUNC)
+
+union u
+{
+  long double ld;
+  double d[2];
+};
+
+volatile union u p1 = { .d = { DBL_MIN, 0.0 } };
+volatile union u p2 = { .d = { DBL_MIN, -0.0 } };
+volatile union u m1 = { .d = { -DBL_MIN, 0.0 } };
+volatile union u m2 = { .d = { -DBL_MIN, -0.0 } };
+
+static int
+test_func (const char *s, long double x, long double y, long double expected)
+{
+  volatile long double r;
+  r = FUNC (x, y);
+  if (r != expected || copysignl (1.0, r) != copysignl (1.0, expected))
+    {
+      printf ("FAIL: " SFUNC " (%s)\n", s);
+      return 1;
+    }
+  else
+    {
+      printf ("PASS: " SFUNC " (%s)\n", s);
+      return 0;
+    }
+}
+
+#define TEST_FUNC(a, b, e) test_func (#a ", " #b, a, b, e)
+
+static int
+do_test (void)
+{
+  int result = 0;
+  SETUP;
+  result |= TEST_FUNC (p1.ld, p1.ld, 0.0L);
+  result |= TEST_FUNC (p1.ld, p2.ld, 0.0L);
+  result |= TEST_FUNC (p1.ld, m1.ld, 0.0L);
+  result |= TEST_FUNC (p1.ld, m2.ld, 0.0L);
+  result |= TEST_FUNC (p2.ld, p1.ld, 0.0L);
+  result |= TEST_FUNC (p2.ld, p2.ld, 0.0L);
+  result |= TEST_FUNC (p2.ld, m1.ld, 0.0L);
+  result |= TEST_FUNC (p2.ld, m2.ld, 0.0L);
+  result |= TEST_FUNC (m1.ld, p1.ld, -0.0L);
+  result |= TEST_FUNC (m1.ld, p2.ld, -0.0L);
+  result |= TEST_FUNC (m1.ld, m1.ld, -0.0L);
+  result |= TEST_FUNC (m1.ld, m2.ld, -0.0L);
+  result |= TEST_FUNC (m2.ld, p1.ld, -0.0L);
+  result |= TEST_FUNC (m2.ld, p2.ld, -0.0L);
+  result |= TEST_FUNC (m2.ld, m1.ld, -0.0L);
+  result |= TEST_FUNC (m2.ld, m2.ld, -0.0L);
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../../../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
new file mode 100644
index 0000000000..32b18be741
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remainderl-ldbl-128ibm.c
@@ -0,0 +1,21 @@
+/* Test for ldbl-128ibm remainderl handling of equal values (bug 19677).
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define FUNC remainderl
+#define SETUP fesetround (FE_DOWNWARD)
+#include "test-fmodrem-ldbl-128ibm.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
new file mode 100644
index 0000000000..f0d48420b8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-remquol-ldbl-128ibm.c
@@ -0,0 +1,30 @@
+/* Test for ldbl-128ibm remquol handling of equal values (bug 19677).
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+static long double
+wrap_remquol (long double x, long double y)
+{
+  int quo;
+  return remquol (x, y, &quo);
+}
+
+#define FUNC wrap_remquol
+#define SETUP fesetround (FE_DOWNWARD)
+#include "test-fmodrem-ldbl-128ibm.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
new file mode 100644
index 0000000000..eaada2f848
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/test-totalorderl-ldbl-128ibm.c
@@ -0,0 +1,73 @@
+/* Test totalorderl and totalordermagl for ldbl-128ibm.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_ldbl.h>
+#include <stdbool.h>
+#include <stdio.h>
+
+struct test
+{
+  double hi, lo1, lo2;
+};
+
+static const struct test tests[] =
+  {
+    { __builtin_nan (""), 1, __builtin_nans ("") },
+    { -__builtin_nan (""), 1, __builtin_nans ("") },
+    { __builtin_nans (""), 1, __builtin_nan ("") },
+    { -__builtin_nans (""), 1, __builtin_nan ("") },
+    { __builtin_inf (), 0.0, -0.0 },
+    { -__builtin_inf (), 0.0, -0.0 },
+    { 1.5, 0.0, -0.0 },
+  };
+
+static int
+do_test (void)
+{
+  int result = 0;
+
+  for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
+    {
+      long double ldx = ldbl_pack (tests[i].hi, tests[i].lo1);
+      long double ldy = ldbl_pack (tests[i].hi, tests[i].lo2);
+      bool to1 = totalorderl (ldx, ldy);
+      bool to2 = totalorderl (ldy, ldx);
+      if (to1 && to2)
+	printf ("PASS: test %zu\n", i);
+      else
+	{
+	  printf ("FAIL: test %zu\n", i);
+	  result = 1;
+	}
+      to1 = totalordermagl (ldx, ldy);
+      to2 = totalordermagl (ldy, ldx);
+      if (to1 && to2)
+	printf ("PASS: test %zu (totalordermagl)\n", i);
+      else
+	{
+	  printf ("FAIL: test %zu (totalordermagl)\n", i);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
new file mode 100644
index 0000000000..1181892165
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/tst-strtold-ldbl-128ibm.c
@@ -0,0 +1,85 @@
+/* Test for ldbl-128ibm strtold overflow to infinity (bug 14551).
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fenv.h>
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+static int
+test_strtold_value (const char *s, double exp_hi, double exp_lo, int exp_exc,
+		    int exp_errno)
+{
+  int result = 0;
+  union { long double ld; double d[2]; } x;
+  feclearexcept (FE_ALL_EXCEPT);
+  errno = 0;
+  x.ld = strtold (s, NULL);
+  int exc = fetestexcept (FE_ALL_EXCEPT);
+  int new_errno = errno;
+  printf ("strtold (\"%s\") returned (%a, %a), exceptions 0x%x, errno %d\n",
+	  s, x.d[0], x.d[1], exc, new_errno);
+  if (x.d[0] == exp_hi)
+    printf ("PASS: strtold (\"%s\") high == %a\n", s, exp_hi);
+  else
+    {
+      printf ("FAIL: strtold (\"%s\") high == %a\n", s, exp_hi);
+      result = 1;
+    }
+  if (x.d[1] == exp_lo)
+    printf ("PASS: strtold (\"%s\") low == %a\n", s, exp_lo);
+  else
+    {
+      printf ("FAIL: strtold (\"%s\") low == %a\n", s, exp_lo);
+      result = 1;
+    }
+  if (exc == exp_exc)
+    printf ("PASS: strtold (\"%s\") exceptions 0x%x\n", s, exp_exc);
+  else
+    {
+      printf ("FAIL: strtold (\"%s\") exceptions 0x%x\n", s, exp_exc);
+      result = 1;
+    }
+  if (new_errno == exp_errno)
+    printf ("PASS: strtold (\"%s\") errno %d\n", s, exp_errno);
+  else
+    {
+      printf ("FAIL: strtold (\"%s\") errno %d\n", s, exp_errno);
+      result = 1;
+    }
+  return result;
+}
+
+static int
+do_test (void)
+{
+  int result = 0;
+  result |= test_strtold_value ("0x1.fffffffffffff8p+1023", INFINITY, 0,
+				FE_OVERFLOW | FE_INEXACT, ERANGE);
+  result |= test_strtold_value ("-0x1.fffffffffffff8p+1023", -INFINITY, 0,
+				FE_OVERFLOW | FE_INEXACT, ERANGE);
+  result |= test_strtold_value ("0x1.ffffffffffffffp+1023", INFINITY, 0,
+				FE_OVERFLOW | FE_INEXACT, ERANGE);
+  result |= test_strtold_value ("-0x1.ffffffffffffffp+1023", -INFINITY, 0,
+				FE_OVERFLOW | FE_INEXACT, ERANGE);
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../../../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c
new file mode 100644
index 0000000000..c9d44b61dd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/w_expl_compat.c
@@ -0,0 +1,21 @@
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+
+long double __expl(long double x)	/* wrapper exp  */
+{
+  long double z;
+  z = __ieee754_expl(x);
+  if (_LIB_VERSION == _IEEE_)
+    return z;
+  if (isfinite(x))
+    {
+      if (!isfinite (z))
+	return __kernel_standard_l(x,x,206); /* exp overflow  */
+      else if (z == 0.0L)
+	return __kernel_standard_l(x,x,207); /* exp underflow  */
+    }
+  return z;
+}
+hidden_def (__expl)
+long_double_symbol (libm, __expl, expl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
new file mode 100644
index 0000000000..0bdb9a1848
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-128ibm/x2y2m1l.c
@@ -0,0 +1,93 @@
+/* Compute x^2 + y^2 - 1, without large cancellation error.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_split.h>
+#include <stdlib.h>
+
+/* Calculate X + Y exactly and store the result in *HI + *LO.  It is
+   given that |X| >= |Y| and the values are small enough that no
+   overflow occurs.  */
+
+static inline void
+add_split (double *hi, double *lo, double x, double y)
+{
+  /* Apply Dekker's algorithm.  */
+  *hi = x + y;
+  *lo = (x - *hi) + y;
+}
+
+/* Compare absolute values of floating-point values pointed to by P
+   and Q for qsort.  */
+
+static int
+compare (const void *p, const void *q)
+{
+  double pd = fabs (*(const double *) p);
+  double qd = fabs (*(const double *) q);
+  if (pd < qd)
+    return -1;
+  else if (pd == qd)
+    return 0;
+  else
+    return 1;
+}
+
+/* Return X^2 + Y^2 - 1, computed without large cancellation error.
+   It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
+   0.5.  */
+
+long double
+__x2y2m1l (long double x, long double y)
+{
+  double vals[13];
+  SET_RESTORE_ROUND (FE_TONEAREST);
+  union ibm_extended_long_double xu, yu;
+  xu.ld = x;
+  yu.ld = y;
+  if (fabs (xu.d[1].d) < 0x1p-500)
+    xu.d[1].d = 0.0;
+  if (fabs (yu.d[1].d) < 0x1p-500)
+    yu.d[1].d = 0.0;
+  mul_split (&vals[1], &vals[0], xu.d[0].d, xu.d[0].d);
+  mul_split (&vals[3], &vals[2], xu.d[0].d, xu.d[1].d);
+  vals[2] *= 2.0;
+  vals[3] *= 2.0;
+  mul_split (&vals[5], &vals[4], xu.d[1].d, xu.d[1].d);
+  mul_split (&vals[7], &vals[6], yu.d[0].d, yu.d[0].d);
+  mul_split (&vals[9], &vals[8], yu.d[0].d, yu.d[1].d);
+  vals[8] *= 2.0;
+  vals[9] *= 2.0;
+  mul_split (&vals[11], &vals[10], yu.d[1].d, yu.d[1].d);
+  vals[12] = -1.0;
+  qsort (vals, 13, sizeof (double), compare);
+  /* Add up the values so that each element of VALS has absolute value
+     at most equal to the last set bit of the next nonzero
+     element.  */
+  for (size_t i = 0; i <= 11; i++)
+    {
+      add_split (&vals[i + 1], &vals[i], vals[i + 1], vals[i]);
+      qsort (vals + i + 1, 12 - i, sizeof (double), compare);
+    }
+  /* Now any error from this addition will be small.  */
+  long double retval = (long double) vals[12];
+  for (size_t i = 11; i != (size_t) -1; i--)
+    retval += (long double) vals[i];
+  return retval;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/e_ilogbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/e_ilogbl.c
new file mode 100644
index 0000000000..75a38e13ce
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/e_ilogbl.c
@@ -0,0 +1,2 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/ldbl-128/e_ilogbl.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_asinhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_asinhl.c
new file mode 100644
index 0000000000..4e8a541263
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_asinhl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_asinhl.c>
+long_double_symbol (libm, __asinhl, asinhl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_atanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_atanl.c
new file mode 100644
index 0000000000..c23d14aade
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_atanl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_atanl.c>
+long_double_symbol (libm, __atanl, atanl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cbrtl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cbrtl.c
new file mode 100644
index 0000000000..ace5645277
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cbrtl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_cbrtl.c>
+long_double_symbol (libm, __cbrtl, cbrtl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_ceill.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_ceill.c
new file mode 100644
index 0000000000..a646494f14
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_ceill.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_ceill.c>
+long_double_symbol (libm, __ceill, ceill);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_copysignl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_copysignl.c
new file mode 100644
index 0000000000..211e7240ac
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_copysignl.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_copysignl.c>
+#if IS_IN (libm)
+long_double_symbol (libm, __copysignl, copysignl);
+#else
+long_double_symbol (libc, __copysignl, copysignl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cosl.c
new file mode 100644
index 0000000000..6a7e2e3162
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_cosl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_cosl.c>
+long_double_symbol (libm, __cosl, cosl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_erfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_erfl.c
new file mode 100644
index 0000000000..c5f9bb3ac4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_erfl.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_erfl.c>
+long_double_symbol (libm, __erfl, erfl);
+long_double_symbol (libm, __erfcl, erfcl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_expm1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_expm1l.c
new file mode 100644
index 0000000000..4fb186127f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_expm1l.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_expm1l.c>
+long_double_symbol (libm, __expm1l, expm1l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fabsl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fabsl.c
new file mode 100644
index 0000000000..93d81d98bc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fabsl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_fabsl.c>
+long_double_symbol (libm, __fabsl, fabsl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_finitel.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_finitel.c
new file mode 100644
index 0000000000..c0862a7485
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_finitel.c
@@ -0,0 +1,17 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#undef hidden_def
+#define hidden_def(x)
+#define __finitel(arg) ___finitel(arg)
+#include <sysdeps/ieee754/ldbl-128/s_finitel.c>
+#undef __finitel
+hidden_ver (___finitel, __finitel)
+_weak_alias (___finitel, ____finitel)
+#if IS_IN (libm)
+long_double_symbol (libm, ____finitel, finitel);
+long_double_symbol (libm, ___finitel, __finitel);
+#else
+long_double_symbol (libc, ____finitel, finitel);
+long_double_symbol (libc, ___finitel, __finitel);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_floorl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_floorl.c
new file mode 100644
index 0000000000..953043035e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_floorl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_floorl.c>
+long_double_symbol (libm, __floorl, floorl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fmal.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fmal.c
new file mode 100644
index 0000000000..218aa52b35
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fmal.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_fmal.c>
+long_double_symbol (libm, __fmal, fmal);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c
new file mode 100644
index 0000000000..a10b6c3a1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_fpclassifyl.c
@@ -0,0 +1,10 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#define __fpclassifyl ___fpclassifyl
+#undef libm_hidden_def
+#define libm_hidden_def(a)
+#include <sysdeps/ieee754/ldbl-128/s_fpclassifyl.c>
+#undef __fpclassifyl
+long_double_symbol (libm, ___fpclassifyl, __fpclassifyl);
+libm_hidden_ver (___fpclassifyl, __fpclassifyl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_frexpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_frexpl.c
new file mode 100644
index 0000000000..c7b6aaaaee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_frexpl.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_frexpl.c>
+#if IS_IN (libm)
+long_double_symbol (libm, __frexpl, frexpl);
+#else
+long_double_symbol (libc, __frexpl, frexpl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isinfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isinfl.c
new file mode 100644
index 0000000000..6dab0e9223
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isinfl.c
@@ -0,0 +1,16 @@
+#include <math_ldbl_opt.h>
+#if !IS_IN (libm)
+# undef weak_alias
+# define weak_alias(n,a)
+# undef hidden_def
+# define hidden_def(x)
+# define __isinfl(arg) ___isinfl(arg)
+#endif
+#include <sysdeps/ieee754/ldbl-128/s_isinfl.c>
+#if !IS_IN (libm)
+# undef __isinfl
+hidden_ver (___isinfl, __isinfl)
+_weak_alias (___isinfl, ____isinfl)
+long_double_symbol (libc, ____isinfl, isinfl);
+long_double_symbol (libc, ___isinfl, __isinfl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isnanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isnanl.c
new file mode 100644
index 0000000000..ad5ecc5281
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_isnanl.c
@@ -0,0 +1,16 @@
+#include <math_ldbl_opt.h>
+#if !IS_IN (libm)
+# undef weak_alias
+# define weak_alias(n,a)
+# undef hidden_def
+# define hidden_def(x)
+# define __isnanl(arg) ___isnanl(arg)
+#endif
+#include <sysdeps/ieee754/ldbl-128/s_isnanl.c>
+#if !IS_IN (libm)
+# undef __isnanl
+hidden_ver (___isnanl, __isnanl)
+_weak_alias (___isnanl, ____isnanl)
+long_double_symbol (libc, ____isnanl, isnanl);
+long_double_symbol (libc, ___isnanl, __isnanl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llrintl.c
new file mode 100644
index 0000000000..1515f3abd7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llrintl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_llrintl.c>
+long_double_symbol (libm, __llrintl, llrintl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llroundl.c
new file mode 100644
index 0000000000..ca35dae491
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_llroundl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_llroundl.c>
+long_double_symbol (libm, __llroundl, llroundl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_log1pl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_log1pl.c
new file mode 100644
index 0000000000..11d56bfe9f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_log1pl.c
@@ -0,0 +1,2 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/ldbl-128/s_log1pl.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_logbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_logbl.c
new file mode 100644
index 0000000000..8ba8179feb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_logbl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_logbl.c>
+long_double_symbol (libm, __logbl, logbl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lrintl.c
new file mode 100644
index 0000000000..56e69c94f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lrintl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_lrintl.c>
+long_double_symbol (libm, __lrintl, lrintl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lroundl.c
new file mode 100644
index 0000000000..d5429e2384
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_lroundl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_lroundl.c>
+long_double_symbol (libm, __lroundl, lroundl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_modfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_modfl.c
new file mode 100644
index 0000000000..fa4d3ad82a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_modfl.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_modfl.c>
+#if IS_IN (libm)
+long_double_symbol (libm, __modfl, modfl);
+#else
+long_double_symbol (libc, __modfl, modfl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c
new file mode 100644
index 0000000000..a6d0a313fd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nearbyintl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_nearbyintl.c>
+long_double_symbol (libm, __nearbyintl, nearbyintl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nextafterl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nextafterl.c
new file mode 100644
index 0000000000..64c663eda3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nextafterl.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_nextafterl.c>
+long_double_symbol (libm, __nextafterl, nextafterl);
+long_double_symbol (libm, __nexttowardl, nexttowardl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttoward.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttoward.c
new file mode 100644
index 0000000000..2968503d2e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttoward.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_nexttoward.c>
+long_double_symbol (libm, __nexttoward, nexttoward);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c
new file mode 100644
index 0000000000..64b9c24465
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_nexttowardf.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_nexttowardf.c>
+long_double_symbol (libm, __nexttowardf, nexttowardf);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_remquol.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_remquol.c
new file mode 100644
index 0000000000..16f0eb16a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_remquol.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_remquol.c>
+long_double_symbol (libm, __remquol, remquol);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_rintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_rintl.c
new file mode 100644
index 0000000000..19af9bbdcb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_rintl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_rintl.c>
+long_double_symbol (libm, __rintl, rintl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_roundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_roundl.c
new file mode 100644
index 0000000000..3fa99d6f2a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_roundl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_roundl.c>
+long_double_symbol (libm, __roundl, roundl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalblnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalblnl.c
new file mode 100644
index 0000000000..97181d29b9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalblnl.c
@@ -0,0 +1,4 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_scalblnl.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalbnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalbnl.c
new file mode 100644
index 0000000000..15af1b2849
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_scalbnl.c
@@ -0,0 +1,4 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_scalbnl.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_signbitl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_signbitl.c
new file mode 100644
index 0000000000..850db7386a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_signbitl.c
@@ -0,0 +1,11 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#define __signbitl(arg) ___signbitl(arg)
+#include <sysdeps/ieee754/ldbl-128/s_signbitl.c>
+#undef __signbitl
+#if IS_IN (libm)
+long_double_symbol (libm, ___signbitl, __signbitl);
+#else
+long_double_symbol (libc, ___signbitl, __signbitl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sincosl.c
new file mode 100644
index 0000000000..ce0d4e2887
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sincosl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_sincosl.c>
+long_double_symbol (libm, __sincosl, sincosl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sinl.c
new file mode 100644
index 0000000000..ebc20affdb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_sinl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_sinl.c>
+long_double_symbol (libm, __sinl, sinl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanhl.c
new file mode 100644
index 0000000000..ede93930cd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanhl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_tanhl.c>
+long_double_symbol (libm, __tanhl, tanhl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanl.c
new file mode 100644
index 0000000000..6e635dfdc9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_tanl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_tanl.c>
+long_double_symbol (libm, __tanl, tanl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_truncl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_truncl.c
new file mode 100644
index 0000000000..6311479d01
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/s_truncl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/s_truncl.c>
+long_double_symbol (libm, __truncl, truncl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/strtold_l.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/strtold_l.c
new file mode 100644
index 0000000000..37034cb254
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/strtold_l.c
@@ -0,0 +1,60 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <xlocale.h>
+
+/* The actual implementation for all floating point sizes is in strtod.c.
+   These macros tell it to produce the `long double' version, `strtold'.  */
+
+#define FLOAT		long double
+#define FLT		LDBL
+#ifdef USE_WIDE_CHAR
+extern long double ____new_wcstold_l (const wchar_t *, wchar_t **, __locale_t);
+# define STRTOF		__new_wcstold_l
+# define __STRTOF	____new_wcstold_l
+# define ____STRTOF_INTERNAL ____wcstold_l_internal
+# define STRTOF_NAN	__wcstold_nan
+#else
+extern long double ____new_strtold_l (const char *, char **, __locale_t);
+# define STRTOF		__new_strtold_l
+# define __STRTOF	____new_strtold_l
+# define ____STRTOF_INTERNAL ____strtold_l_internal
+# define STRTOF_NAN	__strtold_nan
+#endif
+extern __typeof (__STRTOF) STRTOF;
+libc_hidden_proto (__STRTOF)
+libc_hidden_proto (STRTOF)
+#define MPN2FLOAT	__mpn_construct_long_double
+#define FLOAT_HUGE_VAL	HUGE_VALL
+
+#include <strtod_l.c>
+
+#ifdef __LONG_DOUBLE_MATH_OPTIONAL
+# include <math_ldbl_opt.h>
+# ifdef USE_WIDE_CHAR
+weak_alias (____new_wcstold_l, ___new_wcstold_l);
+long_double_symbol (libc, ___new_wcstold_l, wcstold_l);
+long_double_symbol (libc, ____new_wcstold_l, __wcstold_l);
+# else
+weak_alias (____new_strtold_l, ___new_strtold_l);
+long_double_symbol (libc, ___new_strtold_l, strtold_l);
+long_double_symbol (libc, ____new_strtold_l, __strtold_l);
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c
new file mode 100644
index 0000000000..37c153e2a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_expl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <sysdeps/ieee754/ldbl-128/w_expl_compat.c>
+long_double_symbol (libm, __expl, expl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_scalblnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_scalblnl.c
new file mode 100644
index 0000000000..fef2507cd5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-64-128/w_scalblnl.c
@@ -0,0 +1,26 @@
+/* Wrapper for __scalblnl handles setting errno.
+   Copyright (C) 2014-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define declare_mgen_alias(from, to)
+#include <math-type-macros-ldouble.h>
+#include <w_scalbln_template.c>
+#if IS_IN (libm)
+long_double_symbol (libm, __w_scalblnl, scalblnl);
+#else
+long_double_symbol (libc, __w_scalblnl, scalblnl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/Makefile b/REORG.TODO/sysdeps/ieee754/ldbl-96/Makefile
new file mode 100644
index 0000000000..279342acdf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/Makefile
@@ -0,0 +1,21 @@
+# Makefile for sysdeps/ieee754/ldbl-96.
+# Copyright (C) 2016-2017 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <http://www.gnu.org/licenses/>.
+
+ifeq ($(subdir),math)
+tests += test-canonical-ldbl-96 test-totalorderl-ldbl-96
+endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/bits/iscanonical.h b/REORG.TODO/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
new file mode 100644
index 0000000000..2c8b786183
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/bits/iscanonical.h
@@ -0,0 +1,34 @@
+/* Define iscanonical macro.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_H
+# error "Never use <bits/iscanonical.h> directly; include <math.h> instead."
+#endif
+
+extern int __iscanonicall (long double __x)
+     __THROW __attribute__ ((__const__));
+#define __iscanonicalf(x) ((void) (__typeof (x)) (x), 1)
+#define __iscanonical(x) ((void) (__typeof (x)) (x), 1)
+
+/* Return nonzero value if X is canonical.  In IEEE interchange binary
+   formats, all values are canonical, but the argument must still be
+   converted to its semantic type for any exceptions arising from the
+   conversion, before being discarded; in extended precision, there
+   are encodings that are not consistently handled as corresponding to
+   any particular value of the type, and we return 0 for those.  */
+#define iscanonical(x) __MATH_TG ((x), __iscanonical, (x))
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/bits/long-double.h b/REORG.TODO/sysdeps/ieee754/ldbl-96/bits/long-double.h
new file mode 100644
index 0000000000..bb06df077f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/bits/long-double.h
@@ -0,0 +1,20 @@
+/* Properties of long double type.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License  published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* long double is distinct from double, so there is nothing to
+   define here.  */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_acoshl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_acoshl.c
new file mode 100644
index 0000000000..cf9a6db0ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_acoshl.c
@@ -0,0 +1,61 @@
+/* e_acoshl.c -- long double version of e_acosh.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_acoshl(x)
+ * Method :
+ *	Based on
+ *		acoshl(x) = logl [ x + sqrtl(x*x-1) ]
+ *	we have
+ *		acoshl(x) := logl(x)+ln2,	if x is large; else
+ *		acoshl(x) := logl(2x-1/(sqrtl(x*x-1)+x)) if x>2; else
+ *		acoshl(x) := log1pl(t+sqrtl(2.0*t+t*t)); where t=x-1.
+ *
+ * Special cases:
+ *	acoshl(x) is NaN with signal if x<1.
+ *	acoshl(NaN) is NaN without signal.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+one	= 1.0,
+ln2	= 6.931471805599453094287e-01L; /* 0x3FFE, 0xB17217F7, 0xD1CF79AC */
+
+long double
+__ieee754_acoshl(long double x)
+{
+	long double t;
+	u_int32_t se,i0,i1;
+	GET_LDOUBLE_WORDS(se,i0,i1,x);
+	if(se<0x3fff || se & 0x8000) {	/* x < 1 */
+	    return (x-x)/(x-x);
+	} else if(se >=0x401d) {	/* x > 2**30 */
+	    if(se >=0x7fff) {		/* x is inf of NaN */
+		return x+x;
+	    } else
+		return __ieee754_logl(x)+ln2;	/* acoshl(huge)=logl(2x) */
+	} else if(((se-0x3fff)|(i0^0x80000000)|i1)==0) {
+	    return 0.0;			/* acosh(1) = 0 */
+	} else if (se > 0x4000) {	/* 2**28 > x > 2 */
+	    t=x*x;
+	    return __ieee754_logl(2.0*x-one/(x+__ieee754_sqrtl(t-one)));
+	} else {			/* 1<x<2 */
+	    t = x-one;
+	    return __log1pl(t+__ieee754_sqrtl(2.0*t+t*t));
+	}
+}
+strong_alias (__ieee754_acoshl, __acoshl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_asinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_asinl.c
new file mode 100644
index 0000000000..f52b931459
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_asinl.c
@@ -0,0 +1,157 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+  Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_asin(x)
+ * Method :
+ *	Since  asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
+ *	we approximate asin(x) on [0,0.5] by
+ *		asin(x) = x + x*x^2*R(x^2)
+ *
+ *	For x in [0.5,1]
+ *		asin(x) = pi/2-2*asin(sqrt((1-x)/2))
+ *	Let y = (1-x), z = y/2, s := sqrt(z), and pio2_hi+pio2_lo=pi/2;
+ *	then for x>0.98
+ *		asin(x) = pi/2 - 2*(s+s*z*R(z))
+ *			= pio2_hi - (2*(s+s*z*R(z)) - pio2_lo)
+ *	For x<=0.98, let pio4_hi = pio2_hi/2, then
+ *		f = hi part of s;
+ *		c = sqrt(z) - f = (z-f*f)/(s+f)		...f+c=sqrt(z)
+ *	and
+ *		asin(x) = pi/2 - 2*(s+s*z*R(z))
+ *			= pio4_hi+(pio4-2s)-(2s*z*R(z)-pio2_lo)
+ *			= pio4_hi+(pio4-2f)-(2s*z*R(z)-(pio2_lo+2c))
+ *
+ * Special cases:
+ *	if x is NaN, return x itself;
+ *	if |x|>1, return NaN with invalid signal.
+ *
+ */
+
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+  one = 1.0L,
+  huge = 1.0e+4932L,
+  pio2_hi = 0x1.921fb54442d1846ap+0L, /* pi/2 rounded to nearest to 64
+					 bits.  */
+  pio2_lo = -0x7.6733ae8fe47c65d8p-68L, /* pi/2 - pio2_hi rounded to
+					   nearest to 64 bits.  */
+  pio4_hi = 0xc.90fdaa22168c235p-4L, /* pi/4 rounded to nearest to 64
+					bits.  */
+
+	/* coefficient for R(x^2) */
+
+  /* asin(x) = x + x^3 pS(x^2) / qS(x^2)
+     0 <= x <= 0.5
+     peak relative error 1.9e-21  */
+  pS0 =  -1.008714657938491626019651170502036851607E1L,
+  pS1 =   2.331460313214179572063441834101394865259E1L,
+  pS2 =  -1.863169762159016144159202387315381830227E1L,
+  pS3 =   5.930399351579141771077475766877674661747E0L,
+  pS4 =  -6.121291917696920296944056882932695185001E-1L,
+  pS5 =   3.776934006243367487161248678019350338383E-3L,
+
+  qS0 =  -6.052287947630949712886794360635592886517E1L,
+  qS1 =   1.671229145571899593737596543114258558503E2L,
+  qS2 =  -1.707840117062586426144397688315411324388E2L,
+  qS3 =   7.870295154902110425886636075950077640623E1L,
+  qS4 =  -1.568433562487314651121702982333303458814E1L;
+    /* 1.000000000000000000000000000000000000000E0 */
+
+long double
+__ieee754_asinl (long double x)
+{
+  long double t, w, p, q, c, r, s;
+  int32_t ix;
+  u_int32_t se, i0, i1, k;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  ix = (ix << 16) | (i0 >> 16);
+  if (ix >= 0x3fff8000)
+    {				/* |x|>= 1 */
+      if (ix == 0x3fff8000 && ((i0 - 0x80000000) | i1) == 0)
+	/* asin(1)=+-pi/2 with inexact */
+	return x * pio2_hi + x * pio2_lo;
+      return (x - x) / (x - x);	/* asin(|x|>1) is NaN */
+    }
+  else if (ix < 0x3ffe8000)
+    {				/* |x|<0.5 */
+      if (ix < 0x3fde8000)
+	{			/* if |x| < 2**-33 */
+	  math_check_force_underflow (x);
+	  if (huge + x > one)
+	    return x;		/* return x with inexact if x!=0 */
+	}
+      else
+	{
+	  t = x * x;
+	  p =
+	    t * (pS0 +
+		 t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5)))));
+	  q = qS0 + t * (qS1 + t * (qS2 + t * (qS3 + t * (qS4 + t))));
+	  w = p / q;
+	  return x + x * w;
+	}
+    }
+  /* 1> |x|>= 0.5 */
+  w = one - fabsl (x);
+  t = w * 0.5;
+  p = t * (pS0 + t * (pS1 + t * (pS2 + t * (pS3 + t * (pS4 + t * pS5)))));
+  q = qS0 + t * (qS1 + t * (qS2 + t * (qS3 + t * (qS4 + t))));
+  s = __ieee754_sqrtl (t);
+  if (ix >= 0x3ffef999)
+    {				/* if |x| > 0.975 */
+      w = p / q;
+      t = pio2_hi - (2.0 * (s + s * w) - pio2_lo);
+    }
+  else
+    {
+      GET_LDOUBLE_WORDS (k, i0, i1, s);
+      i1 = 0;
+      SET_LDOUBLE_WORDS (w,k,i0,i1);
+      c = (t - w * w) / (s + w);
+      r = p / q;
+      p = 2.0 * s * r - (pio2_lo - 2.0 * c);
+      q = pio4_hi - 2.0 * w;
+      t = pio4_hi - (p - q);
+    }
+  if ((se & 0x8000) == 0)
+    return t;
+  else
+    return -t;
+}
+strong_alias (__ieee754_asinl, __asinl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_atanhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_atanhl.c
new file mode 100644
index 0000000000..b99a83c6ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_atanhl.c
@@ -0,0 +1,69 @@
+/* s_atanhl.c -- long double version of s_atan.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_atanhl(x)
+ * Method :
+ *    1.Reduced x to positive by atanh(-x) = -atanh(x)
+ *    2.For x>=0.5
+ *                   1              2x                          x
+ *	atanhl(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
+ *                   2             1 - x                      1 - x
+ *
+ *	For x<0.5
+ *	atanhl(x) = 0.5*log1pl(2x+2x*x/(1-x))
+ *
+ * Special cases:
+ *	atanhl(x) is NaN if |x| > 1 with signal;
+ *	atanhl(NaN) is that NaN with no signal;
+ *	atanhl(+-1) is +-INF with signal.
+ *
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double one = 1.0, huge = 1e4900L;
+
+static const long double zero = 0.0;
+
+long double
+__ieee754_atanhl(long double x)
+{
+	long double t;
+	int32_t ix;
+	u_int32_t se,i0,i1;
+	GET_LDOUBLE_WORDS(se,i0,i1,x);
+	ix = se&0x7fff;
+	if ((ix+((((i0&0x7fffffff)|i1)|(-((i0&0x7fffffff)|i1)))>>31))>0x3fff)
+	  /* |x|>1 */
+	    return (x-x)/(x-x);
+	if(ix==0x3fff)
+	    return x/zero;
+	if(ix<0x3fdf) {
+	    math_force_eval(huge+x);
+	    math_check_force_underflow (x);
+	    return x;	/* x<2**-32 */
+	}
+	SET_LDOUBLE_EXP(x,ix);
+	if(ix<0x3ffe) {		/* x < 0.5 */
+	    t = x+x;
+	    t = 0.5*__log1pl(t+t*x/(one-x));
+	} else
+	    t = 0.5*__log1pl((x+x)/(one-x));
+	if(se<=0x7fff) return t; else return -t;
+}
+strong_alias (__ieee754_atanhl, __atanhl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_coshl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_coshl.c
new file mode 100644
index 0000000000..dd22cae363
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_coshl.c
@@ -0,0 +1,87 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: e_cosh.c,v 1.7 1995/05/10 20:44:58 jtc Exp $";
+#endif
+
+/* __ieee754_coshl(x)
+ * Method :
+ * mathematically coshl(x) if defined to be (exp(x)+exp(-x))/2
+ *	1. Replace x by |x| (coshl(x) = coshl(-x)).
+ *	2.
+ *							[ exp(x) - 1 ]^2
+ *	    0        <= x <= ln2/2  :  coshl(x) := 1 + -------------------
+ *							   2*exp(x)
+ *
+ *						   exp(x) +  1/exp(x)
+ *	    ln2/2    <= x <= 22     :  coshl(x) := -------------------
+ *							   2
+ *	    22       <= x <= lnovft :  coshl(x) := expl(x)/2
+ *	    lnovft   <= x <= ln2ovft:  coshl(x) := expl(x/2)/2 * expl(x/2)
+ *	    ln2ovft  <  x	    :  coshl(x) := huge*huge (overflow)
+ *
+ * Special cases:
+ *	coshl(x) is |x| if x is +INF, -INF, or NaN.
+ *	only coshl(0)=1 is exact for finite x.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double one = 1.0, half=0.5, huge = 1.0e4900L;
+
+long double
+__ieee754_coshl (long double x)
+{
+	long double t,w;
+	int32_t ex;
+	u_int32_t mx,lx;
+
+    /* High word of |x|. */
+	GET_LDOUBLE_WORDS(ex,mx,lx,x);
+	ex &= 0x7fff;
+
+    /* |x| in [0,22] */
+	if (ex < 0x4003 || (ex == 0x4003 && mx < 0xb0000000u)) {
+	    /* |x| in [0,0.5*ln2], return 1+expm1l(|x|)^2/(2*expl(|x|)) */
+		if(ex < 0x3ffd || (ex == 0x3ffd && mx < 0xb17217f7u)) {
+		    if (ex<0x3fbc) return one;	/* cosh(tiny) = 1 */
+		    t = __expm1l(fabsl(x));
+		    w = one+t;
+		    return one+(t*t)/(w+w);
+		}
+
+	    /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
+		t = __ieee754_expl(fabsl(x));
+		return half*t+half/t;
+	}
+
+    /* |x| in [22, ln(maxdouble)] return half*exp(|x|) */
+	if (ex < 0x400c || (ex == 0x400c && mx < 0xb1700000u))
+		return half*__ieee754_expl(fabsl(x));
+
+    /* |x| in [log(maxdouble), log(2*maxdouble)) */
+	if (ex == 0x400c && (mx < 0xb174ddc0u
+			     || (mx == 0xb174ddc0u && lx < 0x31aec0ebu)))
+	{
+	    w = __ieee754_expl(half*fabsl(x));
+	    t = half*w;
+	    return t*w;
+	}
+
+    /* x is INF or NaN */
+	if(ex==0x7fff) return x*x;
+
+    /* |x| >= log(2*maxdouble), cosh(x) overflow */
+	return huge*huge;
+}
+strong_alias (__ieee754_coshl, __coshl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_gammal_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_gammal_r.c
new file mode 100644
index 0000000000..7e42cc1161
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_gammal_r.c
@@ -0,0 +1,210 @@
+/* Implementation of gamma function according to ISO C.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
+   approximation to gamma function.  */
+
+static const long double gamma_coeff[] =
+  {
+    0x1.5555555555555556p-4L,
+    -0xb.60b60b60b60b60bp-12L,
+    0x3.4034034034034034p-12L,
+    -0x2.7027027027027028p-12L,
+    0x3.72a3c5631fe46aep-12L,
+    -0x7.daac36664f1f208p-12L,
+    0x1.a41a41a41a41a41ap-8L,
+    -0x7.90a1b2c3d4e5f708p-8L,
+  };
+
+#define NCOEFF (sizeof (gamma_coeff) / sizeof (gamma_coeff[0]))
+
+/* Return gamma (X), for positive X less than 1766, in the form R *
+   2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
+   avoid overflow or underflow in intermediate calculations.  */
+
+static long double
+gammal_positive (long double x, int *exp2_adj)
+{
+  int local_signgam;
+  if (x < 0.5L)
+    {
+      *exp2_adj = 0;
+      return __ieee754_expl (__ieee754_lgammal_r (x + 1, &local_signgam)) / x;
+    }
+  else if (x <= 1.5L)
+    {
+      *exp2_adj = 0;
+      return __ieee754_expl (__ieee754_lgammal_r (x, &local_signgam));
+    }
+  else if (x < 7.5L)
+    {
+      /* Adjust into the range for using exp (lgamma).  */
+      *exp2_adj = 0;
+      long double n = __ceill (x - 1.5L);
+      long double x_adj = x - n;
+      long double eps;
+      long double prod = __gamma_productl (x_adj, 0, n, &eps);
+      return (__ieee754_expl (__ieee754_lgammal_r (x_adj, &local_signgam))
+	      * prod * (1.0L + eps));
+    }
+  else
+    {
+      long double eps = 0;
+      long double x_eps = 0;
+      long double x_adj = x;
+      long double prod = 1;
+      if (x < 13.0L)
+	{
+	  /* Adjust into the range for applying Stirling's
+	     approximation.  */
+	  long double n = __ceill (13.0L - x);
+	  x_adj = x + n;
+	  x_eps = (x - (x_adj - n));
+	  prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
+	}
+      /* The result is now gamma (X_ADJ + X_EPS) / (PROD * (1 + EPS)).
+	 Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
+	 starting by computing pow (X_ADJ, X_ADJ) with a power of 2
+	 factored out.  */
+      long double exp_adj = -eps;
+      long double x_adj_int = __roundl (x_adj);
+      long double x_adj_frac = x_adj - x_adj_int;
+      int x_adj_log2;
+      long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
+      if (x_adj_mant < M_SQRT1_2l)
+	{
+	  x_adj_log2--;
+	  x_adj_mant *= 2.0L;
+	}
+      *exp2_adj = x_adj_log2 * (int) x_adj_int;
+      long double ret = (__ieee754_powl (x_adj_mant, x_adj)
+			 * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
+			 * __ieee754_expl (-x_adj)
+			 * __ieee754_sqrtl (2 * M_PIl / x_adj)
+			 / prod);
+      exp_adj += x_eps * __ieee754_logl (x_adj);
+      long double bsum = gamma_coeff[NCOEFF - 1];
+      long double x_adj2 = x_adj * x_adj;
+      for (size_t i = 1; i <= NCOEFF - 1; i++)
+	bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
+      exp_adj += bsum / x_adj;
+      return ret + ret * __expm1l (exp_adj);
+    }
+}
+
+long double
+__ieee754_gammal_r (long double x, int *signgamp)
+{
+  u_int32_t es, hx, lx;
+  long double ret;
+
+  GET_LDOUBLE_WORDS (es, hx, lx, x);
+
+  if (__glibc_unlikely (((es & 0x7fff) | hx | lx) == 0))
+    {
+      /* Return value for x == 0 is Inf with divide by zero exception.  */
+      *signgamp = 0;
+      return 1.0 / x;
+    }
+  if (__glibc_unlikely (es == 0xffffffff && ((hx & 0x7fffffff) | lx) == 0))
+    {
+      /* x == -Inf.  According to ISO this is NaN.  */
+      *signgamp = 0;
+      return x - x;
+    }
+  if (__glibc_unlikely ((es & 0x7fff) == 0x7fff))
+    {
+      /* Positive infinity (return positive infinity) or NaN (return
+	 NaN).  */
+      *signgamp = 0;
+      return x + x;
+    }
+  if (__builtin_expect ((es & 0x8000) != 0, 0) && __rintl (x) == x)
+    {
+      /* Return value for integer x < 0 is NaN with invalid exception.  */
+      *signgamp = 0;
+      return (x - x) / (x - x);
+    }
+
+  if (x >= 1756.0L)
+    {
+      /* Overflow.  */
+      *signgamp = 0;
+      return LDBL_MAX * LDBL_MAX;
+    }
+  else
+    {
+      SET_RESTORE_ROUNDL (FE_TONEAREST);
+      if (x > 0.0L)
+	{
+	  *signgamp = 0;
+	  int exp2_adj;
+	  ret = gammal_positive (x, &exp2_adj);
+	  ret = __scalbnl (ret, exp2_adj);
+	}
+      else if (x >= -LDBL_EPSILON / 4.0L)
+	{
+	  *signgamp = 0;
+	  ret = 1.0L / x;
+	}
+      else
+	{
+	  long double tx = __truncl (x);
+	  *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
+	  if (x <= -1766.0L)
+	    /* Underflow.  */
+	    ret = LDBL_MIN * LDBL_MIN;
+	  else
+	    {
+	      long double frac = tx - x;
+	      if (frac > 0.5L)
+		frac = 1.0L - frac;
+	      long double sinpix = (frac <= 0.25L
+				    ? __sinl (M_PIl * frac)
+				    : __cosl (M_PIl * (0.5L - frac)));
+	      int exp2_adj;
+	      ret = M_PIl / (-x * sinpix
+			     * gammal_positive (-x, &exp2_adj));
+	      ret = __scalbnl (ret, -exp2_adj);
+	      math_check_force_underflow_nonneg (ret);
+	    }
+	}
+    }
+  if (isinf (ret) && x != 0)
+    {
+      if (*signgamp < 0)
+	return -(-__copysignl (LDBL_MAX, ret) * LDBL_MAX);
+      else
+	return __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+    }
+  else if (ret == 0)
+    {
+      if (*signgamp < 0)
+	return -(-__copysignl (LDBL_MIN, ret) * LDBL_MIN);
+      else
+	return __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+    }
+  else
+    return ret;
+}
+strong_alias (__ieee754_gammal_r, __gammal_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_hypotl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_hypotl.c
new file mode 100644
index 0000000000..6b55b6d8ee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_hypotl.c
@@ -0,0 +1,142 @@
+/* e_hypotl.c -- long double version of e_hypot.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* __ieee754_hypotl(x,y)
+ *
+ * Method :
+ *	If (assume round-to-nearest) z=x*x+y*y
+ *	has error less than sqrt(2)/2 ulp, than
+ *	sqrt(z) has error less than 1 ulp (exercise).
+ *
+ *	So, compute sqrt(x*x+y*y) with some care as
+ *	follows to get the error below 1 ulp:
+ *
+ *	Assume x>y>0;
+ *	(if possible, set rounding to round-to-nearest)
+ *	1. if x > 2y  use
+ *		x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
+ *	where x1 = x with lower 32 bits cleared, x2 = x-x1; else
+ *	2. if x <= 2y use
+ *		t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
+ *	where t1 = 2x with lower 32 bits cleared, t2 = 2x-t1,
+ *	y1= y with lower 32 bits chopped, y2 = y-y1.
+ *
+ *	NOTE: scaling may be necessary if some argument is too
+ *	      large or too tiny
+ *
+ * Special cases:
+ *	hypot(x,y) is INF if x or y is +INF or -INF; else
+ *	hypot(x,y) is NAN if x or y is NAN.
+ *
+ * Accuracy:
+ *	hypot(x,y) returns sqrt(x^2+y^2) with error less
+ *	than 1 ulps (units in the last place)
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+long double __ieee754_hypotl(long double x, long double y)
+{
+	long double a,b,t1,t2,y1,y2,w;
+	u_int32_t j,k,ea,eb;
+
+	GET_LDOUBLE_EXP(ea,x);
+	ea &= 0x7fff;
+	GET_LDOUBLE_EXP(eb,y);
+	eb &= 0x7fff;
+	if(eb > ea) {a=y;b=x;j=ea; ea=eb;eb=j;} else {a=x;b=y;}
+	SET_LDOUBLE_EXP(a,ea);	/* a <- |a| */
+	SET_LDOUBLE_EXP(b,eb);	/* b <- |b| */
+	if((ea-eb)>0x46) {return a+b;} /* x/y > 2**70 */
+	k=0;
+	if(__builtin_expect(ea > 0x5f3f,0)) {	/* a>2**8000 */
+	   if(ea == 0x7fff) {	/* Inf or NaN */
+	       u_int32_t exp __attribute__ ((unused));
+	       u_int32_t high,low;
+	       w = a+b;			/* for sNaN */
+	       if (issignaling (a) || issignaling (b))
+		 return w;
+	       GET_LDOUBLE_WORDS(exp,high,low,a);
+	       if(((high&0x7fffffff)|low)==0) w = a;
+	       GET_LDOUBLE_WORDS(exp,high,low,b);
+	       if(((eb^0x7fff)|(high&0x7fffffff)|low)==0) w = b;
+	       return w;
+	   }
+	   /* scale a and b by 2**-9600 */
+	   ea -= 0x2580; eb -= 0x2580;	k += 9600;
+	   SET_LDOUBLE_EXP(a,ea);
+	   SET_LDOUBLE_EXP(b,eb);
+	}
+	if(__builtin_expect(eb < 0x20bf, 0)) {	/* b < 2**-8000 */
+	    if(eb == 0) {	/* subnormal b or 0 */
+		u_int32_t exp __attribute__ ((unused));
+		u_int32_t high,low;
+		GET_LDOUBLE_WORDS(exp,high,low,b);
+		if((high|low)==0) return a;
+		SET_LDOUBLE_WORDS(t1, 0x7ffd, 0x80000000, 0); /* t1=2^16382 */
+		b *= t1;
+		a *= t1;
+		k -= 16382;
+		GET_LDOUBLE_EXP (ea, a);
+		GET_LDOUBLE_EXP (eb, b);
+		if (eb > ea)
+		  {
+		    t1 = a;
+		    a = b;
+		    b = t1;
+		    j = ea;
+		    ea = eb;
+		    eb = j;
+		  }
+	    } else {		/* scale a and b by 2^9600 */
+		ea += 0x2580;	/* a *= 2^9600 */
+		eb += 0x2580;	/* b *= 2^9600 */
+		k -= 9600;
+		SET_LDOUBLE_EXP(a,ea);
+		SET_LDOUBLE_EXP(b,eb);
+	    }
+	}
+    /* medium size a and b */
+	w = a-b;
+	if (w>b) {
+	    u_int32_t high;
+	    GET_LDOUBLE_MSW(high,a);
+	    SET_LDOUBLE_WORDS(t1,ea,high,0);
+	    t2 = a-t1;
+	    w  = __ieee754_sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
+	} else {
+	    u_int32_t high;
+	    GET_LDOUBLE_MSW(high,b);
+	    a  = a+a;
+	    SET_LDOUBLE_WORDS(y1,eb,high,0);
+	    y2 = b - y1;
+	    GET_LDOUBLE_MSW(high,a);
+	    SET_LDOUBLE_WORDS(t1,ea+1,high,0);
+	    t2 = a - t1;
+	    w  = __ieee754_sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	}
+	if(k!=0) {
+	    u_int32_t exp;
+	    t1 = 1.0;
+	    GET_LDOUBLE_EXP(exp,t1);
+	    SET_LDOUBLE_EXP(t1,exp+k);
+	    w *= t1;
+	    math_check_force_underflow_nonneg (w);
+	    return w;
+	} else return w;
+}
+strong_alias (__ieee754_hypotl, __hypotl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_j0l.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_j0l.c
new file mode 100644
index 0000000000..a536054cde
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_j0l.c
@@ -0,0 +1,531 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_j0(x), __ieee754_y0(x)
+ * Bessel function of the first and second kinds of order zero.
+ * Method -- j0(x):
+ *	1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ...
+ *	2. Reduce x to |x| since j0(x)=j0(-x),  and
+ *	   for x in (0,2)
+ *		j0(x) = 1 - z/4 + z^2*R0/S0,  where z = x*x;
+ *	   for x in (2,inf)
+ *		j0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)-q0(x)*sin(x0))
+ *	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ *	   as follow:
+ *		cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+ *			= 1/sqrt(2) * (cos(x) + sin(x))
+ *		sin(x0) = sin(x)cos(pi/4)-cos(x)sin(pi/4)
+ *			= 1/sqrt(2) * (sin(x) - cos(x))
+ *	   (To avoid cancellation, use
+ *		sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ *	    to compute the worse one.)
+ *
+ *	3 Special cases
+ *		j0(nan)= nan
+ *		j0(0) = 1
+ *		j0(inf) = 0
+ *
+ * Method -- y0(x):
+ *	1. For x<2.
+ *	   Since
+ *		y0(x) = 2/pi*(j0(x)*(ln(x/2)+Euler) + x^2/4 - ...)
+ *	   therefore y0(x)-2/pi*j0(x)*ln(x) is an even function.
+ *	   We use the following function to approximate y0,
+ *		y0(x) = U(z)/V(z) + (2/pi)*(j0(x)*ln(x)), z= x^2
+ *
+ *	   Note: For tiny x, U/V = u0 and j0(x)~1, hence
+ *		y0(tiny) = u0 + (2/pi)*ln(tiny), (choose tiny<2**-27)
+ *	2. For x>=2.
+ *		y0(x) = sqrt(2/(pi*x))*(p0(x)*cos(x0)+q0(x)*sin(x0))
+ *	   where x0 = x-pi/4. It is better to compute sin(x0),cos(x0)
+ *	   by the method mentioned above.
+ *	3. Special cases: y0(0)=-inf, y0(x<0)=NaN, y0(inf)=0.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static long double pzero (long double), qzero (long double);
+
+static const long double
+  huge = 1e4930L,
+  one = 1.0L,
+  invsqrtpi = 5.6418958354775628694807945156077258584405e-1L,
+  tpi = 6.3661977236758134307553505349005744813784e-1L,
+
+  /* J0(x) = 1 - x^2 / 4 + x^4 R0(x^2) / S0(x^2)
+     0 <= x <= 2
+     peak relative error 1.41e-22 */
+  R[5] = {
+  4.287176872744686992880841716723478740566E7L,
+  -6.652058897474241627570911531740907185772E5L,
+  7.011848381719789863458364584613651091175E3L,
+  -3.168040850193372408702135490809516253693E1L,
+  6.030778552661102450545394348845599300939E-2L,
+},
+
+ S[4] = {
+   2.743793198556599677955266341699130654342E9L,
+   3.364330079384816249840086842058954076201E7L,
+   1.924119649412510777584684927494642526573E5L,
+   6.239282256012734914211715620088714856494E2L,
+   /*   1.000000000000000000000000000000000000000E0L,*/
+};
+
+static const long double zero = 0.0;
+
+long double
+__ieee754_j0l (long double x)
+{
+  long double z, s, c, ss, cc, r, u, v;
+  int32_t ix;
+  u_int32_t se;
+
+  GET_LDOUBLE_EXP (se, x);
+  ix = se & 0x7fff;
+  if (__glibc_unlikely (ix >= 0x7fff))
+    return one / (x * x);
+  x = fabsl (x);
+  if (ix >= 0x4000)		/* |x| >= 2.0 */
+    {
+      __sincosl (x, &s, &c);
+      ss = s - c;
+      cc = s + c;
+      if (ix < 0x7ffe)
+	{			/* make sure x+x not overflow */
+	  z = -__cosl (x + x);
+	  if ((s * c) < zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      /*
+       * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+       * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+       */
+      if (__glibc_unlikely (ix > 0x4080))      	/* 2^129 */
+	z = (invsqrtpi * cc) / __ieee754_sqrtl (x);
+      else
+	{
+	  u = pzero (x);
+	  v = qzero (x);
+	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrtl (x);
+	}
+      return z;
+    }
+  if (__glibc_unlikely (ix < 0x3fef))       /* |x| < 2**-16 */
+    {
+      /* raise inexact if x != 0 */
+      math_force_eval (huge + x);
+      if (ix < 0x3fde) /* |x| < 2^-33 */
+	return one;
+      else
+	return one - 0.25 * x * x;
+    }
+  z = x * x;
+  r = z * (R[0] + z * (R[1] + z * (R[2] + z * (R[3] + z * R[4]))));
+  s = S[0] + z * (S[1] + z * (S[2] + z * (S[3] + z)));
+  if (ix < 0x3fff)
+    {				/* |x| < 1.00 */
+      return (one - 0.25 * z + z * (r / s));
+    }
+  else
+    {
+      u = 0.5 * x;
+      return ((one + u) * (one - u) + z * (r / s));
+    }
+}
+strong_alias (__ieee754_j0l, __j0l_finite)
+
+
+/* y0(x) = 2/pi ln(x) J0(x) + U(x^2)/V(x^2)
+   0 < x <= 2
+   peak relative error 1.7e-21 */
+static const long double
+U[6] = {
+  -1.054912306975785573710813351985351350861E10L,
+  2.520192609749295139432773849576523636127E10L,
+  -1.856426071075602001239955451329519093395E9L,
+  4.079209129698891442683267466276785956784E7L,
+  -3.440684087134286610316661166492641011539E5L,
+  1.005524356159130626192144663414848383774E3L,
+};
+static const long double
+V[5] = {
+  1.429337283720789610137291929228082613676E11L,
+  2.492593075325119157558811370165695013002E9L,
+  2.186077620785925464237324417623665138376E7L,
+  1.238407896366385175196515057064384929222E5L,
+  4.693924035211032457494368947123233101664E2L,
+  /*  1.000000000000000000000000000000000000000E0L */
+};
+
+long double
+__ieee754_y0l (long double x)
+{
+  long double z, s, c, ss, cc, u, v;
+  int32_t ix;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0  */
+  if (__glibc_unlikely (se & 0x8000))
+    return zero / (zero * x);
+  if (__glibc_unlikely (ix >= 0x7fff))
+    return one / (x + x * x);
+  if (__glibc_unlikely ((i0 | i1) == 0))
+    return -HUGE_VALL + x;  /* -inf and overflow exception.  */
+  if (ix >= 0x4000)
+    {				/* |x| >= 2.0 */
+
+      /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0))
+       * where x0 = x-pi/4
+       *      Better formula:
+       *              cos(x0) = cos(x)cos(pi/4)+sin(x)sin(pi/4)
+       *                      =  1/sqrt(2) * (sin(x) + cos(x))
+       *              sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+       *                      =  1/sqrt(2) * (sin(x) - cos(x))
+       * To avoid cancellation, use
+       *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+       * to compute the worse one.
+       */
+      __sincosl (x, &s, &c);
+      ss = s - c;
+      cc = s + c;
+      /*
+       * j0(x) = 1/sqrt(pi) * (P(0,x)*cc - Q(0,x)*ss) / sqrt(x)
+       * y0(x) = 1/sqrt(pi) * (P(0,x)*ss + Q(0,x)*cc) / sqrt(x)
+       */
+      if (ix < 0x7ffe)
+	{			/* make sure x+x not overflow */
+	  z = -__cosl (x + x);
+	  if ((s * c) < zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      if (__glibc_unlikely (ix > 0x4080))      	/* 1e39 */
+	z = (invsqrtpi * ss) / __ieee754_sqrtl (x);
+      else
+	{
+	  u = pzero (x);
+	  v = qzero (x);
+	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrtl (x);
+	}
+      return z;
+    }
+  if (__glibc_unlikely (ix <= 0x3fde))       /* x < 2^-33 */
+    {
+      z = -7.380429510868722527629822444004602747322E-2L
+	+ tpi * __ieee754_logl (x);
+      return z;
+    }
+  z = x * x;
+  u = U[0] + z * (U[1] + z * (U[2] + z * (U[3] + z * (U[4] + z * U[5]))));
+  v = V[0] + z * (V[1] + z * (V[2] + z * (V[3] + z * (V[4] + z))));
+  return (u / v + tpi * (__ieee754_j0l (x) * __ieee754_logl (x)));
+}
+strong_alias (__ieee754_y0l, __y0l_finite)
+
+/* The asymptotic expansions of pzero is
+ *	1 - 9/128 s^2 + 11025/98304 s^4 - ...,	where s = 1/x.
+ * For x >= 2, We approximate pzero by
+ *	pzero(x) = 1 + s^2 R(s^2) / S(s^2)
+ */
+static const long double pR8[7] = {
+  /* 8 <= x <= inf
+     Peak relative error 4.62 */
+  -4.094398895124198016684337960227780260127E-9L,
+  -8.929643669432412640061946338524096893089E-7L,
+  -6.281267456906136703868258380673108109256E-5L,
+  -1.736902783620362966354814353559382399665E-3L,
+  -1.831506216290984960532230842266070146847E-2L,
+  -5.827178869301452892963280214772398135283E-2L,
+  -2.087563267939546435460286895807046616992E-2L,
+};
+static const long double pS8[6] = {
+  5.823145095287749230197031108839653988393E-8L,
+  1.279281986035060320477759999428992730280E-5L,
+  9.132668954726626677174825517150228961304E-4L,
+  2.606019379433060585351880541545146252534E-2L,
+  2.956262215119520464228467583516287175244E-1L,
+  1.149498145388256448535563278632697465675E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double pR5[7] = {
+  /* 4.54541015625 <= x <= 8
+     Peak relative error 6.51E-22 */
+  -2.041226787870240954326915847282179737987E-7L,
+  -2.255373879859413325570636768224534428156E-5L,
+  -7.957485746440825353553537274569102059990E-4L,
+  -1.093205102486816696940149222095559439425E-2L,
+  -5.657957849316537477657603125260701114646E-2L,
+  -8.641175552716402616180994954177818461588E-2L,
+  -1.354654710097134007437166939230619726157E-2L,
+};
+static const long double pS5[6] = {
+  2.903078099681108697057258628212823545290E-6L,
+  3.253948449946735405975737677123673867321E-4L,
+  1.181269751723085006534147920481582279979E-2L,
+  1.719212057790143888884745200257619469363E-1L,
+  1.006306498779212467670654535430694221924E0L,
+  2.069568808688074324555596301126375951502E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double pR3[7] = {
+  /* 2.85711669921875 <= x <= 4.54541015625
+     peak relative error 5.25e-21 */
+  -5.755732156848468345557663552240816066802E-6L,
+  -3.703675625855715998827966962258113034767E-4L,
+  -7.390893350679637611641350096842846433236E-3L,
+  -5.571922144490038765024591058478043873253E-2L,
+  -1.531290690378157869291151002472627396088E-1L,
+  -1.193350853469302941921647487062620011042E-1L,
+  -8.567802507331578894302991505331963782905E-3L,
+};
+static const long double pS3[6] = {
+  8.185931139070086158103309281525036712419E-5L,
+  5.398016943778891093520574483111255476787E-3L,
+  1.130589193590489566669164765853409621081E-1L,
+  9.358652328786413274673192987670237145071E-1L,
+  3.091711512598349056276917907005098085273E0L,
+  3.594602474737921977972586821673124231111E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double pR2[7] = {
+  /* 2 <= x <= 2.85711669921875
+     peak relative error 2.64e-21 */
+  -1.219525235804532014243621104365384992623E-4L,
+  -4.838597135805578919601088680065298763049E-3L,
+  -5.732223181683569266223306197751407418301E-2L,
+  -2.472947430526425064982909699406646503758E-1L,
+  -3.753373645974077960207588073975976327695E-1L,
+  -1.556241316844728872406672349347137975495E-1L,
+  -5.355423239526452209595316733635519506958E-3L,
+};
+static const long double pS2[6] = {
+  1.734442793664291412489066256138894953823E-3L,
+  7.158111826468626405416300895617986926008E-2L,
+  9.153839713992138340197264669867993552641E-1L,
+  4.539209519433011393525841956702487797582E0L,
+  8.868932430625331650266067101752626253644E0L,
+  6.067161890196324146320763844772857713502E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static long double
+pzero (long double x)
+{
+  const long double *p, *q;
+  long double z, r, s;
+  int32_t ix;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  /* ix >= 0x4000 for all calls to this function.  */
+  if (ix >= 0x4002)
+    {
+      p = pR8;
+      q = pS8;
+    }				/* x >= 8 */
+  else
+    {
+      i1 = (ix << 16) | (i0 >> 16);
+      if (i1 >= 0x40019174)	/* x >= 4.54541015625 */
+	{
+	  p = pR5;
+	  q = pS5;
+	}
+      else if (i1 >= 0x4000b6db)	/* x >= 2.85711669921875 */
+	{
+	  p = pR3;
+	  q = pS3;
+	}
+      else	/* x >= 2 */
+	{
+	  p = pR2;
+	  q = pS2;
+	}
+    }
+  z = one / (x * x);
+  r =
+    p[0] + z * (p[1] +
+		z * (p[2] + z * (p[3] + z * (p[4] + z * (p[5] + z * p[6])))));
+  s =
+    q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * (q[5] + z)))));
+  return (one + z * r / s);
+}
+
+
+/* For x >= 8, the asymptotic expansions of qzero is
+ *	-1/8 s + 75/1024 s^3 - ..., where s = 1/x.
+ * We approximate qzero by
+ *	qzero(x) = s*(-.125 + R(s^2) / S(s^2))
+ */
+static const long double qR8[7] = {
+  /* 8 <= x <= inf
+     peak relative error 2.23e-21 */
+  3.001267180483191397885272640777189348008E-10L,
+  8.693186311430836495238494289942413810121E-8L,
+  8.496875536711266039522937037850596580686E-6L,
+  3.482702869915288984296602449543513958409E-4L,
+  6.036378380706107692863811938221290851352E-3L,
+  3.881970028476167836382607922840452192636E-2L,
+  6.132191514516237371140841765561219149638E-2L,
+};
+static const long double qS8[7] = {
+  4.097730123753051126914971174076227600212E-9L,
+  1.199615869122646109596153392152131139306E-6L,
+  1.196337580514532207793107149088168946451E-4L,
+  5.099074440112045094341500497767181211104E-3L,
+  9.577420799632372483249761659674764460583E-2L,
+  7.385243015344292267061953461563695918646E-1L,
+  1.917266424391428937962682301561699055943E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double qR5[7] = {
+  /* 4.54541015625 <= x <= 8
+     peak relative error 1.03e-21 */
+  3.406256556438974327309660241748106352137E-8L,
+  4.855492710552705436943630087976121021980E-6L,
+  2.301011739663737780613356017352912281980E-4L,
+  4.500470249273129953870234803596619899226E-3L,
+  3.651376459725695502726921248173637054828E-2L,
+  1.071578819056574524416060138514508609805E-1L,
+  7.458950172851611673015774675225656063757E-2L,
+};
+static const long double qS5[7] = {
+  4.650675622764245276538207123618745150785E-7L,
+  6.773573292521412265840260065635377164455E-5L,
+  3.340711249876192721980146877577806687714E-3L,
+  7.036218046856839214741678375536970613501E-2L,
+  6.569599559163872573895171876511377891143E-1L,
+  2.557525022583599204591036677199171155186E0L,
+  3.457237396120935674982927714210361269133E0L,
+  /* 1.000000000000000000000000000000000000000E0L,*/
+};
+
+static const long double qR3[7] = {
+  /* 2.85711669921875 <= x <= 4.54541015625
+     peak relative error 5.24e-21 */
+  1.749459596550816915639829017724249805242E-6L,
+  1.446252487543383683621692672078376929437E-4L,
+  3.842084087362410664036704812125005761859E-3L,
+  4.066369994699462547896426554180954233581E-2L,
+  1.721093619117980251295234795188992722447E-1L,
+  2.538595333972857367655146949093055405072E-1L,
+  8.560591367256769038905328596020118877936E-2L,
+};
+static const long double qS3[7] = {
+  2.388596091707517488372313710647510488042E-5L,
+  2.048679968058758616370095132104333998147E-3L,
+  5.824663198201417760864458765259945181513E-2L,
+  6.953906394693328750931617748038994763958E-1L,
+  3.638186936390881159685868764832961092476E0L,
+  7.900169524705757837298990558459547842607E0L,
+  5.992718532451026507552820701127504582907E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double qR2[7] = {
+  /* 2 <= x <= 2.85711669921875
+     peak relative error 1.58e-21  */
+  6.306524405520048545426928892276696949540E-5L,
+  3.209606155709930950935893996591576624054E-3L,
+  5.027828775702022732912321378866797059604E-2L,
+  3.012705561838718956481911477587757845163E-1L,
+  6.960544893905752937420734884995688523815E-1L,
+  5.431871999743531634887107835372232030655E-1L,
+  9.447736151202905471899259026430157211949E-2L,
+};
+static const long double qS2[7] = {
+  8.610579901936193494609755345106129102676E-4L,
+  4.649054352710496997203474853066665869047E-2L,
+  8.104282924459837407218042945106320388339E-1L,
+  5.807730930825886427048038146088828206852E0L,
+  1.795310145936848873627710102199881642939E1L,
+  2.281313316875375733663657188888110605044E1L,
+  1.011242067883822301487154844458322200143E1L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+static long double
+qzero (long double x)
+{
+  const long double *p, *q;
+  long double s, r, z;
+  int32_t ix;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  /* ix >= 0x4000 for all calls to this function.  */
+  if (ix >= 0x4002)		/* x >= 8 */
+    {
+      p = qR8;
+      q = qS8;
+    }
+  else
+    {
+      i1 = (ix << 16) | (i0 >> 16);
+      if (i1 >= 0x40019174)	/* x >= 4.54541015625 */
+	{
+	  p = qR5;
+	  q = qS5;
+	}
+      else if (i1 >= 0x4000b6db)	/* x >= 2.85711669921875 */
+	{
+	  p = qR3;
+	  q = qS3;
+	}
+      else	/* x >= 2 */
+	{
+	  p = qR2;
+	  q = qS2;
+	}
+    }
+  z = one / (x * x);
+  r =
+    p[0] + z * (p[1] +
+		z * (p[2] + z * (p[3] + z * (p[4] + z * (p[5] + z * p[6])))));
+  s =
+    q[0] + z * (q[1] +
+		z * (q[2] +
+		     z * (q[3] + z * (q[4] + z * (q[5] + z * (q[6] + z))))));
+  return (-.125 + z * r / s) / x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_j1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_j1l.c
new file mode 100644
index 0000000000..e8a7349cf4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_j1l.c
@@ -0,0 +1,550 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_j1(x), __ieee754_y1(x)
+ * Bessel function of the first and second kinds of order zero.
+ * Method -- j1(x):
+ *	1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ...
+ *	2. Reduce x to |x| since j1(x)=-j1(-x),  and
+ *	   for x in (0,2)
+ *		j1(x) = x/2 + x*z*R0/S0,  where z = x*x;
+ *	   for x in (2,inf)
+ *		j1(x) = sqrt(2/(pi*x))*(p1(x)*cos(x1)-q1(x)*sin(x1))
+ *		y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1))
+ *	   where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1)
+ *	   as follow:
+ *		cos(x1) =  cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+ *			=  1/sqrt(2) * (sin(x) - cos(x))
+ *		sin(x1) =  sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+ *			= -1/sqrt(2) * (sin(x) + cos(x))
+ *	   (To avoid cancellation, use
+ *		sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+ *	    to compute the worse one.)
+ *
+ *	3 Special cases
+ *		j1(nan)= nan
+ *		j1(0) = 0
+ *		j1(inf) = 0
+ *
+ * Method -- y1(x):
+ *	1. screen out x<=0 cases: y1(0)=-inf, y1(x<0)=NaN
+ *	2. For x<2.
+ *	   Since
+ *		y1(x) = 2/pi*(j1(x)*(ln(x/2)+Euler)-1/x-x/2+5/64*x^3-...)
+ *	   therefore y1(x)-2/pi*j1(x)*ln(x)-1/x is an odd function.
+ *	   We use the following function to approximate y1,
+ *		y1(x) = x*U(z)/V(z) + (2/pi)*(j1(x)*ln(x)-1/x), z= x^2
+ *	   Note: For tiny x, 1/x dominate y1 and hence
+ *		y1(tiny) = -2/pi/tiny
+ *	3. For x>=2.
+ *		y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x1)+q1(x)*cos(x1))
+ *	   where x1 = x-3*pi/4. It is better to compute sin(x1),cos(x1)
+ *	   by method mentioned above.
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static long double pone (long double), qone (long double);
+
+static const long double
+  huge = 1e4930L,
+ one = 1.0L,
+ invsqrtpi = 5.6418958354775628694807945156077258584405e-1L,
+  tpi =  6.3661977236758134307553505349005744813784e-1L,
+
+  /* J1(x) = .5 x + x x^2 R(x^2) / S(x^2)
+     0 <= x <= 2
+     Peak relative error 4.5e-21 */
+R[5] = {
+    -9.647406112428107954753770469290757756814E7L,
+    2.686288565865230690166454005558203955564E6L,
+    -3.689682683905671185891885948692283776081E4L,
+    2.195031194229176602851429567792676658146E2L,
+    -5.124499848728030297902028238597308971319E-1L,
+},
+
+  S[4] =
+{
+  1.543584977988497274437410333029029035089E9L,
+  2.133542369567701244002565983150952549520E7L,
+  1.394077011298227346483732156167414670520E5L,
+  5.252401789085732428842871556112108446506E2L,
+  /*  1.000000000000000000000000000000000000000E0L, */
+};
+
+static const long double zero = 0.0;
+
+
+long double
+__ieee754_j1l (long double x)
+{
+  long double z, c, r, s, ss, cc, u, v, y;
+  int32_t ix;
+  u_int32_t se;
+
+  GET_LDOUBLE_EXP (se, x);
+  ix = se & 0x7fff;
+  if (__glibc_unlikely (ix >= 0x7fff))
+    return one / x;
+  y = fabsl (x);
+  if (ix >= 0x4000)
+    {				/* |x| >= 2.0 */
+      __sincosl (y, &s, &c);
+      ss = -s - c;
+      cc = s - c;
+      if (ix < 0x7ffe)
+	{			/* make sure y+y not overflow */
+	  z = __cosl (y + y);
+	  if ((s * c) > zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      /*
+       * j1(x) = 1/sqrt(pi) * (P(1,x)*cc - Q(1,x)*ss) / sqrt(x)
+       * y1(x) = 1/sqrt(pi) * (P(1,x)*ss + Q(1,x)*cc) / sqrt(x)
+       */
+      if (__glibc_unlikely (ix > 0x4080))
+	z = (invsqrtpi * cc) / __ieee754_sqrtl (y);
+      else
+	{
+	  u = pone (y);
+	  v = qone (y);
+	  z = invsqrtpi * (u * cc - v * ss) / __ieee754_sqrtl (y);
+	}
+      if (se & 0x8000)
+	return -z;
+      else
+	return z;
+    }
+  if (__glibc_unlikely (ix < 0x3fde))       /* |x| < 2^-33 */
+    {
+      if (huge + x > one)		/* inexact if x!=0 necessary */
+	{
+	  long double ret = 0.5 * x;
+	  math_check_force_underflow (ret);
+	  if (ret == 0 && x != 0)
+	    __set_errno (ERANGE);
+	  return ret;
+	}
+    }
+  z = x * x;
+  r = z * (R[0] + z * (R[1]+ z * (R[2] + z * (R[3] + z * R[4]))));
+  s = S[0] + z * (S[1] + z * (S[2] + z * (S[3] + z)));
+  r *= x;
+  return (x * 0.5 + r / s);
+}
+strong_alias (__ieee754_j1l, __j1l_finite)
+
+
+/* Y1(x) = 2/pi * (log(x) * j1(x) - 1/x) + x R(x^2)
+   0 <= x <= 2
+   Peak relative error 2.3e-23 */
+static const long double U0[6] = {
+  -5.908077186259914699178903164682444848615E10L,
+  1.546219327181478013495975514375773435962E10L,
+  -6.438303331169223128870035584107053228235E8L,
+  9.708540045657182600665968063824819371216E6L,
+  -6.138043997084355564619377183564196265471E4L,
+  1.418503228220927321096904291501161800215E2L,
+};
+static const long double V0[5] = {
+  3.013447341682896694781964795373783679861E11L,
+  4.669546565705981649470005402243136124523E9L,
+  3.595056091631351184676890179233695857260E7L,
+  1.761554028569108722903944659933744317994E5L,
+  5.668480419646516568875555062047234534863E2L,
+  /*  1.000000000000000000000000000000000000000E0L, */
+};
+
+
+long double
+__ieee754_y1l (long double x)
+{
+  long double z, s, c, ss, cc, u, v;
+  int32_t ix;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */
+  if (__glibc_unlikely (se & 0x8000))
+    return zero / (zero * x);
+  if (__glibc_unlikely (ix >= 0x7fff))
+    return one / (x + x * x);
+  if (__glibc_unlikely ((i0 | i1) == 0))
+    return -HUGE_VALL + x;  /* -inf and overflow exception.  */
+  if (ix >= 0x4000)
+    {				/* |x| >= 2.0 */
+      __sincosl (x, &s, &c);
+      ss = -s - c;
+      cc = s - c;
+      if (ix < 0x7ffe)
+	{			/* make sure x+x not overflow */
+	  z = __cosl (x + x);
+	  if ((s * c) > zero)
+	    cc = z / ss;
+	  else
+	    ss = z / cc;
+	}
+      /* y1(x) = sqrt(2/(pi*x))*(p1(x)*sin(x0)+q1(x)*cos(x0))
+       * where x0 = x-3pi/4
+       *      Better formula:
+       *              cos(x0) = cos(x)cos(3pi/4)+sin(x)sin(3pi/4)
+       *                      =  1/sqrt(2) * (sin(x) - cos(x))
+       *              sin(x0) = sin(x)cos(3pi/4)-cos(x)sin(3pi/4)
+       *                      = -1/sqrt(2) * (cos(x) + sin(x))
+       * To avoid cancellation, use
+       *              sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
+       * to compute the worse one.
+       */
+      if (__glibc_unlikely (ix > 0x4080))
+	z = (invsqrtpi * ss) / __ieee754_sqrtl (x);
+      else
+	{
+	  u = pone (x);
+	  v = qone (x);
+	  z = invsqrtpi * (u * ss + v * cc) / __ieee754_sqrtl (x);
+	}
+      return z;
+    }
+  if (__glibc_unlikely (ix <= 0x3fbe))
+    {				/* x < 2**-65 */
+      z = -tpi / x;
+      if (isinf (z))
+	__set_errno (ERANGE);
+      return z;
+    }
+  z = x * x;
+ u = U0[0] + z * (U0[1] + z * (U0[2] + z * (U0[3] + z * (U0[4] + z * U0[5]))));
+ v = V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * (V0[4] + z))));
+  return (x * (u / v) +
+	  tpi * (__ieee754_j1l (x) * __ieee754_logl (x) - one / x));
+}
+strong_alias (__ieee754_y1l, __y1l_finite)
+
+
+/* For x >= 8, the asymptotic expansions of pone is
+ *	1 + 15/128 s^2 - 4725/2^15 s^4 - ...,	where s = 1/x.
+ * We approximate pone by
+ *	pone(x) = 1 + (R/S)
+ */
+
+/* J1(x) cosX + Y1(x) sinX  =  sqrt( 2/(pi x)) P1(x)
+   P1(x) = 1 + z^2 R(z^2), z=1/x
+   8 <= x <= inf  (0 <= z <= 0.125)
+   Peak relative error 5.2e-22  */
+
+static const long double pr8[7] = {
+  8.402048819032978959298664869941375143163E-9L,
+  1.813743245316438056192649247507255996036E-6L,
+  1.260704554112906152344932388588243836276E-4L,
+  3.439294839869103014614229832700986965110E-3L,
+  3.576910849712074184504430254290179501209E-2L,
+  1.131111483254318243139953003461511308672E-1L,
+  4.480715825681029711521286449131671880953E-2L,
+};
+static const long double ps8[6] = {
+  7.169748325574809484893888315707824924354E-8L,
+  1.556549720596672576431813934184403614817E-5L,
+  1.094540125521337139209062035774174565882E-3L,
+  3.060978962596642798560894375281428805840E-2L,
+  3.374146536087205506032643098619414507024E-1L,
+  1.253830208588979001991901126393231302559E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* J1(x) cosX + Y1(x) sinX  =  sqrt( 2/(pi x)) P1(x)
+   P1(x) = 1 + z^2 R(z^2), z=1/x
+   4.54541015625 <= x <= 8
+   Peak relative error 7.7e-22  */
+static const long double pr5[7] = {
+  4.318486887948814529950980396300969247900E-7L,
+  4.715341880798817230333360497524173929315E-5L,
+  1.642719430496086618401091544113220340094E-3L,
+  2.228688005300803935928733750456396149104E-2L,
+  1.142773760804150921573259605730018327162E-1L,
+  1.755576530055079253910829652698703791957E-1L,
+  3.218803858282095929559165965353784980613E-2L,
+};
+static const long double ps5[6] = {
+  3.685108812227721334719884358034713967557E-6L,
+  4.069102509511177498808856515005792027639E-4L,
+  1.449728676496155025507893322405597039816E-2L,
+  2.058869213229520086582695850441194363103E-1L,
+  1.164890985918737148968424972072751066553E0L,
+  2.274776933457009446573027260373361586841E0L,
+  /*  1.000000000000000000000000000000000000000E0L,*/
+};
+
+/* J1(x) cosX + Y1(x) sinX  =  sqrt( 2/(pi x)) P1(x)
+   P1(x) = 1 + z^2 R(z^2), z=1/x
+   2.85711669921875 <= x <= 4.54541015625
+   Peak relative error 6.5e-21  */
+static const long double pr3[7] = {
+  1.265251153957366716825382654273326407972E-5L,
+  8.031057269201324914127680782288352574567E-4L,
+  1.581648121115028333661412169396282881035E-2L,
+  1.179534658087796321928362981518645033967E-1L,
+  3.227936912780465219246440724502790727866E-1L,
+  2.559223765418386621748404398017602935764E-1L,
+  2.277136933287817911091370397134882441046E-2L,
+};
+static const long double ps3[6] = {
+  1.079681071833391818661952793568345057548E-4L,
+  6.986017817100477138417481463810841529026E-3L,
+  1.429403701146942509913198539100230540503E-1L,
+  1.148392024337075609460312658938700765074E0L,
+  3.643663015091248720208251490291968840882E0L,
+  3.990702269032018282145100741746633960737E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* J1(x) cosX + Y1(x) sinX  =  sqrt( 2/(pi x)) P1(x)
+   P1(x) = 1 + z^2 R(z^2), z=1/x
+   2 <= x <= 2.85711669921875
+   Peak relative error 3.5e-21  */
+static const long double pr2[7] = {
+  2.795623248568412225239401141338714516445E-4L,
+  1.092578168441856711925254839815430061135E-2L,
+  1.278024620468953761154963591853679640560E-1L,
+  5.469680473691500673112904286228351988583E-1L,
+  8.313769490922351300461498619045639016059E-1L,
+  3.544176317308370086415403567097130611468E-1L,
+  1.604142674802373041247957048801599740644E-2L,
+};
+static const long double ps2[6] = {
+  2.385605161555183386205027000675875235980E-3L,
+  9.616778294482695283928617708206967248579E-2L,
+  1.195215570959693572089824415393951258510E0L,
+  5.718412857897054829999458736064922974662E0L,
+  1.065626298505499086386584642761602177568E1L,
+  6.809140730053382188468983548092322151791E0L,
+ /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+
+static long double
+pone (long double x)
+{
+  const long double *p, *q;
+  long double z, r, s;
+  int32_t ix;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  /* ix >= 0x4000 for all calls to this function.  */
+  if (ix >= 0x4002) /* x >= 8 */
+    {
+      p = pr8;
+      q = ps8;
+    }
+  else
+    {
+      i1 = (ix << 16) | (i0 >> 16);
+      if (i1 >= 0x40019174)	/* x >= 4.54541015625 */
+	{
+	  p = pr5;
+	  q = ps5;
+	}
+      else if (i1 >= 0x4000b6db)	/* x >= 2.85711669921875 */
+	{
+	  p = pr3;
+	  q = ps3;
+	}
+      else	/* x >= 2 */
+	{
+	  p = pr2;
+	  q = ps2;
+	}
+    }
+  z = one / (x * x);
+ r = p[0] + z * (p[1] +
+		 z * (p[2] + z * (p[3] + z * (p[4] + z * (p[5] + z * p[6])))));
+ s = q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * (q[5] + z)))));
+  return one + z * r / s;
+}
+
+
+/* For x >= 8, the asymptotic expansions of qone is
+ *	3/8 s - 105/1024 s^3 - ..., where s = 1/x.
+ * We approximate pone by
+ *	qone(x) = s*(0.375 + (R/S))
+ */
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = z(.375 + z^2 R(z^2)), z=1/x
+   8 <= x <= inf
+   Peak relative error 8.3e-22 */
+
+static const long double qr8[7] = {
+  -5.691925079044209246015366919809404457380E-10L,
+  -1.632587664706999307871963065396218379137E-7L,
+  -1.577424682764651970003637263552027114600E-5L,
+  -6.377627959241053914770158336842725291713E-4L,
+  -1.087408516779972735197277149494929568768E-2L,
+  -6.854943629378084419631926076882330494217E-2L,
+  -1.055448290469180032312893377152490183203E-1L,
+};
+static const long double qs8[7] = {
+  5.550982172325019811119223916998393907513E-9L,
+  1.607188366646736068460131091130644192244E-6L,
+  1.580792530091386496626494138334505893599E-4L,
+  6.617859900815747303032860443855006056595E-3L,
+  1.212840547336984859952597488863037659161E-1L,
+  9.017885953937234900458186716154005541075E-1L,
+  2.201114489712243262000939120146436167178E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = z(.375 + z^2 R(z^2)), z=1/x
+   4.54541015625 <= x <= 8
+   Peak relative error 4.1e-22 */
+static const long double qr5[7] = {
+  -6.719134139179190546324213696633564965983E-8L,
+  -9.467871458774950479909851595678622044140E-6L,
+  -4.429341875348286176950914275723051452838E-4L,
+  -8.539898021757342531563866270278505014487E-3L,
+  -6.818691805848737010422337101409276287170E-2L,
+  -1.964432669771684034858848142418228214855E-1L,
+  -1.333896496989238600119596538299938520726E-1L,
+};
+static const long double qs5[7] = {
+  6.552755584474634766937589285426911075101E-7L,
+  9.410814032118155978663509073200494000589E-5L,
+  4.561677087286518359461609153655021253238E-3L,
+  9.397742096177905170800336715661091535805E-2L,
+  8.518538116671013902180962914473967738771E-1L,
+  3.177729183645800174212539541058292579009E0L,
+  4.006745668510308096259753538973038902990E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = z(.375 + z^2 R(z^2)), z=1/x
+   2.85711669921875 <= x <= 4.54541015625
+   Peak relative error 2.2e-21 */
+static const long double qr3[7] = {
+  -3.618746299358445926506719188614570588404E-6L,
+  -2.951146018465419674063882650970344502798E-4L,
+  -7.728518171262562194043409753656506795258E-3L,
+  -8.058010968753999435006488158237984014883E-2L,
+  -3.356232856677966691703904770937143483472E-1L,
+  -4.858192581793118040782557808823460276452E-1L,
+  -1.592399251246473643510898335746432479373E-1L,
+};
+static const long double qs3[7] = {
+  3.529139957987837084554591421329876744262E-5L,
+  2.973602667215766676998703687065066180115E-3L,
+  8.273534546240864308494062287908662592100E-2L,
+  9.613359842126507198241321110649974032726E-1L,
+  4.853923697093974370118387947065402707519E0L,
+  1.002671608961669247462020977417828796933E1L,
+  7.028927383922483728931327850683151410267E0L,
+  /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+/* Y1(x)cosX - J1(x)sinX = sqrt( 2/(pi x)) Q1(x),
+   Q1(x) = z(.375 + z^2 R(z^2)), z=1/x
+   2 <= x <= 2.85711669921875
+   Peak relative error 6.9e-22 */
+static const long double qr2[7] = {
+  -1.372751603025230017220666013816502528318E-4L,
+  -6.879190253347766576229143006767218972834E-3L,
+  -1.061253572090925414598304855316280077828E-1L,
+  -6.262164224345471241219408329354943337214E-1L,
+  -1.423149636514768476376254324731437473915E0L,
+  -1.087955310491078933531734062917489870754E0L,
+  -1.826821119773182847861406108689273719137E-1L,
+};
+static const long double qs2[7] = {
+  1.338768933634451601814048220627185324007E-3L,
+  7.071099998918497559736318523932241901810E-2L,
+  1.200511429784048632105295629933382142221E0L,
+  8.327301713640367079030141077172031825276E0L,
+  2.468479301872299311658145549931764426840E1L,
+  2.961179686096262083509383820557051621644E1L,
+  1.201402313144305153005639494661767354977E1L,
+ /* 1.000000000000000000000000000000000000000E0L, */
+};
+
+
+static long double
+qone (long double x)
+{
+  const long double *p, *q;
+  static long double s, r, z;
+  int32_t ix;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  /* ix >= 0x4000 for all calls to this function.  */
+  if (ix >= 0x4002)		/* x >= 8 */
+    {
+      p = qr8;
+      q = qs8;
+    }
+  else
+    {
+      i1 = (ix << 16) | (i0 >> 16);
+      if (i1 >= 0x40019174)	/* x >= 4.54541015625 */
+	{
+	  p = qr5;
+	  q = qs5;
+	}
+      else if (i1 >= 0x4000b6db)	/* x >= 2.85711669921875 */
+	{
+	  p = qr3;
+	  q = qs3;
+	}
+      else	/* x >= 2 */
+	{
+	  p = qr2;
+	  q = qs2;
+	}
+    }
+  z = one / (x * x);
+  r =
+    p[0] + z * (p[1] +
+		z * (p[2] + z * (p[3] + z * (p[4] + z * (p[5] + z * p[6])))));
+  s =
+    q[0] + z * (q[1] +
+		z * (q[2] +
+		     z * (q[3] + z * (q[4] + z * (q[5] + z * (q[6] + z))))));
+  return (.375 + z * r / s) / x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_jnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_jnl.c
new file mode 100644
index 0000000000..92f96921a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_jnl.c
@@ -0,0 +1,404 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Modifications for long double are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/*
+ * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * floating point Bessel's function of the 1st and 2nd kind
+ * of order n
+ *
+ * Special cases:
+ *	y0(0)=y1(0)=yn(n,0) = -inf with overflow signal;
+ *	y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal.
+ * Note 2. About jn(n,x), yn(n,x)
+ *	For n=0, j0(x) is called,
+ *	for n=1, j1(x) is called,
+ *	for n<x, forward recursion us used starting
+ *	from values of j0(x) and j1(x).
+ *	for n>x, a continued fraction approximation to
+ *	j(n,x)/j(n-1,x) is evaluated and then backward
+ *	recursion is used starting from a supposed value
+ *	for j(n,x). The resulting value of j(0,x) is
+ *	compared with the actual value to correct the
+ *	supposed value of j(n,x).
+ *
+ *	yn(n,x) is similar in all respects, except
+ *	that forward recursion is used for all
+ *	values of n>1.
+ *
+ */
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+  invsqrtpi = 5.64189583547756286948079e-1L, two = 2.0e0L, one = 1.0e0L;
+
+static const long double zero = 0.0L;
+
+long double
+__ieee754_jnl (int n, long double x)
+{
+  u_int32_t se, i0, i1;
+  int32_t i, ix, sgn;
+  long double a, b, temp, di, ret;
+  long double z, w;
+
+  /* J(-n,x) = (-1)^n * J(n, x), J(n, -x) = (-1)^n * J(n, x)
+   * Thus, J(-n,x) = J(n,-x)
+   */
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+
+  /* if J(n,NaN) is NaN */
+  if (__glibc_unlikely ((ix == 0x7fff) && ((i0 & 0x7fffffff) != 0)))
+    return x + x;
+  if (n < 0)
+    {
+      n = -n;
+      x = -x;
+      se ^= 0x8000;
+    }
+  if (n == 0)
+    return (__ieee754_j0l (x));
+  if (n == 1)
+    return (__ieee754_j1l (x));
+  sgn = (n & 1) & (se >> 15);	/* even n -- 0, odd n -- sign(x) */
+  x = fabsl (x);
+  {
+    SET_RESTORE_ROUNDL (FE_TONEAREST);
+    if (__glibc_unlikely ((ix | i0 | i1) == 0 || ix >= 0x7fff))
+      /* if x is 0 or inf */
+      return sgn == 1 ? -zero : zero;
+    else if ((long double) n <= x)
+      {
+	/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
+	if (ix >= 0x412D)
+	  {			/* x > 2**302 */
+
+	    /* ??? This might be a futile gesture.
+	       If x exceeds X_TLOSS anyway, the wrapper function
+	       will set the result to zero. */
+
+	    /* (x >> n**2)
+	     *      Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	     *      Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	     *      Let s=sin(x), c=cos(x),
+	     *          xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+	     *
+	     *             n    sin(xn)*sqt2    cos(xn)*sqt2
+	     *          ----------------------------------
+	     *             0     s-c             c+s
+	     *             1    -s-c            -c+s
+	     *             2    -s+c            -c-s
+	     *             3     s+c             c-s
+	     */
+	    long double s;
+	    long double c;
+	    __sincosl (x, &s, &c);
+	    switch (n & 3)
+	      {
+	      case 0:
+		temp = c + s;
+		break;
+	      case 1:
+		temp = -c + s;
+		break;
+	      case 2:
+		temp = -c - s;
+		break;
+	      case 3:
+		temp = c - s;
+		break;
+	      }
+	    b = invsqrtpi * temp / __ieee754_sqrtl (x);
+	  }
+	else
+	  {
+	    a = __ieee754_j0l (x);
+	    b = __ieee754_j1l (x);
+	    for (i = 1; i < n; i++)
+	      {
+		temp = b;
+		b = b * ((long double) (i + i) / x) - a;	/* avoid underflow */
+		a = temp;
+	      }
+	  }
+      }
+    else
+      {
+	if (ix < 0x3fde)
+	  {			/* x < 2**-33 */
+	    /* x is tiny, return the first Taylor expansion of J(n,x)
+	     * J(n,x) = 1/n!*(x/2)^n  - ...
+	     */
+	    if (n >= 400)		/* underflow, result < 10^-4952 */
+	      b = zero;
+	    else
+	      {
+		temp = x * 0.5;
+		b = temp;
+		for (a = one, i = 2; i <= n; i++)
+		  {
+		    a *= (long double) i;	/* a = n! */
+		    b *= temp;	/* b = (x/2)^n */
+		  }
+		b = b / a;
+	      }
+	  }
+	else
+	  {
+	    /* use backward recurrence */
+	    /*                      x      x^2      x^2
+	     *  J(n,x)/J(n-1,x) =  ----   ------   ------   .....
+	     *                      2n  - 2(n+1) - 2(n+2)
+	     *
+	     *                      1      1        1
+	     *  (for large x)   =  ----  ------   ------   .....
+	     *                      2n   2(n+1)   2(n+2)
+	     *                      -- - ------ - ------ -
+	     *                       x     x         x
+	     *
+	     * Let w = 2n/x and h=2/x, then the above quotient
+	     * is equal to the continued fraction:
+	     *                  1
+	     *      = -----------------------
+	     *                     1
+	     *         w - -----------------
+	     *                        1
+	     *              w+h - ---------
+	     *                     w+2h - ...
+	     *
+	     * To determine how many terms needed, let
+	     * Q(0) = w, Q(1) = w(w+h) - 1,
+	     * Q(k) = (w+k*h)*Q(k-1) - Q(k-2),
+	     * When Q(k) > 1e4      good for single
+	     * When Q(k) > 1e9      good for double
+	     * When Q(k) > 1e17     good for quadruple
+	     */
+	    /* determine k */
+	    long double t, v;
+	    long double q0, q1, h, tmp;
+	    int32_t k, m;
+	    w = (n + n) / (long double) x;
+	    h = 2.0L / (long double) x;
+	    q0 = w;
+	    z = w + h;
+	    q1 = w * z - 1.0L;
+	    k = 1;
+	    while (q1 < 1.0e11L)
+	      {
+		k += 1;
+		z += h;
+		tmp = z * q1 - q0;
+		q0 = q1;
+		q1 = tmp;
+	      }
+	    m = n + n;
+	    for (t = zero, i = 2 * (n + k); i >= m; i -= 2)
+	      t = one / (i / x - t);
+	    a = t;
+	    b = one;
+	    /*  estimate log((2/x)^n*n!) = n*log(2/x)+n*ln(n)
+	     *  Hence, if n*(log(2n/x)) > ...
+	     *  single 8.8722839355e+01
+	     *  double 7.09782712893383973096e+02
+	     *  long double 1.1356523406294143949491931077970765006170e+04
+	     *  then recurrent value may overflow and the result is
+	     *  likely underflow to zero
+	     */
+	    tmp = n;
+	    v = two / x;
+	    tmp = tmp * __ieee754_logl (fabsl (v * tmp));
+
+	    if (tmp < 1.1356523406294143949491931077970765006170e+04L)
+	      {
+		for (i = n - 1, di = (long double) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		  }
+	      }
+	    else
+	      {
+		for (i = n - 1, di = (long double) (i + i); i > 0; i--)
+		  {
+		    temp = b;
+		    b *= di;
+		    b = b / x - a;
+		    a = temp;
+		    di -= two;
+		    /* scale b to avoid spurious overflow */
+		    if (b > 1e100L)
+		      {
+			a /= b;
+			t /= b;
+			b = one;
+		      }
+		  }
+	      }
+	    /* j0() and j1() suffer enormous loss of precision at and
+	     * near zero; however, we know that their zero points never
+	     * coincide, so just choose the one further away from zero.
+	     */
+	    z = __ieee754_j0l (x);
+	    w = __ieee754_j1l (x);
+	    if (fabsl (z) >= fabsl (w))
+	      b = (t * z / b);
+	    else
+	      b = (t * w / a);
+	  }
+      }
+    if (sgn == 1)
+      ret = -b;
+    else
+      ret = b;
+  }
+  if (ret == 0)
+    {
+      ret = __copysignl (LDBL_MIN, ret) * LDBL_MIN;
+      __set_errno (ERANGE);
+    }
+  else
+    math_check_force_underflow (ret);
+  return ret;
+}
+strong_alias (__ieee754_jnl, __jnl_finite)
+
+long double
+__ieee754_ynl (int n, long double x)
+{
+  u_int32_t se, i0, i1;
+  int32_t i, ix;
+  int32_t sign;
+  long double a, b, temp, ret;
+
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  /* if Y(n,NaN) is NaN */
+  if (__builtin_expect ((ix == 0x7fff) && ((i0 & 0x7fffffff) != 0), 0))
+    return x + x;
+  if (__builtin_expect ((ix | i0 | i1) == 0, 0))
+    /* -inf or inf and divide-by-zero exception.  */
+    return ((n < 0 && (n & 1) != 0) ? 1.0L : -1.0L) / 0.0L;
+  if (__builtin_expect (se & 0x8000, 0))
+    return zero / (zero * x);
+  sign = 1;
+  if (n < 0)
+    {
+      n = -n;
+      sign = 1 - ((n & 1) << 1);
+    }
+  if (n == 0)
+    return (__ieee754_y0l (x));
+  {
+    SET_RESTORE_ROUNDL (FE_TONEAREST);
+    if (n == 1)
+      {
+	ret = sign * __ieee754_y1l (x);
+	goto out;
+      }
+    if (__glibc_unlikely (ix == 0x7fff))
+      return zero;
+    if (ix >= 0x412D)
+      {				/* x > 2**302 */
+
+	/* ??? See comment above on the possible futility of this.  */
+
+	/* (x >> n**2)
+	 *      Jn(x) = cos(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *      Yn(x) = sin(x-(2n+1)*pi/4)*sqrt(2/x*pi)
+	 *      Let s=sin(x), c=cos(x),
+	 *          xn=x-(2n+1)*pi/4, sqt2 = sqrt(2),then
+	 *
+	 *             n    sin(xn)*sqt2    cos(xn)*sqt2
+	 *          ----------------------------------
+	 *             0     s-c             c+s
+	 *             1    -s-c            -c+s
+	 *             2    -s+c            -c-s
+	 *             3     s+c             c-s
+	 */
+	long double s;
+	long double c;
+	__sincosl (x, &s, &c);
+	switch (n & 3)
+	  {
+	  case 0:
+	    temp = s - c;
+	    break;
+	  case 1:
+	    temp = -s - c;
+	    break;
+	  case 2:
+	    temp = -s + c;
+	    break;
+	  case 3:
+	    temp = s + c;
+	    break;
+	  }
+	b = invsqrtpi * temp / __ieee754_sqrtl (x);
+      }
+    else
+      {
+	a = __ieee754_y0l (x);
+	b = __ieee754_y1l (x);
+	/* quit if b is -inf */
+	GET_LDOUBLE_WORDS (se, i0, i1, b);
+	/* Use 0xffffffff since GET_LDOUBLE_WORDS sign-extends SE.  */
+	for (i = 1; i < n && se != 0xffffffff; i++)
+	  {
+	    temp = b;
+	    b = ((long double) (i + i) / x) * b - a;
+	    GET_LDOUBLE_WORDS (se, i0, i1, b);
+	    a = temp;
+	  }
+      }
+    /* If B is +-Inf, set up errno accordingly.  */
+    if (! isfinite (b))
+      __set_errno (ERANGE);
+    if (sign > 0)
+      ret = b;
+    else
+      ret = -b;
+  }
+ out:
+  if (isinf (ret))
+    ret = __copysignl (LDBL_MAX, ret) * LDBL_MAX;
+  return ret;
+}
+strong_alias (__ieee754_ynl, __ynl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
new file mode 100644
index 0000000000..4ecd63045f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -0,0 +1,439 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __ieee754_lgammal_r(x, signgamp)
+ * Reentrant version of the logarithm of the Gamma function
+ * with user provide pointer for the sign of Gamma(x).
+ *
+ * Method:
+ *   1. Argument Reduction for 0 < x <= 8
+ *	Since gamma(1+s)=s*gamma(s), for x in [0,8], we may
+ *	reduce x to a number in [1.5,2.5] by
+ *		lgamma(1+s) = log(s) + lgamma(s)
+ *	for example,
+ *		lgamma(7.3) = log(6.3) + lgamma(6.3)
+ *			    = log(6.3*5.3) + lgamma(5.3)
+ *			    = log(6.3*5.3*4.3*3.3*2.3) + lgamma(2.3)
+ *   2. Polynomial approximation of lgamma around its
+ *	minimun ymin=1.461632144968362245 to maintain monotonicity.
+ *	On [ymin-0.23, ymin+0.27] (i.e., [1.23164,1.73163]), use
+ *		Let z = x-ymin;
+ *		lgamma(x) = -1.214862905358496078218 + z^2*poly(z)
+ *   2. Rational approximation in the primary interval [2,3]
+ *	We use the following approximation:
+ *		s = x-2.0;
+ *		lgamma(x) = 0.5*s + s*P(s)/Q(s)
+ *	Our algorithms are based on the following observation
+ *
+ *                             zeta(2)-1    2    zeta(3)-1    3
+ * lgamma(2+s) = s*(1-Euler) + --------- * s  -  --------- * s  + ...
+ *                                 2                 3
+ *
+ *	where Euler = 0.5771... is the Euler constant, which is very
+ *	close to 0.5.
+ *
+ *   3. For x>=8, we have
+ *	lgamma(x)~(x-0.5)log(x)-x+0.5*log(2pi)+1/(12x)-1/(360x**3)+....
+ *	(better formula:
+ *	   lgamma(x)~(x-0.5)*(log(x)-1)-.5*(log(2pi)-1) + ...)
+ *	Let z = 1/x, then we approximation
+ *		f(z) = lgamma(x) - (x-0.5)(log(x)-1)
+ *	by
+ *				    3       5             11
+ *		w = w0 + w1*z + w2*z  + w3*z  + ... + w6*z
+ *
+ *   4. For negative x, since (G is gamma function)
+ *		-x*G(-x)*G(x) = pi/sin(pi*x),
+ *	we have
+ *		G(x) = pi/(sin(pi*x)*(-x)*G(-x))
+ *	since G(-x) is positive, sign(G(x)) = sign(sin(pi*x)) for x<0
+ *	Hence, for x<0, signgam = sign(sin(pi*x)) and
+ *		lgamma(x) = log(|Gamma(x)|)
+ *			  = log(pi/(|x*sin(pi*x)|)) - lgamma(-x);
+ *	Note: one should avoid compute pi*(-x) directly in the
+ *	      computation of sin(pi*(-x)).
+ *
+ *   5. Special Cases
+ *		lgamma(2+s) ~ s*(1-Euler) for tiny s
+ *		lgamma(1)=lgamma(2)=0
+ *		lgamma(x) ~ -log(x) for tiny x
+ *		lgamma(0) = lgamma(inf) = inf
+ *		lgamma(-integer) = +-inf
+ *
+ */
+
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+static const long double
+  half = 0.5L,
+  one = 1.0L,
+  pi = 3.14159265358979323846264L,
+  two63 = 9.223372036854775808e18L,
+
+  /* lgam(1+x) = 0.5 x + x a(x)/b(x)
+     -0.268402099609375 <= x <= 0
+     peak relative error 6.6e-22 */
+  a0 = -6.343246574721079391729402781192128239938E2L,
+  a1 =  1.856560238672465796768677717168371401378E3L,
+  a2 =  2.404733102163746263689288466865843408429E3L,
+  a3 =  8.804188795790383497379532868917517596322E2L,
+  a4 =  1.135361354097447729740103745999661157426E2L,
+  a5 =  3.766956539107615557608581581190400021285E0L,
+
+  b0 =  8.214973713960928795704317259806842490498E3L,
+  b1 =  1.026343508841367384879065363925870888012E4L,
+  b2 =  4.553337477045763320522762343132210919277E3L,
+  b3 =  8.506975785032585797446253359230031874803E2L,
+  b4 =  6.042447899703295436820744186992189445813E1L,
+  /* b5 =  1.000000000000000000000000000000000000000E0 */
+
+
+  tc =  1.4616321449683623412626595423257213284682E0L,
+  tf = -1.2148629053584961146050602565082954242826E-1,/* double precision */
+/* tt = (tail of tf), i.e. tf + tt has extended precision. */
+  tt = 3.3649914684731379602768989080467587736363E-18L,
+  /* lgam ( 1.4616321449683623412626595423257213284682E0 ) =
+-1.2148629053584960809551455717769158215135617312999903886372437313313530E-1 */
+
+  /* lgam (x + tc) = tf + tt + x g(x)/h(x)
+     - 0.230003726999612341262659542325721328468 <= x
+     <= 0.2699962730003876587373404576742786715318
+     peak relative error 2.1e-21 */
+  g0 = 3.645529916721223331888305293534095553827E-18L,
+  g1 = 5.126654642791082497002594216163574795690E3L,
+  g2 = 8.828603575854624811911631336122070070327E3L,
+  g3 = 5.464186426932117031234820886525701595203E3L,
+  g4 = 1.455427403530884193180776558102868592293E3L,
+  g5 = 1.541735456969245924860307497029155838446E2L,
+  g6 = 4.335498275274822298341872707453445815118E0L,
+
+  h0 = 1.059584930106085509696730443974495979641E4L,
+  h1 =  2.147921653490043010629481226937850618860E4L,
+  h2 = 1.643014770044524804175197151958100656728E4L,
+  h3 =  5.869021995186925517228323497501767586078E3L,
+  h4 =  9.764244777714344488787381271643502742293E2L,
+  h5 =  6.442485441570592541741092969581997002349E1L,
+  /* h6 = 1.000000000000000000000000000000000000000E0 */
+
+
+  /* lgam (x+1) = -0.5 x + x u(x)/v(x)
+     -0.100006103515625 <= x <= 0.231639862060546875
+     peak relative error 1.3e-21 */
+  u0 = -8.886217500092090678492242071879342025627E1L,
+  u1 =  6.840109978129177639438792958320783599310E2L,
+  u2 =  2.042626104514127267855588786511809932433E3L,
+  u3 =  1.911723903442667422201651063009856064275E3L,
+  u4 =  7.447065275665887457628865263491667767695E2L,
+  u5 =  1.132256494121790736268471016493103952637E2L,
+  u6 =  4.484398885516614191003094714505960972894E0L,
+
+  v0 =  1.150830924194461522996462401210374632929E3L,
+  v1 =  3.399692260848747447377972081399737098610E3L,
+  v2 =  3.786631705644460255229513563657226008015E3L,
+  v3 =  1.966450123004478374557778781564114347876E3L,
+  v4 =  4.741359068914069299837355438370682773122E2L,
+  v5 =  4.508989649747184050907206782117647852364E1L,
+  /* v6 =  1.000000000000000000000000000000000000000E0 */
+
+
+  /* lgam (x+2) = .5 x + x s(x)/r(x)
+     0 <= x <= 1
+     peak relative error 7.2e-22 */
+  s0 =  1.454726263410661942989109455292824853344E6L,
+  s1 = -3.901428390086348447890408306153378922752E6L,
+  s2 = -6.573568698209374121847873064292963089438E6L,
+  s3 = -3.319055881485044417245964508099095984643E6L,
+  s4 = -7.094891568758439227560184618114707107977E5L,
+  s5 = -6.263426646464505837422314539808112478303E4L,
+  s6 = -1.684926520999477529949915657519454051529E3L,
+
+  r0 = -1.883978160734303518163008696712983134698E7L,
+  r1 = -2.815206082812062064902202753264922306830E7L,
+  r2 = -1.600245495251915899081846093343626358398E7L,
+  r3 = -4.310526301881305003489257052083370058799E6L,
+  r4 = -5.563807682263923279438235987186184968542E5L,
+  r5 = -3.027734654434169996032905158145259713083E4L,
+  r6 = -4.501995652861105629217250715790764371267E2L,
+  /* r6 =  1.000000000000000000000000000000000000000E0 */
+
+
+/* lgam(x) = ( x - 0.5 ) * log(x) - x + LS2PI + 1/x w(1/x^2)
+   x >= 8
+   Peak relative error 1.51e-21
+   w0 = LS2PI - 0.5 */
+  w0 =  4.189385332046727417803e-1L,
+  w1 =  8.333333333333331447505E-2L,
+  w2 = -2.777777777750349603440E-3L,
+  w3 =  7.936507795855070755671E-4L,
+  w4 = -5.952345851765688514613E-4L,
+  w5 =  8.412723297322498080632E-4L,
+  w6 = -1.880801938119376907179E-3L,
+  w7 =  4.885026142432270781165E-3L;
+
+static const long double zero = 0.0L;
+
+static long double
+sin_pi (long double x)
+{
+  long double y, z;
+  int n, ix;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  ix = (ix << 16) | (i0 >> 16);
+  if (ix < 0x3ffd8000) /* 0.25 */
+    return __sinl (pi * x);
+  y = -x;			/* x is assume negative */
+
+  /*
+   * argument reduction, make sure inexact flag not raised if input
+   * is an integer
+   */
+  z = __floorl (y);
+  if (z != y)
+    {				/* inexact anyway */
+      y  *= 0.5;
+      y = 2.0*(y - __floorl(y));		/* y = |x| mod 2.0 */
+      n = (int) (y*4.0);
+    }
+  else
+    {
+      if (ix >= 0x403f8000)  /* 2^64 */
+	{
+	  y = zero; n = 0;                 /* y must be even */
+	}
+      else
+	{
+	if (ix < 0x403e8000)  /* 2^63 */
+	  z = y + two63;	/* exact */
+	GET_LDOUBLE_WORDS (se, i0, i1, z);
+	n = i1 & 1;
+	y  = n;
+	n <<= 2;
+      }
+    }
+
+  switch (n)
+    {
+    case 0:
+      y = __sinl (pi * y);
+      break;
+    case 1:
+    case 2:
+      y = __cosl (pi * (half - y));
+      break;
+    case 3:
+    case 4:
+      y = __sinl (pi * (one - y));
+      break;
+    case 5:
+    case 6:
+      y = -__cosl (pi * (y - 1.5));
+      break;
+    default:
+      y = __sinl (pi * (y - 2.0));
+      break;
+    }
+  return -y;
+}
+
+
+long double
+__ieee754_lgammal_r (long double x, int *signgamp)
+{
+  long double t, y, z, nadj, p, p1, p2, q, r, w;
+  int i, ix;
+  u_int32_t se, i0, i1;
+
+  *signgamp = 1;
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+
+  if (__builtin_expect((ix | i0 | i1) == 0, 0))
+    {
+      if (se & 0x8000)
+	*signgamp = -1;
+      return one / fabsl (x);
+    }
+
+  ix = (ix << 16) | (i0 >> 16);
+
+  /* purge off +-inf, NaN, +-0, and negative arguments */
+  if (__builtin_expect(ix >= 0x7fff0000, 0))
+    return x * x;
+
+  if (__builtin_expect(ix < 0x3fc08000, 0)) /* 2^-63 */
+    {				/* |x|<2**-63, return -log(|x|) */
+      if (se & 0x8000)
+	{
+	  *signgamp = -1;
+	  return -__ieee754_logl (-x);
+	}
+      else
+	return -__ieee754_logl (x);
+    }
+  if (se & 0x8000)
+    {
+      if (x < -2.0L && x > -33.0L)
+	return __lgamma_negl (x, signgamp);
+      t = sin_pi (x);
+      if (t == zero)
+	return one / fabsl (t);	/* -integer */
+      nadj = __ieee754_logl (pi / fabsl (t * x));
+      if (t < zero)
+	*signgamp = -1;
+      x = -x;
+    }
+
+  /* purge off 1 and 2 */
+  if ((((ix - 0x3fff8000) | i0 | i1) == 0)
+      || (((ix - 0x40008000) | i0 | i1) == 0))
+    r = 0;
+  else if (ix < 0x40008000) /* 2.0 */
+    {
+      /* x < 2.0 */
+      if (ix <= 0x3ffee666) /* 8.99993896484375e-1 */
+	{
+	  /* lgamma(x) = lgamma(x+1) - log(x) */
+	  r = -__ieee754_logl (x);
+	  if (ix >= 0x3ffebb4a) /* 7.31597900390625e-1 */
+	    {
+	      y = x - one;
+	      i = 0;
+	    }
+	  else if (ix >= 0x3ffced33)/* 2.31639862060546875e-1 */
+	    {
+	      y = x - (tc - one);
+	      i = 1;
+	    }
+	  else
+	    {
+	      /* x < 0.23 */
+	      y = x;
+	      i = 2;
+	    }
+	}
+      else
+	{
+	  r = zero;
+	  if (ix >= 0x3fffdda6) /* 1.73162841796875 */
+	    {
+	      /* [1.7316,2] */
+	      y = x - 2.0;
+	      i = 0;
+	    }
+	  else if (ix >= 0x3fff9da6)/* 1.23162841796875 */
+	    {
+	      /* [1.23,1.73] */
+	      y = x - tc;
+	      i = 1;
+	    }
+	  else
+	    {
+	      /* [0.9, 1.23] */
+	      y = x - one;
+	      i = 2;
+	    }
+	}
+      switch (i)
+	{
+	case 0:
+	  p1 = a0 + y * (a1 + y * (a2 + y * (a3 + y * (a4 + y * a5))));
+	  p2 = b0 + y * (b1 + y * (b2 + y * (b3 + y * (b4 + y))));
+	  r += half * y + y * p1/p2;
+	  break;
+	case 1:
+    p1 = g0 + y * (g1 + y * (g2 + y * (g3 + y * (g4 + y * (g5 + y * g6)))));
+    p2 = h0 + y * (h1 + y * (h2 + y * (h3 + y * (h4 + y * (h5 + y)))));
+    p = tt + y * p1/p2;
+	  r += (tf + p);
+	  break;
+	case 2:
+ p1 = y * (u0 + y * (u1 + y * (u2 + y * (u3 + y * (u4 + y * (u5 + y * u6))))));
+      p2 = v0 + y * (v1 + y * (v2 + y * (v3 + y * (v4 + y * (v5 + y)))));
+	  r += (-half * y + p1 / p2);
+	}
+    }
+  else if (ix < 0x40028000) /* 8.0 */
+    {
+      /* x < 8.0 */
+      i = (int) x;
+      t = zero;
+      y = x - (double) i;
+  p = y *
+     (s0 + y * (s1 + y * (s2 + y * (s3 + y * (s4 + y * (s5 + y * s6))))));
+  q = r0 + y * (r1 + y * (r2 + y * (r3 + y * (r4 + y * (r5 + y * (r6 + y))))));
+      r = half * y + p / q;
+      z = one;			/* lgamma(1+s) = log(s) + lgamma(s) */
+      switch (i)
+	{
+	case 7:
+	  z *= (y + 6.0);	/* FALLTHRU */
+	case 6:
+	  z *= (y + 5.0);	/* FALLTHRU */
+	case 5:
+	  z *= (y + 4.0);	/* FALLTHRU */
+	case 4:
+	  z *= (y + 3.0);	/* FALLTHRU */
+	case 3:
+	  z *= (y + 2.0);	/* FALLTHRU */
+	  r += __ieee754_logl (z);
+	  break;
+	}
+    }
+  else if (ix < 0x40418000) /* 2^66 */
+    {
+      /* 8.0 <= x < 2**66 */
+      t = __ieee754_logl (x);
+      z = one / x;
+      y = z * z;
+      w = w0 + z * (w1
+	  + y * (w2 + y * (w3 + y * (w4 + y * (w5 + y * (w6 + y * w7))))));
+      r = (x - half) * (t - one) + w;
+    }
+  else
+    /* 2**66 <= x <= inf */
+    r = x * (__ieee754_logl (x) - one);
+  /* NADJ is set for negative arguments but not otherwise, resulting
+     in warnings that it may be used uninitialized although in the
+     cases where it is used it has always been set.  */
+  DIAG_PUSH_NEEDS_COMMENT;
+  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  if (se & 0x8000)
+    r = nadj - r;
+  DIAG_POP_NEEDS_COMMENT;
+  return r;
+}
+strong_alias (__ieee754_lgammal_r, __lgammal_r_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
new file mode 100644
index 0000000000..43c5d91f0b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
@@ -0,0 +1,236 @@
+/* Extended-precision floating point argument reduction.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Based on quad-precision code by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/*  Table of constants for 2/pi, 5628 hexadecimal digits of 2/pi.  */
+static const int32_t two_over_pi[] = {
+0xa2f983, 0x6e4e44, 0x1529fc, 0x2757d1, 0xf534dd, 0xc0db62,
+0x95993c, 0x439041, 0xfe5163, 0xabdebb, 0xc561b7, 0x246e3a,
+0x424dd2, 0xe00649, 0x2eea09, 0xd1921c, 0xfe1deb, 0x1cb129,
+0xa73ee8, 0x8235f5, 0x2ebb44, 0x84e99c, 0x7026b4, 0x5f7e41,
+0x3991d6, 0x398353, 0x39f49c, 0x845f8b, 0xbdf928, 0x3b1ff8,
+0x97ffde, 0x05980f, 0xef2f11, 0x8b5a0a, 0x6d1f6d, 0x367ecf,
+0x27cb09, 0xb74f46, 0x3f669e, 0x5fea2d, 0x7527ba, 0xc7ebe5,
+0xf17b3d, 0x0739f7, 0x8a5292, 0xea6bfb, 0x5fb11f, 0x8d5d08,
+0x560330, 0x46fc7b, 0x6babf0, 0xcfbc20, 0x9af436, 0x1da9e3,
+0x91615e, 0xe61b08, 0x659985, 0x5f14a0, 0x68408d, 0xffd880,
+0x4d7327, 0x310606, 0x1556ca, 0x73a8c9, 0x60e27b, 0xc08c6b,
+0x47c419, 0xc367cd, 0xdce809, 0x2a8359, 0xc4768b, 0x961ca6,
+0xddaf44, 0xd15719, 0x053ea5, 0xff0705, 0x3f7e33, 0xe832c2,
+0xde4f98, 0x327dbb, 0xc33d26, 0xef6b1e, 0x5ef89f, 0x3a1f35,
+0xcaf27f, 0x1d87f1, 0x21907c, 0x7c246a, 0xfa6ed5, 0x772d30,
+0x433b15, 0xc614b5, 0x9d19c3, 0xc2c4ad, 0x414d2c, 0x5d000c,
+0x467d86, 0x2d71e3, 0x9ac69b, 0x006233, 0x7cd2b4, 0x97a7b4,
+0xd55537, 0xf63ed7, 0x1810a3, 0xfc764d, 0x2a9d64, 0xabd770,
+0xf87c63, 0x57b07a, 0xe71517, 0x5649c0, 0xd9d63b, 0x3884a7,
+0xcb2324, 0x778ad6, 0x23545a, 0xb91f00, 0x1b0af1, 0xdfce19,
+0xff319f, 0x6a1e66, 0x615799, 0x47fbac, 0xd87f7e, 0xb76522,
+0x89e832, 0x60bfe6, 0xcdc4ef, 0x09366c, 0xd43f5d, 0xd7de16,
+0xde3b58, 0x929bde, 0x2822d2, 0xe88628, 0x4d58e2, 0x32cac6,
+0x16e308, 0xcb7de0, 0x50c017, 0xa71df3, 0x5be018, 0x34132e,
+0x621283, 0x014883, 0x5b8ef5, 0x7fb0ad, 0xf2e91e, 0x434a48,
+0xd36710, 0xd8ddaa, 0x425fae, 0xce616a, 0xa4280a, 0xb499d3,
+0xf2a606, 0x7f775c, 0x83c2a3, 0x883c61, 0x78738a, 0x5a8caf,
+0xbdd76f, 0x63a62d, 0xcbbff4, 0xef818d, 0x67c126, 0x45ca55,
+0x36d9ca, 0xd2a828, 0x8d61c2, 0x77c912, 0x142604, 0x9b4612,
+0xc459c4, 0x44c5c8, 0x91b24d, 0xf31700, 0xad43d4, 0xe54929,
+0x10d5fd, 0xfcbe00, 0xcc941e, 0xeece70, 0xf53e13, 0x80f1ec,
+0xc3e7b3, 0x28f8c7, 0x940593, 0x3e71c1, 0xb3092e, 0xf3450b,
+0x9c1288, 0x7b20ab, 0x9fb52e, 0xc29247, 0x2f327b, 0x6d550c,
+0x90a772, 0x1fe76b, 0x96cb31, 0x4a1679, 0xe27941, 0x89dff4,
+0x9794e8, 0x84e6e2, 0x973199, 0x6bed88, 0x365f5f, 0x0efdbb,
+0xb49a48, 0x6ca467, 0x427271, 0x325d8d, 0xb8159f, 0x09e5bc,
+0x25318d, 0x3974f7, 0x1c0530, 0x010c0d, 0x68084b, 0x58ee2c,
+0x90aa47, 0x02e774, 0x24d6bd, 0xa67df7, 0x72486e, 0xef169f,
+0xa6948e, 0xf691b4, 0x5153d1, 0xf20acf, 0x339820, 0x7e4bf5,
+0x6863b2, 0x5f3edd, 0x035d40, 0x7f8985, 0x295255, 0xc06437,
+0x10d86d, 0x324832, 0x754c5b, 0xd4714e, 0x6e5445, 0xc1090b,
+0x69f52a, 0xd56614, 0x9d0727, 0x50045d, 0xdb3bb4, 0xc576ea,
+0x17f987, 0x7d6b49, 0xba271d, 0x296996, 0xacccc6, 0x5414ad,
+0x6ae290, 0x89d988, 0x50722c, 0xbea404, 0x940777, 0x7030f3,
+0x27fc00, 0xa871ea, 0x49c266, 0x3de064, 0x83dd97, 0x973fa3,
+0xfd9443, 0x8c860d, 0xde4131, 0x9d3992, 0x8c70dd, 0xe7b717,
+0x3bdf08, 0x2b3715, 0xa0805c, 0x93805a, 0x921110, 0xd8e80f,
+0xaf806c, 0x4bffdb, 0x0f9038, 0x761859, 0x15a562, 0xbbcb61,
+0xb989c7, 0xbd4010, 0x04f2d2, 0x277549, 0xf6b6eb, 0xbb22db,
+0xaa140a, 0x2f2689, 0x768364, 0x333b09, 0x1a940e, 0xaa3a51,
+0xc2a31d, 0xaeedaf, 0x12265c, 0x4dc26d, 0x9c7a2d, 0x9756c0,
+0x833f03, 0xf6f009, 0x8c402b, 0x99316d, 0x07b439, 0x15200c,
+0x5bc3d8, 0xc492f5, 0x4badc6, 0xa5ca4e, 0xcd37a7, 0x36a9e6,
+0x9492ab, 0x6842dd, 0xde6319, 0xef8c76, 0x528b68, 0x37dbfc,
+0xaba1ae, 0x3115df, 0xa1ae00, 0xdafb0c, 0x664d64, 0xb705ed,
+0x306529, 0xbf5657, 0x3aff47, 0xb9f96a, 0xf3be75, 0xdf9328,
+0x3080ab, 0xf68c66, 0x15cb04, 0x0622fa, 0x1de4d9, 0xa4b33d,
+0x8f1b57, 0x09cd36, 0xe9424e, 0xa4be13, 0xb52333, 0x1aaaf0,
+0xa8654f, 0xa5c1d2, 0x0f3f0b, 0xcd785b, 0x76f923, 0x048b7b,
+0x721789, 0x53a6c6, 0xe26e6f, 0x00ebef, 0x584a9b, 0xb7dac4,
+0xba66aa, 0xcfcf76, 0x1d02d1, 0x2df1b1, 0xc1998c, 0x77adc3,
+0xda4886, 0xa05df7, 0xf480c6, 0x2ff0ac, 0x9aecdd, 0xbc5c3f,
+0x6dded0, 0x1fc790, 0xb6db2a, 0x3a25a3, 0x9aaf00, 0x9353ad,
+0x0457b6, 0xb42d29, 0x7e804b, 0xa707da, 0x0eaa76, 0xa1597b,
+0x2a1216, 0x2db7dc, 0xfde5fa, 0xfedb89, 0xfdbe89, 0x6c76e4,
+0xfca906, 0x70803e, 0x156e85, 0xff87fd, 0x073e28, 0x336761,
+0x86182a, 0xeabd4d, 0xafe7b3, 0x6e6d8f, 0x396795, 0x5bbf31,
+0x48d784, 0x16df30, 0x432dc7, 0x356125, 0xce70c9, 0xb8cb30,
+0xfd6cbf, 0xa200a4, 0xe46c05, 0xa0dd5a, 0x476f21, 0xd21262,
+0x845cb9, 0x496170, 0xe0566b, 0x015299, 0x375550, 0xb7d51e,
+0xc4f133, 0x5f6e13, 0xe4305d, 0xa92e85, 0xc3b21d, 0x3632a1,
+0xa4b708, 0xd4b1ea, 0x21f716, 0xe4698f, 0x77ff27, 0x80030c,
+0x2d408d, 0xa0cd4f, 0x99a520, 0xd3a2b3, 0x0a5d2f, 0x42f9b4,
+0xcbda11, 0xd0be7d, 0xc1db9b, 0xbd17ab, 0x81a2ca, 0x5c6a08,
+0x17552e, 0x550027, 0xf0147f, 0x8607e1, 0x640b14, 0x8d4196,
+0xdebe87, 0x2afdda, 0xb6256b, 0x34897b, 0xfef305, 0x9ebfb9,
+0x4f6a68, 0xa82a4a, 0x5ac44f, 0xbcf82d, 0x985ad7, 0x95c7f4,
+0x8d4d0d, 0xa63a20, 0x5f57a4, 0xb13f14, 0x953880, 0x0120cc,
+0x86dd71, 0xb6dec9, 0xf560bf, 0x11654d, 0x6b0701, 0xacb08c,
+0xd0c0b2, 0x485551, 0x0efb1e, 0xc37295, 0x3b06a3, 0x3540c0,
+0x7bdc06, 0xcc45e0, 0xfa294e, 0xc8cad6, 0x41f3e8, 0xde647c,
+0xd8649b, 0x31bed9, 0xc397a4, 0xd45877, 0xc5e369, 0x13daf0,
+0x3c3aba, 0x461846, 0x5f7555, 0xf5bdd2, 0xc6926e, 0x5d2eac,
+0xed440e, 0x423e1c, 0x87c461, 0xe9fd29, 0xf3d6e7, 0xca7c22,
+0x35916f, 0xc5e008, 0x8dd7ff, 0xe26a6e, 0xc6fdb0, 0xc10893,
+0x745d7c, 0xb2ad6b, 0x9d6ecd, 0x7b723e, 0x6a11c6, 0xa9cff7,
+0xdf7329, 0xbac9b5, 0x5100b7, 0x0db2e2, 0x24ba74, 0x607de5,
+0x8ad874, 0x2c150d, 0x0c1881, 0x94667e, 0x162901, 0x767a9f,
+0xbefdfd, 0xef4556, 0x367ed9, 0x13d9ec, 0xb9ba8b, 0xfc97c4,
+0x27a831, 0xc36ef1, 0x36c594, 0x56a8d8, 0xb5a8b4, 0x0ecccf,
+0x2d8912, 0x34576f, 0x89562c, 0xe3ce99, 0xb920d6, 0xaa5e6b,
+0x9c2a3e, 0xcc5f11, 0x4a0bfd, 0xfbf4e1, 0x6d3b8e, 0x2c86e2,
+0x84d4e9, 0xa9b4fc, 0xd1eeef, 0xc9352e, 0x61392f, 0x442138,
+0xc8d91b, 0x0afc81, 0x6a4afb, 0xd81c2f, 0x84b453, 0x8c994e,
+0xcc2254, 0xdc552a, 0xd6c6c0, 0x96190b, 0xb8701a, 0x649569,
+0x605a26, 0xee523f, 0x0f117f, 0x11b5f4, 0xf5cbfc, 0x2dbc34,
+0xeebc34, 0xcc5de8, 0x605edd, 0x9b8e67, 0xef3392, 0xb817c9,
+0x9b5861, 0xbc57e1, 0xc68351, 0x103ed8, 0x4871dd, 0xdd1c2d,
+0xa118af, 0x462c21, 0xd7f359, 0x987ad9, 0xc0549e, 0xfa864f,
+0xfc0656, 0xae79e5, 0x362289, 0x22ad38, 0xdc9367, 0xaae855,
+0x382682, 0x9be7ca, 0xa40d51, 0xb13399, 0x0ed7a9, 0x480569,
+0xf0b265, 0xa7887f, 0x974c88, 0x36d1f9, 0xb39221, 0x4a827b,
+0x21cf98, 0xdc9f40, 0x5547dc, 0x3a74e1, 0x42eb67, 0xdf9dfe,
+0x5fd45e, 0xa4677b, 0x7aacba, 0xa2f655, 0x23882b, 0x55ba41,
+0x086e59, 0x862a21, 0x834739, 0xe6e389, 0xd49ee5, 0x40fb49,
+0xe956ff, 0xca0f1c, 0x8a59c5, 0x2bfa94, 0xc5c1d3, 0xcfc50f,
+0xae5adb, 0x86c547, 0x624385, 0x3b8621, 0x94792c, 0x876110,
+0x7b4c2a, 0x1a2c80, 0x12bf43, 0x902688, 0x893c78, 0xe4c4a8,
+0x7bdbe5, 0xc23ac4, 0xeaf426, 0x8a67f7, 0xbf920d, 0x2ba365,
+0xb1933d, 0x0b7cbd, 0xdc51a4, 0x63dd27, 0xdde169, 0x19949a,
+0x9529a8, 0x28ce68, 0xb4ed09, 0x209f44, 0xca984e, 0x638270,
+0x237c7e, 0x32b90f, 0x8ef5a7, 0xe75614, 0x08f121, 0x2a9db5,
+0x4d7e6f, 0x5119a5, 0xabf9b5, 0xd6df82, 0x61dd96, 0x023616,
+0x9f3ac4, 0xa1a283, 0x6ded72, 0x7a8d39, 0xa9b882, 0x5c326b,
+0x5b2746, 0xed3400, 0x7700d2, 0x55f4fc, 0x4d5901, 0x8071e0,
+0xe13f89, 0xb295f3, 0x64a8f1, 0xaea74b, 0x38fc4c, 0xeab2bb,
+0x47270b, 0xabc3a7, 0x34ba60, 0x52dd34, 0xf8563a, 0xeb7e8a,
+0x31bb36, 0x5895b7, 0x47f7a9, 0x94c3aa, 0xd39225, 0x1e7f3e,
+0xd8974e, 0xbba94f, 0xd8ae01, 0xe661b4, 0x393d8e, 0xa523aa,
+0x33068e, 0x1633b5, 0x3bb188, 0x1d3a9d, 0x4013d0, 0xcc1be5,
+0xf862e7, 0x3bf28f, 0x39b5bf, 0x0bc235, 0x22747e, 0xa247c0,
+0xd52d1f, 0x19add3, 0x9094df, 0x9311d0, 0xb42b25, 0x496db2,
+0xe264b2, 0x5ef135, 0x3bc6a4, 0x1a4ad0, 0xaac92e, 0x64e886,
+0x573091, 0x982cfb, 0x311b1a, 0x08728b, 0xbdcee1, 0x60e142,
+0xeb641d, 0xd0bba3, 0xe559d4, 0x597b8c, 0x2a4483, 0xf332ba,
+0xf84867, 0x2c8d1b, 0x2fa9b0, 0x50f3dd, 0xf9f573, 0xdb61b4,
+0xfe233e, 0x6c41a6, 0xeea318, 0x775a26, 0xbc5e5c, 0xcea708,
+0x94dc57, 0xe20196, 0xf1e839, 0xbe4851, 0x5d2d2f, 0x4e9555,
+0xd96ec2, 0xe7d755, 0x6304e0, 0xc02e0e, 0xfc40a0, 0xbbf9b3,
+0x7125a7, 0x222dfb, 0xf619d8, 0x838c1c, 0x6619e6, 0xb20d55,
+0xbb5137, 0x79e809, 0xaf9149, 0x0d73de, 0x0b0da5, 0xce7f58,
+0xac1934, 0x724667, 0x7a1a13, 0x9e26bc, 0x4555e7, 0x585cb5,
+0x711d14, 0x486991, 0x480d60, 0x56adab, 0xd62f64, 0x96ee0c,
+0x212ff3, 0x5d6d88, 0xa67684, 0x95651e, 0xab9e0a, 0x4ddefe,
+0x571010, 0x836a39, 0xf8ea31, 0x9e381d, 0xeac8b1, 0xcac96b,
+0x37f21e, 0xd505e9, 0x984743, 0x9fc56c, 0x0331b7, 0x3b8bf8,
+0x86e56a, 0x8dc343, 0x6230e7, 0x93cfd5, 0x6a8f2d, 0x733005,
+0x1af021, 0xa09fcb, 0x7415a1, 0xd56b23, 0x6ff725, 0x2f4bc7,
+0xb8a591, 0x7fac59, 0x5c55de, 0x212c38, 0xb13296, 0x5cff50,
+0x366262, 0xfa7b16, 0xf4d9a6, 0x2acfe7, 0xf07403, 0xd4d604,
+0x6fd916, 0x31b1bf, 0xcbb450, 0x5bd7c8, 0x0ce194, 0x6bd643,
+0x4fd91c, 0xdf4543, 0x5f3453, 0xe2b5aa, 0xc9aec8, 0x131485,
+0xf9d2bf, 0xbadb9e, 0x76f5b9, 0xaf15cf, 0xca3182, 0x14b56d,
+0xe9fe4d, 0x50fc35, 0xf5aed5, 0xa2d0c1, 0xc96057, 0x192eb6,
+0xe91d92, 0x07d144, 0xaea3c6, 0x343566, 0x26d5b4, 0x3161e2,
+0x37f1a2, 0x209eff, 0x958e23, 0x493798, 0x35f4a6, 0x4bdc02,
+0xc2be13, 0xbe80a0, 0x0b72a3, 0x115c5f, 0x1e1bd1, 0x0db4d3,
+0x869e85, 0x96976b, 0x2ac91f, 0x8a26c2, 0x3070f0, 0x041412,
+0xfc9fa5, 0xf72a38, 0x9c6878, 0xe2aa76, 0x50cfe1, 0x559274,
+0x934e38, 0x0a92f7, 0x5533f0, 0xa63db4, 0x399971, 0xe2b755,
+0xa98a7c, 0x008f19, 0xac54d2, 0x2ea0b4, 0xf5f3e0, 0x60c849,
+0xffd269, 0xae52ce, 0x7a5fdd, 0xe9ce06, 0xfb0ae8, 0xa50cce,
+0xea9d3e, 0x3766dd, 0xb834f5, 0x0da090, 0x846f88, 0x4ae3d5,
+0x099a03, 0x2eae2d, 0xfcb40a, 0xfb9b33, 0xe281dd, 0x1b16ba,
+0xd8c0af, 0xd96b97, 0xb52dc9, 0x9c277f, 0x5951d5, 0x21ccd6,
+0xb6496b, 0x584562, 0xb3baf2, 0xa1a5c4, 0x7ca2cf, 0xa9b93d,
+0x7b7b89, 0x483d38,
+};
+
+int32_t
+__ieee754_rem_pio2l (long double x, long double *y)
+{
+  double tx[3], ty[3];
+  int32_t se, j0;
+  u_int32_t i0, i1;
+  int sx;
+  int n, exp;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  sx = (se >> 15) & 1;
+  j0 = (se & 0x7fff) - 0x3fff;
+
+  if (j0 < -1)
+    {
+      /* |x| < pi/4.  */
+      y[0] = x;
+      y[1] = 0;
+      return 0;
+    }
+
+  if (j0 >= 0x8000)
+    {
+      /* x is infinite or NaN.  */
+      y[0] = x - x;
+      y[1] = y[0];
+      return 0;
+    }
+
+  /* Split the 64 bits of the mantissa into three 24-bit integers
+     stored in a double array.  */
+  exp = j0 - 23;
+  tx[0] = (double) (i0 >> 8);
+  tx[1] = (double) (((i0 << 16) | (i1 >> 16)) & 0xffffff);
+  tx[2] = (double) ((i1 << 8) & 0xffffff);
+
+  n = __kernel_rem_pio2 (tx, ty, exp, 3, 2, two_over_pi);
+
+  /* The result is now stored in two double values, we need to convert
+     it into two long double values.  */
+  if (sx == 0)
+    {
+      y[0] = (long double) ty[0] + (long double) ty[1];
+      y[1] = ty[1] - (y[0] - ty[0]);
+      return n;
+    }
+  else
+    {
+      y[0] = -((long double) ty[0] + (long double) ty[1]);
+      y[1] = -ty[1] - (y[0] + ty[0]);
+      return -n;
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/e_sinhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_sinhl.c
new file mode 100644
index 0000000000..095b142621
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/e_sinhl.c
@@ -0,0 +1,87 @@
+/* e_asinhl.c -- long double version of e_asinh.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* __ieee754_sinhl(x)
+ * Method :
+ * mathematically sinh(x) if defined to be (exp(x)-exp(-x))/2
+ *	1. Replace x by |x| (sinhl(-x) = -sinhl(x)).
+ *	2.
+ *						     E + E/(E+1)
+ *	    0        <= x <= 25     :  sinhl(x) := --------------, E=expm1l(x)
+ *							 2
+ *
+ *	    25       <= x <= lnovft :  sinhl(x) := expl(x)/2
+ *	    lnovft   <= x <= ln2ovft:  sinhl(x) := expl(x/2)/2 * expl(x/2)
+ *	    ln2ovft  <  x	    :  sinhl(x) := x*shuge (overflow)
+ *
+ * Special cases:
+ *	sinhl(x) is |x| if x is +INF, -INF, or NaN.
+ *	only sinhl(0)=0 is exact for finite x.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double one = 1.0, shuge = 1.0e4931L;
+
+long double
+__ieee754_sinhl(long double x)
+{
+	long double t,w,h;
+	u_int32_t jx,ix,i0,i1;
+
+    /* Words of |x|. */
+	GET_LDOUBLE_WORDS(jx,i0,i1,x);
+	ix = jx&0x7fff;
+
+    /* x is INF or NaN */
+	if(__builtin_expect(ix==0x7fff, 0)) return x+x;
+
+	h = 0.5;
+	if (jx & 0x8000) h = -h;
+    /* |x| in [0,25], return sign(x)*0.5*(E+E/(E+1))) */
+	if (ix < 0x4003 || (ix == 0x4003 && i0 <= 0xc8000000)) { /* |x|<25 */
+	    if (ix<0x3fdf) {		/* |x|<2**-32 */
+		math_check_force_underflow (x);
+		if(shuge+x>one) return x;/* sinh(tiny) = tiny with inexact */
+	    }
+	    t = __expm1l(fabsl(x));
+	    if(ix<0x3fff) return h*(2.0*t-t*t/(t+one));
+	    return h*(t+t/(t+one));
+	}
+
+    /* |x| in [25, log(maxdouble)] return 0.5*exp(|x|) */
+	if (ix < 0x400c || (ix == 0x400c && i0 < 0xb17217f7))
+		return h*__ieee754_expl(fabsl(x));
+
+    /* |x| in [log(maxdouble), overflowthreshold] */
+	if (ix<0x400c || (ix == 0x400c && (i0 < 0xb174ddc0
+					   || (i0 == 0xb174ddc0
+					       && i1 <= 0x31aec0ea)))) {
+	    w = __ieee754_expl(0.5*fabsl(x));
+	    t = h*w;
+	    return t*w;
+	}
+
+    /* |x| > overflowthreshold, sinhl(x) overflow */
+	return x*shuge;
+}
+strong_alias (__ieee754_sinhl, __sinhl_finite)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_product.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_product.c
new file mode 100644
index 0000000000..31931bbd17
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_product.c
@@ -0,0 +1,43 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+   - 1, in the form R * (1 + *EPS) where the return value R is an
+   approximation to the product and *EPS is set to indicate the
+   approximate error in the return value.  X is such that all the
+   values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+   X is small enough that factors quadratic in it can be
+   neglected.  */
+
+double
+__gamma_product (double x, double x_eps, int n, double *eps)
+{
+  long double x_full = (long double) x + (long double) x_eps;
+  long double ret = x_full;
+  for (int i = 1; i < n; i++)
+    ret *= x_full + i;
+
+  double fret = math_narrow_eval ((double) ret);
+  *eps = (ret - fret) / fret;
+
+  return fret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_productl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_productl.c
new file mode 100644
index 0000000000..0f1ccc4a2d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/gamma_productl.c
@@ -0,0 +1,45 @@
+/* Compute a product of X, X+1, ..., with an error estimate.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_splitl.h>
+
+/* Compute the product of X + X_EPS, X + X_EPS + 1, ..., X + X_EPS + N
+   - 1, in the form R * (1 + *EPS) where the return value R is an
+   approximation to the product and *EPS is set to indicate the
+   approximate error in the return value.  X is such that all the
+   values X + 1, ..., X + N - 1 are exactly representable, and X_EPS /
+   X is small enough that factors quadratic in it can be
+   neglected.  */
+
+long double
+__gamma_productl (long double x, long double x_eps, int n, long double *eps)
+{
+  SET_RESTORE_ROUNDL (FE_TONEAREST);
+  long double ret = x;
+  *eps = x_eps / x;
+  for (int i = 1; i < n; i++)
+    {
+      *eps += x_eps / (x + i);
+      long double lo;
+      mul_splitl (&ret, &lo, ret, x + i);
+      *eps += lo / ret;
+    }
+  return ret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/include/bits/iscanonical.h b/REORG.TODO/sysdeps/ieee754/ldbl-96/include/bits/iscanonical.h
new file mode 100644
index 0000000000..bee080bd29
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/include/bits/iscanonical.h
@@ -0,0 +1,5 @@
+#include_next <bits/iscanonical.h>
+
+#ifndef _ISOMAC
+libm_hidden_proto (__iscanonicall)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/k_cosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/k_cosl.c
new file mode 100644
index 0000000000..8e3cd49f81
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/k_cosl.c
@@ -0,0 +1,123 @@
+/* Extended-precision floating point cosine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Based on quad-precision cosine by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* The polynomials have not been optimized for extended-precision and
+   may contain more terms than needed.  */
+
+static const long double c[] = {
+#define ONE c[0]
+ 1.00000000000000000000000000000000000E+00L,
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+-5.00000000000000000000000000000000000E-01L,
+ 4.16666666666666666666666666556146073E-02L,
+-1.38888888888888888888309442601939728E-03L,
+ 2.48015873015862382987049502531095061E-05L,
+-2.75573112601362126593516899592158083E-07L,
+
+/* cos x ~ ONE + x^2 ( COS1 + COS2 * x^2 + ... + COS7 * x^12 + COS8 * x^14 )
+   x in <0,0.1484375>  */
+#define COS1 c[6]
+#define COS2 c[7]
+#define COS3 c[8]
+#define COS4 c[9]
+#define COS5 c[10]
+#define COS6 c[11]
+#define COS7 c[12]
+#define COS8 c[13]
+-4.99999999999999999999999999999999759E-01L,
+ 4.16666666666666666666666666651287795E-02L,
+-1.38888888888888888888888742314300284E-03L,
+ 2.48015873015873015867694002851118210E-05L,
+-2.75573192239858811636614709689300351E-07L,
+ 2.08767569877762248667431926878073669E-09L,
+-1.14707451049343817400420280514614892E-11L,
+ 4.77810092804389587579843296923533297E-14L,
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+-1.66666666666666666666666666666666659E-01L,
+ 8.33333333333333333333333333146298442E-03L,
+-1.98412698412698412697726277416810661E-04L,
+ 2.75573192239848624174178393552189149E-06L,
+-2.50521016467996193495359189395805639E-08L,
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const long double __sincosl_table[];
+
+long double
+__kernel_cosl(long double x, long double y)
+{
+  long double h, l, z, sin_l, cos_l_m1;
+  int index;
+
+  if (signbit (x))
+    {
+      x = -x;
+      y = -y;
+    }
+  if (x < 0.1484375L)
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 16.  */
+      if (x < 0x1p-33L)
+	if (!((int)x)) return ONE;	/* generate inexact */
+      z = x * x;
+      return ONE + (z*(COS1+z*(COS2+z*(COS3+z*(COS4+
+		    z*(COS5+z*(COS6+z*(COS7+z*COS8))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 cosl(h+l) = cosl(h)cosl(l) - sinl(h)sinl(l).  */
+      index = (int) (128 * (x - (0.1484375L - 1.0L / 256.0L)));
+      h = 0.1484375L + index / 128.0;
+      index *= 4;
+      l = y - (h - x);
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      return __sincosl_table [index + SINCOSL_COS_HI]
+	     + (__sincosl_table [index + SINCOSL_COS_LO]
+		- (__sincosl_table [index + SINCOSL_SIN_HI] * sin_l
+		   - __sincosl_table [index + SINCOSL_COS_HI] * cos_l_m1));
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/k_sinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/k_sinl.c
new file mode 100644
index 0000000000..d56023aa8d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/k_sinl.c
@@ -0,0 +1,130 @@
+/* Quad-precision floating point sine on <-pi/4,pi/4>.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Based on quad-precision sine by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* The polynomials have not been optimized for extended-precision and
+   may contain more terms than needed.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+/* The polynomials have not been optimized for extended-precision and
+   may contain more terms than needed.  */
+
+static const long double c[] = {
+#define ONE c[0]
+ 1.00000000000000000000000000000000000E+00L,
+
+/* cos x ~ ONE + x^2 ( SCOS1 + SCOS2 * x^2 + ... + SCOS4 * x^6 + SCOS5 * x^8 )
+   x in <0,1/256>  */
+#define SCOS1 c[1]
+#define SCOS2 c[2]
+#define SCOS3 c[3]
+#define SCOS4 c[4]
+#define SCOS5 c[5]
+-5.00000000000000000000000000000000000E-01L,
+ 4.16666666666666666666666666556146073E-02L,
+-1.38888888888888888888309442601939728E-03L,
+ 2.48015873015862382987049502531095061E-05L,
+-2.75573112601362126593516899592158083E-07L,
+
+/* sin x ~ ONE * x + x^3 ( SIN1 + SIN2 * x^2 + ... + SIN7 * x^12 + SIN8 * x^14 )
+   x in <0,0.1484375>  */
+#define SIN1 c[6]
+#define SIN2 c[7]
+#define SIN3 c[8]
+#define SIN4 c[9]
+#define SIN5 c[10]
+#define SIN6 c[11]
+#define SIN7 c[12]
+#define SIN8 c[13]
+-1.66666666666666666666666666666666538e-01L,
+ 8.33333333333333333333333333307532934e-03L,
+-1.98412698412698412698412534478712057e-04L,
+ 2.75573192239858906520896496653095890e-06L,
+-2.50521083854417116999224301266655662e-08L,
+ 1.60590438367608957516841576404938118e-10L,
+-7.64716343504264506714019494041582610e-13L,
+ 2.81068754939739570236322404393398135e-15L,
+
+/* sin x ~ ONE * x + x^3 ( SSIN1 + SSIN2 * x^2 + ... + SSIN4 * x^6 + SSIN5 * x^8 )
+   x in <0,1/256>  */
+#define SSIN1 c[14]
+#define SSIN2 c[15]
+#define SSIN3 c[16]
+#define SSIN4 c[17]
+#define SSIN5 c[18]
+-1.66666666666666666666666666666666659E-01L,
+ 8.33333333333333333333333333146298442E-03L,
+-1.98412698412698412697726277416810661E-04L,
+ 2.75573192239848624174178393552189149E-06L,
+-2.50521016467996193495359189395805639E-08L,
+};
+
+#define SINCOSL_COS_HI 0
+#define SINCOSL_COS_LO 1
+#define SINCOSL_SIN_HI 2
+#define SINCOSL_SIN_LO 3
+extern const long double __sincosl_table[];
+
+long double
+__kernel_sinl(long double x, long double y, int iy)
+{
+  long double absx, h, l, z, sin_l, cos_l_m1;
+  int index;
+
+  absx = fabsl (x);
+  if (absx < 0.1484375L)
+    {
+      /* Argument is small enough to approximate it by a Chebyshev
+	 polynomial of degree 17.  */
+      if (absx < 0x1p-33L)
+	{
+	  math_check_force_underflow (x);
+	  if (!((int)x)) return x;	/* generate inexact */
+	}
+      z = x * x;
+      return x + (x * (z*(SIN1+z*(SIN2+z*(SIN3+z*(SIN4+
+		       z*(SIN5+z*(SIN6+z*(SIN7+z*SIN8)))))))));
+    }
+  else
+    {
+      /* So that we don't have to use too large polynomial,  we find
+	 l and h such that x = l + h,  where fabsl(l) <= 1.0/256 with 83
+	 possible values for h.  We look up cosl(h) and sinl(h) in
+	 pre-computed tables,  compute cosl(l) and sinl(l) using a
+	 Chebyshev polynomial of degree 10(11) and compute
+	 sinl(h+l) = sinl(h)cosl(l) + cosl(h)sinl(l).  */
+      index = (int) (128 * (absx - (0.1484375L - 1.0L / 256.0L)));
+      h = 0.1484375L + index / 128.0;
+      index *= 4;
+      if (iy)
+	l = (x < 0 ? -y : y) - (h - absx);
+      else
+	l = absx - h;
+      z = l * l;
+      sin_l = l*(ONE+z*(SSIN1+z*(SSIN2+z*(SSIN3+z*(SSIN4+z*SSIN5)))));
+      cos_l_m1 = z*(SCOS1+z*(SCOS2+z*(SCOS3+z*(SCOS4+z*SCOS5))));
+      z = __sincosl_table [index + SINCOSL_SIN_HI]
+	  + (__sincosl_table [index + SINCOSL_SIN_LO]
+	     + (__sincosl_table [index + SINCOSL_SIN_HI] * cos_l_m1)
+	     + (__sincosl_table [index + SINCOSL_COS_HI] * sin_l));
+      return (x < 0) ? -z : z;
+    }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/k_tanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/k_tanl.c
new file mode 100644
index 0000000000..f8641d5ce4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -0,0 +1,152 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+  Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* __kernel_tanl( x, y, k )
+ * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input k indicates whether tan (if k=1) or
+ * -1/tan (if k= -1) is returned.
+ *
+ * Algorithm
+ *	1. Since tan(-x) = -tan(x), we need only to consider positive x.
+ *	2. if x < 2^-33, return x with inexact if x!=0.
+ *	3. tan(x) is approximated by a rational form x + x^3 / 3 + x^5 R(x^2)
+ *          on [0,0.67433].
+ *
+ *	   Note: tan(x+y) = tan(x) + tan'(x)*y
+ *		          ~ tan(x) + (1+x*x)*y
+ *	   Therefore, for better accuracy in computing tan(x+y), let
+ *		r = x^3 * R(x^2)
+ *	   then
+ *		tan(x+y) = x + (x^3 / 3 + (x^2 *(r+y)+y))
+ *
+ *      4. For x in [0.67433,pi/4],  let y = pi/4 - x, then
+ *		tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
+ *		       = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <libc-diag.h>
+
+static const long double
+  one = 1.0L,
+  pio4hi = 0xc.90fdaa22168c235p-4L,
+  pio4lo = -0x3.b399d747f23e32ecp-68L,
+
+  /* tan x = x + x^3 / 3 + x^5 T(x^2)/U(x^2)
+     0 <= x <= 0.6743316650390625
+     Peak relative error 8.0e-36  */
+ TH =  3.333333333333333333333333333333333333333E-1L,
+ T0 = -1.813014711743583437742363284336855889393E7L,
+ T1 =  1.320767960008972224312740075083259247618E6L,
+ T2 = -2.626775478255838182468651821863299023956E4L,
+ T3 =  1.764573356488504935415411383687150199315E2L,
+ T4 = -3.333267763822178690794678978979803526092E-1L,
+
+ U0 = -1.359761033807687578306772463253710042010E8L,
+ U1 =  6.494370630656893175666729313065113194784E7L,
+ U2 = -4.180787672237927475505536849168729386782E6L,
+ U3 =  8.031643765106170040139966622980914621521E4L,
+ U4 = -5.323131271912475695157127875560667378597E2L;
+  /* 1.000000000000000000000000000000000000000E0 */
+
+
+long double
+__kernel_tanl (long double x, long double y, int iy)
+{
+  long double z, r, v, w, s;
+  long double absx = fabsl (x);
+  int sign;
+
+  if (absx < 0x1p-33)
+    {
+      if ((int) x == 0)
+	{			/* generate inexact */
+	  if (x == 0 && iy == -1)
+	    return one / fabsl (x);
+	  else if (iy == 1)
+	    {
+	      math_check_force_underflow_nonneg (absx);
+	      return x;
+	    }
+	  else
+	    return -one / x;
+	}
+    }
+  if (absx >= 0.6743316650390625L)
+    {
+      if (signbit (x))
+	{
+	  x = -x;
+	  y = -y;
+	  sign = -1;
+	}
+      else
+	sign = 1;
+      z = pio4hi - x;
+      w = pio4lo - y;
+      x = z + w;
+      y = 0.0;
+    }
+  z = x * x;
+  r = T0 + z * (T1 + z * (T2 + z * (T3 + z * T4)));
+  v = U0 + z * (U1 + z * (U2 + z * (U3 + z * (U4 + z))));
+  r = r / v;
+
+  s = z * x;
+  r = y + z * (s * r + y);
+  r += TH * s;
+  w = x + r;
+  if (absx >= 0.6743316650390625L)
+    {
+      v = (long double) iy;
+      w = (v - 2.0 * (x - (w * w / (w + v) - r)));
+      /* SIGN is set for arguments that reach this code, but not
+        otherwise, resulting in warnings that it may be used
+        uninitialized although in the cases where it is used it has
+        always been set.  */
+      DIAG_PUSH_NEEDS_COMMENT;
+      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      if (sign < 0)
+	w = -w;
+      DIAG_POP_NEEDS_COMMENT;
+      return w;
+    }
+  if (iy == 1)
+    return w;
+  else
+    return -1.0 / (x + r);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/ldbl2mpn.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
new file mode 100644
index 0000000000..425078e1de
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/ldbl2mpn.c
@@ -0,0 +1,94 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include "longlong.h"
+#include <ieee754.h>
+#include <float.h>
+#include <math.h>
+#include <stdlib.h>
+
+/* Convert a `long double' in IEEE854 standard double-precision format to a
+   multi-precision integer representing the significand scaled up by its
+   number of bits (64 for long double) and an integral power of two
+   (MPN frexpl). */
+
+mp_size_t
+__mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
+			   int *expt, int *is_neg,
+			   long double value)
+{
+  union ieee854_long_double u;
+  u.d = value;
+
+  *is_neg = u.ieee.negative;
+  *expt = (int) u.ieee.exponent - IEEE854_LONG_DOUBLE_BIAS;
+
+#if BITS_PER_MP_LIMB == 32
+  res_ptr[0] = u.ieee.mantissa1; /* Low-order 32 bits of fraction.  */
+  res_ptr[1] = u.ieee.mantissa0; /* High-order 32 bits.  */
+  #define N 2
+#elif BITS_PER_MP_LIMB == 64
+  /* Hopefully the compiler will combine the two bitfield extracts
+     and this composition into just the original quadword extract.  */
+  res_ptr[0] = ((mp_limb_t) u.ieee.mantissa0 << 32) | u.ieee.mantissa1;
+  #define N 1
+#else
+  #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+
+  if (u.ieee.exponent == 0)
+    {
+      /* A biased exponent of zero is a special case.
+	 Either it is a zero or it is a denormal number.  */
+      if (res_ptr[0] == 0 && res_ptr[N - 1] == 0) /* Assumes N<=2.  */
+	/* It's zero.  */
+	*expt = 0;
+      else
+	{
+          /* It is a denormal number, meaning it has no implicit leading
+	     one bit, and its exponent is in fact the format minimum.  */
+	  int cnt;
+
+	  if (res_ptr[N - 1] != 0)
+	    {
+	      count_leading_zeros (cnt, res_ptr[N - 1]);
+	      if (cnt != 0)
+		{
+#if N == 2
+	          res_ptr[N - 1] = res_ptr[N - 1] << cnt
+			           | (res_ptr[0] >> (BITS_PER_MP_LIMB - cnt));
+	          res_ptr[0] <<= cnt;
+#else
+	          res_ptr[N - 1] <<= cnt;
+#endif
+		}
+	      *expt = LDBL_MIN_EXP - 1 - cnt;
+	    }
+	  else
+	    {
+	      count_leading_zeros (cnt, res_ptr[0]);
+	      res_ptr[N - 1] = res_ptr[0] << cnt;
+	      res_ptr[0] = 0;
+	      *expt = LDBL_MIN_EXP - 1 - BITS_PER_MP_LIMB - cnt;
+	    }
+	}
+    }
+
+  return N;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_negl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_negl.c
new file mode 100644
index 0000000000..36beb764be
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_negl.c
@@ -0,0 +1,418 @@
+/* lgammal expanding around zeros.
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double lgamma_zeros[][2] =
+  {
+    { -0x2.74ff92c01f0d82acp+0L, 0x1.360cea0e5f8ed3ccp-68L },
+    { -0x2.bf6821437b201978p+0L, -0x1.95a4b4641eaebf4cp-64L },
+    { -0x3.24c1b793cb35efb8p+0L, -0xb.e699ad3d9ba6545p-68L },
+    { -0x3.f48e2a8f85fca17p+0L, -0xd.4561291236cc321p-68L },
+    { -0x4.0a139e16656030cp+0L, -0x3.9f0b0de18112ac18p-64L },
+    { -0x4.fdd5de9bbabf351p+0L, -0xd.0aa4076988501d8p-68L },
+    { -0x5.021a95fc2db64328p+0L, -0x2.4c56e595394decc8p-64L },
+    { -0x5.ffa4bd647d0357ep+0L, 0x2.b129d342ce12071cp-64L },
+    { -0x6.005ac9625f233b6p+0L, -0x7.c2d96d16385cb868p-68L },
+    { -0x6.fff2fddae1bbff4p+0L, 0x2.9d949a3dc02de0cp-64L },
+    { -0x7.000cff7b7f87adf8p+0L, 0x3.b7d23246787d54d8p-64L },
+    { -0x7.fffe5fe05673c3c8p+0L, -0x2.9e82b522b0ca9d3p-64L },
+    { -0x8.0001a01459fc9f6p+0L, -0xc.b3cec1cec857667p-68L },
+    { -0x8.ffffd1c425e81p+0L, 0x3.79b16a8b6da6181cp-64L },
+    { -0x9.00002e3bb47d86dp+0L, -0x6.d843fedc351deb78p-64L },
+    { -0x9.fffffb606bdfdcdp+0L, -0x6.2ae77a50547c69dp-68L },
+    { -0xa.0000049f93bb992p+0L, -0x7.b45d95e15441e03p-64L },
+    { -0xa.ffffff9466e9f1bp+0L, -0x3.6dacd2adbd18d05cp-64L },
+    { -0xb.0000006b9915316p+0L, 0x2.69a590015bf1b414p-64L },
+    { -0xb.fffffff70893874p+0L, 0x7.821be533c2c36878p-64L },
+    { -0xc.00000008f76c773p+0L, -0x1.567c0f0250f38792p-64L },
+    { -0xc.ffffffff4f6dcf6p+0L, -0x1.7f97a5ffc757d548p-64L },
+    { -0xd.00000000b09230ap+0L, 0x3.f997c22e46fc1c9p-64L },
+    { -0xd.fffffffff36345bp+0L, 0x4.61e7b5c1f62ee89p-64L },
+    { -0xe.000000000c9cba5p+0L, -0x4.5e94e75ec5718f78p-64L },
+    { -0xe.ffffffffff28c06p+0L, -0xc.6604ef30371f89dp-68L },
+    { -0xf.0000000000d73fap+0L, 0xc.6642f1bdf07a161p-68L },
+    { -0xf.fffffffffff28cp+0L, -0x6.0c6621f512e72e5p-64L },
+    { -0x1.000000000000d74p+4L, 0x6.0c6625ebdb406c48p-64L },
+    { -0x1.0ffffffffffff356p+4L, -0x9.c47e7a93e1c46a1p-64L },
+    { -0x1.1000000000000caap+4L, 0x9.c47e7a97778935ap-64L },
+    { -0x1.1fffffffffffff4cp+4L, 0x1.3c31dcbecd2f74d4p-64L },
+    { -0x1.20000000000000b4p+4L, -0x1.3c31dcbeca4c3b3p-64L },
+    { -0x1.2ffffffffffffff6p+4L, -0x8.5b25cbf5f545ceep-64L },
+    { -0x1.300000000000000ap+4L, 0x8.5b25cbf5f547e48p-64L },
+    { -0x1.4p+4L, 0x7.950ae90080894298p-64L },
+    { -0x1.4p+4L, -0x7.950ae9008089414p-64L },
+    { -0x1.5p+4L, 0x5.c6e3bdb73d5c63p-68L },
+    { -0x1.5p+4L, -0x5.c6e3bdb73d5c62f8p-68L },
+    { -0x1.6p+4L, 0x4.338e5b6dfe14a518p-72L },
+    { -0x1.6p+4L, -0x4.338e5b6dfe14a51p-72L },
+    { -0x1.7p+4L, 0x2.ec368262c7033b3p-76L },
+    { -0x1.7p+4L, -0x2.ec368262c7033b3p-76L },
+    { -0x1.8p+4L, 0x1.f2cf01972f577ccap-80L },
+    { -0x1.8p+4L, -0x1.f2cf01972f577ccap-80L },
+    { -0x1.9p+4L, 0x1.3f3ccdd165fa8d4ep-84L },
+    { -0x1.9p+4L, -0x1.3f3ccdd165fa8d4ep-84L },
+    { -0x1.ap+4L, 0xc.4742fe35272cd1cp-92L },
+    { -0x1.ap+4L, -0xc.4742fe35272cd1cp-92L },
+    { -0x1.bp+4L, 0x7.46ac70b733a8c828p-96L },
+    { -0x1.bp+4L, -0x7.46ac70b733a8c828p-96L },
+    { -0x1.cp+4L, 0x4.2862898d42174ddp-100L },
+    { -0x1.cp+4L, -0x4.2862898d42174ddp-100L },
+    { -0x1.dp+4L, 0x2.4b3f31686b15af58p-104L },
+    { -0x1.dp+4L, -0x2.4b3f31686b15af58p-104L },
+    { -0x1.ep+4L, 0x1.3932c5047d60e60cp-108L },
+    { -0x1.ep+4L, -0x1.3932c5047d60e60cp-108L },
+    { -0x1.fp+4L, 0xa.1a6973c1fade217p-116L },
+    { -0x1.fp+4L, -0xa.1a6973c1fade217p-116L },
+    { -0x2p+4L, 0x5.0d34b9e0fd6f10b8p-120L },
+    { -0x2p+4L, -0x5.0d34b9e0fd6f10b8p-120L },
+    { -0x2.1p+4L, 0x2.73024a9ba1aa36a8p-124L },
+  };
+
+static const long double e_hi = 0x2.b7e151628aed2a6cp+0L;
+static const long double e_lo = -0x1.408ea77f630b0c38p-64L;
+
+/* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
+   approximation to lgamma function.  */
+
+static const long double lgamma_coeff[] =
+  {
+    0x1.5555555555555556p-4L,
+    -0xb.60b60b60b60b60bp-12L,
+    0x3.4034034034034034p-12L,
+    -0x2.7027027027027028p-12L,
+    0x3.72a3c5631fe46aep-12L,
+    -0x7.daac36664f1f208p-12L,
+    0x1.a41a41a41a41a41ap-8L,
+    -0x7.90a1b2c3d4e5f708p-8L,
+    0x2.dfd2c703c0cfff44p-4L,
+    -0x1.6476701181f39edcp+0L,
+    0xd.672219167002d3ap+0L,
+    -0x9.cd9292e6660d55bp+4L,
+    0x8.911a740da740da7p+8L,
+    -0x8.d0cc570e255bf5ap+12L,
+    0xa.8d1044d3708d1c2p+16L,
+    -0xe.8844d8a169abbc4p+20L,
+  };
+
+#define NCOEFF (sizeof (lgamma_coeff) / sizeof (lgamma_coeff[0]))
+
+/* Polynomial approximations to (|gamma(x)|-1)(x-n)/(x-x0), where n is
+   the integer end-point of the half-integer interval containing x and
+   x0 is the zero of lgamma in that half-integer interval.  Each
+   polynomial is expressed in terms of x-xm, where xm is the midpoint
+   of the interval for which the polynomial applies.  */
+
+static const long double poly_coeff[] =
+  {
+    /* Interval [-2.125, -2] (polynomial degree 13).  */
+    -0x1.0b71c5c54d42eb6cp+0L,
+    -0xc.73a1dc05f349517p-4L,
+    -0x1.ec841408528b6baep-4L,
+    -0xe.37c9da26fc3b492p-4L,
+    -0x1.03cd87c5178991ap-4L,
+    -0xe.ae9ada65ece2f39p-4L,
+    0x9.b1185505edac18dp-8L,
+    -0xe.f28c130b54d3cb2p-4L,
+    0x2.6ec1666cf44a63bp-4L,
+    -0xf.57cb2774193bbd5p-4L,
+    0x4.5ae64671a41b1c4p-4L,
+    -0xf.f48ea8b5bd3a7cep-4L,
+    0x6.7d73788a8d30ef58p-4L,
+    -0x1.11e0e4b506bd272ep+0L,
+    /* Interval [-2.25, -2.125] (polynomial degree 13).  */
+    -0xf.2930890d7d675a8p-4L,
+    -0xc.a5cfde054eab5cdp-4L,
+    0x3.9c9e0fdebb0676e4p-4L,
+    -0x1.02a5ad35605f0d8cp+0L,
+    0x9.6e9b1185d0b92edp-4L,
+    -0x1.4d8332f3d6a3959p+0L,
+    0x1.1c0c8cacd0ced3eap+0L,
+    -0x1.c9a6f592a67b1628p+0L,
+    0x1.d7e9476f96aa4bd6p+0L,
+    -0x2.921cedb488bb3318p+0L,
+    0x2.e8b3fd6ca193e4c8p+0L,
+    -0x3.cb69d9d6628e4a2p+0L,
+    0x4.95f12c73b558638p+0L,
+    -0x5.d392d0b97c02ab6p+0L,
+    /* Interval [-2.375, -2.25] (polynomial degree 14).  */
+    -0xd.7d28d505d618122p-4L,
+    -0xe.69649a304098532p-4L,
+    0xb.0d74a2827d055c5p-4L,
+    -0x1.924b09228531c00ep+0L,
+    0x1.d49b12bccee4f888p+0L,
+    -0x3.0898bb7dbb21e458p+0L,
+    0x4.207a6cad6fa10a2p+0L,
+    -0x6.39ee630b46093ad8p+0L,
+    0x8.e2e25211a3fb5ccp+0L,
+    -0xd.0e85ccd8e79c08p+0L,
+    0x1.2e45882bc17f9e16p+4L,
+    -0x1.b8b6e841815ff314p+4L,
+    0x2.7ff8bf7504fa04dcp+4L,
+    -0x3.c192e9c903352974p+4L,
+    0x5.8040b75f4ef07f98p+4L,
+    /* Interval [-2.5, -2.375] (polynomial degree 15).  */
+    -0xb.74ea1bcfff94b2cp-4L,
+    -0x1.2a82bd590c375384p+0L,
+    0x1.88020f828b968634p+0L,
+    -0x3.32279f040eb80fa4p+0L,
+    0x5.57ac825175943188p+0L,
+    -0x9.c2aedcfe10f129ep+0L,
+    0x1.12c132f2df02881ep+4L,
+    -0x1.ea94e26c0b6ffa6p+4L,
+    0x3.66b4a8bb0290013p+4L,
+    -0x6.0cf735e01f5990bp+4L,
+    0xa.c10a8db7ae99343p+4L,
+    -0x1.31edb212b315feeap+8L,
+    0x2.1f478592298b3ebp+8L,
+    -0x3.c546da5957ace6ccp+8L,
+    0x7.0e3d2a02579ba4bp+8L,
+    -0xc.b1ea961c39302f8p+8L,
+    /* Interval [-2.625, -2.5] (polynomial degree 16).  */
+    -0x3.d10108c27ebafad4p-4L,
+    0x1.cd557caff7d2b202p+0L,
+    0x3.819b4856d3995034p+0L,
+    0x6.8505cbad03dd3bd8p+0L,
+    0xb.c1b2e653aa0b924p+0L,
+    0x1.50a53a38f05f72d6p+4L,
+    0x2.57ae00cbd06efb34p+4L,
+    0x4.2b1563077a577e9p+4L,
+    0x7.6989ed790138a7f8p+4L,
+    0xd.2dd28417b4f8406p+4L,
+    0x1.76e1b71f0710803ap+8L,
+    0x2.9a7a096254ac032p+8L,
+    0x4.a0e6109e2a039788p+8L,
+    0x8.37ea17a93c877b2p+8L,
+    0xe.9506a641143612bp+8L,
+    0x1.b680ed4ea386d52p+12L,
+    0x3.28a2130c8de0ae84p+12L,
+    /* Interval [-2.75, -2.625] (polynomial degree 15).  */
+    -0x6.b5d252a56e8a7548p-4L,
+    0x1.28d60383da3ac72p+0L,
+    0x1.db6513ada8a6703ap+0L,
+    0x2.e217118f9d34aa7cp+0L,
+    0x4.450112c5cbd6256p+0L,
+    0x6.4af99151e972f92p+0L,
+    0x9.2db598b5b183cd6p+0L,
+    0xd.62bef9c9adcff6ap+0L,
+    0x1.379f290d743d9774p+4L,
+    0x1.c58271ff823caa26p+4L,
+    0x2.93a871b87a06e73p+4L,
+    0x3.bf9db66103d7ec98p+4L,
+    0x5.73247c111fbf197p+4L,
+    0x7.ec8b9973ba27d008p+4L,
+    0xb.eca5f9619b39c03p+4L,
+    0x1.18f2e46411c78b1cp+8L,
+    /* Interval [-2.875, -2.75] (polynomial degree 14).  */
+    -0x8.a41b1e4f36ff88ep-4L,
+    0xc.da87d3b69dc0f34p-4L,
+    0x1.1474ad5c36158ad2p+0L,
+    0x1.761ecb90c5553996p+0L,
+    0x1.d279bff9ae234f8p+0L,
+    0x2.4e5d0055a16c5414p+0L,
+    0x2.d57545a783902f8cp+0L,
+    0x3.8514eec263aa9f98p+0L,
+    0x4.5235e338245f6fe8p+0L,
+    0x5.562b1ef200b256c8p+0L,
+    0x6.8ec9782b93bd565p+0L,
+    0x8.14baf4836483508p+0L,
+    0x9.efaf35dc712ea79p+0L,
+    0xc.8431f6a226507a9p+0L,
+    0xf.80358289a768401p+0L,
+    /* Interval [-3, -2.875] (polynomial degree 13).  */
+    -0xa.046d667e468f3e4p-4L,
+    0x9.70b88dcc006c216p-4L,
+    0xa.a8a39421c86ce9p-4L,
+    0xd.2f4d1363f321e89p-4L,
+    0xd.ca9aa1a3ab2f438p-4L,
+    0xf.cf09c31f05d02cbp-4L,
+    0x1.04b133a195686a38p+0L,
+    0x1.22b54799d0072024p+0L,
+    0x1.2c5802b869a36ae8p+0L,
+    0x1.4aadf23055d7105ep+0L,
+    0x1.5794078dd45c55d6p+0L,
+    0x1.7759069da18bcf0ap+0L,
+    0x1.8e672cefa4623f34p+0L,
+    0x1.b2acfa32c17145e6p+0L,
+  };
+
+static const size_t poly_deg[] =
+  {
+    13,
+    13,
+    14,
+    15,
+    16,
+    15,
+    14,
+    13,
+  };
+
+static const size_t poly_end[] =
+  {
+    13,
+    27,
+    42,
+    58,
+    75,
+    91,
+    106,
+    120,
+  };
+
+/* Compute sin (pi * X) for -0.25 <= X <= 0.5.  */
+
+static long double
+lg_sinpi (long double x)
+{
+  if (x <= 0.25L)
+    return __sinl (M_PIl * x);
+  else
+    return __cosl (M_PIl * (0.5L - x));
+}
+
+/* Compute cos (pi * X) for -0.25 <= X <= 0.5.  */
+
+static long double
+lg_cospi (long double x)
+{
+  if (x <= 0.25L)
+    return __cosl (M_PIl * x);
+  else
+    return __sinl (M_PIl * (0.5L - x));
+}
+
+/* Compute cot (pi * X) for -0.25 <= X <= 0.5.  */
+
+static long double
+lg_cotpi (long double x)
+{
+  return lg_cospi (x) / lg_sinpi (x);
+}
+
+/* Compute lgamma of a negative argument -33 < X < -2, setting
+   *SIGNGAMP accordingly.  */
+
+long double
+__lgamma_negl (long double x, int *signgamp)
+{
+  /* Determine the half-integer region X lies in, handle exact
+     integers and determine the sign of the result.  */
+  int i = __floorl (-2 * x);
+  if ((i & 1) == 0 && i == -2 * x)
+    return 1.0L / 0.0L;
+  long double xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
+  i -= 4;
+  *signgamp = ((i & 2) == 0 ? -1 : 1);
+
+  SET_RESTORE_ROUNDL (FE_TONEAREST);
+
+  /* Expand around the zero X0 = X0_HI + X0_LO.  */
+  long double x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
+  long double xdiff = x - x0_hi - x0_lo;
+
+  /* For arguments in the range -3 to -2, use polynomial
+     approximations to an adjusted version of the gamma function.  */
+  if (i < 2)
+    {
+      int j = __floorl (-8 * x) - 16;
+      long double xm = (-33 - 2 * j) * 0.0625L;
+      long double x_adj = x - xm;
+      size_t deg = poly_deg[j];
+      size_t end = poly_end[j];
+      long double g = poly_coeff[end];
+      for (size_t j = 1; j <= deg; j++)
+	g = g * x_adj + poly_coeff[end - j];
+      return __log1pl (g * xdiff / (x - xn));
+    }
+
+  /* The result we want is log (sinpi (X0) / sinpi (X))
+     + log (gamma (1 - X0) / gamma (1 - X)).  */
+  long double x_idiff = fabsl (xn - x), x0_idiff = fabsl (xn - x0_hi - x0_lo);
+  long double log_sinpi_ratio;
+  if (x0_idiff < x_idiff * 0.5L)
+    /* Use log not log1p to avoid inaccuracy from log1p of arguments
+       close to -1.  */
+    log_sinpi_ratio = __ieee754_logl (lg_sinpi (x0_idiff)
+				      / lg_sinpi (x_idiff));
+  else
+    {
+      /* Use log1p not log to avoid inaccuracy from log of arguments
+	 close to 1.  X0DIFF2 has positive sign if X0 is further from
+	 XN than X is from XN, negative sign otherwise.  */
+      long double x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5L;
+      long double sx0d2 = lg_sinpi (x0diff2);
+      long double cx0d2 = lg_cospi (x0diff2);
+      log_sinpi_ratio = __log1pl (2 * sx0d2
+				  * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
+    }
+
+  long double log_gamma_ratio;
+  long double y0 = 1 - x0_hi;
+  long double y0_eps = -x0_hi + (1 - y0) - x0_lo;
+  long double y = 1 - x;
+  long double y_eps = -x + (1 - y);
+  /* We now wish to compute LOG_GAMMA_RATIO
+     = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)).  XDIFF
+     accurately approximates the difference Y0 + Y0_EPS - Y -
+     Y_EPS.  Use Stirling's approximation.  First, we may need to
+     adjust into the range where Stirling's approximation is
+     sufficiently accurate.  */
+  long double log_gamma_adj = 0;
+  if (i < 8)
+    {
+      int n_up = (9 - i) / 2;
+      long double ny0, ny0_eps, ny, ny_eps;
+      ny0 = y0 + n_up;
+      ny0_eps = y0 - (ny0 - n_up) + y0_eps;
+      y0 = ny0;
+      y0_eps = ny0_eps;
+      ny = y + n_up;
+      ny_eps = y - (ny - n_up) + y_eps;
+      y = ny;
+      y_eps = ny_eps;
+      long double prodm1 = __lgamma_productl (xdiff, y - n_up, y_eps, n_up);
+      log_gamma_adj = -__log1pl (prodm1);
+    }
+  long double log_gamma_high
+    = (xdiff * __log1pl ((y0 - e_hi - e_lo + y0_eps) / e_hi)
+       + (y - 0.5L + y_eps) * __log1pl (xdiff / y) + log_gamma_adj);
+  /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)).  */
+  long double y0r = 1 / y0, yr = 1 / y;
+  long double y0r2 = y0r * y0r, yr2 = yr * yr;
+  long double rdiff = -xdiff / (y * y0);
+  long double bterm[NCOEFF];
+  long double dlast = rdiff, elast = rdiff * yr * (yr + y0r);
+  bterm[0] = dlast * lgamma_coeff[0];
+  for (size_t j = 1; j < NCOEFF; j++)
+    {
+      long double dnext = dlast * y0r2 + elast;
+      long double enext = elast * yr2;
+      bterm[j] = dnext * lgamma_coeff[j];
+      dlast = dnext;
+      elast = enext;
+    }
+  long double log_gamma_low = 0;
+  for (size_t j = 0; j < NCOEFF; j++)
+    log_gamma_low += bterm[NCOEFF - 1 - j];
+  log_gamma_ratio = log_gamma_high + log_gamma_low;
+
+  return log_sinpi_ratio + log_gamma_ratio;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_product.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_product.c
new file mode 100644
index 0000000000..46be5df762
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_product.c
@@ -0,0 +1,37 @@
+/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+/* Compute the product of 1 + (T / (X + X_EPS)), 1 + (T / (X + X_EPS +
+   1)), ..., 1 + (T / (X + X_EPS + N - 1)), minus 1.  X is such that
+   all the values X + 1, ..., X + N - 1 are exactly representable, and
+   X_EPS / X is small enough that factors quadratic in it can be
+   neglected.  */
+
+double
+__lgamma_product (double t, double x, double x_eps, int n)
+{
+  long double x_full = (long double) x + (long double) x_eps;
+  long double ret = 0;
+  for (int i = 0; i < n; i++)
+    ret += (t / (x_full + i)) * (1 + ret);
+  return ret;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_productl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_productl.c
new file mode 100644
index 0000000000..cd6f2f3156
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/lgamma_productl.c
@@ -0,0 +1,52 @@
+/* Compute a product of 1 + (T/X), 1 + (T/(X+1)), ....
+   Copyright (C) 2015-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_splitl.h>
+
+/* Compute the product of 1 + (T / (X + X_EPS)), 1 + (T / (X + X_EPS +
+   1)), ..., 1 + (T / (X + X_EPS + N - 1)), minus 1.  X is such that
+   all the values X + 1, ..., X + N - 1 are exactly representable, and
+   X_EPS / X is small enough that factors quadratic in it can be
+   neglected.  */
+
+long double
+__lgamma_productl (long double t, long double x, long double x_eps, int n)
+{
+  long double ret = 0, ret_eps = 0;
+  for (int i = 0; i < n; i++)
+    {
+      long double xi = x + i;
+      long double quot = t / xi;
+      long double mhi, mlo;
+      mul_splitl (&mhi, &mlo, quot, xi);
+      long double quot_lo = (t - mhi - mlo) / xi - t * x_eps / (xi * xi);
+      /* We want (1 + RET + RET_EPS) * (1 + QUOT + QUOT_LO) - 1.  */
+      long double rhi, rlo;
+      mul_splitl (&rhi, &rlo, ret, quot);
+      long double rpq = ret + quot;
+      long double rpq_eps = (ret - rpq) + quot;
+      long double nret = rpq + rhi;
+      long double nret_eps = (rpq - nret) + rhi;
+      ret_eps += (rpq_eps + nret_eps + rlo + ret_eps * quot
+		  + quot_lo + quot_lo * (ret + ret_eps));
+      ret = nret;
+    }
+  return ret + ret_eps;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/math_ldbl.h b/REORG.TODO/sysdeps/ieee754/ldbl-96/math_ldbl.h
new file mode 100644
index 0000000000..ef897065b7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/math_ldbl.h
@@ -0,0 +1,120 @@
+/* Manipulation of the bit representation of 'long double' quantities.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_LDBL_H_
+#define _MATH_LDBL_H_ 1
+
+#include <stdint.h>
+#include <endian.h>
+
+/* A union which permits us to convert between a long double and
+   three 32 bit ints.  */
+
+#if __FLOAT_WORD_ORDER == __BIG_ENDIAN
+
+typedef union
+{
+  long double value;
+  struct
+  {
+    int sign_exponent:16;
+    unsigned int empty:16;
+    uint32_t msw;
+    uint32_t lsw;
+  } parts;
+} ieee_long_double_shape_type;
+
+#endif
+
+#if __FLOAT_WORD_ORDER == __LITTLE_ENDIAN
+
+typedef union
+{
+  long double value;
+  struct
+  {
+    uint32_t lsw;
+    uint32_t msw;
+    int sign_exponent:16;
+    unsigned int empty:16;
+  } parts;
+} ieee_long_double_shape_type;
+
+#endif
+
+/* Get three 32 bit ints from a double.  */
+
+#define GET_LDOUBLE_WORDS(exp,ix0,ix1,d)			\
+do {								\
+  ieee_long_double_shape_type ew_u;				\
+  ew_u.value = (d);						\
+  (exp) = ew_u.parts.sign_exponent;				\
+  (ix0) = ew_u.parts.msw;					\
+  (ix1) = ew_u.parts.lsw;					\
+} while (0)
+
+/* Set a double from two 32 bit ints.  */
+
+#define SET_LDOUBLE_WORDS(d,exp,ix0,ix1)			\
+do {								\
+  ieee_long_double_shape_type iw_u;				\
+  iw_u.parts.sign_exponent = (exp);				\
+  iw_u.parts.msw = (ix0);					\
+  iw_u.parts.lsw = (ix1);					\
+  (d) = iw_u.value;						\
+} while (0)
+
+/* Get the more significant 32 bits of a long double mantissa.  */
+
+#define GET_LDOUBLE_MSW(v,d)					\
+do {								\
+  ieee_long_double_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  (v) = sh_u.parts.msw;						\
+} while (0)
+
+/* Set the more significant 32 bits of a long double mantissa from an int.  */
+
+#define SET_LDOUBLE_MSW(d,v)					\
+do {								\
+  ieee_long_double_shape_type sh_u;				\
+  sh_u.value = (d);						\
+  sh_u.parts.msw = (v);						\
+  (d) = sh_u.value;						\
+} while (0)
+
+/* Get int from the exponent of a long double.  */
+
+#define GET_LDOUBLE_EXP(exp,d)					\
+do {								\
+  ieee_long_double_shape_type ge_u;				\
+  ge_u.value = (d);						\
+  (exp) = ge_u.parts.sign_exponent;				\
+} while (0)
+
+/* Set exponent of a long double from an int.  */
+
+#define SET_LDOUBLE_EXP(d,exp)					\
+do {								\
+  ieee_long_double_shape_type se_u;				\
+  se_u.value = (d);						\
+  se_u.parts.sign_exponent = (exp);				\
+  (d) = se_u.value;						\
+} while (0)
+
+#endif /* math_ldbl.h */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/mpn2ldbl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
new file mode 100644
index 0000000000..715efb40b2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/mpn2ldbl.c
@@ -0,0 +1,46 @@
+/* Copyright (C) 1995-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "gmp.h"
+#include "gmp-impl.h"
+#include <ieee754.h>
+#include <float.h>
+#include <math.h>
+
+/* Convert a multi-precision integer of the needed number of bits (64 for
+   long double) and an integral power of two to a `long double' in IEEE854
+   extended-precision format.  */
+
+long double
+__mpn_construct_long_double (mp_srcptr frac_ptr, int expt, int sign)
+{
+  union ieee854_long_double u;
+
+  u.ieee.negative = sign;
+  u.ieee.exponent = expt + IEEE854_LONG_DOUBLE_BIAS;
+#if BITS_PER_MP_LIMB == 32
+  u.ieee.mantissa1 = frac_ptr[0];
+  u.ieee.mantissa0 = frac_ptr[1];
+#elif BITS_PER_MP_LIMB == 64
+  u.ieee.mantissa1 = frac_ptr[0] & (((mp_limb_t) 1 << 32) - 1);
+  u.ieee.mantissa0 = frac_ptr[0] >> 32;
+#else
+  #error "mp_limb size " BITS_PER_MP_LIMB "not accounted for"
+#endif
+
+  return u.d;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/printf_fphex.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/printf_fphex.c
new file mode 100644
index 0000000000..0df9462d91
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/printf_fphex.c
@@ -0,0 +1,95 @@
+/* Print floating point number in hexadecimal notation according to ISO C99.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef LONG_DOUBLE_DENORM_BIAS
+# define LONG_DOUBLE_DENORM_BIAS (IEEE854_LONG_DOUBLE_BIAS - 1)
+#endif
+
+#define PRINT_FPHEX_LONG_DOUBLE \
+do {									      \
+      /* The "strange" 80 bit format on ix86 and m68k has an explicit	      \
+	 leading digit in the 64 bit mantissa.  */			      \
+      unsigned long long int num;					      \
+      union ieee854_long_double u;					      \
+      u.d = fpnum.ldbl;							      \
+									      \
+      assert (sizeof (long double) == 12);				      \
+									      \
+      num = (((unsigned long long int) u.ieee.mantissa0) << 32		      \
+	     | u.ieee.mantissa1);					      \
+									      \
+      zero_mantissa = num == 0;						      \
+									      \
+      if (sizeof (unsigned long int) > 6)				      \
+	{								      \
+	  numstr = _itoa_word (num, numbuf + sizeof numbuf, 16,		      \
+			       info->spec == 'A');			      \
+	  wnumstr = _itowa_word (num,					      \
+				 wnumbuf + sizeof (wnumbuf) / sizeof (wchar_t),\
+				 16, info->spec == 'A');		      \
+	}								      \
+      else								      \
+	{								      \
+	  numstr = _itoa (num, numbuf + sizeof numbuf, 16, info->spec == 'A');\
+	  wnumstr = _itowa (num,					      \
+			    wnumbuf + sizeof (wnumbuf) / sizeof (wchar_t),    \
+			    16, info->spec == 'A');			      \
+	}								      \
+									      \
+      /* Fill with zeroes.  */						      \
+      while (numstr > numbuf + (sizeof numbuf - 64 / 4))		      \
+	{								      \
+	  *--numstr = '0';						      \
+	  *--wnumstr = L'0';						      \
+	}								      \
+									      \
+      /* We use a full nibble for the leading digit.  */		      \
+      leading = *numstr++;						      \
+      wnumstr++;							      \
+									      \
+      /* We have 3 bits from the mantissa in the leading nibble.	      \
+	 Therefore we are here using `IEEE854_LONG_DOUBLE_BIAS + 3'.  */      \
+      exponent = u.ieee.exponent;					      \
+									      \
+      if (exponent == 0)						      \
+	{								      \
+	  if (zero_mantissa)						      \
+	    expnegative = 0;						      \
+	  else								      \
+	    {								      \
+	      /* This is a denormalized number.  */			      \
+	      expnegative = 1;						      \
+	      /* This is a hook for the m68k long double format, where the    \
+		 exponent bias is the same for normalized and denormalized    \
+		 numbers.  */						      \
+	      exponent = LONG_DOUBLE_DENORM_BIAS + 3;			      \
+	    }								      \
+	}								      \
+      else if (exponent >= IEEE854_LONG_DOUBLE_BIAS + 3)		      \
+	{								      \
+	  expnegative = 0;						      \
+	  exponent -= IEEE854_LONG_DOUBLE_BIAS + 3;			      \
+	}								      \
+      else								      \
+	{								      \
+	  expnegative = 1;						      \
+	  exponent = -(exponent - (IEEE854_LONG_DOUBLE_BIAS + 3));	      \
+	}								      \
+} while (0)
+
+#include <stdio-common/printf_fphex.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_asinhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_asinhl.c
new file mode 100644
index 0000000000..da49ea5988
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_asinhl.c
@@ -0,0 +1,65 @@
+/* s_asinhl.c -- long double version of s_asinh.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* asinhl(x)
+ * Method :
+ *	Based on
+ *		asinhl(x) = signl(x) * logl [ |x| + sqrtl(x*x+1) ]
+ *	we have
+ *	asinhl(x) := x  if  1+x*x=1,
+ *		  := signl(x)*(logl(x)+ln2)) for large |x|, else
+ *		  := signl(x)*logl(2|x|+1/(|x|+sqrtl(x*x+1))) if|x|>2, else
+ *		  := signl(x)*log1pl(|x| + x^2/(1 + sqrtl(1+x^2)))
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+one =  1.000000000000000000000e+00L, /* 0x3FFF, 0x00000000, 0x00000000 */
+ln2 =  6.931471805599453094287e-01L, /* 0x3FFE, 0xB17217F7, 0xD1CF79AC */
+huge=  1.000000000000000000e+4900L;
+
+long double __asinhl(long double x)
+{
+	long double t,w;
+	int32_t hx,ix;
+	GET_LDOUBLE_EXP(hx,x);
+	ix = hx&0x7fff;
+	if(__builtin_expect(ix< 0x3fde, 0)) {	/* |x|<2**-34 */
+	    math_check_force_underflow (x);
+	    if(huge+x>one) return x;	/* return x inexact except 0 */
+	}
+	if(__builtin_expect(ix>0x4020,0)) {		/* |x| > 2**34 */
+	    if(ix==0x7fff) return x+x;	/* x is inf or NaN */
+	    w = __ieee754_logl(fabsl(x))+ln2;
+	} else {
+	    long double xa = fabsl(x);
+	    if (ix>0x4000) {	/* 2**34 > |x| > 2.0 */
+		w = __ieee754_logl(2.0*xa+one/(__ieee754_sqrtl(xa*xa+one)+xa));
+	    } else {		/* 2.0 > |x| > 2**-28 */
+		t = xa*xa;
+		w =__log1pl(xa+t/(one+__ieee754_sqrtl(one+t)));
+	    }
+	}
+	return __copysignl(w, x);
+}
+weak_alias (__asinhl, asinhl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_cbrtl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_cbrtl.c
new file mode 100644
index 0000000000..5712fce2e9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_cbrtl.c
@@ -0,0 +1,70 @@
+/* Compute cubic root of double value.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Dirk Alboth <dirka@uni-paderborn.de> and
+   Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+
+#define CBRT2 1.2599210498948731648		/* 2^(1/3) */
+#define SQR_CBRT2 1.5874010519681994748		/* 2^(2/3) */
+
+/* We don't use long double values here since U need not be computed
+   with full precision.  */
+static const double factor[5] =
+{
+  1.0 / SQR_CBRT2,
+  1.0 / CBRT2,
+  1.0,
+  CBRT2,
+  SQR_CBRT2
+};
+
+static const long double third = 0.3333333333333333333333333L;
+
+long double
+__cbrtl (long double x)
+{
+  long double xm, u;
+  int xe;
+
+  /* Reduce X.  XM now is an range 1.0 to 0.5.  */
+  xm = __frexpl (fabsl (x), &xe);
+
+  /* If X is not finite or is null return it (with raising exceptions
+     if necessary.
+     Note: *Our* version of `frexp' sets XE to zero if the argument is
+     Inf or NaN.  This is not portable but faster.  */
+  if (xe == 0 && fpclassify (x) <= FP_ZERO)
+    return x + x;
+
+  u = (((-1.34661104733595206551E-1 * xm
+	  + 5.46646013663955245034E-1) * xm
+	 - 9.54382247715094465250E-1) * xm
+	+ 1.13999833547172932737E0) * xm
+       + 4.02389795645447521269E-1;
+
+  u *= factor[2 + xe % 3];
+  u = __ldexpl (x > 0.0 ? u : -u, xe / 3);
+
+  u -= (u - (x / (u * u))) * third;
+  u -= (u - (x / (u * u))) * third;
+  return u;
+}
+weak_alias (__cbrtl, cbrtl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_copysignl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_copysignl.c
new file mode 100644
index 0000000000..b1c442452f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_copysignl.c
@@ -0,0 +1,38 @@
+/* s_copysignl.c -- long double version of s_copysign.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * copysignl(long double x, long double y)
+ * copysignl(x,y) returns a value with the magnitude of x and
+ * with the sign bit of y.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+long double __copysignl(long double x, long double y)
+{
+	u_int32_t es1,es2;
+	GET_LDOUBLE_EXP(es1,x);
+	GET_LDOUBLE_EXP(es2,y);
+	SET_LDOUBLE_EXP(x,(es1&0x7fff)|(es2&0x8000));
+        return x;
+}
+weak_alias (__copysignl, copysignl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_cosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_cosl.c
new file mode 100644
index 0000000000..8b0b7d3cc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_cosl.c
@@ -0,0 +1,88 @@
+/* s_cosl.c -- long double version of s_cos.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* cosl(x)
+ * Return cosine function of x.
+ *
+ * kernel function:
+ *	__kernel_sinl		... sine function on [-pi/4,pi/4]
+ *	__kernel_cosl		... cosine function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+long double __cosl(long double x)
+{
+	long double y[2],z=0.0;
+	int32_t n, se, i0, i1;
+
+    /* High word of x. */
+	GET_LDOUBLE_WORDS(se,i0,i1,x);
+
+    /* |x| ~< pi/4 */
+	se &= 0x7fff;
+	if(se < 0x3ffe || (se == 0x3ffe && i0 <= 0xc90fdaa2))
+	  return __kernel_cosl(x,z);
+
+    /* cos(Inf or NaN) is NaN */
+	else if (se==0x7fff) {
+	  if (i1 == 0 && i0 == 0x80000000)
+	    __set_errno (EDOM);
+	  return x-x;
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_cosl(y[0],y[1]);
+		case 1: return -__kernel_sinl(y[0],y[1],1);
+		case 2: return -__kernel_cosl(y[0],y[1]);
+		default:
+		        return  __kernel_sinl(y[0],y[1],1);
+	    }
+	}
+}
+weak_alias (__cosl, cosl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_erfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_erfl.c
new file mode 100644
index 0000000000..d00adb1000
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_erfl.c
@@ -0,0 +1,451 @@
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* Long double expansions are
+  Copyright (C) 2001 Stephen L. Moshier <moshier@na-net.ornl.gov>
+  and are incorporated herein by permission of the author.  The author
+  reserves the right to distribute this material elsewhere under different
+  copying permissions.  These modifications are distributed here under
+  the following terms:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, see
+    <http://www.gnu.org/licenses/>.  */
+
+/* double erf(double x)
+ * double erfc(double x)
+ *			     x
+ *		      2      |\
+ *     erf(x)  =  ---------  | exp(-t*t)dt
+ *		   sqrt(pi) \|
+ *			     0
+ *
+ *     erfc(x) =  1-erf(x)
+ *  Note that
+ *		erf(-x) = -erf(x)
+ *		erfc(-x) = 2 - erfc(x)
+ *
+ * Method:
+ *	1. For |x| in [0, 0.84375]
+ *	    erf(x)  = x + x*R(x^2)
+ *          erfc(x) = 1 - erf(x)           if x in [-.84375,0.25]
+ *                  = 0.5 + ((0.5-x)-x*R)  if x in [0.25,0.84375]
+ *	   Remark. The formula is derived by noting
+ *          erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....)
+ *	   and that
+ *          2/sqrt(pi) = 1.128379167095512573896158903121545171688
+ *	   is close to one. The interval is chosen because the fix
+ *	   point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is
+ *	   near 0.6174), and by some experiment, 0.84375 is chosen to
+ *	   guarantee the error is less than one ulp for erf.
+ *
+ *      2. For |x| in [0.84375,1.25], let s = |x| - 1, and
+ *         c = 0.84506291151 rounded to single (24 bits)
+ *	erf(x)  = sign(x) * (c  + P1(s)/Q1(s))
+ *	erfc(x) = (1-c)  - P1(s)/Q1(s) if x > 0
+ *			  1+(c+P1(s)/Q1(s))    if x < 0
+ *	   Remark: here we use the taylor series expansion at x=1.
+ *		erf(1+s) = erf(1) + s*Poly(s)
+ *			 = 0.845.. + P1(s)/Q1(s)
+ *	   Note that |P1/Q1|< 0.078 for x in [0.84375,1.25]
+ *
+ *      3. For x in [1.25,1/0.35(~2.857143)],
+ *	erfc(x) = (1/x)*exp(-x*x-0.5625+R1(z)/S1(z))
+ *              z=1/x^2
+ *	erf(x)  = 1 - erfc(x)
+ *
+ *      4. For x in [1/0.35,107]
+ *	erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0
+ *			= 2.0 - (1/x)*exp(-x*x-0.5625+R2(z)/S2(z))
+ *                             if -6.666<x<0
+ *			= 2.0 - tiny		(if x <= -6.666)
+ *              z=1/x^2
+ *	erf(x)  = sign(x)*(1.0 - erfc(x)) if x < 6.666, else
+ *	erf(x)  = sign(x)*(1.0 - tiny)
+ *      Note1:
+ *	   To compute exp(-x*x-0.5625+R/S), let s be a single
+ *	   precision number and s := x; then
+ *		-x*x = -s*s + (s-x)*(s+x)
+ *	        exp(-x*x-0.5626+R/S) =
+ *			exp(-s*s-0.5625)*exp((s-x)*(s+x)+R/S);
+ *      Note2:
+ *	   Here 4 and 5 make use of the asymptotic series
+ *			  exp(-x*x)
+ *		erfc(x) ~ ---------- * ( 1 + Poly(1/x^2) )
+ *			  x*sqrt(pi)
+ *
+ *      5. For inf > x >= 107
+ *	erf(x)  = sign(x) *(1 - tiny)  (raise inexact)
+ *	erfc(x) = tiny*tiny (raise underflow) if x > 0
+ *			= 2 - tiny if x<0
+ *
+ *      7. Special case:
+ *	erf(0)  = 0, erf(inf)  = 1, erf(-inf) = -1,
+ *	erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2,
+ *		erfc/erf(NaN) is NaN
+ */
+
+
+#include <errno.h>
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+tiny = 1e-4931L,
+  half = 0.5L,
+  one = 1.0L,
+  two = 2.0L,
+	/* c = (float)0.84506291151 */
+  erx = 0.845062911510467529296875L,
+/*
+ * Coefficients for approximation to  erf on [0,0.84375]
+ */
+  /* 2/sqrt(pi) - 1 */
+  efx = 1.2837916709551257389615890312154517168810E-1L,
+
+  pp[6] = {
+    1.122751350964552113068262337278335028553E6L,
+    -2.808533301997696164408397079650699163276E6L,
+    -3.314325479115357458197119660818768924100E5L,
+    -6.848684465326256109712135497895525446398E4L,
+    -2.657817695110739185591505062971929859314E3L,
+    -1.655310302737837556654146291646499062882E2L,
+  },
+
+  qq[6] = {
+    8.745588372054466262548908189000448124232E6L,
+    3.746038264792471129367533128637019611485E6L,
+    7.066358783162407559861156173539693900031E5L,
+    7.448928604824620999413120955705448117056E4L,
+    4.511583986730994111992253980546131408924E3L,
+    1.368902937933296323345610240009071254014E2L,
+    /* 1.000000000000000000000000000000000000000E0 */
+  },
+
+/*
+ * Coefficients for approximation to  erf  in [0.84375,1.25]
+ */
+/* erf(x+1) = 0.845062911510467529296875 + pa(x)/qa(x)
+   -0.15625 <= x <= +.25
+   Peak relative error 8.5e-22  */
+
+  pa[8] = {
+    -1.076952146179812072156734957705102256059E0L,
+     1.884814957770385593365179835059971587220E2L,
+    -5.339153975012804282890066622962070115606E1L,
+     4.435910679869176625928504532109635632618E1L,
+     1.683219516032328828278557309642929135179E1L,
+    -2.360236618396952560064259585299045804293E0L,
+     1.852230047861891953244413872297940938041E0L,
+     9.394994446747752308256773044667843200719E-2L,
+  },
+
+  qa[7] =  {
+    4.559263722294508998149925774781887811255E2L,
+    3.289248982200800575749795055149780689738E2L,
+    2.846070965875643009598627918383314457912E2L,
+    1.398715859064535039433275722017479994465E2L,
+    6.060190733759793706299079050985358190726E1L,
+    2.078695677795422351040502569964299664233E1L,
+    4.641271134150895940966798357442234498546E0L,
+    /* 1.000000000000000000000000000000000000000E0 */
+  },
+
+/*
+ * Coefficients for approximation to  erfc in [1.25,1/0.35]
+ */
+/* erfc(1/x) = x exp (-1/x^2 - 0.5625 + ra(x^2)/sa(x^2))
+   1/2.85711669921875 < 1/x < 1/1.25
+   Peak relative error 3.1e-21  */
+
+    ra[] = {
+      1.363566591833846324191000679620738857234E-1L,
+      1.018203167219873573808450274314658434507E1L,
+      1.862359362334248675526472871224778045594E2L,
+      1.411622588180721285284945138667933330348E3L,
+      5.088538459741511988784440103218342840478E3L,
+      8.928251553922176506858267311750789273656E3L,
+      7.264436000148052545243018622742770549982E3L,
+      2.387492459664548651671894725748959751119E3L,
+      2.220916652813908085449221282808458466556E2L,
+    },
+
+    sa[] = {
+      -1.382234625202480685182526402169222331847E1L,
+      -3.315638835627950255832519203687435946482E2L,
+      -2.949124863912936259747237164260785326692E3L,
+      -1.246622099070875940506391433635999693661E4L,
+      -2.673079795851665428695842853070996219632E4L,
+      -2.880269786660559337358397106518918220991E4L,
+      -1.450600228493968044773354186390390823713E4L,
+      -2.874539731125893533960680525192064277816E3L,
+      -1.402241261419067750237395034116942296027E2L,
+      /* 1.000000000000000000000000000000000000000E0 */
+    },
+/*
+ * Coefficients for approximation to  erfc in [1/.35,107]
+ */
+/* erfc(1/x) = x exp (-1/x^2 - 0.5625 + rb(x^2)/sb(x^2))
+   1/6.6666259765625 < 1/x < 1/2.85711669921875
+   Peak relative error 4.2e-22  */
+    rb[] = {
+      -4.869587348270494309550558460786501252369E-5L,
+      -4.030199390527997378549161722412466959403E-3L,
+      -9.434425866377037610206443566288917589122E-2L,
+      -9.319032754357658601200655161585539404155E-1L,
+      -4.273788174307459947350256581445442062291E0L,
+      -8.842289940696150508373541814064198259278E0L,
+      -7.069215249419887403187988144752613025255E0L,
+      -1.401228723639514787920274427443330704764E0L,
+    },
+
+    sb[] = {
+      4.936254964107175160157544545879293019085E-3L,
+      1.583457624037795744377163924895349412015E-1L,
+      1.850647991850328356622940552450636420484E0L,
+      9.927611557279019463768050710008450625415E0L,
+      2.531667257649436709617165336779212114570E1L,
+      2.869752886406743386458304052862814690045E1L,
+      1.182059497870819562441683560749192539345E1L,
+      /* 1.000000000000000000000000000000000000000E0 */
+    },
+/* erfc(1/x) = x exp (-1/x^2 - 0.5625 + rc(x^2)/sc(x^2))
+   1/107 <= 1/x <= 1/6.6666259765625
+   Peak relative error 1.1e-21  */
+    rc[] = {
+      -8.299617545269701963973537248996670806850E-5L,
+      -6.243845685115818513578933902532056244108E-3L,
+      -1.141667210620380223113693474478394397230E-1L,
+      -7.521343797212024245375240432734425789409E-1L,
+      -1.765321928311155824664963633786967602934E0L,
+      -1.029403473103215800456761180695263439188E0L,
+    },
+
+    sc[] = {
+      8.413244363014929493035952542677768808601E-3L,
+      2.065114333816877479753334599639158060979E-1L,
+      1.639064941530797583766364412782135680148E0L,
+      4.936788463787115555582319302981666347450E0L,
+      5.005177727208955487404729933261347679090E0L,
+      /* 1.000000000000000000000000000000000000000E0 */
+    };
+
+long double
+__erfl (long double x)
+{
+  long double R, S, P, Q, s, y, z, r;
+  int32_t ix, i;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+
+  if (ix >= 0x7fff)
+    {				/* erf(nan)=nan */
+      i = ((se & 0xffff) >> 15) << 1;
+      return (long double) (1 - i) + one / x;	/* erf(+-inf)=+-1 */
+    }
+
+  ix = (ix << 16) | (i0 >> 16);
+  if (ix < 0x3ffed800) /* |x|<0.84375 */
+    {
+      if (ix < 0x3fde8000) /* |x|<2**-33 */
+	{
+	  if (ix < 0x00080000)
+	    {
+	      /* Avoid spurious underflow.  */
+	      long double ret = 0.0625 * (16.0 * x + (16.0 * efx) * x);
+	      math_check_force_underflow (ret);
+	      return ret;
+	    }
+	  return x + efx * x;
+	}
+      z = x * x;
+      r = pp[0] + z * (pp[1]
+          + z * (pp[2] + z * (pp[3] + z * (pp[4] + z * pp[5]))));
+      s = qq[0] + z * (qq[1]
+	  + z * (qq[2] + z * (qq[3] + z * (qq[4] + z * (qq[5] + z)))));
+      y = r / s;
+      return x + x * y;
+    }
+  if (ix < 0x3fffa000) /* 1.25 */
+    {				/* 0.84375 <= |x| < 1.25 */
+      s = fabsl (x) - one;
+      P = pa[0] + s * (pa[1] + s * (pa[2]
+        + s * (pa[3] + s * (pa[4] + s * (pa[5] + s * (pa[6] + s * pa[7]))))));
+      Q = qa[0] + s * (qa[1] + s * (qa[2]
+        + s * (qa[3] + s * (qa[4] + s * (qa[5] + s * (qa[6] + s))))));
+      if ((se & 0x8000) == 0)
+	return erx + P / Q;
+      else
+	return -erx - P / Q;
+    }
+  if (ix >= 0x4001d555) /* 6.6666259765625 */
+    {				/* inf>|x|>=6.666 */
+      if ((se & 0x8000) == 0)
+	return one - tiny;
+      else
+	return tiny - one;
+    }
+  x = fabsl (x);
+  s = one / (x * x);
+  if (ix < 0x4000b6db) /* 2.85711669921875 */
+    {
+      R = ra[0] + s * (ra[1] + s * (ra[2] + s * (ra[3] + s * (ra[4] +
+          s * (ra[5] + s * (ra[6] + s * (ra[7] + s * ra[8])))))));
+      S = sa[0] + s * (sa[1] + s * (sa[2] + s * (sa[3] + s * (sa[4] +
+          s * (sa[5] + s * (sa[6] + s * (sa[7] + s * (sa[8] + s))))))));
+    }
+  else
+    {				/* |x| >= 1/0.35 */
+      R = rb[0] + s * (rb[1] + s * (rb[2] + s * (rb[3] + s * (rb[4] +
+         s * (rb[5] + s * (rb[6] + s * rb[7]))))));
+      S = sb[0] + s * (sb[1] + s * (sb[2] + s * (sb[3] + s * (sb[4] +
+         s * (sb[5] + s * (sb[6] + s))))));
+    }
+  z = x;
+  GET_LDOUBLE_WORDS (i, i0, i1, z);
+  i1 = 0;
+  SET_LDOUBLE_WORDS (z, i, i0, i1);
+  r =
+    __ieee754_expl (-z * z - 0.5625) * __ieee754_expl ((z - x) * (z + x) +
+						     R / S);
+  if ((se & 0x8000) == 0)
+    return one - r / x;
+  else
+    return r / x - one;
+}
+
+weak_alias (__erfl, erfl)
+long double
+__erfcl (long double x)
+{
+  int32_t hx, ix;
+  long double R, S, P, Q, s, y, z, r;
+  u_int32_t se, i0, i1;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  ix = se & 0x7fff;
+  if (ix >= 0x7fff)
+    {				/* erfc(nan)=nan */
+      /* erfc(+-inf)=0,2 */
+      return (long double) (((se & 0xffff) >> 15) << 1) + one / x;
+    }
+
+  ix = (ix << 16) | (i0 >> 16);
+  if (ix < 0x3ffed800) /* |x|<0.84375 */
+    {
+      if (ix < 0x3fbe0000) /* |x|<2**-65 */
+	return one - x;
+      z = x * x;
+      r = pp[0] + z * (pp[1]
+          + z * (pp[2] + z * (pp[3] + z * (pp[4] + z * pp[5]))));
+      s = qq[0] + z * (qq[1]
+	  + z * (qq[2] + z * (qq[3] + z * (qq[4] + z * (qq[5] + z)))));
+      y = r / s;
+      if (ix < 0x3ffd8000) /* x<1/4 */
+	{
+	  return one - (x + x * y);
+	}
+      else
+	{
+	  r = x * y;
+	  r += (x - half);
+	  return half - r;
+	}
+    }
+  if (ix < 0x3fffa000) /* 1.25 */
+    {				/* 0.84375 <= |x| < 1.25 */
+      s = fabsl (x) - one;
+      P = pa[0] + s * (pa[1] + s * (pa[2]
+        + s * (pa[3] + s * (pa[4] + s * (pa[5] + s * (pa[6] + s * pa[7]))))));
+      Q = qa[0] + s * (qa[1] + s * (qa[2]
+        + s * (qa[3] + s * (qa[4] + s * (qa[5] + s * (qa[6] + s))))));
+      if ((se & 0x8000) == 0)
+	{
+	  z = one - erx;
+	  return z - P / Q;
+	}
+      else
+	{
+	  z = erx + P / Q;
+	  return one + z;
+	}
+    }
+  if (ix < 0x4005d600) /* 107 */
+    {				/* |x|<107 */
+      x = fabsl (x);
+      s = one / (x * x);
+      if (ix < 0x4000b6db) /* 2.85711669921875 */
+	{			/* |x| < 1/.35 ~ 2.857143 */
+	  R = ra[0] + s * (ra[1] + s * (ra[2] + s * (ra[3] + s * (ra[4] +
+              s * (ra[5] + s * (ra[6] + s * (ra[7] + s * ra[8])))))));
+	  S = sa[0] + s * (sa[1] + s * (sa[2] + s * (sa[3] + s * (sa[4] +
+              s * (sa[5] + s * (sa[6] + s * (sa[7] + s * (sa[8] + s))))))));
+	}
+      else if (ix < 0x4001d555) /* 6.6666259765625 */
+	{			/* 6.666 > |x| >= 1/.35 ~ 2.857143 */
+	  R = rb[0] + s * (rb[1] + s * (rb[2] + s * (rb[3] + s * (rb[4] +
+	      s * (rb[5] + s * (rb[6] + s * rb[7]))))));
+	  S = sb[0] + s * (sb[1] + s * (sb[2] + s * (sb[3] + s * (sb[4] +
+              s * (sb[5] + s * (sb[6] + s))))));
+	}
+      else
+	{			/* |x| >= 6.666 */
+	  if (se & 0x8000)
+	    return two - tiny;	/* x < -6.666 */
+
+	  R = rc[0] + s * (rc[1] + s * (rc[2] + s * (rc[3] +
+						    s * (rc[4] + s * rc[5]))));
+	  S = sc[0] + s * (sc[1] + s * (sc[2] + s * (sc[3] +
+						    s * (sc[4] + s))));
+	}
+      z = x;
+      GET_LDOUBLE_WORDS (hx, i0, i1, z);
+      i1 = 0;
+      i0 &= 0xffffff00;
+      SET_LDOUBLE_WORDS (z, hx, i0, i1);
+      r = __ieee754_expl (-z * z - 0.5625) *
+	__ieee754_expl ((z - x) * (z + x) + R / S);
+      if ((se & 0x8000) == 0)
+	{
+	  long double ret = r / x;
+	  if (ret == 0)
+	    __set_errno (ERANGE);
+	  return ret;
+	}
+      else
+	return two - r / x;
+    }
+  else
+    {
+      if ((se & 0x8000) == 0)
+	{
+	  __set_errno (ERANGE);
+	  return tiny * tiny;
+	}
+      else
+	return two - tiny;
+    }
+}
+
+weak_alias (__erfcl, erfcl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fma.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fma.c
new file mode 100644
index 0000000000..370592074e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fma.c
@@ -0,0 +1,101 @@
+/* Compute x * y + z as ternary operation.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <fenv.h>
+#include <ieee754.h>
+#include <math_private.h>
+
+/* This implementation uses rounding to odd to avoid problems with
+   double rounding.  See a paper by Boldo and Melquiond:
+   http://www.lri.fr/~melquion/doc/08-tc.pdf  */
+
+double
+__fma (double x, double y, double z)
+{
+  if (__glibc_unlikely (isinf (z)))
+    {
+      /* If z is Inf, but x and y are finite, the result should be
+	 z rather than NaN.  */
+      if (isfinite (x) && isfinite (y))
+	return (z + x) + y;
+      return (x * y) + z;
+    }
+
+  /* Ensure correct sign of exact 0 + 0.  */
+  if (__glibc_unlikely ((x == 0 || y == 0) && z == 0))
+    {
+      x = math_opt_barrier (x);
+      return x * y + z;
+    }
+
+  fenv_t env;
+  feholdexcept (&env);
+  fesetround (FE_TONEAREST);
+
+  /* Multiplication m1 + m2 = x * y using Dekker's algorithm.  */
+#define C ((1ULL << (LDBL_MANT_DIG + 1) / 2) + 1)
+  long double x1 = (long double) x * C;
+  long double y1 = (long double) y * C;
+  long double m1 = (long double) x * y;
+  x1 = (x - x1) + x1;
+  y1 = (y - y1) + y1;
+  long double x2 = x - x1;
+  long double y2 = y - y1;
+  long double m2 = (((x1 * y1 - m1) + x1 * y2) + x2 * y1) + x2 * y2;
+
+  /* Addition a1 + a2 = z + m1 using Knuth's algorithm.  */
+  long double a1 = z + m1;
+  long double t1 = a1 - z;
+  long double t2 = a1 - t1;
+  t1 = m1 - t1;
+  t2 = z - t2;
+  long double a2 = t1 + t2;
+  /* Ensure the arithmetic is not scheduled after feclearexcept call.  */
+  math_force_eval (m2);
+  math_force_eval (a2);
+  feclearexcept (FE_INEXACT);
+
+  /* If the result is an exact zero, ensure it has the correct sign.  */
+  if (a1 == 0 && m2 == 0)
+    {
+      feupdateenv (&env);
+      /* Ensure that round-to-nearest value of z + m1 is not reused.  */
+      z = math_opt_barrier (z);
+      return z + m1;
+    }
+
+  fesetround (FE_TOWARDZERO);
+  /* Perform m2 + a2 addition with round to odd.  */
+  a2 = a2 + m2;
+
+  /* Add that to a1 again using rounding to odd.  */
+  union ieee854_long_double u;
+  u.d = a1 + a2;
+  if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
+    u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
+  feupdateenv (&env);
+
+  /* Add finally round to double precision.  */
+  return u.d;
+}
+#ifndef __fma
+weak_alias (__fma, fma)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fmal.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fmal.c
new file mode 100644
index 0000000000..1f3fa1ea1e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fmal.c
@@ -0,0 +1,296 @@
+/* Compute x * y + z as ternary operation.
+   Copyright (C) 2010-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@redhat.com>, 2010.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <fenv.h>
+#include <ieee754.h>
+#include <math_private.h>
+#include <tininess.h>
+
+/* This implementation uses rounding to odd to avoid problems with
+   double rounding.  See a paper by Boldo and Melquiond:
+   http://www.lri.fr/~melquion/doc/08-tc.pdf  */
+
+long double
+__fmal (long double x, long double y, long double z)
+{
+  union ieee854_long_double u, v, w;
+  int adjust = 0;
+  u.d = x;
+  v.d = y;
+  w.d = z;
+  if (__builtin_expect (u.ieee.exponent + v.ieee.exponent
+			>= 0x7fff + IEEE854_LONG_DOUBLE_BIAS
+			   - LDBL_MANT_DIG, 0)
+      || __builtin_expect (u.ieee.exponent >= 0x7fff - LDBL_MANT_DIG, 0)
+      || __builtin_expect (v.ieee.exponent >= 0x7fff - LDBL_MANT_DIG, 0)
+      || __builtin_expect (w.ieee.exponent >= 0x7fff - LDBL_MANT_DIG, 0)
+      || __builtin_expect (u.ieee.exponent + v.ieee.exponent
+			   <= IEEE854_LONG_DOUBLE_BIAS + LDBL_MANT_DIG, 0))
+    {
+      /* If z is Inf, but x and y are finite, the result should be
+	 z rather than NaN.  */
+      if (w.ieee.exponent == 0x7fff
+	  && u.ieee.exponent != 0x7fff
+          && v.ieee.exponent != 0x7fff)
+	return (z + x) + y;
+      /* If z is zero and x are y are nonzero, compute the result
+	 as x * y to avoid the wrong sign of a zero result if x * y
+	 underflows to 0.  */
+      if (z == 0 && x != 0 && y != 0)
+	return x * y;
+      /* If x or y or z is Inf/NaN, or if x * y is zero, compute as
+	 x * y + z.  */
+      if (u.ieee.exponent == 0x7fff
+	  || v.ieee.exponent == 0x7fff
+	  || w.ieee.exponent == 0x7fff
+	  || x == 0
+	  || y == 0)
+	return x * y + z;
+      /* If fma will certainly overflow, compute as x * y.  */
+      if (u.ieee.exponent + v.ieee.exponent
+	  > 0x7fff + IEEE854_LONG_DOUBLE_BIAS)
+	return x * y;
+      /* If x * y is less than 1/4 of LDBL_TRUE_MIN, neither the
+	 result nor whether there is underflow depends on its exact
+	 value, only on its sign.  */
+      if (u.ieee.exponent + v.ieee.exponent
+	  < IEEE854_LONG_DOUBLE_BIAS - LDBL_MANT_DIG - 2)
+	{
+	  int neg = u.ieee.negative ^ v.ieee.negative;
+	  long double tiny = neg ? -0x1p-16445L : 0x1p-16445L;
+	  if (w.ieee.exponent >= 3)
+	    return tiny + z;
+	  /* Scaling up, adding TINY and scaling down produces the
+	     correct result, because in round-to-nearest mode adding
+	     TINY has no effect and in other modes double rounding is
+	     harmless.  But it may not produce required underflow
+	     exceptions.  */
+	  v.d = z * 0x1p65L + tiny;
+	  if (TININESS_AFTER_ROUNDING
+	      ? v.ieee.exponent < 66
+	      : (w.ieee.exponent == 0
+		 || (w.ieee.exponent == 1
+		     && w.ieee.negative != neg
+		     && w.ieee.mantissa1 == 0
+		     && w.ieee.mantissa0 == 0x80000000)))
+	    {
+	      long double force_underflow = x * y;
+	      math_force_eval (force_underflow);
+	    }
+	  return v.d * 0x1p-65L;
+	}
+      if (u.ieee.exponent + v.ieee.exponent
+	  >= 0x7fff + IEEE854_LONG_DOUBLE_BIAS - LDBL_MANT_DIG)
+	{
+	  /* Compute 1p-64 times smaller result and multiply
+	     at the end.  */
+	  if (u.ieee.exponent > v.ieee.exponent)
+	    u.ieee.exponent -= LDBL_MANT_DIG;
+	  else
+	    v.ieee.exponent -= LDBL_MANT_DIG;
+	  /* If x + y exponent is very large and z exponent is very small,
+	     it doesn't matter if we don't adjust it.  */
+	  if (w.ieee.exponent > LDBL_MANT_DIG)
+	    w.ieee.exponent -= LDBL_MANT_DIG;
+	  adjust = 1;
+	}
+      else if (w.ieee.exponent >= 0x7fff - LDBL_MANT_DIG)
+	{
+	  /* Similarly.
+	     If z exponent is very large and x and y exponents are
+	     very small, adjust them up to avoid spurious underflows,
+	     rather than down.  */
+	  if (u.ieee.exponent + v.ieee.exponent
+	      <= IEEE854_LONG_DOUBLE_BIAS + 2 * LDBL_MANT_DIG)
+	    {
+	      if (u.ieee.exponent > v.ieee.exponent)
+		u.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	      else
+		v.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	    }
+	  else if (u.ieee.exponent > v.ieee.exponent)
+	    {
+	      if (u.ieee.exponent > LDBL_MANT_DIG)
+		u.ieee.exponent -= LDBL_MANT_DIG;
+	    }
+	  else if (v.ieee.exponent > LDBL_MANT_DIG)
+	    v.ieee.exponent -= LDBL_MANT_DIG;
+	  w.ieee.exponent -= LDBL_MANT_DIG;
+	  adjust = 1;
+	}
+      else if (u.ieee.exponent >= 0x7fff - LDBL_MANT_DIG)
+	{
+	  u.ieee.exponent -= LDBL_MANT_DIG;
+	  if (v.ieee.exponent)
+	    v.ieee.exponent += LDBL_MANT_DIG;
+	  else
+	    v.d *= 0x1p64L;
+	}
+      else if (v.ieee.exponent >= 0x7fff - LDBL_MANT_DIG)
+	{
+	  v.ieee.exponent -= LDBL_MANT_DIG;
+	  if (u.ieee.exponent)
+	    u.ieee.exponent += LDBL_MANT_DIG;
+	  else
+	    u.d *= 0x1p64L;
+	}
+      else /* if (u.ieee.exponent + v.ieee.exponent
+		  <= IEEE854_LONG_DOUBLE_BIAS + LDBL_MANT_DIG) */
+	{
+	  if (u.ieee.exponent > v.ieee.exponent)
+	    u.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	  else
+	    v.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	  if (w.ieee.exponent <= 4 * LDBL_MANT_DIG + 6)
+	    {
+	      if (w.ieee.exponent)
+		w.ieee.exponent += 2 * LDBL_MANT_DIG + 2;
+	      else
+		w.d *= 0x1p130L;
+	      adjust = -1;
+	    }
+	  /* Otherwise x * y should just affect inexact
+	     and nothing else.  */
+	}
+      x = u.d;
+      y = v.d;
+      z = w.d;
+    }
+
+  /* Ensure correct sign of exact 0 + 0.  */
+  if (__glibc_unlikely ((x == 0 || y == 0) && z == 0))
+    {
+      x = math_opt_barrier (x);
+      return x * y + z;
+    }
+
+  fenv_t env;
+  feholdexcept (&env);
+  fesetround (FE_TONEAREST);
+
+  /* Multiplication m1 + m2 = x * y using Dekker's algorithm.  */
+#define C ((1LL << (LDBL_MANT_DIG + 1) / 2) + 1)
+  long double x1 = x * C;
+  long double y1 = y * C;
+  long double m1 = x * y;
+  x1 = (x - x1) + x1;
+  y1 = (y - y1) + y1;
+  long double x2 = x - x1;
+  long double y2 = y - y1;
+  long double m2 = (((x1 * y1 - m1) + x1 * y2) + x2 * y1) + x2 * y2;
+
+  /* Addition a1 + a2 = z + m1 using Knuth's algorithm.  */
+  long double a1 = z + m1;
+  long double t1 = a1 - z;
+  long double t2 = a1 - t1;
+  t1 = m1 - t1;
+  t2 = z - t2;
+  long double a2 = t1 + t2;
+  /* Ensure the arithmetic is not scheduled after feclearexcept call.  */
+  math_force_eval (m2);
+  math_force_eval (a2);
+  feclearexcept (FE_INEXACT);
+
+  /* If the result is an exact zero, ensure it has the correct sign.  */
+  if (a1 == 0 && m2 == 0)
+    {
+      feupdateenv (&env);
+      /* Ensure that round-to-nearest value of z + m1 is not reused.  */
+      z = math_opt_barrier (z);
+      return z + m1;
+    }
+
+  fesetround (FE_TOWARDZERO);
+  /* Perform m2 + a2 addition with round to odd.  */
+  u.d = a2 + m2;
+
+  if (__glibc_likely (adjust == 0))
+    {
+      if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
+	u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
+      feupdateenv (&env);
+      /* Result is a1 + u.d.  */
+      return a1 + u.d;
+    }
+  else if (__glibc_likely (adjust > 0))
+    {
+      if ((u.ieee.mantissa1 & 1) == 0 && u.ieee.exponent != 0x7fff)
+	u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
+      feupdateenv (&env);
+      /* Result is a1 + u.d, scaled up.  */
+      return (a1 + u.d) * 0x1p64L;
+    }
+  else
+    {
+      if ((u.ieee.mantissa1 & 1) == 0)
+	u.ieee.mantissa1 |= fetestexcept (FE_INEXACT) != 0;
+      v.d = a1 + u.d;
+      /* Ensure the addition is not scheduled after fetestexcept call.  */
+      math_force_eval (v.d);
+      int j = fetestexcept (FE_INEXACT) != 0;
+      feupdateenv (&env);
+      /* Ensure the following computations are performed in default rounding
+	 mode instead of just reusing the round to zero computation.  */
+      asm volatile ("" : "=m" (u) : "m" (u));
+      /* If a1 + u.d is exact, the only rounding happens during
+	 scaling down.  */
+      if (j == 0)
+	return v.d * 0x1p-130L;
+      /* If result rounded to zero is not subnormal, no double
+	 rounding will occur.  */
+      if (v.ieee.exponent > 130)
+	return (a1 + u.d) * 0x1p-130L;
+      /* If v.d * 0x1p-130L with round to zero is a subnormal above
+	 or equal to LDBL_MIN / 2, then v.d * 0x1p-130L shifts mantissa
+	 down just by 1 bit, which means v.ieee.mantissa1 |= j would
+	 change the round bit, not sticky or guard bit.
+	 v.d * 0x1p-130L never normalizes by shifting up,
+	 so round bit plus sticky bit should be already enough
+	 for proper rounding.  */
+      if (v.ieee.exponent == 130)
+	{
+	  /* If the exponent would be in the normal range when
+	     rounding to normal precision with unbounded exponent
+	     range, the exact result is known and spurious underflows
+	     must be avoided on systems detecting tininess after
+	     rounding.  */
+	  if (TININESS_AFTER_ROUNDING)
+	    {
+	      w.d = a1 + u.d;
+	      if (w.ieee.exponent == 131)
+		return w.d * 0x1p-130L;
+	    }
+	  /* v.ieee.mantissa1 & 2 is LSB bit of the result before rounding,
+	     v.ieee.mantissa1 & 1 is the round bit and j is our sticky
+	     bit.  */
+	  w.d = 0.0L;
+	  w.ieee.mantissa1 = ((v.ieee.mantissa1 & 3) << 1) | j;
+	  w.ieee.negative = v.ieee.negative;
+	  v.ieee.mantissa1 &= ~3U;
+	  v.d *= 0x1p-130L;
+	  w.d *= 0x1p-2L;
+	  return v.d + w.d;
+	}
+      v.ieee.mantissa1 |= j;
+      return v.d * 0x1p-130L;
+    }
+}
+weak_alias (__fmal, fmal)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_frexpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_frexpl.c
new file mode 100644
index 0000000000..799880f373
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_frexpl.c
@@ -0,0 +1,61 @@
+/* s_frexpl.c -- long double version of s_frexp.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/*
+ * for non-zero x
+ *	x = frexpl(arg,&exp);
+ * return a long double fp quantity x such that 0.5 <= |x| <1.0
+ * and the corresponding binary exponent "exp". That is
+ *	arg = x*2^exp.
+ * If arg is inf, 0.0, or NaN, then frexpl(arg,&exp) returns arg
+ * with *exp=0.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+#if LDBL_MANT_DIG == 64
+two65 =  3.68934881474191032320e+19L; /* 0x4040, 0x80000000, 0x00000000 */
+#else
+# error "Cannot handle this MANT_DIG"
+#endif
+
+
+long double __frexpl(long double x, int *eptr)
+{
+	u_int32_t se, hx, ix, lx;
+	GET_LDOUBLE_WORDS(se,hx,lx,x);
+	ix = 0x7fff&se;
+	*eptr = 0;
+	if(ix==0x7fff||((ix|hx|lx)==0)) return x + x;	/* 0,inf,nan */
+	if (ix==0x0000) {		/* subnormal */
+	    x *= two65;
+	    GET_LDOUBLE_EXP(se,x);
+	    ix = se&0x7fff;
+	    *eptr = -65;
+	}
+	*eptr += ix-16382;
+	se = (se & 0x8000) | 0x3ffe;
+	SET_LDOUBLE_EXP(x,se);
+	return x;
+}
+weak_alias (__frexpl, frexpl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl.c
new file mode 100644
index 0000000000..e323b4c25b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 0
+#define FUNC fromfpl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
new file mode 100644
index 0000000000..05de1fa6c0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpl_main.c
@@ -0,0 +1,84 @@
+/* Round to integer type.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <fenv.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#define BIAS 0x3fff
+#define MANT_DIG 64
+
+#if UNSIGNED
+# define RET_TYPE uintmax_t
+#else
+# define RET_TYPE intmax_t
+#endif
+
+#include <fromfp.h>
+
+RET_TYPE
+FUNC (long double x, int round, unsigned int width)
+{
+  if (width > INTMAX_WIDTH)
+    width = INTMAX_WIDTH;
+  uint16_t se;
+  uint32_t hx, lx;
+  GET_LDOUBLE_WORDS (se, hx, lx, x);
+  bool negative = (se & 0x8000) != 0;
+  if (width == 0)
+    return fromfp_domain_error (negative, width);
+  if ((hx | lx) == 0)
+    return 0;
+  int exponent = se & 0x7fff;
+  exponent -= BIAS;
+  int max_exponent = fromfp_max_exponent (negative, width);
+  if (exponent > max_exponent)
+    return fromfp_domain_error (negative, width);
+
+  uint64_t ix = (((uint64_t) hx) << 32) | lx;
+  uintmax_t uret;
+  bool half_bit, more_bits;
+  if (exponent >= MANT_DIG - 1)
+    {
+      uret = ix;
+      /* Exponent 63; no shifting required.  */
+      half_bit = false;
+      more_bits = false;
+    }
+  else if (exponent >= -1)
+    {
+      uint64_t h = 1ULL << (MANT_DIG - 2 - exponent);
+      half_bit = (ix & h) != 0;
+      more_bits = (ix & (h - 1)) != 0;
+      if (exponent == -1)
+	uret = 0;
+      else
+	uret = ix >> (MANT_DIG - 1 - exponent);
+    }
+  else
+    {
+      uret = 0;
+      half_bit = false;
+      more_bits = true;
+    }
+  return fromfp_round_and_return (negative, uret, half_bit, more_bits, round,
+				  exponent, max_exponent, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpxl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpxl.c
new file mode 100644
index 0000000000..2f3189d7de
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_fromfpxl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 0
+#define INEXACT 1
+#define FUNC fromfpxl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_getpayloadl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
new file mode 100644
index 0000000000..6efe97baee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_getpayloadl.c
@@ -0,0 +1,32 @@
+/* Get NaN payload.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+long double
+getpayloadl (const long double *x)
+{
+  uint16_t se __attribute__ ((unused));
+  uint32_t hx, lx;
+  GET_LDOUBLE_WORDS (se, hx, lx, *x);
+  hx &= 0x3fffffff;
+  uint64_t ix = ((uint64_t) hx << 32) | lx;
+  return (long double) ix;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_iscanonicall.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
new file mode 100644
index 0000000000..820a45e3a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_iscanonicall.c
@@ -0,0 +1,44 @@
+/* Test whether long double value is canonical.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+int
+__iscanonicall (long double x)
+{
+  uint32_t se, i0, i1 __attribute__ ((unused));
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  int32_t ix = se & 0x7fff;
+  bool mant_high = (i0 & 0x80000000) != 0;
+
+  if (LDBL_MIN_EXP == -16381)
+    /* Intel variant: the high mantissa bit should have a value
+       determined by the exponent.  */
+    return ix > 0 ? mant_high : !mant_high;
+  else
+    /* M68K variant: both values of the high bit are valid for the
+       greatest and smallest exponents, while other exponents require
+       the high bit to be set.  */
+    return ix == 0 || ix == 0x7fff || mant_high;
+}
+libm_hidden_def (__iscanonicall)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_issignalingl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_issignalingl.c
new file mode 100644
index 0000000000..f659bb7b35
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_issignalingl.c
@@ -0,0 +1,44 @@
+/* Test for signaling NaN.
+   Copyright (C) 2013-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+
+int
+__issignalingl (long double x)
+{
+  u_int32_t exi, hxi, lxi;
+  GET_LDOUBLE_WORDS (exi, hxi, lxi, x);
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error not implemented
+#else
+  /* To keep the following comparison simple, toggle the quiet/signaling bit,
+     so that it is set for sNaNs.  This is inverse to IEEE 754-2008 (as well as
+     common practice for IEEE 754-1985).  */
+  hxi ^= 0x40000000;
+  /* If lxi != 0, then set any suitable bit of the significand in hxi.  */
+  hxi |= (lxi | -lxi) >> 31;
+  /* We do not recognize a pseudo NaN as sNaN; they're invalid on 80387 and
+     later.  */
+  /* We have to compare for greater (instead of greater or equal), because x's
+     significand being all-zero designates infinity not NaN.  */
+  return ((exi & 0x7fff) == 0x7fff) && (hxi > 0xc0000000);
+#endif
+}
+libm_hidden_def (__issignalingl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_llrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_llrintl.c
new file mode 100644
index 0000000000..53d33c3999
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_llrintl.c
@@ -0,0 +1,91 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+
+static const long double two63[2] =
+{
+  9.223372036854775808000000e+18, /* 0x403E, 0x00000000, 0x00000000 */
+ -9.223372036854775808000000e+18  /* 0xC03E, 0x00000000, 0x00000000 */
+};
+
+
+long long int
+__llrintl (long double x)
+{
+  int32_t se,j0;
+  u_int32_t i0, i1;
+  long long int result;
+  long double w;
+  long double t;
+  int sx;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+
+  sx = (se >> 15) & 1;
+  j0 = (se & 0x7fff) - 0x3fff;
+
+  if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+      if (j0 >= 63)
+	result = (((long long int) i0 << 32) | i1) << (j0 - 63);
+      else
+	{
+#if defined FE_INVALID || defined FE_INEXACT
+	  /* X < LLONG_MAX + 1 implied by J0 < 63.  */
+	  if (x > (long double) LLONG_MAX)
+	    {
+	      /* In the event of overflow we must raise the "invalid"
+		 exception, but not "inexact".  */
+	      t = __nearbyintl (x);
+	      feraiseexcept (t == LLONG_MAX ? FE_INEXACT : FE_INVALID);
+	    }
+	  else
+#endif
+	    {
+	      w = two63[sx] + x;
+	      t = w - two63[sx];
+	    }
+	  GET_LDOUBLE_WORDS (se, i0, i1, t);
+	  j0 = (se & 0x7fff) - 0x3fff;
+
+	  if (j0 < 0)
+	    result = 0;
+	  else if (j0 <= 31)
+	    result = i0 >> (31 - j0);
+	  else
+	    result = ((long long int) i0 << (j0 - 31)) | (i1 >> (63 - j0));
+	}
+    }
+  else
+    {
+      /* The number is too large.  It is left implementation defined
+	 what happens.  */
+      return (long long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__llrintl, llrintl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_llroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_llroundl.c
new file mode 100644
index 0000000000..f113fabd1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_llroundl.c
@@ -0,0 +1,89 @@
+/* Round long double value to long long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+
+
+long long int
+__llroundl (long double x)
+{
+  int32_t j0;
+  u_int32_t se, i1, i0;
+  long long int result;
+  int sign;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  j0 = (se & 0x7fff) - 0x3fff;
+  sign = (se & 0x8000) != 0 ? -1 : 1;
+
+  if (j0 < 31)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else
+	{
+	  u_int32_t j = i0 + (0x40000000 >> j0);
+	  if (j < i0)
+	    {
+	      j >>= 1;
+	      j |= 0x80000000;
+	      ++j0;
+	    }
+
+	  result = j >> (31 - j0);
+	}
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
+    {
+      if (j0 >= 63)
+	result = (((long long int) i0 << 32) | i1) << (j0 - 63);
+      else
+	{
+	  u_int32_t j = i1 + (0x80000000 >> (j0 - 31));
+
+	  result = (long long int) i0;
+	  if (j < i1)
+	    ++result;
+
+	  if (j0 > 31)
+	    {
+	      result = (result << (j0 - 31)) | (j >> (63 - j0));
+#ifdef FE_INVALID
+	      if (sign == 1 && result == LLONG_MIN)
+		/* Rounding brought the value out of range.  */
+		feraiseexcept (FE_INVALID);
+#endif
+	    }
+	}
+    }
+  else
+    {
+      /* The number is too large.  It is left implementation defined
+	 what happens.  */
+      return (long long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__llroundl, llroundl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_lrintl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_lrintl.c
new file mode 100644
index 0000000000..02dafe67f3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_lrintl.c
@@ -0,0 +1,126 @@
+/* Round argument to nearest integral value according to current rounding
+   direction.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+
+static const long double two63[2] =
+{
+  9.223372036854775808000000e+18, /* 0x403E, 0x00000000, 0x00000000 */
+ -9.223372036854775808000000e+18  /* 0xC03E, 0x00000000, 0x00000000 */
+};
+
+
+long int
+__lrintl (long double x)
+{
+  int32_t se,j0;
+  u_int32_t i0, i1;
+  long int result;
+  long double w;
+  long double t;
+  int sx;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+
+  sx = (se >> 15) & 1;
+  j0 = (se & 0x7fff) - 0x3fff;
+
+  if (j0 < 31)
+    {
+#if defined FE_INVALID || defined FE_INEXACT
+      /* X < LONG_MAX + 1 implied by J0 < 31.  */
+      if (sizeof (long int) == 4
+	  && x > (long double) LONG_MAX)
+	{
+	  /* In the event of overflow we must raise the "invalid"
+	     exception, but not "inexact".  */
+	  t = __nearbyintl (x);
+	  feraiseexcept (t == LONG_MAX ? FE_INEXACT : FE_INVALID);
+	}
+      else
+#endif
+	{
+	  w = two63[sx] + x;
+	  t = w - two63[sx];
+	}
+      GET_LDOUBLE_WORDS (se, i0, i1, t);
+      j0 = (se & 0x7fff) - 0x3fff;
+
+      result = (j0 < 0 ? 0 : i0 >> (31 - j0));
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 >= 63)
+	result = ((long int) i0 << (j0 - 31)) | (i1 << (j0 - 63));
+      else
+	{
+#if defined FE_INVALID || defined FE_INEXACT
+	  /* X < LONG_MAX + 1 implied by J0 < 63.  */
+	  if (sizeof (long int) == 8
+	      && x > (long double) LONG_MAX)
+	    {
+	      /* In the event of overflow we must raise the "invalid"
+		 exception, but not "inexact".  */
+	      t = __nearbyintl (x);
+	      feraiseexcept (t == LONG_MAX ? FE_INEXACT : FE_INVALID);
+	    }
+	  else
+#endif
+	    {
+	      w = two63[sx] + x;
+	      t = w - two63[sx];
+	    }
+	  GET_LDOUBLE_WORDS (se, i0, i1, t);
+	  j0 = (se & 0x7fff) - 0x3fff;
+
+	  if (j0 == 31)
+	    result = (long int) i0;
+	  else
+	    result = ((long int) i0 << (j0 - 31)) | (i1 >> (63 - j0));
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#if defined FE_INVALID || defined FE_INEXACT
+      if (sizeof (long int) == 4
+	  && x < (long double) LONG_MIN
+	  && x > (long double) LONG_MIN - 1.0L)
+	{
+	  /* If truncation produces LONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  t = __nearbyintl (x);
+	  feraiseexcept (t == LONG_MIN ? FE_INEXACT : FE_INVALID);
+	  return LONG_MIN;
+	}
+#endif
+      return (long int) x;
+    }
+
+  return sx ? -result : result;
+}
+
+weak_alias (__lrintl, lrintl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_lroundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_lroundl.c
new file mode 100644
index 0000000000..7f418e6142
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_lroundl.c
@@ -0,0 +1,111 @@
+/* Round long double value to long int.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <fenv.h>
+#include <limits.h>
+#include <math.h>
+
+#include <math_private.h>
+
+
+long int
+__lroundl (long double x)
+{
+  int32_t j0;
+  u_int32_t se, i1, i0;
+  long int result;
+  int sign;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  j0 = (se & 0x7fff) - 0x3fff;
+  sign = (se & 0x8000) != 0 ? -1 : 1;
+
+  if (j0 < 31)
+    {
+      if (j0 < 0)
+	return j0 < -1 ? 0 : sign;
+      else
+	{
+	  u_int32_t j = i0 + (0x40000000 >> j0);
+	  if (j < i0)
+	    {
+	      j >>= 1;
+	      j |= 0x80000000;
+	      ++j0;
+	    }
+
+	  result = j >> (31 - j0);
+#ifdef FE_INVALID
+	  if (sizeof (long int) == 4
+	      && sign == 1
+	      && result == LONG_MIN)
+	    /* Rounding brought the value out of range.  */
+	    feraiseexcept (FE_INVALID);
+#endif
+	}
+    }
+  else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
+    {
+      if (j0 >= 63)
+	result = ((long int) i0 << (j0 - 31)) | (i1 << (j0 - 63));
+      else
+	{
+	  u_int32_t j = i1 + (0x80000000 >> (j0 - 31));
+	  unsigned long int ures = i0;
+
+	  if (j < i1)
+	    ++ures;
+
+	  if (j0 == 31)
+	    result = ures;
+	  else
+	    {
+	      result = (ures << (j0 - 31)) | (j >> (63 - j0));
+#ifdef FE_INVALID
+	      if (sizeof (long int) == 8
+		  && sign == 1
+		  && result == LONG_MIN)
+		/* Rounding brought the value out of range.  */
+		feraiseexcept (FE_INVALID);
+#endif
+	    }
+	}
+    }
+  else
+    {
+      /* The number is too large.  Unless it rounds to LONG_MIN,
+	 FE_INVALID must be raised and the return value is
+	 unspecified.  */
+#ifdef FE_INVALID
+      if (sizeof (long int) == 4
+	  && x <= (long double) LONG_MIN - 0.5L)
+	{
+	  /* If truncation produces LONG_MIN, the cast will not raise
+	     the exception, but may raise "inexact".  */
+	  feraiseexcept (FE_INVALID);
+	  return LONG_MIN;
+	}
+#endif
+      return (long int) x;
+    }
+
+  return sign * result;
+}
+
+weak_alias (__lroundl, lroundl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_modfl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_modfl.c
new file mode 100644
index 0000000000..e9401d0f5d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_modfl.c
@@ -0,0 +1,73 @@
+/* s_modfl.c -- long double version of s_modf.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * modfl(long double x, long double *iptr)
+ * return fraction part of x, and return x's integral part in *iptr.
+ * Method:
+ *	Bit twiddling.
+ *
+ * Exception:
+ *	No exception.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double one = 1.0;
+
+long double
+__modfl(long double x, long double *iptr)
+{
+	int32_t i0,i1,j0;
+	u_int32_t i,se;
+	GET_LDOUBLE_WORDS(se,i0,i1,x);
+	j0 = (se&0x7fff)-0x3fff;	/* exponent of x */
+	if(j0<32) {			/* integer part in high x */
+	    if(j0<0) {			/* |x|<1 */
+		SET_LDOUBLE_WORDS(*iptr,se&0x8000,0,0);	/* *iptr = +-0 */
+		return x;
+	    } else {
+		i = (0x7fffffff)>>j0;
+		if(((i0&i)|i1)==0) {		/* x is integral */
+		    *iptr = x;
+		    SET_LDOUBLE_WORDS(x,se&0x8000,0,0);	/* return +-0 */
+		    return x;
+		} else {
+		    SET_LDOUBLE_WORDS(*iptr,se,i0&(~i),0);
+		    return x - *iptr;
+		}
+	    }
+	} else if (__builtin_expect(j0>63, 0)) { /* no fraction part */
+	    *iptr = x*one;
+	    /* We must handle NaNs separately.  */
+	    if (j0 == 0x4000 && ((i0 & 0x7fffffff) | i1))
+	      return x*one;
+	    SET_LDOUBLE_WORDS(x,se&0x8000,0,0);	/* return +-0 */
+	    return x;
+	} else {			/* fraction part in low x */
+	    i = ((u_int32_t)(0x7fffffff))>>(j0-32);
+	    if((i1&i)==0) { 		/* x is integral */
+		*iptr = x;
+		SET_LDOUBLE_WORDS(x,se&0x8000,0,0);	/* return +-0 */
+		return x;
+	    } else {
+		SET_LDOUBLE_WORDS(*iptr,se,i0,i1&(~i));
+		return x - *iptr;
+	    }
+	}
+}
+weak_alias (__modfl, modfl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttoward.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttoward.c
new file mode 100644
index 0000000000..3d0382eac9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttoward.c
@@ -0,0 +1,86 @@
+/* s_nexttoward.c
+ * Conversion from s_nextafter.c by Ulrich Drepper, Cygnus Support,
+ * drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* IEEE functions
+ *	nexttoward(x,y)
+ *	return the next machine floating-point number of x in the
+ *	direction toward y.
+ *   Special cases:
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+double __nexttoward(double x, long double y)
+{
+	int32_t hx,ix,iy;
+	u_int32_t lx,hy,ly,esy;
+
+	EXTRACT_WORDS(hx,lx,x);
+	GET_LDOUBLE_WORDS(esy,hy,ly,y);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = esy&0x7fff;		/* |y| */
+
+	if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) ||   /* x is nan */
+	   ((iy>=0x7fff)&&(hy|ly)!=0))        /* y is nan */
+	   return x+y;
+	if((long double) x==y) return y;	/* x=y, return y */
+	if((ix|lx)==0) {			/* x == 0 */
+	    double u;
+	    INSERT_WORDS(x,(esy&0x8000)<<16,1); /* return +-minsub */
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if (x > y) {			/* x -= ulp */
+		if(lx==0) hx -= 1;
+		lx -= 1;
+	    } else {				/* x < y, x += ulp */
+		lx += 1;
+		if(lx==0) hx += 1;
+	    }
+	} else {				/* x < 0 */
+	    if (x < y) {			/* x -= ulp */
+		if(lx==0) hx -= 1;
+		lx -= 1;
+	    } else {				/* x > y, x += ulp */
+		lx += 1;
+		if(lx==0) hx += 1;
+	    }
+	}
+	hy = hx&0x7ff00000;
+	if(hy>=0x7ff00000) {
+	  double u = x+x;			/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00100000) {
+	    double u = x*x;			/* underflow */
+	    math_force_eval (u);		/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	INSERT_WORDS(x,hx,lx);
+	return x;
+}
+weak_alias (__nexttoward, nexttoward)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttowardf.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttowardf.c
new file mode 100644
index 0000000000..ae7538942f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nexttowardf.c
@@ -0,0 +1,74 @@
+/* s_nexttowardf.c -- float version of s_nextafter.c.
+ * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+float __nexttowardf(float x, long double y)
+{
+	int32_t hx,ix,iy;
+	u_int32_t hy,ly,esy;
+
+	GET_FLOAT_WORD(hx,x);
+	GET_LDOUBLE_WORDS(esy,hy,ly,y);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = esy&0x7fff;		/* |y| */
+
+	if((ix>0x7f800000) ||			/* x is nan */
+	   (iy>=0x7fff&&((hy|ly)!=0)))		/* y is nan */
+	   return x+y;
+	if((long double) x==y) return y;	/* x=y, return y */
+	if(ix==0) {				/* x == 0 */
+	    float u;
+	    SET_FLOAT_WORD(x,((esy&0x8000)<<16)|1);/* return +-minsub*/
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if(x > y) {				/* x -= ulp */
+		hx -= 1;
+	    } else {				/* x < y, x += ulp */
+		hx += 1;
+	    }
+	} else {				/* x < 0 */
+	    if(x < y) {				/* x -= ulp */
+		hx -= 1;
+	    } else {				/* x > y, x += ulp */
+		hx += 1;
+	    }
+	}
+	hy = hx&0x7f800000;
+	if(hy>=0x7f800000) {
+	  float u = x+x;			/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00800000) {
+	    float u = x*x;			/* underflow */
+	    math_force_eval (u);		/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	SET_FLOAT_WORD(x,hx);
+	return x;
+}
+weak_alias (__nexttowardf, nexttowardf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nextupl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nextupl.c
new file mode 100644
index 0000000000..aa66eaf106
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_nextupl.c
@@ -0,0 +1,84 @@
+/* Return the least floating-point number greater than X.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* Return the least floating-point number greater than X.  */
+long double
+__nextupl (long double x)
+{
+  u_int32_t hx, ix;
+  u_int32_t lx;
+  int32_t esx;
+
+  GET_LDOUBLE_WORDS (esx, hx, lx, x);
+  ix = esx & 0x7fff;
+
+  if (((ix == 0x7fff) && (((hx & 0x7fffffff) | lx) != 0)))  /* x is nan.  */
+    return x + x;
+  if ((ix | hx | lx) == 0)
+    return LDBL_TRUE_MIN;
+  if (esx >= 0)
+    {				/* x > 0.  */
+      if (isinf (x))
+        return x;
+      lx += 1;
+      if (lx == 0)
+        {
+          hx += 1;
+#if LDBL_MIN_EXP == -16381
+          if (hx == 0 || (esx == 0 && hx == 0x80000000))
+#else
+          if (hx == 0)
+#endif
+          {
+            esx += 1;
+            hx |= 0x80000000;
+          }
+        }
+    }
+  else
+    {				/* x < 0.  */
+      if (lx == 0)
+        {
+#if LDBL_MIN_EXP == -16381
+          if (hx <= 0x80000000 && esx != 0xffff8000)
+            {
+              esx -= 1;
+              hx = hx - 1;
+              if ((esx & 0x7fff) > 0)
+                hx |= 0x80000000;
+            }
+          else
+            hx -= 1;
+#else
+          if (ix != 0 && hx == 0x80000000)
+            hx = 0;
+          if (hx == 0)
+            esx -= 1;
+          hx -= 1;
+#endif
+        }
+      lx -= 1;
+    }
+  SET_LDOUBLE_WORDS (x, esx, hx, lx);
+  return x;
+}
+
+weak_alias (__nextupl, nextupl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_remquol.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_remquol.c
new file mode 100644
index 0000000000..ee9a6a7d2a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_remquol.c
@@ -0,0 +1,111 @@
+/* Compute remainder and a congruent to the quotient.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+static const long double zero = 0.0;
+
+
+long double
+__remquol (long double x, long double p, int *quo)
+{
+  int32_t ex,ep,hx,hp;
+  u_int32_t sx,lx,lp;
+  int cquo,qs;
+
+  GET_LDOUBLE_WORDS (ex, hx, lx, x);
+  GET_LDOUBLE_WORDS (ep, hp, lp, p);
+  sx = ex & 0x8000;
+  qs = (sx ^ (ep & 0x8000)) >> 15;
+  ep &= 0x7fff;
+  ex &= 0x7fff;
+
+  /* Purge off exception values.  */
+  if ((ep | hp | lp) == 0)
+    return (x * p) / (x * p); 			/* p = 0 */
+  if ((ex == 0x7fff)				/* x not finite */
+      || ((ep == 0x7fff)			/* p is NaN */
+	  && (((hp & 0x7fffffff) | lp) != 0)))
+    return (x * p) / (x * p);
+
+  if (ep <= 0x7ffb)
+    x = __ieee754_fmodl (x, 8 * p);		/* now x < 8p */
+
+  if (((ex - ep) | (hx - hp) | (lx - lp)) == 0)
+    {
+      *quo = qs ? -1 : 1;
+      return zero * x;
+    }
+
+  x  = fabsl (x);
+  p  = fabsl (p);
+  cquo = 0;
+
+  if (ep <= 0x7ffc && x >= 4 * p)
+    {
+      x -= 4 * p;
+      cquo += 4;
+    }
+  if (ep <= 0x7ffd && x >= 2 * p)
+    {
+      x -= 2 * p;
+      cquo += 2;
+    }
+
+  if (ep < 0x0002)
+    {
+      if (x + x > p)
+	{
+	  x -= p;
+	  ++cquo;
+	  if (x + x >= p)
+	    {
+	      x -= p;
+	      ++cquo;
+	    }
+	}
+    }
+  else
+    {
+      long double p_half = 0.5 * p;
+      if (x > p_half)
+	{
+	  x -= p;
+	  ++cquo;
+	  if (x >= p_half)
+	    {
+	      x -= p;
+	      ++cquo;
+	    }
+	}
+    }
+
+  *quo = qs ? -cquo : cquo;
+
+  /* Ensure correct sign of zero result in round-downward mode.  */
+  if (x == 0.0L)
+    x = 0.0L;
+  if (sx)
+    x = -x;
+  return x;
+}
+weak_alias (__remquol, remquol)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundevenl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundevenl.c
new file mode 100644
index 0000000000..dab6aa6558
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundevenl.c
@@ -0,0 +1,124 @@
+/* Round to nearest integer value, rounding halfway cases to even.
+   ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <stdint.h>
+
+#define BIAS 0x3fff
+#define MANT_DIG 64
+#define MAX_EXP (2 * BIAS + 1)
+
+long double
+roundevenl (long double x)
+{
+  uint16_t se;
+  uint32_t hx, lx;
+  GET_LDOUBLE_WORDS (se, hx, lx, x);
+  int exponent = se & 0x7fff;
+  if (exponent >= BIAS + MANT_DIG - 1)
+    {
+      /* Integer, infinity or NaN.  */
+      if (exponent == MAX_EXP)
+	/* Infinity or NaN; quiet signaling NaNs.  */
+	return x + x;
+      else
+	return x;
+    }
+  else if (exponent >= BIAS + MANT_DIG - 32)
+    {
+      /* Not necessarily an integer; integer bit is in low word.
+	 Locate the bits with exponents 0 and -1.  */
+      int int_pos = (BIAS + MANT_DIG - 1) - exponent;
+      int half_pos = int_pos - 1;
+      uint32_t half_bit = 1U << half_pos;
+      uint32_t int_bit = 1U << int_pos;
+      if ((lx & (int_bit | (half_bit - 1))) != 0)
+	{
+	  /* No need to test whether HALF_BIT is set.  */
+	  lx += half_bit;
+	  if (lx < half_bit)
+	    {
+	      hx++;
+	      if (hx == 0)
+		{
+		  hx = 0x80000000;
+		  se++;
+		}
+	    }
+	}
+      lx &= ~(int_bit - 1);
+    }
+  else if (exponent == BIAS + MANT_DIG - 33)
+    {
+      /* Not necessarily an integer; integer bit is bottom of high
+	 word, half bit is top of low word.  */
+      if (((hx & 1) | (lx & 0x7fffffff)) != 0)
+	{
+	  lx += 0x80000000;
+	  if (lx < 0x80000000)
+	    {
+	      hx++;
+	      if (hx == 0)
+		{
+		  hx = 0x80000000;
+		  se++;
+		}
+	    }
+	}
+      lx = 0;
+    }
+  else if (exponent >= BIAS)
+    {
+      /* At least 1; not necessarily an integer, integer bit and half
+	 bit are in the high word.  Locate the bits with exponents 0
+	 and -1.  */
+      int int_pos = (BIAS + MANT_DIG - 33) - exponent;
+      int half_pos = int_pos - 1;
+      uint32_t half_bit = 1U << half_pos;
+      uint32_t int_bit = 1U << int_pos;
+      if (((hx & (int_bit | (half_bit - 1))) | lx) != 0)
+	{
+	  hx += half_bit;
+	  if (hx < half_bit)
+	    {
+	      hx = 0x80000000;
+	      se++;
+	    }
+	}
+      hx &= ~(int_bit - 1);
+      lx = 0;
+    }
+  else if (exponent == BIAS - 1 && (hx > 0x80000000 || lx != 0))
+    {
+      /* Interval (0.5, 1).  */
+      se = (se & 0x8000) | 0x3fff;
+      hx = 0x80000000;
+      lx = 0;
+    }
+  else
+    {
+      /* Rounds to 0.  */
+      se &= 0x8000;
+      hx = 0;
+      lx = 0;
+    }
+  SET_LDOUBLE_WORDS (x, se, hx, lx);
+  return x;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundl.c
new file mode 100644
index 0000000000..d8918d2874
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_roundl.c
@@ -0,0 +1,92 @@
+/* Round long double to integer away from zero.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+#include <math_private.h>
+
+
+long double
+__roundl (long double x)
+{
+  int32_t j0;
+  u_int32_t se, i1, i0;
+
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+  j0 = (se & 0x7fff) - 0x3fff;
+  if (j0 < 31)
+    {
+      if (j0 < 0)
+	{
+	  se &= 0x8000;
+	  i0 = i1 = 0;
+	  if (j0 == -1)
+	    {
+	      se |= 0x3fff;
+	      i0 = 0x80000000;
+	    }
+	}
+      else
+	{
+	  u_int32_t i = 0x7fffffff >> j0;
+	  if (((i0 & i) | i1) == 0)
+	    /* X is integral.  */
+	    return x;
+
+	  u_int32_t j = i0 + (0x40000000 >> j0);
+	  if (j < i0)
+	    se += 1;
+	  i0 = (j & ~i) | 0x80000000;
+	  i1 = 0;
+	}
+    }
+  else if (j0 > 62)
+    {
+      if (j0 == 0x4000)
+	/* Inf or NaN.  */
+	return x + x;
+      else
+	return x;
+    }
+  else
+    {
+      u_int32_t i = 0xffffffff >> (j0 - 31);
+      if ((i1 & i) == 0)
+	/* X is integral.  */
+	return x;
+
+      u_int32_t j = i1 + (1 << (62 - j0));
+      if (j < i1)
+	{
+	  u_int32_t k = i0 + 1;
+	  if (k < i0)
+	    {
+	      se += 1;
+	      k |= 0x80000000;
+	    }
+	  i0 = k;
+	}
+      i1 = j;
+      i1 &= ~i;
+    }
+
+  SET_LDOUBLE_WORDS (x, se, i0, i1);
+  return x;
+}
+weak_alias (__roundl, roundl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_scalblnl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_scalblnl.c
new file mode 100644
index 0000000000..457e999c6c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_scalblnl.c
@@ -0,0 +1,60 @@
+/* s_scalbnl.c -- long double version of s_scalbn.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/*
+ * scalbnl (long double x, int n)
+ * scalbnl(x,n) returns x* 2**n  computed by  exponent
+ * manipulation rather than by actually performing an
+ * exponentiation or a multiplication.
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+static const long double
+two63   =  0x1p63L,
+twom64  =  0x1p-64L,
+huge   = 1.0e+4900L,
+tiny   = 1.0e-4900L;
+
+long double
+__scalblnl (long double x, long int n)
+{
+	int32_t k,es,hx,lx;
+	GET_LDOUBLE_WORDS(es,hx,lx,x);
+	k = es&0x7fff;				/* extract exponent */
+	if (__builtin_expect(k==0, 0)) {	/* 0 or subnormal x */
+	    if ((lx|(hx&0x7fffffff))==0) return x; /* +-0 */
+	    x *= two63;
+	    GET_LDOUBLE_EXP(es,x);
+	    k = (es&0x7fff) - 63;
+	    }
+	if (__builtin_expect(k==0x7fff, 0)) return x+x;	/* NaN or Inf */
+	if (__builtin_expect(n< -50000, 0))
+	  return tiny*__copysignl(tiny,x);
+	if (__builtin_expect(n> 50000 || k+n > 0x7ffe, 0))
+	  return huge*__copysignl(huge,x); /* overflow  */
+	/* Now k and n are bounded we know that k = k+n does not
+	   overflow.  */
+	k = k+n;
+	if (__builtin_expect(k > 0, 1))		/* normal result */
+	    {SET_LDOUBLE_EXP(x,(es&0x8000)|k); return x;}
+	if (k <= -64)
+	    return tiny*__copysignl(tiny,x); 	/*underflow*/
+	k += 64;				/* subnormal result */
+	SET_LDOUBLE_EXP(x,(es&0x8000)|k);
+	return x*twom64;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl.c
new file mode 100644
index 0000000000..1aba33e6e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl.c
@@ -0,0 +1,3 @@
+#define SIG 0
+#define FUNC setpayloadl
+#include <s_setpayloadl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
new file mode 100644
index 0000000000..c2fd0401d7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadl_main.c
@@ -0,0 +1,68 @@
+/* Set NaN payload.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+#define SET_HIGH_BIT (HIGH_ORDER_BIT_IS_SET_FOR_SNAN ? SIG : !SIG)
+#define BIAS 0x3fff
+#define PAYLOAD_DIG 62
+#define EXPLICIT_MANT_DIG 63
+
+int
+FUNC (long double *x, long double payload)
+{
+  uint32_t hx, lx;
+  uint16_t exponent;
+  GET_LDOUBLE_WORDS (exponent, hx, lx, payload);
+  /* Test if argument is (a) negative or too large; (b) too small,
+     except for 0 when allowed; (c) not an integer.  */
+  if (exponent >= BIAS + PAYLOAD_DIG
+      || (exponent < BIAS && !(SET_HIGH_BIT
+			       && exponent == 0 && hx == 0 && lx == 0)))
+    {
+      SET_LDOUBLE_WORDS (*x, 0, 0, 0);
+      return 1;
+    }
+  int shift = BIAS + EXPLICIT_MANT_DIG - exponent;
+  if (shift < 32
+      ? (lx & ((1U << shift) - 1)) != 0
+      : (lx != 0 || (hx & ((1U << (shift - 32)) - 1)) != 0))
+    {
+      SET_LDOUBLE_WORDS (*x, 0, 0, 0);
+      return 1;
+    }
+  if (exponent != 0)
+    {
+      if (shift >= 32)
+	{
+	  lx = hx >> (shift - 32);
+	  hx = 0;
+	}
+      else if (shift != 0)
+	{
+	  lx = (lx >> shift) | (hx << (32 - shift));
+	  hx >>= shift;
+	}
+    }
+  hx |= 0x80000000 | (SET_HIGH_BIT ? 0x40000000 : 0);
+  SET_LDOUBLE_WORDS (*x, 0x7fff, hx, lx);
+  return 0;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c
new file mode 100644
index 0000000000..d97e2c8206
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_setpayloadsigl.c
@@ -0,0 +1,3 @@
+#define SIG 1
+#define FUNC setpayloadsigl
+#include <s_setpayloadl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_signbitl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_signbitl.c
new file mode 100644
index 0000000000..d430eb8600
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_signbitl.c
@@ -0,0 +1,26 @@
+/* Return nonzero value if number is negative.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+int
+__signbitl (long double x)
+{
+  return __builtin_signbitl (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_sincosl.c
new file mode 100644
index 0000000000..7d33c97162
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_sincosl.c
@@ -0,0 +1,76 @@
+/* Compute sine and cosine of argument.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <errno.h>
+#include <math.h>
+
+#include <math_private.h>
+
+
+void
+__sincosl (long double x, long double *sinx, long double *cosx)
+{
+  int32_t se, i0, i1 __attribute__ ((unused));
+
+  /* High word of x. */
+  GET_LDOUBLE_WORDS (se, i0, i1, x);
+
+  /* |x| ~< pi/4 */
+  se &= 0x7fff;
+  if (se < 0x3ffe || (se == 0x3ffe && i0 <= 0xc90fdaa2))
+    {
+      *sinx = __kernel_sinl (x, 0.0, 0);
+      *cosx = __kernel_cosl (x, 0.0);
+    }
+  else if (se == 0x7fff)
+    {
+      /* sin(Inf or NaN) is NaN */
+      *sinx = *cosx = x - x;
+      if (isinf (x))
+	__set_errno (EDOM);
+    }
+  else
+    {
+      /* Argument reduction needed.  */
+      long double y[2];
+      int n;
+
+      n = __ieee754_rem_pio2l (x, y);
+      switch (n & 3)
+	{
+	case 0:
+	  *sinx = __kernel_sinl (y[0], y[1], 1);
+	  *cosx = __kernel_cosl (y[0], y[1]);
+	  break;
+	case 1:
+	  *sinx = __kernel_cosl (y[0], y[1]);
+	  *cosx = -__kernel_sinl (y[0], y[1], 1);
+	  break;
+	case 2:
+	  *sinx = -__kernel_sinl (y[0], y[1], 1);
+	  *cosx = -__kernel_cosl (y[0], y[1]);
+	  break;
+	default:
+	  *sinx = -__kernel_cosl (y[0], y[1]);
+	  *cosx = __kernel_sinl (y[0], y[1], 1);
+	  break;
+	}
+    }
+}
+weak_alias (__sincosl, sincosl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_sinl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_sinl.c
new file mode 100644
index 0000000000..11e1899822
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_sinl.c
@@ -0,0 +1,88 @@
+/* s_sinl.c -- long double version of s_sin.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* sinl(x)
+ * Return sine function of x.
+ *
+ * kernel function:
+ *	__kernel_sinl		... sine function on [-pi/4,pi/4]
+ *	__kernel_cosl		... cose function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+long double __sinl(long double x)
+{
+	long double y[2],z=0.0;
+	int32_t n, se, i0, i1;
+
+    /* High word of x. */
+	GET_LDOUBLE_WORDS(se,i0,i1,x);
+
+    /* |x| ~< pi/4 */
+	se &= 0x7fff;
+	if(se < 0x3ffe || (se == 0x3ffe && i0 <= 0xc90fdaa2))
+	  return __kernel_sinl(x,z,0);
+
+    /* sin(Inf or NaN) is NaN */
+	else if (se==0x7fff) {
+	  if (i1 == 0 && i0 == 0x80000000)
+	    __set_errno (EDOM);
+	  return x-x;
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    switch(n&3) {
+		case 0: return  __kernel_sinl(y[0],y[1],1);
+		case 1: return  __kernel_cosl(y[0],y[1]);
+		case 2: return -__kernel_sinl(y[0],y[1],1);
+		default:
+			return -__kernel_cosl(y[0],y[1]);
+	    }
+	}
+}
+weak_alias (__sinl, sinl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanhl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanhl.c
new file mode 100644
index 0000000000..38edf9f75e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanhl.c
@@ -0,0 +1,90 @@
+/* s_tanhl.c -- long double version of s_tanh.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* tanhl(x)
+ * Return the Hyperbolic Tangent of x
+ *
+ * Method :
+ *				        x    -x
+ *				       e  - e
+ *	0. tanhl(x) is defined to be -----------
+ *				        x    -x
+ *				       e  + e
+ *	1. reduce x to non-negative by tanhl(-x) = -tanhl(x).
+ *	2.  0      <= x <= 2**-55 : tanhl(x) := x*(one+x)
+ *					         -t
+ *	    2**-55 <  x <=  1     : tanhl(x) := -----; t = expm1l(-2x)
+ *					        t + 2
+ *						      2
+ *	    1      <= x <=  23.0  : tanhl(x) := 1-  ----- ; t=expm1l(2x)
+ *						    t + 2
+ *	    23.0   <  x <= INF    : tanhl(x) := 1.
+ *
+ * Special cases:
+ *	tanhl(NaN) is NaN;
+ *	only tanhl(0)=0 is exact for finite argument.
+ */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+
+static const long double one=1.0, two=2.0, tiny = 1.0e-4900L;
+
+long double __tanhl(long double x)
+{
+	long double t,z;
+	int32_t se;
+	u_int32_t j0,j1,ix;
+
+    /* High word of |x|. */
+	GET_LDOUBLE_WORDS(se,j0,j1,x);
+	ix = se&0x7fff;
+
+    /* x is INF or NaN */
+	if(ix==0x7fff) {
+	    /* for NaN it's not important which branch: tanhl(NaN) = NaN */
+	    if (se&0x8000) return one/x-one;	/* tanhl(-inf)= -1; */
+	    else           return one/x+one;	/* tanhl(+inf)=+1 */
+	}
+
+    /* |x| < 23 */
+	if (ix < 0x4003 || (ix == 0x4003 && j0 < 0xb8000000u)) {/* |x|<23 */
+	    if ((ix|j0|j1) == 0)
+		return x;		/* x == +- 0 */
+	    if (ix<0x3fc8)		/* |x|<2**-55 */
+	      {
+		math_check_force_underflow (x);
+		return x*(one+tiny);	/* tanh(small) = small */
+	      }
+	    if (ix>=0x3fff) {	/* |x|>=1  */
+		t = __expm1l(two*fabsl(x));
+		z = one - two/(t+two);
+	    } else {
+	        t = __expm1l(-two*fabsl(x));
+	        z= -t/(t+two);
+	    }
+    /* |x| > 23, return +-1 */
+	} else {
+	    z = one - tiny;		/* raised inexact flag */
+	}
+	return (se&0x8000)? -z: z;
+}
+weak_alias (__tanhl, tanhl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanl.c
new file mode 100644
index 0000000000..3fbe4a8f6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_tanl.c
@@ -0,0 +1,81 @@
+/* s_tanl.c -- long double version of s_tan.c.
+ * Conversion to long double by Ulrich Drepper,
+ * Cygnus Support, drepper@cygnus.com.
+ */
+
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: $";
+#endif
+
+/* tanl(x)
+ * Return tangent function of x.
+ *
+ * kernel function:
+ *	__kernel_tanl		... tangent function on [-pi/4,pi/4]
+ *	__ieee754_rem_pio2l	... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *	[-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *	in [-pi/4 , +pi/4], and let n = k mod 4.
+ *	We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *	    0	       S	   C		 T
+ *	    1	       C	  -S		-1/T
+ *	    2	      -S	  -C		 T
+ *	    3	      -C	   S		-1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *	TRIG(x) returns trig(x) nearly rounded
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+
+long double __tanl(long double x)
+{
+	long double y[2],z=0.0;
+	int32_t n, se, i0, i1;
+
+    /* High word of x. */
+	GET_LDOUBLE_WORDS(se,i0,i1,x);
+
+    /* |x| ~< pi/4 */
+	se &= 0x7fff;
+	if(se <= 0x3ffe) return __kernel_tanl(x,z,1);
+
+    /* tan(Inf or NaN) is NaN */
+	else if (se==0x7fff) {
+	  if (i1 == 0 && i0 == 0x80000000)
+	    __set_errno (EDOM);
+	  return x-x;
+	}
+
+    /* argument reduction needed */
+	else {
+	    n = __ieee754_rem_pio2l(x,y);
+	    return __kernel_tanl(y[0],y[1],1-((n&1)<<1)); /*   1 -- n even
+							-1 -- n odd */
+	}
+}
+weak_alias (__tanl, tanl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalorderl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalorderl.c
new file mode 100644
index 0000000000..16accad1ff
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalorderl.c
@@ -0,0 +1,57 @@
+/* Total order operation.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalorderl (long double x, long double y)
+{
+  int16_t expx, expy;
+  uint32_t hx, hy;
+  uint32_t lx, ly;
+  GET_LDOUBLE_WORDS (expx, hx, lx, x);
+  GET_LDOUBLE_WORDS (expy, hy, ly, y);
+  if (LDBL_MIN_EXP == -16382)
+    {
+      /* M68K variant: for the greatest exponent, the high mantissa
+	 bit is not significant and both values of it are valid, so
+	 set it before comparing.  For the Intel variant, only one
+	 value of the high mantissa bit is valid for each exponent, so
+	 this is not necessary.  */
+      if ((expx & 0x7fff) == 0x7fff)
+	hx |= 0x80000000;
+      if ((expy & 0x7fff) == 0x7fff)
+	hy |= 0x80000000;
+    }
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error not implemented
+#endif
+  uint32_t x_sign = expx >> 15;
+  uint32_t y_sign = expy >> 15;
+  expx ^= x_sign >> 17;
+  hx ^= x_sign;
+  lx ^= x_sign;
+  expy ^= y_sign >> 17;
+  hy ^= y_sign;
+  ly ^= y_sign;
+  return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalordermagl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
new file mode 100644
index 0000000000..6b370b2ade
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_totalordermagl.c
@@ -0,0 +1,51 @@
+/* Total order operation on absolute values.  ldbl-96 version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_private.h>
+#include <nan-high-order-bit.h>
+#include <stdint.h>
+
+int
+totalordermagl (long double x, long double y)
+{
+  uint16_t expx, expy;
+  uint32_t hx, hy;
+  uint32_t lx, ly;
+  GET_LDOUBLE_WORDS (expx, hx, lx, x);
+  GET_LDOUBLE_WORDS (expy, hy, ly, y);
+  expx &= 0x7fff;
+  expy &= 0x7fff;
+  if (LDBL_MIN_EXP == -16382)
+    {
+      /* M68K variant: for the greatest exponent, the high mantissa
+	 bit is not significant and both values of it are valid, so
+	 set it before comparing.  For the Intel variant, only one
+	 value of the high mantissa bit is valid for each exponent, so
+	 this is not necessary.  */
+      if (expx == 0x7fff)
+	hx |= 0x80000000;
+      if (expy == 0x7fff)
+	hy |= 0x80000000;
+    }
+#if HIGH_ORDER_BIT_IS_SET_FOR_SNAN
+# error not implemented
+#endif
+  return expx < expy || (expx == expy && (hx < hy || (hx == hy && lx <= ly)));
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpl.c
new file mode 100644
index 0000000000..c686daa4a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 0
+#define FUNC ufromfpl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c
new file mode 100644
index 0000000000..906066c83c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/s_ufromfpxl.c
@@ -0,0 +1,4 @@
+#define UNSIGNED 1
+#define INEXACT 1
+#define FUNC ufromfpxl
+#include <s_fromfpl_main.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h b/REORG.TODO/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h
new file mode 100644
index 0000000000..e847b13b40
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/strtod_nan_ldouble.h
@@ -0,0 +1,30 @@
+/* Convert string for NaN payload to corresponding NaN.  For ldbl-96.
+   Copyright (C) 1997-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define FLOAT		long double
+#define SET_MANTISSA(flt, mant)				\
+  do							\
+    {							\
+      union ieee854_long_double u;			\
+      u.d = (flt);					\
+      u.ieee_nan.mantissa0 = (mant) >> 32;		\
+      u.ieee_nan.mantissa1 = (mant);			\
+      if ((u.ieee.mantissa0 | u.ieee.mantissa1) != 0)	\
+	(flt) = u.d;					\
+    }							\
+  while (0)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/strtold_l.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/strtold_l.c
new file mode 100644
index 0000000000..251f91ba9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/strtold_l.c
@@ -0,0 +1,37 @@
+/* Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+
+/* The actual implementation for all floating point sizes is in strtod.c.
+   These macros tell it to produce the `long double' version, `strtold'.  */
+
+#define FLOAT		long double
+#define FLT		LDBL
+#ifdef USE_WIDE_CHAR
+# define STRTOF		wcstold_l
+# define __STRTOF	__wcstold_l
+# define STRTOF_NAN	__wcstold_nan
+#else
+# define STRTOF		strtold_l
+# define __STRTOF	__strtold_l
+# define STRTOF_NAN	__strtold_nan
+#endif
+#define MPN2FLOAT	__mpn_construct_long_double
+#define FLOAT_HUGE_VAL	HUGE_VALL
+
+#include <stdlib/strtod_l.c>
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/t_sincosl.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/t_sincosl.c
new file mode 100644
index 0000000000..77bf9cfdba
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/t_sincosl.c
@@ -0,0 +1,483 @@
+/* Extended-precision floating point sine and cosine tables.
+   Copyright (C) 1999-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Based on quad-precision tables by Jakub Jelinek <jj@ultra.linux.cz>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+/* For 0.1484375 + n/128.0, n=0..82 this table contains
+   first 64 bits of cosine, then at least 64 additional
+   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:
+
+   #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.  */
+  0xf.d2f5320e1b7902100p-4L,
+  -0x6.4b225d06708635580p-68L,
+  0x2.5dc50bc95711d0d80p-4L,
+  0x1.787d108fd438cf5a0p-68L,
+  /* x = 0.1484375 + 1/128.  */
+  0xf.ce1a053e621438b00p-4L,
+  0x6.d60c76e8c45bf0a80p-68L,
+  0x2.7d66258bacd96a400p-4L,
+  -0x1.4cca4c9a3782a6bc0p-68L,
+  /* x = 0.1484375 + 2/128.  */
+  0xf.c8ffa01ba68074100p-4L,
+  0x7.e05962b0d9fdf2000p-68L,
+  0x2.9cfd49b8be4f66540p-4L,
+  -0x1.89354fe340fbd96c0p-68L,
+  /* x = 0.1484375 + 3/128.  */
+  0xf.c3a6170f767ac7300p-4L,
+  0x5.d63d99a9d439e1d80p-68L,
+  0x2.bc89f9f424de54840p-4L,
+  0x1.de7ce03b2514952c0p-68L,
+  /* x = 0.1484375 + 4/128.  */
+  0xf.be0d7f7fef11e7100p-4L,
+  -0x5.5bc47540b095ba800p-68L,
+  0x2.dc0bb80b49a97ffc0p-4L,
+  -0xc.b1722e07246208500p-72L,
+  /* x = 0.1484375 + 5/128.  */
+  0xf.b835efcf670dd2d00p-4L,
+  -0x1.90186db968115ec20p-68L,
+  0x2.fb8205f75e56a2b40p-4L,
+  0x1.6a1c4792f85625880p-68L,
+  /* x = 0.1484375 + 6/128.  */
+  0xf.b21f7f5c156696b00p-4L,
+  0xa.c1fe28ac5fd766700p-76L,
+  0x3.1aec65df552876f80p-4L,
+  0x2.ece9a235671324700p-72L,
+  /* x = 0.1484375 + 7/128.  */
+  0xf.abca467fb3cb8f200p-4L,
+  -0x2.f960fe2715cc521c0p-68L,
+  0x3.3a4a5a19d86246700p-4L,
+  0x1.0f602c44df4fa5140p-68L,
+  /* x = 0.1484375 + 8/128.  */
+  0xf.a5365e8f1d3ca2800p-4L,
+  -0x4.1e24a289519b26800p-68L,
+  0x3.599b652f40ec999c0p-4L,
+  0x1.f12a0a4c8561de160p-68L,
+  /* x = 0.1484375 + 9/128.  */
+  0xf.9e63e1d9e8b6f6f00p-4L,
+  0x2.e296bae5b5ed9c100p-68L,
+  0x3.78df09db8c332ce00p-4L,
+  0xd.2b53d865582e45200p-72L,
+  /* x = 0.1484375 + 10/128.  */
+  0xf.9752eba9fff6b9900p-4L,
+  -0x7.bd415254fab56cd00p-68L,
+  0x3.9814cb10513453cc0p-4L,
+  -0x6.84de43e3595cc8500p-72L,
+  /* x = 0.1484375 + 11/128.  */
+  0xf.90039843324f9b900p-4L,
+  0x4.0416c1984b6cbed00p-68L,
+  0x3.b73c2bf6b4b9f6680p-4L,
+  0xe.f9499c81f0d965100p-72L,
+  /* x = 0.1484375 + 12/128.  */
+  0xf.887604e2c39dbb200p-4L,
+  0xe.4ec5825059a78a000p-72L,
+  0x3.d654aff15cb457a00p-4L,
+  0xf.ca854698aba330400p-72L,
+  /* x = 0.1484375 + 13/128.  */
+  0xf.80aa4fbef750ba800p-4L,
+  -0x7.c2cc346a06b075c00p-68L,
+  0x3.f55dda9e62aed7500p-4L,
+  0x1.3bd7b8e6a3d1635e0p-68L,
+  /* x = 0.1484375 + 14/128.  */
+  0xf.78a098069792dab00p-4L,
+  -0x4.3611bda6e483a5980p-68L,
+  0x4.14572fd94556e6480p-4L,
+  -0xc.29dfd8ec7722b8400p-72L,
+  /* x = 0.1484375 + 15/128.  */
+  0xf.7058fde0788dfc800p-4L,
+  0x5.b8fe88789e4f42500p-72L,
+  0x4.334033bcd90d66080p-4L,
+  -0x3.0a0c93e2b47bbae40p-68L,
+  /* x = 0.1484375 + 16/128.  */
+  0xf.67d3a26af7d07aa00p-4L,
+  0x4.bd6d42af8c0068000p-68L,
+  0x4.52186aa5377ab2080p-4L,
+  0x3.bf2524f52e3a06a80p-68L,
+  /* x = 0.1484375 + 17/128.  */
+  0xf.5f10a7bb77d3dfa00p-4L,
+  0xc.1da8b578427832800p-72L,
+  0x4.70df5931ae1d94600p-4L,
+  0x7.6fe0dcff47fe31b80p-72L,
+  /* x = 0.1484375 + 18/128.  */
+  0xf.561030ddd7a789600p-4L,
+  0xe.a9f4a32c652155500p-72L,
+  0x4.8f948446abcd6b100p-4L,
+  -0x8.0334eff185e4d9100p-72L,
+  /* x = 0.1484375 + 19/128.  */
+  0xf.4cd261d3e6c15bb00p-4L,
+  0x3.69c8758630d2ac000p-68L,
+  0x4.ae37710fad27c8a80p-4L,
+  0x2.9c4cf96c03519b9c0p-68L,
+  /* x = 0.1484375 + 20/128.  */
+  0xf.43575f94d4f6b2700p-4L,
+  0x2.f5fb76b14d2a64ac0p-68L,
+  0x4.ccc7a50127e1de100p-4L,
+  -0x3.494bf3cfd39ae0840p-68L,
+  /* x = 0.1484375 + 21/128.  */
+  0xf.399f500c9e9fd3800p-4L,
+  -0x5.166a8d9c254778900p-68L,
+  0x4.eb44a5da74f600200p-4L,
+  0x7.aaa090f0734e28880p-72L,
+  /* x = 0.1484375 + 22/128.  */
+  0xf.2faa5a1b74e82fd00p-4L,
+  0x6.1fa05f9177380e900p-68L,
+  0x5.09adf9a7b9a5a0f80p-4L,
+  -0x1.c75705c59f5e66be0p-68L,
+  /* x = 0.1484375 + 23/128.  */
+  0xf.2578a595224dd2e00p-4L,
+  0x6.bfa2eb2f99cc67500p-68L,
+  0x5.280326c3cf4818200p-4L,
+  0x3.ba6bb08eac82c2080p-68L,
+  /* x = 0.1484375 + 24/128.  */
+  0xf.1b0a5b406b526d900p-4L,
+  -0x7.93aa0152372f23380p-68L,
+  0x5.4643b3da29de9b380p-4L,
+  -0x2.8eaa110f0ccd04c00p-68L,
+  /* x = 0.1484375 + 25/128.  */
+  0xf.105fa4d66b607a600p-4L,
+  0x7.d44e0427252044380p-68L,
+  0x5.646f27e8bd65cbe00p-4L,
+  0x3.a5d61ff0657229100p-68L,
+  /* x = 0.1484375 + 26/128.  */
+  0xf.0578ad01ede708000p-4L,
+  -0x5.c63f6239467b50100p-68L,
+  0x5.82850a41e1dd46c80p-4L,
+  -0x9.fd15dbb3244403200p-76L,
+  /* x = 0.1484375 + 27/128.  */
+  0xe.fa559f5ec3aec3a00p-4L,
+  0x4.eb03319278a2d4200p-68L,
+  0x5.a084e28e35fda2780p-4L,
+  -0x9.202444aace28b3100p-72L,
+  /* x = 0.1484375 + 28/128.  */
+  0xe.eef6a879146af0c00p-4L,
+  -0x6.46a15d15f53f2c200p-72L,
+  0x5.be6e38ce809554280p-4L,
+  0x3.c14ee9da0d3648400p-68L,
+  /* x = 0.1484375 + 29/128.  */
+  0xe.e35bf5ccac8905300p-4L,
+  -0x3.26e2248cb2c5b81c0p-68L,
+  0x5.dc40955d9084f4880p-4L,
+  0x2.94675a2498de5d840p-68L,
+  /* x = 0.1484375 + 30/128.  */
+  0xe.d785b5c44741b4500p-4L,
+  -0x6.c3a943462cc75eb00p-68L,
+  0x5.f9fb80f21b5364a00p-4L,
+  -0x3.bcdabf5af1dd3ad00p-68L,
+  /* x = 0.1484375 + 31/128.  */
+  0xe.cb7417b8d4ee3ff00p-4L,
+  -0x3.c8545bf8c55b70e00p-68L,
+  0x6.179e84a09a5258a80p-4L,
+  -0x3.f164a0531fc1ada00p-68L,
+  /* x = 0.1484375 + 32/128.  */
+  0xe.bf274bf0bda4f6200p-4L,
+  0x4.47e56a09362679900p-68L,
+  0x6.352929dd264bd4480p-4L,
+  0x2.02ea766325d8aa8c0p-68L,
+  /* x = 0.1484375 + 33/128.  */
+  0xe.b29f839f201fd1400p-4L,
+  -0x4.6c8697d86e9587100p-68L,
+  0x6.529afa7d51b129600p-4L,
+  0x3.1ec197c0a840a11c0p-68L,
+  /* x = 0.1484375 + 34/128.  */
+  0xe.a5dcf0e30cf03e700p-4L,
+  -0x6.8910f4e13d9aea080p-68L,
+  0x6.6ff380ba014410a00p-4L,
+  -0x1.c65cdf4f5c05a02a0p-68L,
+  /* x = 0.1484375 + 35/128.  */
+  0xe.98dfc6c6be031e600p-4L,
+  0xd.d3089cbdd18a75b00p-72L,
+  0x6.8d324731433279700p-4L,
+  0x3.bc712bcc4ccddc480p-68L,
+  /* x = 0.1484375 + 36/128.  */
+  0xe.8ba8393eca7821b00p-4L,
+  -0x5.a9c27cb6e49efee80p-68L,
+  0x6.aa56d8e8249db4e80p-4L,
+  0x3.60a761fe3f9e559c0p-68L,
+  /* x = 0.1484375 + 37/128.  */
+  0xe.7e367d2956cfb1700p-4L,
+  -0x4.955ee1abe632ffa80p-68L,
+  0x6.c760c14c8585a5200p-4L,
+  -0x2.42cb99f5193ad5380p-68L,
+  /* x = 0.1484375 + 38/128.  */
+  0xe.708ac84d4172a3e00p-4L,
+  0x2.737662213429e1400p-68L,
+  0x6.e44f8c36eb10a1c80p-4L,
+  -0xa.d2f6c3ff0b2b84600p-72L,
+  /* x = 0.1484375 + 39/128.  */
+  0xe.62a551594b970a700p-4L,
+  0x7.0b15d41d4c0e48400p-68L,
+  0x7.0122c5ec5028c8d00p-4L,
+  -0xc.c540b02cbf333c800p-76L,
+  /* x = 0.1484375 + 40/128.  */
+  0xe.54864fe33e8575d00p-4L,
+  -0x5.40a42f1a30e4e5780p-68L,
+  0x7.1dd9fb1ff46778500p-4L,
+  0x3.acb970a9f6729c700p-68L,
+  /* x = 0.1484375 + 41/128.  */
+  0xe.462dfc670d421ab00p-4L,
+  0x3.d1a15901228f146c0p-68L,
+  0x7.3a74b8f52947b6800p-4L,
+  0x1.baf6928eb3fb02180p-68L,
+  /* x = 0.1484375 + 42/128.  */
+  0xe.379c9045f29d51800p-4L,
+  -0x3.b7f755b683dfa84c0p-68L,
+  0x7.56f28d011d9852880p-4L,
+  0x2.44a75fc29c779bd80p-68L,
+  /* x = 0.1484375 + 43/128.  */
+  0xe.28d245c58baef7200p-4L,
+  0x2.25e232abc003c4380p-68L,
+  0x7.7353054ca72690d80p-4L,
+  -0x3.391e8e0266194c600p-68L,
+  /* x = 0.1484375 + 44/128.  */
+  0xe.19cf580eeec046b00p-4L,
+  -0x5.ebdd058b7f8131080p-68L,
+  0x7.8f95b0560a9a3bd80p-4L,
+  -0x1.2084267e23c739ee0p-68L,
+  /* x = 0.1484375 + 45/128.  */
+  0xe.0a94032dbea7cee00p-4L,
+  -0x4.222625d0505267a80p-68L,
+  0x7.abba1d12c17bfa200p-4L,
+  -0x2.6d0f26c09f2126680p-68L,
+  /* x = 0.1484375 + 46/128.  */
+  0xd.fb20840f3a9b36f00p-4L,
+  0x7.ae2c515342890b600p-68L,
+  0x7.c7bfdaf13e5ed1700p-4L,
+  0x2.12f8a7525bfb113c0p-68L,
+  /* x = 0.1484375 + 47/128.  */
+  0xd.eb7518814a7a93200p-4L,
+  -0x4.433773ef632be3b00p-68L,
+  0x7.e3a679daaf25c6780p-4L,
+  -0x1.abd434bfd72f69be0p-68L,
+  /* x = 0.1484375 + 48/128.  */
+  0xd.db91ff31879917300p-4L,
+  -0x4.2dbad2f5c7760ae80p-68L,
+  0x7.ff6d8a34bd5e8fa80p-4L,
+  -0x2.b368b7d24aea62100p-68L,
+  /* x = 0.1484375 + 49/128.  */
+  0xd.cb7777ac420705100p-4L,
+  0x6.8f31e3eb780ce9c80p-68L,
+  0x8.1b149ce34caa5a500p-4L,
+  -0x1.9af072f602b295580p-68L,
+  /* x = 0.1484375 + 50/128.  */
+  0xd.bb25c25b8260c1500p-4L,
+  -0x9.1843671366e48f400p-72L,
+  0x8.369b434a372da7f00p-4L,
+  -0x4.a3758e01c931e1f80p-68L,
+  /* x = 0.1484375 + 51/128.  */
+  0xd.aa9d2086082706400p-4L,
+  -0x2.1ae3f617aa166cd00p-72L,
+  0x8.52010f4f080052100p-4L,
+  0x3.78bd8dd614753d080p-68L,
+  /* x = 0.1484375 + 52/128.  */
+  0xd.99ddd44e44a43d500p-4L,
+  -0x2.b5c5c126adfbef900p-68L,
+  0x8.6d45935ab396cb500p-4L,
+  -0x1.bde17dd211ab0caa0p-68L,
+  /* x = 0.1484375 + 53/128.  */
+  0xd.88e820b1526311e00p-4L,
+  -0x2.a9e1043f3e565ac80p-68L,
+  0x8.8868625b4e1dbb200p-4L,
+  0x3.13310133022527200p-68L,
+  /* x = 0.1484375 + 54/128.  */
+  0xd.77bc4985e93a60800p-4L,
+  -0x3.6279746f944394400p-68L,
+  0x8.a3690fc5bfc11c000p-4L,
+  -0x6.aca1d8c657aed0b80p-68L,
+  /* x = 0.1484375 + 55/128.  */
+  0xd.665a937b4ef2b1f00p-4L,
+  0x6.d51bad6d988a44180p-68L,
+  0x8.be472f9776d809b00p-4L,
+  -0xd.477e8edbc29c29900p-72L,
+  /* x = 0.1484375 + 56/128.  */
+  0xd.54c3441844897fd00p-4L,
+  -0x7.07ac0f9aa0e459680p-68L,
+  0x8.d902565817ee78400p-4L,
+  -0x6.431c32ed7f9fee680p-68L,
+  /* x = 0.1484375 + 57/128.  */
+  0xd.42f6a1b9f0168ce00p-4L,
+  -0xf.ce3d09c3726cfb200p-72L,
+  0x8.f39a191b2ba612300p-4L,
+  -0x5.c05b0be2a5c002c00p-68L,
+  /* x = 0.1484375 + 58/128.  */
+  0xd.30f4f392c357ab000p-4L,
+  0x6.61c5fa8a7d9b26600p-68L,
+  0x9.0e0e0d81ca6787900p-4L,
+  0x6.cc92c8ea8c2815c00p-68L,
+  /* x = 0.1484375 + 59/128.  */
+  0xd.1ebe81a95ee752e00p-4L,
+  0x4.8a26bcd32d6e92300p-68L,
+  0x9.285dc9bc45dd9ea00p-4L,
+  0x3.d02457bcce59c4180p-68L,
+  /* x = 0.1484375 + 60/128.  */
+  0xd.0c5394d7722281900p-4L,
+  0x5.e25736c0357470800p-68L,
+  0x9.4288e48bd0335fc00p-4L,
+  0x4.1c4cbd2920497a900p-68L,
+  /* x = 0.1484375 + 61/128.  */
+  0xc.f9b476c897c25c600p-4L,
+  -0x4.018af22c0cf715080p-68L,
+  0x9.5c8ef544210ec0c00p-4L,
+  -0x6.e3b642d55f617ae80p-68L,
+  /* x = 0.1484375 + 62/128.  */
+  0xc.e6e171f92f2e27f00p-4L,
+  0x3.2225327ec440ddb00p-68L,
+  0x9.766f93cd18413a700p-4L,
+  -0x5.503e303903d754480p-68L,
+  /* x = 0.1484375 + 63/128.  */
+  0xc.d3dad1b5328a2e400p-4L,
+  0x5.9f993f4f510881a00p-68L,
+  0x9.902a58a45e27bed00p-4L,
+  0x6.8412b426b675ed500p-68L,
+  /* x = 0.1484375 + 64/128.  */
+  0xc.c0a0e21709883a400p-4L,
+  -0xf.f6ee1ee5f811c4300p-76L,
+  0x9.a9bedcdf01b38da00p-4L,
+  -0x6.c0c287df87e21d700p-68L,
+  /* x = 0.1484375 + 65/128.  */
+  0xc.ad33f00658fe5e800p-4L,
+  0x2.04bbc0f3a66a0e6c0p-68L,
+  0x9.c32cba2b14156ef00p-4L,
+  0x5.256c4f857991ca680p-72L,
+  /* x = 0.1484375 + 66/128.  */
+  0xc.99944936cf48c8900p-4L,
+  0x1.1ff93fe64b3ddb7a0p-68L,
+  0x9.dc738ad14204e6900p-4L,
+  -0x6.53a7d2f07a7d9a700p-68L,
+  /* x = 0.1484375 + 67/128.  */
+  0xc.85c23c26ed7b6f000p-4L,
+  0x1.4ef546c4792968220p-68L,
+  0x9.f592e9b66a9cf9000p-4L,
+  0x6.a3c7aa3c101998480p-68L,
+  /* x = 0.1484375 + 68/128.  */
+  0xc.71be181ecd6875d00p-4L,
+  -0x1.d25a9ea5fc335df80p-68L,
+  0xa.0e8a725d33c828c00p-4L,
+  0x1.1fa50fd9e9a15ffe0p-68L,
+  /* x = 0.1484375 + 69/128.  */
+  0xc.5d882d2ee48030c00p-4L,
+  0x7.c07d28e981e348080p-68L,
+  0xa.2759c0e79c3558200p-4L,
+  0x5.27c32b55f5405c180p-68L,
+  /* x = 0.1484375 + 70/128.  */
+  0xc.4920cc2ec38fb8900p-4L,
+  0x1.b38827db08884fc60p-68L,
+  0xa.400072188acf49d00p-4L,
+  -0x2.94e8c7da1fc7cb900p-68L,
+  /* x = 0.1484375 + 71/128.  */
+  0xc.348846bbd36313400p-4L,
+  -0x7.001d401622ec7e600p-68L,
+  0xa.587e23555bb080800p-4L,
+  0x6.d02b9c662cdd29300p-68L,
+  /* x = 0.1484375 + 72/128.  */
+  0xc.1fbeef380e4ffdd00p-4L,
+  0x5.a613ec8722f644000p-68L,
+  0xa.70d272a76a8d4b700p-4L,
+  -0x2.5f136f8ed448b7480p-68L,
+  /* x = 0.1484375 + 73/128.  */
+  0xc.0ac518c8b6ae71100p-4L,
+  -0x4.5c85c1146f34ea500p-68L,
+  0xa.88fcfebd9a8dd4800p-4L,
+  -0x1.d0c3891061dbc66e0p-68L,
+  /* x = 0.1484375 + 74/128.  */
+  0xb.f59b17550a4406800p-4L,
+  0x7.5969296567cf3e380p-68L,
+  0xa.a0fd66eddb9212300p-4L,
+  0x2.c28520d3911b8a040p-68L,
+  /* x = 0.1484375 + 75/128.  */
+  0xb.e0413f84f2a771c00p-4L,
+  0x6.14946a88cbf4da200p-68L,
+  0xa.b8d34b36acd987200p-4L,
+  0x1.0ed343ec65d7e3ae0p-68L,
+  /* x = 0.1484375 + 76/128.  */
+  0xb.cab7e6bfb2a14aa00p-4L,
+  -0x4.edd3a8b5c89413680p-68L,
+  0xa.d07e4c409d08c5000p-4L,
+  -0x5.c56fa844f53db4780p-68L,
+  /* x = 0.1484375 + 77/128.  */
+  0xb.b4ff632a908f73f00p-4L,
+  -0x3.eae7c6346266c4b00p-68L,
+  0xa.e7fe0b5fc786b2e00p-4L,
+  -0x6.991e2950ebf5b7780p-68L,
+  /* x = 0.1484375 + 78/128.  */
+  0xb.9f180ba77dd075100p-4L,
+  0x6.28e135a9508299000p-68L,
+  0xa.ff522a954f2ba1700p-4L,
+  -0x2.621023be91cc0a180p-68L,
+  /* x = 0.1484375 + 79/128.  */
+  0xb.890237d3bb3c28500p-4L,
+  -0x4.9eb5fac6fe9405f00p-68L,
+  0xb.167a4c90d63c42400p-4L,
+  0x4.cf5493b7cc23bd400p-68L,
+  /* x = 0.1484375 + 80/128.  */
+  0xb.72be40067aaf2c000p-4L,
+  0x5.0dbdb7a14c3d7d500p-68L,
+  0xb.2d7614b1f3aaa2500p-4L,
+  -0x2.0d291df5881e35c00p-68L,
+  /* x = 0.1484375 + 81/128.  */
+  0xb.5c4c7d4f7dae91600p-4L,
+  -0x5.3879330b4e5b67300p-68L,
+  0xb.44452709a59752900p-4L,
+  0x5.913765434a59d1100p-72L,
+  /* x = 0.1484375 + 82/128.  */
+  0xb.45ad4975b1294cb00p-4L,
+  -0x2.35b30bf1370dd5980p-68L,
+  0xb.5ae7285bc10cf5100p-4L,
+  0x5.753847e8f8b7a3100p-68L,
+};
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
new file mode 100644
index 0000000000..3254097754
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/test-canonical-ldbl-96.c
@@ -0,0 +1,141 @@
+/* Test iscanonical and canonicalizel for ldbl-96.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_ldbl.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+struct test
+{
+  bool sign;
+  uint16_t exponent;
+  bool high;
+  uint64_t mantissa;
+  bool canonical;
+};
+
+#define M68K_VARIANT (LDBL_MIN_EXP == -16382)
+
+static const struct test tests[] =
+  {
+    { false, 0, true, 0, M68K_VARIANT },
+    { true, 0, true, 0, M68K_VARIANT },
+    { false, 0, true, 1, M68K_VARIANT },
+    { true, 0, true, 1, M68K_VARIANT },
+    { false, 0, true, 0x100000000ULL, M68K_VARIANT },
+    { true, 0, true, 0x100000000ULL, M68K_VARIANT },
+    { false, 0, false, 0, true },
+    { true, 0, false, 0, true },
+    { false, 0, false, 1, true },
+    { true, 0, false, 1, true },
+    { false, 0, false, 0x100000000ULL, true },
+    { true, 0, false, 0x100000000ULL, true },
+    { false, 1, true, 0, true },
+    { true, 1, true, 0, true },
+    { false, 1, true, 1, true },
+    { true, 1, true, 1, true },
+    { false, 1, true, 0x100000000ULL, true },
+    { true, 1, true, 0x100000000ULL, true },
+    { false, 1, false, 0, false },
+    { true, 1, false, 0, false },
+    { false, 1, false, 1, false },
+    { true, 1, false, 1, false },
+    { false, 1, false, 0x100000000ULL, false },
+    { true, 1, false, 0x100000000ULL, false },
+    { false, 0x7ffe, true, 0, true },
+    { true, 0x7ffe, true, 0, true },
+    { false, 0x7ffe, true, 1, true },
+    { true, 0x7ffe, true, 1, true },
+    { false, 0x7ffe, true, 0x100000000ULL, true },
+    { true, 0x7ffe, true, 0x100000000ULL, true },
+    { false, 0x7ffe, false, 0, false },
+    { true, 0x7ffe, false, 0, false },
+    { false, 0x7ffe, false, 1, false },
+    { true, 0x7ffe, false, 1, false },
+    { false, 0x7ffe, false, 0x100000000ULL, false },
+    { true, 0x7ffe, false, 0x100000000ULL, false },
+    { false, 0x7fff, true, 0, true },
+    { true, 0x7fff, true, 0, true },
+    { false, 0x7fff, true, 1, true },
+    { true, 0x7fff, true, 1, true },
+    { false, 0x7fff, true, 0x100000000ULL, true },
+    { true, 0x7fff, true, 0x100000000ULL, true },
+    { false, 0x7fff, false, 0, M68K_VARIANT },
+    { true, 0x7fff, false, 0, M68K_VARIANT },
+    { false, 0x7fff, false, 1, M68K_VARIANT },
+    { true, 0x7fff, false, 1, M68K_VARIANT },
+    { false, 0x7fff, false, 0x100000000ULL, M68K_VARIANT },
+    { true, 0x7fff, false, 0x100000000ULL, M68K_VARIANT },
+  };
+
+static int
+do_test (void)
+{
+  int result = 0;
+
+  for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
+    {
+      long double ld;
+      SET_LDOUBLE_WORDS (ld, tests[i].exponent | (tests[i].sign << 15),
+			 (tests[i].mantissa >> 32) | (tests[i].high << 31),
+			 tests[i].mantissa & 0xffffffffULL);
+      bool canonical = iscanonical (ld);
+      if (canonical == tests[i].canonical)
+	{
+	  printf ("PASS: iscanonical test %zu\n", i);
+	  long double ldc = 12345.0L;
+	  bool canonicalize_ret = canonicalizel (&ldc, &ld);
+	  if (canonicalize_ret == !canonical)
+	    {
+	      printf ("PASS: canonicalizel test %zu\n", i);
+	      bool canon_ok;
+	      if (!canonical)
+		canon_ok = ldc == 12345.0L;
+	      else if (isnan (ld))
+		canon_ok = isnan (ldc) && !issignaling (ldc);
+	      else
+		canon_ok = ldc == ld;
+	      if (canon_ok)
+		printf ("PASS: canonicalized value test %zu\n", i);
+	      else
+		{
+		  printf ("FAIL: canonicalized value test %zu\n", i);
+		  result = 1;
+		}
+	    }
+	  else
+	    {
+	      printf ("FAIL: canonicalizel test %zu\n", i);
+	      result = 1;
+	    }
+	}
+      else
+	{
+	  printf ("FAIL: iscanonical test %zu\n", i);
+	  result = 1;
+	}
+    }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
new file mode 100644
index 0000000000..4e01f15aa9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/test-totalorderl-ldbl-96.c
@@ -0,0 +1,82 @@
+/* Test totalorderl and totalordermagl for ldbl-96.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <float.h>
+#include <math.h>
+#include <math_ldbl.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+
+static const uint64_t tests[] =
+  {
+    0, 1, 0x4000000000000000ULL, 0x4000000000000001ULL,
+    0x7fffffffffffffffULL
+  };
+
+static int
+do_test (void)
+{
+  int result = 0;
+
+  if (LDBL_MIN_EXP == -16382)
+    for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
+      {
+	long double ldx, ldy, ldnx, ldny;
+	/* Verify that the high bit of the mantissa is ignored for
+	   infinities and NaNs for the M68K variant of this
+	   format.  */
+	SET_LDOUBLE_WORDS (ldx, 0x7fff,
+			   tests[i] >> 32, tests[i] & 0xffffffffULL);
+	SET_LDOUBLE_WORDS (ldy, 0x7fff,
+			   (tests[i] >> 32) | 0x80000000,
+			   tests[i] & 0xffffffffULL);
+	SET_LDOUBLE_WORDS (ldnx, 0xffff,
+			   tests[i] >> 32, tests[i] & 0xffffffffULL);
+	SET_LDOUBLE_WORDS (ldny, 0xffff,
+			   (tests[i] >> 32) | 0x80000000,
+			   tests[i] & 0xffffffffULL);
+	bool to1 = totalorderl (ldx, ldy);
+	bool to2 = totalorderl (ldy, ldx);
+	bool to3 = totalorderl (ldnx, ldny);
+	bool to4 = totalorderl (ldny, ldnx);
+	if (to1 && to2 && to3 && to4)
+	  printf ("PASS: test %zu\n", i);
+	else
+	  {
+	    printf ("FAIL: test %zu\n", i);
+	    result = 1;
+	  }
+	to1 = totalordermagl (ldx, ldy);
+	to2 = totalordermagl (ldy, ldx);
+	to3 = totalordermagl (ldnx, ldny);
+	to4 = totalordermagl (ldny, ldnx);
+	if (to1 && to2 && to3 && to4)
+	  printf ("PASS: test %zu (totalordermagl)\n", i);
+	else
+	  {
+	    printf ("FAIL: test %zu (totalordermagl)\n", i);
+	    result = 1;
+	  }
+      }
+
+  return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/w_expl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/w_expl_compat.c
new file mode 100644
index 0000000000..a0b852a3e2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/w_expl_compat.c
@@ -0,0 +1,34 @@
+/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Ulrich Drepper <drepper@gmail.com>, 2011.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+
+/* wrapper expl */
+long double
+__expl (long double x)
+{
+  long double z = __ieee754_expl (x);
+  if (__builtin_expect (!isfinite (z) || z == 0, 0)
+      && isfinite (x) && _LIB_VERSION != _IEEE_)
+    return __kernel_standard_l (x, x, 206 + !!signbit (x));
+
+  return z;
+}
+hidden_def (__expl)
+weak_alias (__expl, expl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1.c
new file mode 100644
index 0000000000..a20e89309e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1.c
@@ -0,0 +1,39 @@
+/* Compute x^2 + y^2 - 1, without large cancellation error.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <float.h>
+
+#if FLT_EVAL_METHOD == 0
+
+# include <sysdeps/ieee754/dbl-64/x2y2m1.c>
+
+#else
+
+/* Return X^2 + Y^2 - 1, computed without large cancellation error.
+   It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
+   0.5.  */
+
+double
+__x2y2m1 (double x, double y)
+{
+  return (double) __x2y2m1l (x, y);
+}
+
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1l.c b/REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1l.c
new file mode 100644
index 0000000000..a301fb3589
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-96/x2y2m1l.c
@@ -0,0 +1,75 @@
+/* Compute x^2 + y^2 - 1, without large cancellation error.
+   Copyright (C) 2012-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <math.h>
+#include <math_private.h>
+#include <mul_splitl.h>
+#include <stdlib.h>
+
+/* Calculate X + Y exactly and store the result in *HI + *LO.  It is
+   given that |X| >= |Y| and the values are small enough that no
+   overflow occurs.  */
+
+static inline void
+add_split (long double *hi, long double *lo, long double x, long double y)
+{
+  /* Apply Dekker's algorithm.  */
+  *hi = x + y;
+  *lo = (x - *hi) + y;
+}
+
+/* Compare absolute values of floating-point values pointed to by P
+   and Q for qsort.  */
+
+static int
+compare (const void *p, const void *q)
+{
+  long double pld = fabsl (*(const long double *) p);
+  long double qld = fabsl (*(const long double *) q);
+  if (pld < qld)
+    return -1;
+  else if (pld == qld)
+    return 0;
+  else
+    return 1;
+}
+
+/* Return X^2 + Y^2 - 1, computed without large cancellation error.
+   It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
+   0.5.  */
+
+long double
+__x2y2m1l (long double x, long double y)
+{
+  long double vals[5];
+  SET_RESTORE_ROUNDL (FE_TONEAREST);
+  mul_splitl (&vals[1], &vals[0], x, x);
+  mul_splitl (&vals[3], &vals[2], y, y);
+  vals[4] = -1.0L;
+  qsort (vals, 5, sizeof (long double), compare);
+  /* Add up the values so that each element of VALS has absolute value
+     at most equal to the last set bit of the next nonzero
+     element.  */
+  for (size_t i = 0; i <= 3; i++)
+    {
+      add_split (&vals[i + 1], &vals[i], vals[i + 1], vals[i]);
+      qsort (vals + i + 1, 4 - i, sizeof (long double), compare);
+    }
+  /* Now any error from this addition will be small.  */
+  return vals[4] + vals[3] + vals[2] + vals[1] + vals[0];
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/Makefile b/REORG.TODO/sysdeps/ieee754/ldbl-opt/Makefile
new file mode 100644
index 0000000000..81429d0ddd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/Makefile
@@ -0,0 +1,167 @@
+# The`long double' type is a distinct type we support if
+# -mlong-double-128 option is used (or when it becomes a default
+# when -mlong-double-64 is not used).
+long-double-fcts = yes
+ifeq (,$(filter -mlong-double-128,$(sysdep-CFLAGS)))
+sysdep-CFLAGS += -mlong-double-128
+endif
+
+ifeq ($(subdir),math)
+libm-routines += s_nexttowardfd
+routines += math_ldbl_opt nldbl-compat
+
+extra-libs += libnldbl
+libnldbl-calls = asprintf dprintf fprintf fscanf fwprintf fwscanf iovfscanf \
+		 obstack_printf obstack_vprintf printf scanf snprintf \
+		 sprintf sscanf swprintf swscanf vasprintf vdprintf vfprintf \
+		 vfscanf vfwprintf vfwscanf vprintf vscanf vsnprintf \
+		 vsprintf vsscanf vswprintf vswscanf vwprintf vwscanf \
+		 wprintf wscanf printf_fp printf_size \
+		 fprintf_chk fwprintf_chk printf_chk snprintf_chk sprintf_chk \
+		 swprintf_chk vfprintf_chk vfwprintf_chk vprintf_chk \
+		 vsnprintf_chk vsprintf_chk vswprintf_chk vwprintf_chk \
+		 wprintf_chk asprintf_chk vasprintf_chk dprintf_chk \
+		 vdprintf_chk obstack_printf_chk obstack_vprintf_chk \
+		 syslog syslog_chk vsyslog vsyslog_chk \
+		 strfmon strfmon_l \
+		 strfroml \
+		 strtold strtold_l strtoldint wcstold wcstold_l wcstoldint \
+		 qecvt qfcvt qgcvt qecvt_r qfcvt_r \
+		 isinf isnan finite signbit scalb log2 lgamma_r ceil \
+		 significand acos asin atan atan2 cos sin tan cosh sinh \
+		 tanh acosh asinh atanh exp log log10 exp10 pow10 expm1 \
+		 log1p logb exp2 sqrt cbrt fabs floor j0 j1 y0 y1 erf erfc \
+		 lgamma tgamma gamma rint nearbyint round trunc \
+		 copysign fdim fmax fmin nextafter pow hypot fmod \
+		 remainder ldexp scalbn frexp modf scalbln fma nan sincos \
+		 jn yn ilogb remquo lrint lround llrint llround nexttowardf \
+		 nexttoward conj cacos cacosh casin catan catanh ccos ccosh \
+		 casinh cexp clog cproj csin csinh csqrt ctan ctanh cpow \
+		 cabs carg cimag creal clog10 \
+		 isoc99_scanf isoc99_fscanf isoc99_sscanf \
+		 isoc99_vscanf isoc99_vfscanf isoc99_vsscanf \
+		 isoc99_wscanf isoc99_fwscanf isoc99_swscanf \
+		 isoc99_vwscanf isoc99_vfwscanf isoc99_vswscanf \
+		 nextup nextdown totalorder totalordermag getpayload \
+		 canonicalize setpayload setpayloadsig llogb fmaxmag fminmag \
+		 roundeven fromfp ufromfp fromfpx ufromfpx
+libnldbl-routines = $(libnldbl-calls:%=nldbl-%)
+libnldbl-inhibit-o = $(object-suffixes)
+libnldbl-static-only-routines = $(libnldbl-routines)
+extra-objs += $(addsuffix .oS, $(libnldbl-routines))
+
+CFLAGS-nldbl-acos.c = -fno-builtin-acosl
+CFLAGS-nldbl-acosh.c = -fno-builtin-acoshl
+CFLAGS-nldbl-asin.c = -fno-builtin-asinl
+CFLAGS-nldbl-asinh.c = -fno-builtin-asinhl
+CFLAGS-nldbl-atan.c = -fno-builtin-atanl
+CFLAGS-nldbl-atan2.c = -fno-builtin-atan2l
+CFLAGS-nldbl-atanh.c = -fno-builtin-atanhl
+CFLAGS-nldbl-cabs.c = -fno-builtin-cabsl
+CFLAGS-nldbl-cacos.c = -fno-builtin-cacosl
+CFLAGS-nldbl-cacosh.c = -fno-builtin-cacoshl
+CFLAGS-nldbl-canonicalize.c = -fno-builtin-canonicalizel
+CFLAGS-nldbl-carg.c = -fno-builtin-cargl
+CFLAGS-nldbl-casin.c = -fno-builtin-casinl
+CFLAGS-nldbl-casinh.c = -fno-builtin-casinhl
+CFLAGS-nldbl-catan.c = -fno-builtin-catanl
+CFLAGS-nldbl-catanh.c = -fno-builtin-catanhl
+CFLAGS-nldbl-cbrt.c = -fno-builtin-cbrtl
+CFLAGS-nldbl-ccos.c = -fno-builtin-ccosl
+CFLAGS-nldbl-ccosh.c = -fno-builtin-ccoshl
+CFLAGS-nldbl-ceil.c = -fno-builtin-ceill
+CFLAGS-nldbl-cexp.c = -fno-builtin-cexpl
+CFLAGS-nldbl-cimag.c = -fno-builtin-cimagl
+CFLAGS-nldbl-clog.c = -fno-builtin-clogl
+CFLAGS-nldbl-clog10.c = -fno-builtin-clog10l
+CFLAGS-nldbl-conj.c = -fno-builtin-conjl
+CFLAGS-nldbl-copysign.c = -fno-builtin-copysignl
+CFLAGS-nldbl-cos.c = -fno-builtin-cosl
+CFLAGS-nldbl-cosh.c = -fno-builtin-coshl
+CFLAGS-nldbl-cpow.c = -fno-builtin-cpowl
+CFLAGS-nldbl-cproj.c = -fno-builtin-cprojl
+CFLAGS-nldbl-creal.c = -fno-builtin-creall
+CFLAGS-nldbl-csin.c = -fno-builtin-csinl
+CFLAGS-nldbl-csinh.c = -fno-builtin-csinhl
+CFLAGS-nldbl-csqrt.c = -fno-builtin-csqrtl
+CFLAGS-nldbl-ctan.c = -fno-builtin-ctanl
+CFLAGS-nldbl-ctanh.c = -fno-builtin-ctanhl
+CFLAGS-nldbl-erf.c = -fno-builtin-erfl
+CFLAGS-nldbl-erfc.c = -fno-builtin-erfcl
+CFLAGS-nldbl-exp.c = -fno-builtin-expl
+CFLAGS-nldbl-exp10.c = -fno-builtin-exp10l
+CFLAGS-nldbl-exp2.c = -fno-builtin-exp2l
+CFLAGS-nldbl-expm1.c = -fno-builtin-expm1l
+CFLAGS-nldbl-fabs.c = -fno-builtin-fabsl
+CFLAGS-nldbl-fdim.c = -fno-builtin-fdiml
+CFLAGS-nldbl-finite.c = -fno-builtin-finitel
+CFLAGS-nldbl-floor.c = -fno-builtin-floorl
+CFLAGS-nldbl-fma.c = -fno-builtin-fmal
+CFLAGS-nldbl-fmax.c = -fno-builtin-fmaxl
+CFLAGS-nldbl-fmaxmag.c = -fno-builtin-fmaxmagl
+CFLAGS-nldbl-fmin.c = -fno-builtin-fminl
+CFLAGS-nldbl-fminmag.c = -fno-builtin-fminmagl
+CFLAGS-nldbl-fmod.c = -fno-builtin-fmodl
+CFLAGS-nldbl-frexp.c = -fno-builtin-frexpl
+CFLAGS-nldbl-fromfp.c = -fno-builtin-fromfpl
+CFLAGS-nldbl-fromfpx.c = -fno-builtin-fromfpxl
+CFLAGS-nldbl-gamma.c = -fno-builtin-gammal
+CFLAGS-nldbl-getpayload.c = -fno-builtin-getpayloadl
+CFLAGS-nldbl-hypot.c = -fno-builtin-hypotl
+CFLAGS-nldbl-ilogb.c = -fno-builtin-ilogbl
+CFLAGS-nldbl-isinf.c = -fno-builtin-isinfl
+CFLAGS-nldbl-isnan.c = -fno-builtin-isnanl
+CFLAGS-nldbl-j0.c = -fno-builtin-j0l
+CFLAGS-nldbl-j1.c = -fno-builtin-j1l
+CFLAGS-nldbl-jn.c = -fno-builtin-jnl
+CFLAGS-nldbl-ldexp.c = -fno-builtin-ldexpl
+CFLAGS-nldbl-lgamma.c = -fno-builtin-lgammal
+CFLAGS-nldbl-lgamma_r.c = -fno-builtin-lgammal_r
+CFLAGS-nldbl-llogb.c = -fno-builtin-llogbl
+CFLAGS-nldbl-llrint.c = -fno-builtin-llrintl
+CFLAGS-nldbl-llround.c = -fno-builtin-llroundl
+CFLAGS-nldbl-log.c = -fno-builtin-logl
+CFLAGS-nldbl-log10.c = -fno-builtin-log10l
+CFLAGS-nldbl-log1p.c = -fno-builtin-log1pl
+CFLAGS-nldbl-log2.c = -fno-builtin-log2l
+CFLAGS-nldbl-logb.c = -fno-builtin-logbl
+CFLAGS-nldbl-lrint.c = -fno-builtin-lrintl
+CFLAGS-nldbl-lround.c = -fno-builtin-lroundl
+CFLAGS-nldbl-modf.c = -fno-builtin-modfl
+CFLAGS-nldbl-nan.c = -fno-builtin-nanl
+CFLAGS-nldbl-nearbyint.c = -fno-builtin-nearbyintl
+CFLAGS-nldbl-nextafter.c = -fno-builtin-nextafterl
+CFLAGS-nldbl-nextdown.c = -fno-builtin-nextdownl
+CFLAGS-nldbl-nexttoward.c = -fno-builtin-nexttoward -fno-builtin-nexttowardl
+CFLAGS-nldbl-nexttowardf.c = -fno-builtin-nexttowardf
+CFLAGS-nldbl-nextup.c = -fno-builtin-nextupl
+CFLAGS-nldbl-pow.c = -fno-builtin-powl
+CFLAGS-nldbl-pow10.c = -fno-builtin-pow10l
+CFLAGS-nldbl-remainder.c = -fno-builtin-remainderl -fno-builtin-dreml
+CFLAGS-nldbl-remquo.c = -fno-builtin-remquol
+CFLAGS-nldbl-rint.c = -fno-builtin-rintl
+CFLAGS-nldbl-round.c = -fno-builtin-roundl
+CFLAGS-nldbl-roundeven.c = -fno-builtin-roundevenl
+CFLAGS-nldbl-scalb.c = -fno-builtin-scalbl
+CFLAGS-nldbl-scalbln.c = -fno-builtin-scalblnl
+CFLAGS-nldbl-scalbn.c = -fno-builtin-scalbnl
+CFLAGS-nldbl-setpayload.c = -fno-builtin-setpayloadl
+CFLAGS-nldbl-setpayloadsig.c = -fno-builtin-setpayloadsigl
+CFLAGS-nldbl-significand.c = -fno-builtin-significandl
+CFLAGS-nldbl-sin.c = -fno-builtin-sinl
+CFLAGS-nldbl-sincos.c = -fno-builtin-sincosl
+CFLAGS-nldbl-sinh.c = -fno-builtin-sinhl
+CFLAGS-nldbl-sqrt.c = -fno-builtin-sqrtl
+CFLAGS-nldbl-tan.c = -fno-builtin-tanl
+CFLAGS-nldbl-tanh.c = -fno-builtin-tanhl
+CFLAGS-nldbl-tgamma.c = -fno-builtin-tgammal
+CFLAGS-nldbl-totalorder.c = -fno-builtin-totalorderl
+CFLAGS-nldbl-totalordermag.c = -fno-builtin-totalordermagl
+CFLAGS-nldbl-trunc.c = -fno-builtin-truncl
+CFLAGS-nldbl-ufromfp.c = -fno-builtin-ufromfpl
+CFLAGS-nldbl-ufromfpx.c = -fno-builtin-ufromfpxl
+CFLAGS-nldbl-y0.c = -fno-builtin-y0l
+CFLAGS-nldbl-y1.c = -fno-builtin-y1l
+CFLAGS-nldbl-yn.c = -fno-builtin-ynl
+
+endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/Versions b/REORG.TODO/sysdeps/ieee754/ldbl-opt/Versions
new file mode 100644
index 0000000000..d3f0beaef2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/Versions
@@ -0,0 +1,100 @@
+%include <nldbl-abi.h>
+%ifndef NLDBL_VERSION
+% error "nldbl-abi.h must define NLDBL_VERSION"
+%endif
+
+libc {
+  NLDBL_VERSION {
+    # IEEE quad long double functions (older symver is for
+    # IEEE double long double).
+    ldexpl; copysignl; finitel; frexpl; isinfl; isnanl; modfl;
+    __isinfl; __isnanl; __finitel; __signbitl;
+    scalbnl;
+    qecvt; qfcvt; qgcvt; qecvt_r; qfcvt_r;
+
+    strtold; __strtold_internal; wcstold; __wcstold_internal;
+    __strtold_l; strtold_l; __wcstold_l; wcstold_l;
+
+    strfmon; __strfmon_l; strfmon_l;
+    __nldbl_strfmon; __nldbl___strfmon_l; __nldbl_strfmon_l;
+    __nldbl___vstrfmon; __nldbl___vstrfmon_l;
+
+    syslog; vsyslog;
+    __nldbl_syslog; __nldbl_vsyslog;
+    __nldbl___syslog_chk; __nldbl___vsyslog_chk;
+
+    # *printf* family, using IEEE quad long double
+    __asprintf; asprintf; dprintf; fprintf; fwprintf; _IO_fprintf;
+    _IO_printf; _IO_sprintf; _IO_vfprintf; _IO_vsprintf; obstack_printf;
+    obstack_vprintf; printf; __printf_fp; printf_size; snprintf; sprintf;
+    swprintf; vasprintf; vdprintf; vfprintf; vfwprintf; vprintf; vsnprintf;
+    __vsnprintf; vsprintf; vswprintf; vwprintf; wprintf;
+
+    # *printf* family, using IEEE double as long double
+    # The standard functions are __REDIRECTed to these if -mlong-double-64
+    __nldbl___asprintf; __nldbl_asprintf; __nldbl_dprintf; __nldbl_fprintf;
+    __nldbl_fwprintf; __nldbl__IO_fprintf; __nldbl__IO_printf;
+    __nldbl__IO_sprintf; __nldbl__IO_vfprintf; __nldbl__IO_vsprintf;
+    __nldbl_obstack_printf; __nldbl_obstack_vprintf; __nldbl_printf;
+    __nldbl___printf_fp; __nldbl_printf_size; __nldbl_snprintf;
+    __nldbl_sprintf; __nldbl_swprintf; __nldbl_vasprintf; __nldbl_vdprintf;
+    __nldbl_vfprintf; __nldbl_vfwprintf; __nldbl_vprintf; __nldbl_vsnprintf;
+    __nldbl___vsnprintf; __nldbl_vsprintf; __nldbl_vswprintf;
+    __nldbl_vwprintf; __nldbl_wprintf;
+
+    # *scanf family, using IEEE quad long double
+    _IO_sscanf; _IO_vfscanf; __vfscanf; __vsscanf; fscanf; fwscanf; scanf;
+    sscanf; swscanf; vfscanf; vfwscanf; vscanf; vsscanf; vswscanf; vwscanf;
+    wscanf;
+
+    # *scanf family, using IEEE double as long double
+    __nldbl__IO_sscanf; __nldbl__IO_vfscanf; __nldbl___vfscanf;
+    __nldbl___vsscanf; __nldbl_fscanf; __nldbl_fwscanf; __nldbl_scanf;
+    __nldbl_sscanf; __nldbl_swscanf; __nldbl_vfscanf; __nldbl_vfwscanf;
+    __nldbl_vscanf; __nldbl_vsscanf; __nldbl_vswscanf; __nldbl_vwscanf;
+    __nldbl_wscanf;
+
+    # checking versions, using IEEE quad long double
+    __sprintf_chk; __vsprintf_chk; __snprintf_chk; __vsnprintf_chk;
+    __printf_chk; __fprintf_chk; __vprintf_chk; __vfprintf_chk;
+
+    # checking versions, using IEEE double as long double
+    __nldbl___sprintf_chk; __nldbl___vsprintf_chk; __nldbl___snprintf_chk;
+    __nldbl___vsnprintf_chk; __nldbl___printf_chk; __nldbl___fprintf_chk;
+    __nldbl___vprintf_chk; __nldbl___vfprintf_chk;
+    __nldbl___swprintf_chk; __nldbl___vswprintf_chk; __nldbl___fwprintf_chk;
+    __nldbl___wprintf_chk; __nldbl___vfwprintf_chk; __nldbl___vwprintf_chk;
+  }
+  GLIBC_2.7 {
+    __nldbl___isoc99_scanf; __nldbl___isoc99_fscanf;
+    __nldbl___isoc99_sscanf; __nldbl___isoc99_vscanf;
+    __nldbl___isoc99_vfscanf; __nldbl___isoc99_vsscanf;
+    __nldbl___isoc99_wscanf; __nldbl___isoc99_fwscanf;
+    __nldbl___isoc99_swscanf; __nldbl___isoc99_vwscanf;
+    __nldbl___isoc99_vfwscanf; __nldbl___isoc99_vswscanf;
+  }
+  GLIBC_2.8 {
+    __nldbl___asprintf_chk; __nldbl___vasprintf_chk;
+    __nldbl___dprintf_chk; __nldbl___vdprintf_chk;
+    __nldbl___obstack_printf_chk; __nldbl___obstack_vprintf_chk;
+  }
+}
+libm {
+  NLDBL_VERSION {
+    # IEEE quad long double functions (older symver is for
+    # IEEE double as long double).
+    cabsl; cargl; cimagl; conjl; creall; cacosl; cacoshl; casinl;
+    catanl; catanhl; ccosl; ccoshl; casinhl; cexpl; clogl; __clog10l;
+    clog10l; cpowl; cprojl; csinl; csinhl; csqrtl; ctanl; ctanhl;
+    fdiml; fmal; fmaxl; fminl; ldexpl; nanl; nextafterl; nexttowardl;
+    significandl; acosl; acoshl; asinl; atan2l; atanhl; coshl; dreml;
+    exp10l; pow10l; exp2l; fmodl; hypotl; j0l; y0l; j1l; y1l; jnl; ynl;
+    lgammal; gammal; lgammal_r; logl; log10l; log2l; powl; remainderl;
+    scalbl; sinhl; sqrtl; tgammal; asinhl; atanl; cbrtl; ceill; copysignl;
+    erfl; erfcl; expm1l; fabsl; finitel; floorl; frexpl; ilogbl;
+    llrintl; llroundl; log1pl; logbl; lrintl; lroundl; modfl;
+    nearbyintl; remquol; rintl; roundl; scalblnl; scalbnl; sinl; cosl;
+    sincosl; tanl; tanhl; truncl; expl; __finitel; __signbitl;
+    __fpclassifyl; nexttowardf; nexttoward; __nldbl_nexttowardf;
+  }
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/bits/long-double.h b/REORG.TODO/sysdeps/ieee754/ldbl-opt/bits/long-double.h
new file mode 100644
index 0000000000..67db5b9d0c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/bits/long-double.h
@@ -0,0 +1,24 @@
+/* Properties of long double type.  ldbl-opt version.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License  published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+# define __LONG_DOUBLE_MATH_OPTIONAL	1
+# ifndef __LONG_DOUBLE_128__
+#  define __NO_LONG_DOUBLE_MATH		1
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/configure b/REORG.TODO/sysdeps/ieee754/ldbl-opt/configure
new file mode 100644
index 0000000000..ad9d77b88c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/configure
@@ -0,0 +1,39 @@
+# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
+ # Local configure fragment for sysdeps/ieee754/ldbl-opt/.
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC $CFLAGS supports -mlong-double-128" >&5
+$as_echo_n "checking whether $CC $CFLAGS supports -mlong-double-128... " >&6; }
+if ${libc_cv_mlong_double_128+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -mlong-double-128"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+#ifndef __LONG_DOUBLE_128__
+# error "compiler did not predefine __LONG_DOUBLE_128__ as expected"
+#endif
+long double foobar (long double x) { return x; }
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_cv_mlong_double_128=yes
+else
+  libc_cv_mlong_double_128=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mlong_double_128" >&5
+$as_echo "$libc_cv_mlong_double_128" >&6; }
+if test "$libc_cv_mlong_double_128" = no; then
+  as_fn_error $? "this configuration requires -mlong-double-128 support" "$LINENO" 5
+fi
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/configure.ac b/REORG.TODO/sysdeps/ieee754/ldbl-opt/configure.ac
new file mode 100644
index 0000000000..a77fadd1c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/configure.ac
@@ -0,0 +1,19 @@
+sinclude(./aclocal.m4)dnl Autoconf lossage
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local configure fragment for sysdeps/ieee754/ldbl-opt/.
+
+AC_CACHE_CHECK(whether $CC $CFLAGS supports -mlong-double-128,
+	       libc_cv_mlong_double_128, [dnl
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -mlong-double-128"
+AC_TRY_COMPILE(, [
+#ifndef __LONG_DOUBLE_128__
+# error "compiler did not predefine __LONG_DOUBLE_128__ as expected"
+#endif
+long double foobar (long double x) { return x; }],
+	       libc_cv_mlong_double_128=yes,
+	       libc_cv_mlong_double_128=no)
+CFLAGS="$save_CFLAGS"])
+if test "$libc_cv_mlong_double_128" = no; then
+  AC_MSG_ERROR([this configuration requires -mlong-double-128 support])
+fi
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h
new file mode 100644
index 0000000000..67b5268dc4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-double.h
@@ -0,0 +1,38 @@
+/* Overrides for ldbl-opt versioning for double types.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_TYPE_MACROS_DOUBLE
+
+#include <math_ldbl_opt.h>
+#include <first-versions.h>
+
+/* Define compat symbols for long double on platforms
+   where it was not always a distinct type.  */
+#if !defined M_LIBM_NEED_COMPAT
+# define M_LIBM_NEED_COMPAT(f) \
+  LONG_DOUBLE_COMPAT (libm, FIRST_VERSION_libm_ ## f ## l)
+#endif
+
+#if !defined declare_mgen_libm_compat
+# define declare_mgen_libm_compat(from, to)	      \
+  compat_symbol (libm, from, to ## l,		      \
+		 FIRST_VERSION_libm_ ## to ## l);
+#endif
+
+#include_next <math-type-macros-double.h>
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h
new file mode 100644
index 0000000000..20873ae6b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math-type-macros-ldouble.h
@@ -0,0 +1,38 @@
+/* Overrides for ldbl-opt versioning for long double types.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _MATH_TYPE_MACROS_LDOUBLE
+
+#include <math_ldbl_opt.h>
+#include <ldbl-compat-choose.h>
+
+#define maybe_long_double_symbol(lib, from, to)				\
+  LONG_DOUBLE_COMPAT_CHOOSE_ ## lib ## _ ## to (long_double_symbol (lib, \
+								    from, \
+								    to), \
+						weak_alias (from, to))
+
+/* Use properly versioned symbols for long double on platforms where
+   it was not always a distinct type.  */
+#if !defined declare_mgen_alias
+# define declare_mgen_alias(from, to) \
+  maybe_long_double_symbol (libm, from ## l, to ## l);
+#endif
+
+#include_next <math-type-macros-ldouble.h>
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c
new file mode 100644
index 0000000000..49c5c1249b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.c
@@ -0,0 +1,3 @@
+/* Set temporarily to non-zero if long double should be considered
+   the same as double.  */
+__thread int __no_long_double attribute_tls_model_ie attribute_hidden;
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
new file mode 100644
index 0000000000..af861c11ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
@@ -0,0 +1,46 @@
+/* -mlong-double-64 compatibility mode macros.  */
+
+#include <nldbl-abi.h>
+#ifndef LONG_DOUBLE_COMPAT_VERSION
+# error "nldbl-abi.h must define LONG_DOUBLE_COMPAT_VERSION"
+#endif
+
+#include <shlib-compat.h>
+#define LONG_DOUBLE_COMPAT(lib, introduced) \
+  SHLIB_COMPAT(lib, introduced, LONG_DOUBLE_COMPAT_VERSION)
+#define long_double_symbol(lib, local, symbol) \
+  long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
+#ifdef SHARED
+# define ldbl_hidden_def(local, name) libc_hidden_ver (local, name)
+# define ldbl_strong_alias(name, aliasname) \
+  strong_alias (name, __GL_##name##_##aliasname) \
+  long_double_symbol (libc, __GL_##name##_##aliasname, aliasname);
+# define ldbl_weak_alias(name, aliasname) \
+  weak_alias (name, __GL_##name##_##aliasname) \
+  long_double_symbol (libc, __GL_##name##_##aliasname, aliasname);
+# define long_double_symbol_1(lib, local, symbol, version) \
+  versioned_symbol (lib, local, symbol, version)
+#else
+# define ldbl_hidden_def(local, name) libc_hidden_def (name)
+# define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
+# define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname)
+# ifndef __ASSEMBLER__
+/* Note that weak_alias cannot be used - it is defined to nothing
+   in most of the C files.  */
+#  define long_double_symbol_1(lib, local, symbol, version) \
+  _weak_alias (local, symbol)
+# else
+#  define long_double_symbol_1(lib, local, symbol, version) \
+  weak_alias (local, symbol)
+# endif
+#endif
+
+#ifndef __ASSEMBLER__
+# include <math.h>
+# include <math_private.h>
+
+/* Set temporarily to non-zero if long double should be considered
+   the same as double.  */
+extern __thread int __no_long_double attribute_tls_model_ie attribute_hidden;
+# define __ldbl_is_dbl __builtin_expect (__no_long_double, 0)
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acos.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acos.c
new file mode 100644
index 0000000000..813a17e9d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acos.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+acosl (double x)
+{
+  return acos (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acosh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acosh.c
new file mode 100644
index 0000000000..75508e30d7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-acosh.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+acoshl (double x)
+{
+  return acosh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asin.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asin.c
new file mode 100644
index 0000000000..5bbe6cd992
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asin.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+asinl (double x)
+{
+  return asin (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asinh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asinh.c
new file mode 100644
index 0000000000..512f68519b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asinh.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+asinhl (double x)
+{
+  return asinh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c
new file mode 100644
index 0000000000..4be216d610
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf.c
@@ -0,0 +1,17 @@
+#include "nldbl-compat.h"
+
+attribute_hidden
+int
+__asprintf (char **string_ptr, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vasprintf (string_ptr, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+extern __typeof (__asprintf) asprintf attribute_hidden;
+weak_alias (__asprintf, asprintf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf_chk.c
new file mode 100644
index 0000000000..b520181db7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-asprintf_chk.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+attribute_hidden
+int
+__asprintf_chk (char **string_ptr, int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vasprintf_chk (string_ptr, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan.c
new file mode 100644
index 0000000000..2849e48d03
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+atanl (double x)
+{
+  return atan (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan2.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan2.c
new file mode 100644
index 0000000000..d4e5a91702
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atan2.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+atan2l (double x, double y)
+{
+  return atan2 (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atanh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atanh.c
new file mode 100644
index 0000000000..82b54ca6d4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-atanh.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+atanhl (double x)
+{
+  return atanh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cabs.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cabs.c
new file mode 100644
index 0000000000..837822d2d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cabs.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double
+attribute_hidden
+cabsl (double _Complex x)
+{
+  return cabs (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacos.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacos.c
new file mode 100644
index 0000000000..d935b511b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacos.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+cacosl (double _Complex x)
+{
+  return cacos (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c
new file mode 100644
index 0000000000..67f994b849
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cacosh.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+cacoshl (double _Complex x)
+{
+  return cacosh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
new file mode 100644
index 0000000000..9d46163208
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-canonicalize.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for canonicalize.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+canonicalizel (double *cx, double *x)
+{
+  return canonicalize (cx, x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-carg.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-carg.c
new file mode 100644
index 0000000000..bfff141c11
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-carg.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double
+attribute_hidden
+cargl (double _Complex x)
+{
+  return carg (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casin.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casin.c
new file mode 100644
index 0000000000..310aa0ac21
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casin.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+casinl (double _Complex x)
+{
+  return casin (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casinh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casinh.c
new file mode 100644
index 0000000000..71b466ea22
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-casinh.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+casinhl (double _Complex x)
+{
+  return casinh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catan.c
new file mode 100644
index 0000000000..ea5f528ee5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catan.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+catanl (double _Complex x)
+{
+  return catan (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catanh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catanh.c
new file mode 100644
index 0000000000..e6f58aa048
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-catanh.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+catanhl (double _Complex x)
+{
+  return catanh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c
new file mode 100644
index 0000000000..1c353a6e6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cbrt.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+cbrtl (double x)
+{
+  return cbrt (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccos.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccos.c
new file mode 100644
index 0000000000..0e1c2e70f3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccos.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+ccosl (double _Complex x)
+{
+  return ccos (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c
new file mode 100644
index 0000000000..da2bf580af
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ccosh.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+ccoshl (double _Complex x)
+{
+  return ccosh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ceil.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ceil.c
new file mode 100644
index 0000000000..a8fc3d548a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ceil.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+ceill (double x)
+{
+  return ceil (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cexp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cexp.c
new file mode 100644
index 0000000000..f1837afc28
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cexp.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+cexpl (double _Complex x)
+{
+  return cexp (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cimag.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cimag.c
new file mode 100644
index 0000000000..fffbdd58ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cimag.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double
+attribute_hidden
+cimagl (double _Complex x)
+{
+  return cimag (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog.c
new file mode 100644
index 0000000000..ecbae7ba91
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+clogl (double _Complex x)
+{
+  return clog (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog10.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog10.c
new file mode 100644
index 0000000000..193f40104a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-clog10.c
@@ -0,0 +1,11 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+clog10l (double _Complex x)
+{
+  return clog10 (x);
+}
+extern __typeof (clog10l) __clog10l attribute_hidden;
+weak_alias (clog10l, __clog10l)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
new file mode 100644
index 0000000000..84c4aeeed9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.c
@@ -0,0 +1,1085 @@
+/* *printf* family compatibility routines for IEEE double as long double
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@cygnus.com>, 2006.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <libioP.h>
+#include <wchar.h>
+#include <printf.h>
+#include <monetary.h>
+#include <locale/localeinfo.h>
+#include <sys/syslog.h>
+#include <libc-lock.h>
+
+#include "nldbl-compat.h"
+
+libc_hidden_proto (__nldbl_vfprintf)
+libc_hidden_proto (__nldbl_vsscanf)
+libc_hidden_proto (__nldbl_vsprintf)
+libc_hidden_proto (__nldbl_vfscanf)
+libc_hidden_proto (__nldbl_vfwscanf)
+libc_hidden_proto (__nldbl_vdprintf)
+libc_hidden_proto (__nldbl_vswscanf)
+libc_hidden_proto (__nldbl_vfwprintf)
+libc_hidden_proto (__nldbl_vswprintf)
+libc_hidden_proto (__nldbl_vsnprintf)
+libc_hidden_proto (__nldbl_vasprintf)
+libc_hidden_proto (__nldbl_obstack_vprintf)
+libc_hidden_proto (__nldbl___vfwprintf_chk)
+libc_hidden_proto (__nldbl___vsnprintf_chk)
+libc_hidden_proto (__nldbl___vfprintf_chk)
+libc_hidden_proto (__nldbl___vsyslog_chk)
+libc_hidden_proto (__nldbl___vsprintf_chk)
+libc_hidden_proto (__nldbl___vswprintf_chk)
+libc_hidden_proto (__nldbl___vasprintf_chk)
+libc_hidden_proto (__nldbl___vdprintf_chk)
+libc_hidden_proto (__nldbl___obstack_vprintf_chk)
+libc_hidden_proto (__nldbl___vstrfmon)
+libc_hidden_proto (__nldbl___vstrfmon_l)
+libc_hidden_proto (__nldbl___isoc99_vsscanf)
+libc_hidden_proto (__nldbl___isoc99_vfscanf)
+libc_hidden_proto (__nldbl___isoc99_vswscanf)
+libc_hidden_proto (__nldbl___isoc99_vfwscanf)
+
+static void
+__nldbl_cleanup (void *arg)
+{
+  __no_long_double = 0;
+}
+
+#define set_no_long_double() \
+  __libc_cleanup_push (__nldbl_cleanup, NULL); __no_long_double = 1
+#define clear_no_long_double() \
+  __no_long_double = 0; __libc_cleanup_pop (0)
+
+/* Compatibility with IEEE double as long double.
+   IEEE quad long double is used by default for most programs, so
+   we don't need to split this into one file per function for the
+   sake of statically linked programs.  */
+
+int
+attribute_compat_text_section
+__nldbl___asprintf (char **string_ptr, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vasprintf (string_ptr, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+weak_alias (__nldbl___asprintf, __nldbl_asprintf)
+
+int
+attribute_compat_text_section
+__nldbl_dprintf (int d, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vdprintf (d, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl_fprintf (FILE *stream, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfprintf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+weak_alias (__nldbl_fprintf, __nldbl__IO_fprintf)
+
+int
+attribute_compat_text_section weak_function
+__nldbl_fwprintf (FILE *stream, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwprintf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl_printf (const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfprintf (stdout, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+strong_alias (__nldbl_printf, __nldbl__IO_printf)
+
+int
+attribute_compat_text_section
+__nldbl_sprintf (char *s, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vsprintf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+strong_alias (__nldbl_sprintf, __nldbl__IO_sprintf)
+
+int
+attribute_compat_text_section
+__nldbl_vfprintf (FILE *s, const char *fmt, va_list ap)
+{
+  int done;
+  set_no_long_double ();
+  done = _IO_vfprintf (s, fmt, ap);
+  clear_no_long_double ();
+  return done;
+}
+libc_hidden_def (__nldbl_vfprintf)
+strong_alias (__nldbl_vfprintf, __nldbl__IO_vfprintf)
+
+int
+attribute_compat_text_section
+__nldbl__IO_vsprintf (char *string, const char *fmt, va_list ap)
+{
+  int done;
+  __no_long_double = 1;
+  done = _IO_vsprintf (string, fmt, ap);
+  __no_long_double = 0;
+  return done;
+}
+weak_alias (__nldbl__IO_vsprintf, __nldbl_vsprintf)
+libc_hidden_def (__nldbl_vsprintf)
+
+int
+attribute_compat_text_section
+__nldbl_obstack_vprintf (struct obstack *obstack, const char *fmt,
+			 va_list ap)
+{
+  int done;
+  __no_long_double = 1;
+  done = _IO_obstack_vprintf (obstack, fmt, ap);
+  __no_long_double = 0;
+  return done;
+}
+libc_hidden_def (__nldbl_obstack_vprintf)
+
+int
+attribute_compat_text_section
+__nldbl_obstack_printf (struct obstack *obstack, const char *fmt, ...)
+{
+  int result;
+  va_list ap;
+  va_start (ap, fmt);
+  result = __nldbl_obstack_vprintf (obstack, fmt, ap);
+  va_end (ap);
+  return result;
+}
+
+int
+attribute_compat_text_section weak_function
+__nldbl_snprintf (char *s, size_t maxlen, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vsnprintf (s, maxlen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vswprintf (s, n, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section weak_function
+__nldbl_vasprintf (char **result_ptr, const char *fmt, va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = _IO_vasprintf (result_ptr, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl_vasprintf)
+
+int
+attribute_compat_text_section
+__nldbl_vdprintf (int d, const char *fmt, va_list arg)
+{
+  int res;
+  set_no_long_double ();
+  res = _IO_vdprintf (d, fmt, arg);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl_vdprintf)
+
+int
+attribute_compat_text_section weak_function
+__nldbl_vfwprintf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  int res;
+  set_no_long_double ();
+  res = _IO_vfwprintf (s, fmt, ap);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl_vfwprintf)
+
+int
+attribute_compat_text_section
+__nldbl_vprintf (const char *fmt, va_list ap)
+{
+  return __nldbl_vfprintf (stdout, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl_vsnprintf (char *string, size_t maxlen, const char *fmt,
+		   va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = _IO_vsnprintf (string, maxlen, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl_vsnprintf)
+weak_alias (__nldbl_vsnprintf, __nldbl___vsnprintf)
+
+int
+attribute_compat_text_section weak_function
+__nldbl_vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt,
+		   va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = _IO_vswprintf (string, maxlen, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl_vswprintf)
+
+int
+attribute_compat_text_section
+__nldbl_vwprintf (const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vfwprintf (stdout, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl_wprintf (const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwprintf (stdout, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl__IO_vfscanf (FILE *s, const char *fmt, _IO_va_list ap,
+		    int *errp)
+{
+  int res;
+  set_no_long_double ();
+  res = _IO_vfscanf (s, fmt, ap, errp);
+  clear_no_long_double ();
+  return res;
+}
+
+int
+attribute_compat_text_section
+__nldbl___vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+  int res;
+  set_no_long_double ();
+  res = _IO_vfscanf (s, fmt, ap, NULL);
+  clear_no_long_double ();
+  return res;
+}
+weak_alias (__nldbl___vfscanf, __nldbl_vfscanf)
+libc_hidden_def (__nldbl_vfscanf)
+
+int
+attribute_compat_text_section
+__nldbl_sscanf (const char *s, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vsscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+strong_alias (__nldbl_sscanf, __nldbl__IO_sscanf)
+
+int
+attribute_compat_text_section
+__nldbl___vsscanf (const char *string, const char *fmt, va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = _IO_vsscanf (string, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+weak_alias (__nldbl___vsscanf, __nldbl_vsscanf)
+libc_hidden_def (__nldbl_vsscanf)
+
+int
+attribute_compat_text_section weak_function
+__nldbl_vscanf (const char *fmt, va_list ap)
+{
+  return __nldbl_vfscanf (stdin, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl_fscanf (FILE *stream, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl_scanf (const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  int res;
+  set_no_long_double ();
+  res = _IO_vfwscanf (s, fmt, ap, NULL);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl_vfwscanf)
+
+int
+attribute_compat_text_section
+__nldbl_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vswscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl_vswscanf (const wchar_t *string, const wchar_t *fmt, va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = vswscanf (string, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl_vswscanf)
+
+int
+attribute_compat_text_section weak_function
+__nldbl_vwscanf (const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vfwscanf (stdin, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl_fwscanf (FILE *stream, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl_wscanf (const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___fprintf_chk (FILE *stream, int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfprintf_chk (stream, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfwprintf_chk (stream, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___printf_chk (int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfprintf_chk (stdout, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___snprintf_chk (char *s, size_t maxlen, int flag, size_t slen,
+			const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vsnprintf_chk (s, maxlen, flag, slen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___sprintf_chk (char *s, int flag, size_t slen, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vsprintf_chk (s, flag, slen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen,
+			const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vswprintf_chk (s, n, flag, slen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___vfprintf_chk (FILE *s, int flag, const char *fmt, va_list ap)
+{
+  int res;
+  set_no_long_double ();
+  res = __vfprintf_chk (s, flag, fmt, ap);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl___vfprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap)
+{
+  int res;
+  set_no_long_double ();
+  res = __vfwprintf_chk (s, flag, fmt, ap);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl___vfwprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___vprintf_chk (int flag, const char *fmt, va_list ap)
+{
+  return __nldbl___vfprintf_chk (stdout, flag, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl___vsnprintf_chk (char *string, size_t maxlen, int flag, size_t slen,
+			 const char *fmt, va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = __vsnprintf_chk (string, maxlen, flag, slen, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl___vsnprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___vsprintf_chk (char *string, int flag, size_t slen, const char *fmt,
+			va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = __vsprintf_chk (string, flag, slen, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl___vsprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen,
+			 const wchar_t *fmt, va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = __vswprintf_chk (string, maxlen, flag, slen, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl___vswprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___vwprintf_chk (int flag, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___vfwprintf_chk (stdout, flag, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl___wprintf_chk (int flag, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfwprintf_chk (stdout, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___vasprintf_chk (char **ptr, int flag, const char *fmt, va_list arg)
+{
+  int res;
+  __no_long_double = 1;
+  res = __vasprintf_chk (ptr, flag, fmt, arg);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl___vasprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___asprintf_chk (char **ptr, int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vasprintf_chk (ptr, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___vdprintf_chk (int d, int flag, const char *fmt, va_list arg)
+{
+  int res;
+  set_no_long_double ();
+  res = __vdprintf_chk (d, flag, fmt, arg);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl___vdprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___dprintf_chk (int d, int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vdprintf_chk (d, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___obstack_vprintf_chk (struct obstack *obstack, int flag,
+			       const char *fmt, va_list arg)
+{
+  int res;
+  __no_long_double = 1;
+  res = __obstack_vprintf_chk (obstack, flag, fmt, arg);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl___obstack_vprintf_chk)
+
+int
+attribute_compat_text_section
+__nldbl___obstack_printf_chk (struct obstack *obstack, int flag,
+			      const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___obstack_vprintf_chk (obstack, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+extern __typeof (printf_size) __printf_size;
+
+int
+attribute_compat_text_section
+__nldbl_printf_size (FILE *fp, const struct printf_info *info,
+		     const void *const *args)
+{
+  struct printf_info info_no_ldbl = *info;
+
+  info_no_ldbl.is_long_double = 0;
+  return __printf_size (fp, &info_no_ldbl, args);
+}
+
+extern __typeof (__printf_fp) ___printf_fp;
+
+int
+attribute_compat_text_section
+__nldbl___printf_fp (FILE *fp, const struct printf_info *info,
+		     const void *const *args)
+{
+  struct printf_info info_no_ldbl = *info;
+
+  info_no_ldbl.is_long_double = 0;
+  return ___printf_fp (fp, &info_no_ldbl, args);
+}
+
+ssize_t
+attribute_compat_text_section
+__nldbl_strfmon (char *s, size_t maxsize, const char *format, ...)
+{
+  va_list ap;
+  ssize_t res;
+
+  va_start (ap, format);
+  res = __nldbl___vstrfmon (s, maxsize, format, ap);
+  va_end (ap);
+  return res;
+}
+
+ssize_t
+attribute_compat_text_section
+__nldbl___strfmon_l (char *s, size_t maxsize, __locale_t loc,
+		     const char *format, ...)
+{
+  va_list ap;
+  ssize_t res;
+
+  va_start (ap, format);
+  res = __nldbl___vstrfmon_l (s, maxsize, loc, format, ap);
+  va_end (ap);
+  return res;
+}
+weak_alias (__nldbl___strfmon_l, __nldbl_strfmon_l)
+
+ssize_t
+attribute_compat_text_section
+__nldbl___vstrfmon (char *s, size_t maxsize, const char *format, va_list ap)
+{
+  ssize_t res;
+  __no_long_double = 1;
+  res = __vstrfmon_l (s, maxsize, _NL_CURRENT_LOCALE, format, ap);
+  __no_long_double = 0;
+  va_end (ap);
+  return res;
+}
+libc_hidden_def (__nldbl___vstrfmon)
+
+ssize_t
+attribute_compat_text_section
+__nldbl___vstrfmon_l (char *s, size_t maxsize, __locale_t loc,
+		      const char *format, va_list ap)
+{
+  ssize_t res;
+  __no_long_double = 1;
+  res = __vstrfmon_l (s, maxsize, loc, format, ap);
+  __no_long_double = 0;
+  va_end (ap);
+  return res;
+}
+libc_hidden_def (__nldbl___vstrfmon_l)
+
+void
+attribute_compat_text_section
+__nldbl_syslog (int pri, const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  __nldbl___vsyslog_chk (pri, -1, fmt, ap);
+  va_end (ap);
+}
+
+void
+attribute_compat_text_section
+__nldbl___syslog_chk (int pri, int flag, const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  __nldbl___vsyslog_chk (pri, flag, fmt, ap);
+  va_end(ap);
+}
+
+void
+attribute_compat_text_section
+__nldbl___vsyslog_chk (int pri, int flag, const char *fmt, va_list ap)
+{
+  set_no_long_double ();
+  __vsyslog_chk (pri, flag, fmt, ap);
+  clear_no_long_double ();
+}
+libc_hidden_def (__nldbl___vsyslog_chk)
+
+void
+attribute_compat_text_section
+__nldbl_vsyslog (int pri, const char *fmt, va_list ap)
+{
+  __nldbl___vsyslog_chk (pri, -1, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+  int res;
+  set_no_long_double ();
+  res = __isoc99_vfscanf (s, fmt, ap);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl___isoc99_vfscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_sscanf (const char *s, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vsscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vsscanf (const char *string, const char *fmt, va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = __isoc99_vsscanf (string, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl___isoc99_vsscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vscanf (const char *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vfscanf (stdin, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_fscanf (FILE *stream, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_scanf (const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  int res;
+  set_no_long_double ();
+  res = __isoc99_vfwscanf (s, fmt, ap);
+  clear_no_long_double ();
+  return res;
+}
+libc_hidden_def (__nldbl___isoc99_vfwscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vswscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vswscanf (const wchar_t *string, const wchar_t *fmt,
+			   va_list ap)
+{
+  int res;
+  __no_long_double = 1;
+  res = __isoc99_vswscanf (string, fmt, ap);
+  __no_long_double = 0;
+  return res;
+}
+libc_hidden_def (__nldbl___isoc99_vswscanf)
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_vwscanf (const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vfwscanf (stdin, fmt, ap);
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_fwscanf (FILE *stream, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfwscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+int
+attribute_compat_text_section
+__nldbl___isoc99_wscanf (const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfwscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+
+#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __nldbl__IO_printf, _IO_printf, GLIBC_2_0);
+compat_symbol (libc, __nldbl__IO_sprintf, _IO_sprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl__IO_vfprintf, _IO_vfprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl__IO_vsprintf, _IO_vsprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_dprintf, dprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_fprintf, fprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_printf, printf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_sprintf, sprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vfprintf, vfprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vprintf, vprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl__IO_fprintf, _IO_fprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl___vsnprintf, __vsnprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_asprintf, asprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_obstack_printf, obstack_printf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_obstack_vprintf, obstack_vprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_snprintf, snprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vasprintf, vasprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vdprintf, vdprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vsnprintf, vsnprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vsprintf, vsprintf, GLIBC_2_0);
+compat_symbol (libc, __nldbl__IO_sscanf, _IO_sscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl__IO_vfscanf, _IO_vfscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl___vfscanf, __vfscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl___vsscanf, __vsscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_fscanf, fscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_scanf, scanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_sscanf, sscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vfscanf, vfscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vscanf, vscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vsscanf, vsscanf, GLIBC_2_0);
+compat_symbol (libc, __nldbl___printf_fp, __printf_fp, GLIBC_2_0);
+compat_symbol (libc, __nldbl_strfmon, strfmon, GLIBC_2_0);
+compat_symbol (libc, __nldbl_syslog, syslog, GLIBC_2_0);
+compat_symbol (libc, __nldbl_vsyslog, vsyslog, GLIBC_2_0);
+#endif
+#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_1)
+compat_symbol (libc, __nldbl___asprintf, __asprintf, GLIBC_2_1);
+compat_symbol (libc, __nldbl_printf_size, printf_size, GLIBC_2_1);
+compat_symbol (libc, __nldbl___strfmon_l, __strfmon_l, GLIBC_2_1);
+#endif
+#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_2)
+compat_symbol (libc, __nldbl_swprintf, swprintf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_vwprintf, vwprintf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_wprintf, wprintf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_fwprintf, fwprintf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_vfwprintf, vfwprintf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_vswprintf, vswprintf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_fwscanf, fwscanf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_swscanf, swscanf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_vfwscanf, vfwscanf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_vswscanf, vswscanf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_vwscanf, vwscanf, GLIBC_2_2);
+compat_symbol (libc, __nldbl_wscanf, wscanf, GLIBC_2_2);
+#endif
+#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_3)
+compat_symbol (libc, __nldbl_strfmon_l, strfmon_l, GLIBC_2_3);
+#endif
+#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_3_4)
+compat_symbol (libc, __nldbl___sprintf_chk, __sprintf_chk, GLIBC_2_3_4);
+compat_symbol (libc, __nldbl___vsprintf_chk, __vsprintf_chk, GLIBC_2_3_4);
+compat_symbol (libc, __nldbl___snprintf_chk, __snprintf_chk, GLIBC_2_3_4);
+compat_symbol (libc, __nldbl___vsnprintf_chk, __vsnprintf_chk, GLIBC_2_3_4);
+compat_symbol (libc, __nldbl___printf_chk, __printf_chk, GLIBC_2_3_4);
+compat_symbol (libc, __nldbl___fprintf_chk, __fprintf_chk, GLIBC_2_3_4);
+compat_symbol (libc, __nldbl___vprintf_chk, __vprintf_chk, GLIBC_2_3_4);
+compat_symbol (libc, __nldbl___vfprintf_chk, __vfprintf_chk, GLIBC_2_3_4);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.h b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
new file mode 100644
index 0000000000..72ec0db390
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-compat.h
@@ -0,0 +1,104 @@
+/* Prototypes for compatibility double == long double entry points.
+   Copyright (C) 2006-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Jakub Jelinek <jakub@cygnus.com>, 2006.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef __NLDBL_COMPAT_H
+#define __NLDBL_COMPAT_H	1
+
+/* Avoid long double prototypes.  */
+#define __NO_LONG_DOUBLE_MATH	1
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <printf.h>
+#include <wchar.h>
+#include <math.h>
+#include <monetary.h>
+#include <sys/syslog.h>
+
+
+/* Declare the __nldbl_NAME function the wrappers call that's in libc.so.  */
+#define NLDBL_DECL(name) extern __typeof (name) __nldbl_##name
+
+NLDBL_DECL (_IO_vfscanf);
+NLDBL_DECL (vfscanf);
+NLDBL_DECL (vfwscanf);
+NLDBL_DECL (obstack_vprintf);
+NLDBL_DECL (vasprintf);
+NLDBL_DECL (dprintf);
+NLDBL_DECL (vdprintf);
+NLDBL_DECL (fprintf);
+NLDBL_DECL (vfprintf);
+NLDBL_DECL (vfwprintf);
+NLDBL_DECL (vsnprintf);
+NLDBL_DECL (vsprintf);
+NLDBL_DECL (vsscanf);
+NLDBL_DECL (vswprintf);
+NLDBL_DECL (vswscanf);
+NLDBL_DECL (__asprintf);
+NLDBL_DECL (asprintf);
+NLDBL_DECL (__printf_fp);
+NLDBL_DECL (printf_size);
+NLDBL_DECL (syslog);
+NLDBL_DECL (vsyslog);
+NLDBL_DECL (qecvt);
+NLDBL_DECL (qfcvt);
+NLDBL_DECL (qgcvt);
+NLDBL_DECL (__vstrfmon_l);
+NLDBL_DECL (__isoc99_scanf);
+NLDBL_DECL (__isoc99_fscanf);
+NLDBL_DECL (__isoc99_sscanf);
+NLDBL_DECL (__isoc99_vscanf);
+NLDBL_DECL (__isoc99_vfscanf);
+NLDBL_DECL (__isoc99_vsscanf);
+NLDBL_DECL (__isoc99_wscanf);
+NLDBL_DECL (__isoc99_fwscanf);
+NLDBL_DECL (__isoc99_swscanf);
+NLDBL_DECL (__isoc99_vwscanf);
+NLDBL_DECL (__isoc99_vfwscanf);
+NLDBL_DECL (__isoc99_vswscanf);
+
+/* This one does not exist in the normal interface, only
+   __nldbl___vstrfmon really exists.  */
+extern ssize_t __nldbl___vstrfmon (char *, size_t, const char *, va_list)
+  __THROW;
+
+/* These don't use __typeof because they were not declared by the headers,
+   since we don't compile with _FORTIFY_SOURCE.  */
+extern int __nldbl___vfprintf_chk (FILE *__restrict, int,
+				   const char *__restrict, _G_va_list);
+extern int __nldbl___vfwprintf_chk (FILE *__restrict, int,
+				    const wchar_t *__restrict, __gnuc_va_list);
+extern int __nldbl___vsprintf_chk (char *__restrict, int, size_t,
+				   const char *__restrict, _G_va_list) __THROW;
+extern int __nldbl___vsnprintf_chk (char *__restrict, size_t, int, size_t,
+				    const char *__restrict, _G_va_list)
+  __THROW;
+extern int __nldbl___vswprintf_chk (wchar_t *__restrict, size_t, int, size_t,
+				    const wchar_t *__restrict, __gnuc_va_list)
+  __THROW;
+extern int __nldbl___vasprintf_chk (char **, int, const char *, _G_va_list)
+  __THROW;
+extern int __nldbl___vdprintf_chk (int, int, const char *, _G_va_list);
+extern int __nldbl___obstack_vprintf_chk (struct obstack *, int, const char *,
+					  _G_va_list) __THROW;
+extern void __nldbl___vsyslog_chk (int, int, const char *, va_list);
+
+
+#endif /* __NLDBL_COMPAT_H */
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-conj.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-conj.c
new file mode 100644
index 0000000000..8927ea9968
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-conj.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+conjl (double _Complex x)
+{
+  return conj (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c
new file mode 100644
index 0000000000..045f00dda8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-copysign.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+copysignl (double x, double y)
+{
+  return __copysign (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cos.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cos.c
new file mode 100644
index 0000000000..08738af048
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cos.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+cosl (double x)
+{
+  return cos (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cosh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cosh.c
new file mode 100644
index 0000000000..0ab834ffd9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cosh.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+coshl (double x)
+{
+  return cosh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cpow.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cpow.c
new file mode 100644
index 0000000000..709e7d73b1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cpow.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+cpowl (double _Complex x, double _Complex y)
+{
+  return cpow (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cproj.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cproj.c
new file mode 100644
index 0000000000..6f88b88bf2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-cproj.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+cprojl (double _Complex x)
+{
+  return cproj (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-creal.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-creal.c
new file mode 100644
index 0000000000..b02ce6e5e4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-creal.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double
+attribute_hidden
+creall (double _Complex x)
+{
+  return creal (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csin.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csin.c
new file mode 100644
index 0000000000..b2e2c9c8ef
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csin.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+csinl (double _Complex x)
+{
+  return csin (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csinh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csinh.c
new file mode 100644
index 0000000000..2bcba920e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csinh.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+csinhl (double _Complex x)
+{
+  return csinh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c
new file mode 100644
index 0000000000..ae00a29885
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-csqrt.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+csqrtl (double _Complex x)
+{
+  return csqrt (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctan.c
new file mode 100644
index 0000000000..422c5cce94
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctan.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+ctanl (double _Complex x)
+{
+  return ctan (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c
new file mode 100644
index 0000000000..f3842ed26f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ctanh.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+#include <complex.h>
+
+double _Complex
+attribute_hidden
+ctanhl (double _Complex x)
+{
+  return ctanh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c
new file mode 100644
index 0000000000..6e26db2a24
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+attribute_hidden
+int
+dprintf (int d, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vdprintf (d, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf_chk.c
new file mode 100644
index 0000000000..b3e2359128
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-dprintf_chk.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+attribute_hidden
+int
+__dprintf_chk (int d, int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vdprintf_chk (d, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erf.c
new file mode 100644
index 0000000000..0032c1febc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+erfl (double x)
+{
+  return erf (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erfc.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erfc.c
new file mode 100644
index 0000000000..21d09680aa
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-erfc.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+erfcl (double x)
+{
+  return erfc (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp.c
new file mode 100644
index 0000000000..ad2c89b6d5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+expl (double x)
+{
+  return exp (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp10.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp10.c
new file mode 100644
index 0000000000..2d0ead686b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp10.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+exp10l (double x)
+{
+  return exp10 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp2.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp2.c
new file mode 100644
index 0000000000..d5fce3970d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-exp2.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+exp2l (double x)
+{
+  return exp2 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-expm1.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-expm1.c
new file mode 100644
index 0000000000..be5c6e51c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-expm1.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+expm1l (double x)
+{
+  return expm1 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fabs.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fabs.c
new file mode 100644
index 0000000000..10729a6ec0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fabs.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fabsl (double x)
+{
+  return fabs (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fdim.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fdim.c
new file mode 100644
index 0000000000..72896b63ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fdim.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fdiml (double x, double y)
+{
+  return fdim (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-finite.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-finite.c
new file mode 100644
index 0000000000..fc51508f16
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-finite.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__finitel (double x)
+{
+  return isfinite (x);
+}
+extern __typeof (__finitel) finitel attribute_hidden;
+weak_alias (__finitel, finitel)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-floor.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-floor.c
new file mode 100644
index 0000000000..c7e9f834b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-floor.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+floorl (double x)
+{
+  return floor (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fma.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fma.c
new file mode 100644
index 0000000000..9474483673
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fma.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fmal (double x, double y, double z)
+{
+  return fma (x, y, z);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmax.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmax.c
new file mode 100644
index 0000000000..f5a84776ed
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmax.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fmaxl (double x, double y)
+{
+  return fmax (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
new file mode 100644
index 0000000000..28aab5791a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmaxmag.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for fmaxmag.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fmaxmagl (double x, double y)
+{
+  return fmaxmag (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmin.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmin.c
new file mode 100644
index 0000000000..a353cf9484
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmin.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fminl (double x, double y)
+{
+  return fmin (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
new file mode 100644
index 0000000000..f1743acd4d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fminmag.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for fminmag.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fminmagl (double x, double y)
+{
+  return fminmag (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmod.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmod.c
new file mode 100644
index 0000000000..aa692b9f36
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fmod.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+fmodl (double x, double y)
+{
+  return fmod (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c
new file mode 100644
index 0000000000..9df4c4bc34
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf.c
@@ -0,0 +1,17 @@
+#include "nldbl-compat.h"
+
+attribute_hidden
+int
+fprintf (FILE *stream, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfprintf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+extern __typeof (fprintf) _IO_fprintf attribute_hidden;
+weak_alias (fprintf, _IO_fprintf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c
new file mode 100644
index 0000000000..43a7618183
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fprintf_chk.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__fprintf_chk (FILE *stream, int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfprintf_chk (stream, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-frexp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-frexp.c
new file mode 100644
index 0000000000..0ec97e10e3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-frexp.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+frexpl (double x, int *exponent)
+{
+  return frexp (x, exponent);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
new file mode 100644
index 0000000000..6ef95f4ab4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfp.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for fromfp.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+intmax_t
+attribute_hidden
+fromfpl (double x, int round, unsigned int width)
+{
+  return fromfp (x, round, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
new file mode 100644
index 0000000000..193d9b6ce1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fromfpx.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for fromfpx.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+intmax_t
+attribute_hidden
+fromfpxl (double x, int round, unsigned int width)
+{
+  return fromfpx (x, round, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c
new file mode 100644
index 0000000000..1b768e306f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+fscanf (FILE *stream, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl__IO_vfscanf (stream, fmt, arg, NULL);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c
new file mode 100644
index 0000000000..18362af013
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf.c
@@ -0,0 +1,16 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+weak_function
+fwprintf (FILE *stream, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwprintf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c
new file mode 100644
index 0000000000..09731cf29d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwprintf_chk.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__fwprintf_chk (FILE *stream, int flag, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfwprintf_chk (stream, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c
new file mode 100644
index 0000000000..27fc1a7271
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-fwscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+fwscanf (FILE *stream, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-gamma.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-gamma.c
new file mode 100644
index 0000000000..10dc640b92
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-gamma.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+gammal (double x)
+{
+  return gamma (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
new file mode 100644
index 0000000000..f15f9231ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-getpayload.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for getpayload.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+getpayloadl (const double *x)
+{
+  return getpayload (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-hypot.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-hypot.c
new file mode 100644
index 0000000000..2105f3eba8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-hypot.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+hypotl (double x, double y)
+{
+  return hypot (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c
new file mode 100644
index 0000000000..e840b2a447
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ilogb.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+ilogbl (double x)
+{
+  return ilogb (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c
new file mode 100644
index 0000000000..05581c0354
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-iovfscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+_IO_vfscanf (FILE *s, const char *fmt, _IO_va_list ap, int *errp)
+{
+  return __nldbl__IO_vfscanf (s, fmt, ap, errp);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isinf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isinf.c
new file mode 100644
index 0000000000..577ab2db28
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isinf.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isinfl (double x)
+{
+  return isinf (x);
+}
+extern __typeof (__isinfl) isinfl attribute_hidden;
+weak_alias (__isinfl, isinfl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isnan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isnan.c
new file mode 100644
index 0000000000..2d87bf85fb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isnan.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isnanl (double x)
+{
+  return isnan (x);
+}
+extern __typeof (__isnanl) isnanl attribute_hidden;
+weak_alias (__isnanl, isnanl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c
new file mode 100644
index 0000000000..1d736668a4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_fscanf (FILE *stream, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c
new file mode 100644
index 0000000000..dbea1512cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_fwscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_fwscanf (FILE *stream, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfwscanf (stream, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c
new file mode 100644
index 0000000000..ec2ec53291
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_scanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_scanf (const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c
new file mode 100644
index 0000000000..52e1bd5d2a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_sscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_sscanf (const char *s, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vsscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c
new file mode 100644
index 0000000000..927d024923
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_swscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vswscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c
new file mode 100644
index 0000000000..55556c375c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vfscanf (s, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c
new file mode 100644
index 0000000000..4fd54cb176
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vfwscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vfwscanf (s, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c
new file mode 100644
index 0000000000..6284c9339b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vscanf (const char *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vfscanf (stdin, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c
new file mode 100644
index 0000000000..0c19032b15
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vsscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vsscanf (const char *string, const char *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vsscanf (string, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c
new file mode 100644
index 0000000000..5f34221b62
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vswscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vswscanf (const wchar_t *string, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vswscanf (string, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c
new file mode 100644
index 0000000000..a8a76ff54b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_vwscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_vwscanf (const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___isoc99_vfwscanf (stdin, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c
new file mode 100644
index 0000000000..fc2f6f8598
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-isoc99_wscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__isoc99_wscanf (const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___isoc99_vfwscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j0.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j0.c
new file mode 100644
index 0000000000..9d59f0a015
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j0.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+j0l (double x)
+{
+  return j0 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j1.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j1.c
new file mode 100644
index 0000000000..dba7366861
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-j1.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+j1l (double x)
+{
+  return j1 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-jn.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-jn.c
new file mode 100644
index 0000000000..3f19bbb1a8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-jn.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+jnl (int n, double x)
+{
+  return jn (n, x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c
new file mode 100644
index 0000000000..360f8f0f6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ldexp.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+ldexpl (double x, int exponent)
+{
+  return ldexp (x, exponent);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c
new file mode 100644
index 0000000000..0055212628
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+lgammal (double x)
+{
+  return lgamma (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c
new file mode 100644
index 0000000000..e1ab9a1d0a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lgamma_r.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+lgammal_r (double x, int *signgamp)
+{
+  return lgamma_r (x, signgamp);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
new file mode 100644
index 0000000000..76042b2f48
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llogb.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for llogb.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+long int
+attribute_hidden
+llogbl (double x)
+{
+  return llogb (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llrint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llrint.c
new file mode 100644
index 0000000000..6dfce89d0d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llrint.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+long long int
+attribute_hidden
+llrintl (double x)
+{
+  return llrint (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llround.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llround.c
new file mode 100644
index 0000000000..0157a079f4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-llround.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+long long int
+attribute_hidden
+llroundl (double x)
+{
+  return llround (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log.c
new file mode 100644
index 0000000000..a5a1ae7cd7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+logl (double x)
+{
+  return log (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log10.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log10.c
new file mode 100644
index 0000000000..1477866dc6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log10.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+log10l (double x)
+{
+  return log10 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c
new file mode 100644
index 0000000000..455b25a9f4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log1p.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+log1pl (double x)
+{
+  return log1p (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log2.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log2.c
new file mode 100644
index 0000000000..8c1ae344e5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-log2.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+log2l (double x)
+{
+  return log2 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-logb.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-logb.c
new file mode 100644
index 0000000000..d9ce8de075
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-logb.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+logbl (double x)
+{
+  return logb (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lrint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lrint.c
new file mode 100644
index 0000000000..0acd3d4ae6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lrint.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+long int
+attribute_hidden
+lrintl (double x)
+{
+  return lrint (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lround.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lround.c
new file mode 100644
index 0000000000..aadb111f88
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-lround.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+long int
+attribute_hidden
+lroundl (double x)
+{
+  return lround (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-modf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-modf.c
new file mode 100644
index 0000000000..bcbe6bb435
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-modf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+modfl (double x, double *iptr)
+{
+  return modf (x, iptr);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nan.c
new file mode 100644
index 0000000000..8db157a0ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nan.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+nanl (const char *tag)
+{
+  return nan (tag);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c
new file mode 100644
index 0000000000..fd4a24684d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nearbyint.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+nearbyintl (double x)
+{
+  return nearbyint (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c
new file mode 100644
index 0000000000..b0bae43f49
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextafter.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+nextafterl (double x, double y)
+{
+  return nextafter (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
new file mode 100644
index 0000000000..b20c788401
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextdown.c
@@ -0,0 +1,27 @@
+/* Compatibility routine for IEEE double as long double for nextdown.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+/* Return the greatest floating-point number less than X.  */
+double
+attribute_hidden
+nextdownl (double x)
+{
+  return nextdown (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c
new file mode 100644
index 0000000000..acbd01a0cf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttoward.c
@@ -0,0 +1,14 @@
+#define nexttoward nexttoward_XXX
+#define nexttowardl nexttowardl_XXX
+#include "nldbl-compat.h"
+#undef nexttoward
+#undef nexttowardl
+
+double
+attribute_hidden
+nexttoward (double x, double y)
+{
+  return nextafter (x, y);
+}
+extern __typeof (nexttoward) nexttowardl attribute_hidden;
+strong_alias (nexttoward, nexttowardl)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c
new file mode 100644
index 0000000000..350b08d39e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nexttowardf.c
@@ -0,0 +1,12 @@
+#define nexttowardf nexttowardf_XXX
+#include "nldbl-compat.h"
+#undef nexttowardf
+
+extern float __nldbl_nexttowardf (float x, double y);
+
+float
+attribute_hidden
+nexttowardf (float x, double y)
+{
+  return __nldbl_nexttowardf (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
new file mode 100644
index 0000000000..71dc8d4816
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-nextup.c
@@ -0,0 +1,27 @@
+/* Compatibility routine for IEEE double as long double for nextup.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+/* Return the least floating-point number greater than X.  */
+double
+attribute_hidden
+nextupl (double x)
+{
+  return nextup (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c
new file mode 100644
index 0000000000..4abff2dc0d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf.c
@@ -0,0 +1,13 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+obstack_printf (struct obstack *obstack, const char *fmt, ...)
+{
+  int result;
+  va_list ap;
+  va_start (ap, fmt);
+  result = __nldbl_obstack_vprintf (obstack, fmt, ap);
+  va_end (ap);
+  return result;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf_chk.c
new file mode 100644
index 0000000000..8e7d8eb4ad
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_printf_chk.c
@@ -0,0 +1,13 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__obstack_printf_chk (struct obstack *obstack, int flag, const char *fmt, ...)
+{
+  int result;
+  va_list ap;
+  va_start (ap, fmt);
+  result = __nldbl___obstack_vprintf_chk (obstack, flag, fmt, ap);
+  va_end (ap);
+  return result;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c
new file mode 100644
index 0000000000..228a50726b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+obstack_vprintf (struct obstack *obstack, const char *fmt, va_list ap)
+{
+  return __nldbl_obstack_vprintf (obstack, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf_chk.c
new file mode 100644
index 0000000000..a06f6bf9b4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-obstack_vprintf_chk.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__obstack_vprintf_chk (struct obstack *obstack, int flag, const char *fmt,
+		       va_list ap)
+{
+  return __nldbl___obstack_vprintf_chk (obstack, flag, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow.c
new file mode 100644
index 0000000000..a5cc446555
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+powl (double x, double y)
+{
+  return pow (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow10.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow10.c
new file mode 100644
index 0000000000..20ebf8d1bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-pow10.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+pow10l (double x)
+{
+  return pow10 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf.c
new file mode 100644
index 0000000000..e4b0fbae0c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf.c
@@ -0,0 +1,17 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+printf (const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfprintf (stdout, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+extern __typeof (printf) _IO_printf attribute_hidden;
+strong_alias (printf, _IO_printf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c
new file mode 100644
index 0000000000..926db412f9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_chk.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__printf_chk (int flag, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfprintf_chk (stdout, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c
new file mode 100644
index 0000000000..057dfe0b8a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_fp.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__printf_fp (FILE *fp, const struct printf_info *info,
+	     const void *const *args)
+{
+  return __nldbl___printf_fp (fp, info, args);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c
new file mode 100644
index 0000000000..d8b1fc9995
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-printf_size.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+printf_size (FILE *__restrict fp, const struct printf_info *info,
+	     const void *const *__restrict args)
+{
+  return __nldbl_printf_size (fp, info, args);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c
new file mode 100644
index 0000000000..9f0b0a66a9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt.c
@@ -0,0 +1,10 @@
+#define qecvt qecvt_XXX
+#include "nldbl-compat.h"
+#undef qecvt
+
+attribute_hidden
+char *
+qecvt (double val, int ndigit, int *__restrict decpt, int *__restrict sign)
+{
+  return ecvt (val, ndigit, decpt, sign);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c
new file mode 100644
index 0000000000..06f99146cc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qecvt_r.c
@@ -0,0 +1,11 @@
+#define qecvt_r qecvt_r_XXX
+#include "nldbl-compat.h"
+#undef qecvt_r
+
+int
+attribute_hidden
+qecvt_r (double val, int ndigit, int *__restrict decpt, int *__restrict sign,
+	 char *__restrict buf, size_t len)
+{
+  return ecvt_r (val, ndigit, decpt, sign, buf, len);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c
new file mode 100644
index 0000000000..37fa7f0467
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt.c
@@ -0,0 +1,10 @@
+#define qfcvt qfcvt_XXX
+#include "nldbl-compat.h"
+#undef qfcvt
+
+attribute_hidden
+char *
+qfcvt (double val, int ndigit, int *__restrict decpt, int *__restrict sign)
+{
+  return fcvt (val, ndigit, decpt, sign);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c
new file mode 100644
index 0000000000..03224fefa9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qfcvt_r.c
@@ -0,0 +1,11 @@
+#define qfcvt_r qfcvt_r_XXX
+#include "nldbl-compat.h"
+#undef qfcvt_r
+
+int
+attribute_hidden
+qfcvt_r (double val, int ndigit, int *__restrict decpt, int *__restrict sign,
+	 char *__restrict buf, size_t len)
+{
+  return fcvt_r (val, ndigit, decpt, sign, buf, len);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c
new file mode 100644
index 0000000000..b935d0962e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-qgcvt.c
@@ -0,0 +1,10 @@
+#define qgcvt qgcvt_XXX
+#include "nldbl-compat.h"
+#undef qgcvt
+
+attribute_hidden
+char *
+qgcvt (double val, int ndigit, char *buf)
+{
+  return gcvt (val, ndigit, buf);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remainder.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remainder.c
new file mode 100644
index 0000000000..581dc78a4d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remainder.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+remainderl (double x, double y)
+{
+  return remainder (x, y);
+}
+extern __typeof (remainderl) dreml attribute_hidden;
+weak_alias (remainderl, dreml)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remquo.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remquo.c
new file mode 100644
index 0000000000..592dadae8d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-remquo.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+remquol (double x, double y, int *quo)
+{
+  return remquo (x, y, quo);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-rint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-rint.c
new file mode 100644
index 0000000000..00f942f1a7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-rint.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+rintl (double x)
+{
+  return rint (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-round.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-round.c
new file mode 100644
index 0000000000..be9bd5112e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-round.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+roundl (double x)
+{
+  return round (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
new file mode 100644
index 0000000000..1a46fa50d2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-roundeven.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for roundeven.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+roundevenl (double x)
+{
+  return roundeven (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalb.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalb.c
new file mode 100644
index 0000000000..00d3e2e714
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalb.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+scalbl (double x, double n)
+{
+  return scalb (x, n);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c
new file mode 100644
index 0000000000..b5bd501250
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbln.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+scalblnl (double x, long int n)
+{
+  return scalbln (x, n);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c
new file mode 100644
index 0000000000..b1914ebf49
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scalbn.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+scalbnl (double x, int n)
+{
+  return scalbn (x, n);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c
new file mode 100644
index 0000000000..bbab371cbe
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-scanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+scanf (const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl__IO_vfscanf (stdin, fmt, arg, NULL);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
new file mode 100644
index 0000000000..df902cad99
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayload.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for setpayload.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+setpayloadl (double *x, double payload)
+{
+  return setpayload (x, payload);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
new file mode 100644
index 0000000000..1ca497502c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-setpayloadsig.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for setpayloadsig.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+setpayloadsigl (double *x, double payload)
+{
+  return setpayloadsig (x, payload);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-signbit.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-signbit.c
new file mode 100644
index 0000000000..2e98c07396
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-signbit.c
@@ -0,0 +1,10 @@
+#define __signbitl __signbitl_XXX
+#include "nldbl-compat.h"
+#undef __signbitl
+
+int
+attribute_hidden
+__signbitl (double x)
+{
+  return signbit (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-significand.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-significand.c
new file mode 100644
index 0000000000..624381dde7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-significand.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+significandl (double x)
+{
+  return significand (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sin.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sin.c
new file mode 100644
index 0000000000..0e76e05e6b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sin.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+sinl (double x)
+{
+  return sin (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sincos.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sincos.c
new file mode 100644
index 0000000000..9f2ab2b9fc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sincos.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+void
+attribute_hidden
+sincosl (double x, double *sinx, double *cosx)
+{
+  sincos (x, sinx, cosx);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sinh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sinh.c
new file mode 100644
index 0000000000..99ea62e8dc
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sinh.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+sinhl (double x)
+{
+  return sinh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c
new file mode 100644
index 0000000000..ef6fb96a2c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf.c
@@ -0,0 +1,16 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+weak_function
+snprintf (char *s, size_t maxlen, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vsnprintf (s, maxlen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c
new file mode 100644
index 0000000000..944d3de9db
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-snprintf_chk.c
@@ -0,0 +1,16 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__snprintf_chk (char *s, size_t maxlen, int flag, size_t slen,
+		const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vsnprintf_chk (s, maxlen, flag, slen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c
new file mode 100644
index 0000000000..5d37a7e7f0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf.c
@@ -0,0 +1,17 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+sprintf (char *s, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vsprintf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+extern __typeof (sprintf) _IO_sprintf attribute_hidden;
+strong_alias (sprintf, _IO_sprintf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c
new file mode 100644
index 0000000000..349b7c5c22
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sprintf_chk.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__sprintf_chk (char *s, int flag, size_t slen, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vsprintf_chk (s, flag, slen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c
new file mode 100644
index 0000000000..4ae65665de
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sqrt.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+sqrtl (double x)
+{
+  return sqrt (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c
new file mode 100644
index 0000000000..a771d49996
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-sscanf.c
@@ -0,0 +1,17 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+sscanf (const char *s, const char *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vsscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
+extern __typeof (sscanf) _IO_sscanf attribute_hidden;
+strong_alias (sscanf, _IO_sscanf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c
new file mode 100644
index 0000000000..38f4071278
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon.c
@@ -0,0 +1,14 @@
+#include "nldbl-compat.h"
+
+ssize_t
+attribute_hidden
+strfmon (char *s, size_t maxsize, const char *format, ...)
+{
+  va_list ap;
+  ssize_t res;
+
+  va_start (ap, format);
+  res = __nldbl___vstrfmon (s, maxsize, format, ap);
+  va_end (ap);
+  return res;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
new file mode 100644
index 0000000000..0db0e8c42f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfmon_l.c
@@ -0,0 +1,16 @@
+#include "nldbl-compat.h"
+
+ssize_t
+attribute_hidden
+__strfmon_l (char *s, size_t maxsize, __locale_t loc, const char *format, ...)
+{
+  va_list ap;
+  ssize_t res;
+
+  va_start (ap, format);
+  res = __nldbl___vstrfmon_l (s, maxsize, loc, format, ap);
+  va_end (ap);
+  return res;
+}
+extern __typeof (__strfmon_l) strfmon_l attribute_hidden;
+weak_alias (__strfmon_l, strfmon_l)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c
new file mode 100644
index 0000000000..d6df69e418
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strfroml.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+strfroml (char *dest, size_t size, const char *format, long double f)
+{
+  return strfromd (dest, size, format, f);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold.c
new file mode 100644
index 0000000000..99b907947b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold.c
@@ -0,0 +1,10 @@
+#define strtold strtold_XXX
+#include "nldbl-compat.h"
+#undef strtold
+
+double
+attribute_hidden
+strtold (const char *nptr, char **endptr)
+{
+  return strtod (nptr, endptr);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
new file mode 100644
index 0000000000..33ff1ca5b5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtold_l.c
@@ -0,0 +1,20 @@
+#define strtold_l strtold_l_XXX
+#define __strtold_l __strtold_l_XXX
+#define __strtod_l __strtod_l_XXX
+#include "nldbl-compat.h"
+#undef strtold_l
+#undef __strtold_l
+#undef __strtod_l
+
+extern double
+__strtod_l (const char *__restrict __nptr, char **__restrict __endptr,
+	    __locale_t __loc);
+
+double
+attribute_hidden
+__strtold_l (const char *nptr, char **endptr, __locale_t loc)
+{
+  return __strtod_l (nptr, endptr, loc);
+}
+extern __typeof (__strtold_l) strtold_l attribute_hidden;
+weak_alias (__strtold_l, strtold_l)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c
new file mode 100644
index 0000000000..0bafabc6e4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-strtoldint.c
@@ -0,0 +1,10 @@
+#define __strtold_internal __strtold_internal_XXX
+#include "nldbl-compat.h"
+#undef __strtold_internal
+
+double
+attribute_hidden
+__strtold_internal (const char *nptr, char **endptr, int group)
+{
+  return __strtod_internal (nptr, endptr, group);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c
new file mode 100644
index 0000000000..7f4f7b04d3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vswprintf (s, n, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c
new file mode 100644
index 0000000000..0373f6ebc2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swprintf_chk.c
@@ -0,0 +1,16 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__swprintf_chk (wchar_t *s, size_t n, int flag, size_t slen,
+		const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vswprintf_chk (s, n, flag, slen, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c
new file mode 100644
index 0000000000..dd058f47ab
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-swscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+swscanf (const wchar_t *s, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vswscanf (s, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog.c
new file mode 100644
index 0000000000..8687e9f540
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog.c
@@ -0,0 +1,11 @@
+#include "nldbl-compat.h"
+
+void
+attribute_hidden
+syslog (int pri, const char *fmt, ...)
+{
+  va_list ap;
+  va_start (ap, fmt);
+  __nldbl_vsyslog (pri, fmt, ap);
+  va_end (ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c
new file mode 100644
index 0000000000..31ea6a8b9d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-syslog_chk.c
@@ -0,0 +1,12 @@
+#include "nldbl-compat.h"
+
+void
+attribute_hidden
+__syslog_chk (int pri, int flag, const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  __nldbl___vsyslog_chk (pri, flag, fmt, ap);
+  va_end(ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tan.c
new file mode 100644
index 0000000000..1a27b6fbdd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tan.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+tanl (double x)
+{
+  return tan (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tanh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tanh.c
new file mode 100644
index 0000000000..fc2fd32eb8
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tanh.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+tanhl (double x)
+{
+  return tanh (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c
new file mode 100644
index 0000000000..bbf613abe1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-tgamma.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+tgammal (double x)
+{
+  return tgamma (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
new file mode 100644
index 0000000000..c528d53555
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalorder.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for totalorder.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+totalorderl (double x, double y)
+{
+  return totalorder (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
new file mode 100644
index 0000000000..4bc78588ea
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-totalordermag.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for totalordermag.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+totalordermagl (double x, double y)
+{
+  return totalordermag (x, y);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-trunc.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-trunc.c
new file mode 100644
index 0000000000..d0131e80a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-trunc.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+truncl (double x)
+{
+  return trunc (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
new file mode 100644
index 0000000000..127225734c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfp.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for ufromfp.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+uintmax_t
+attribute_hidden
+ufromfpl (double x, int round, unsigned int width)
+{
+  return ufromfp (x, round, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
new file mode 100644
index 0000000000..3294f00609
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-ufromfpx.c
@@ -0,0 +1,26 @@
+/* Compatibility routine for IEEE double as long double for ufromfpx.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include "nldbl-compat.h"
+
+uintmax_t
+attribute_hidden
+ufromfpxl (double x, int round, unsigned int width)
+{
+  return ufromfpx (x, round, width);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c
new file mode 100644
index 0000000000..52fa18ccee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+weak_function
+vasprintf (char **result_ptr, const char *fmt, va_list ap)
+{
+  return __nldbl_vasprintf (result_ptr, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf_chk.c
new file mode 100644
index 0000000000..4f5391a9d7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vasprintf_chk.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vasprintf_chk (char **result_ptr, int flag, const char *fmt, va_list ap)
+{
+  return __nldbl___vasprintf_chk (result_ptr, flag, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c
new file mode 100644
index 0000000000..1acbd40625
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+vdprintf (int d, const char *fmt, va_list arg)
+{
+  return __nldbl_vdprintf (d, fmt, arg);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf_chk.c
new file mode 100644
index 0000000000..ca1ce01878
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vdprintf_chk.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vdprintf_chk (int d, int flag, const char *fmt, va_list arg)
+{
+  return __nldbl___vdprintf_chk (d, flag, fmt, arg);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c
new file mode 100644
index 0000000000..6ca8437b28
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+vfprintf (FILE *s, const char *fmt, va_list ap)
+{
+  return __nldbl_vfprintf (s, fmt, ap);
+}
+extern __typeof (vfprintf) _IO_vfprintf attribute_hidden;
+strong_alias (vfprintf, _IO_vfprintf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c
new file mode 100644
index 0000000000..0f6820af63
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfprintf_chk.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vfprintf_chk (FILE *s, int flag, const char *fmt, va_list ap)
+{
+  return __nldbl___vfprintf_chk (s, flag, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c
new file mode 100644
index 0000000000..f23465ee95
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfscanf.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vfscanf (FILE *s, const char *fmt, va_list ap)
+{
+  return __nldbl__IO_vfscanf (s, fmt, ap, NULL);
+}
+extern __typeof (__vfscanf) vfscanf attribute_hidden;
+weak_alias (__vfscanf, vfscanf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c
new file mode 100644
index 0000000000..c3fe76a971
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+weak_function
+vfwprintf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vfwprintf (s, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c
new file mode 100644
index 0000000000..b3b69f0571
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwprintf_chk.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vfwprintf_chk (FILE *s, int flag, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___vfwprintf_chk (s, flag, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c
new file mode 100644
index 0000000000..be9febc9a0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vfwscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+vfwscanf (FILE *s, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vfwscanf (s, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c
new file mode 100644
index 0000000000..ed0d27d9a0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+vprintf (const char *fmt, va_list ap)
+{
+  return __nldbl_vfprintf (stdout, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c
new file mode 100644
index 0000000000..63b3e8f965
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vprintf_chk.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vprintf_chk (int flag, const char *fmt, va_list ap)
+{
+  return __nldbl___vfprintf_chk (stdout, flag, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c
new file mode 100644
index 0000000000..e75907b905
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vscanf.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+weak_function
+vscanf (const char *fmt, va_list ap)
+{
+  return __nldbl__IO_vfscanf (stdin, fmt, ap, NULL);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c
new file mode 100644
index 0000000000..5a9bcbcaee
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+vsnprintf (char *string, size_t maxlen, const char *fmt, va_list ap)
+{
+  return __nldbl_vsnprintf (string, maxlen, fmt, ap);
+}
+extern __typeof (vsnprintf) __vsnprintf attribute_hidden;
+weak_alias (vsnprintf, __vsnprintf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c
new file mode 100644
index 0000000000..19380291a3
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsnprintf_chk.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vsnprintf_chk (char *string, size_t maxlen, int flag, size_t slen,
+		 const char *fmt, va_list ap)
+{
+  return __nldbl___vsnprintf_chk (string, maxlen, flag, slen, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c
new file mode 100644
index 0000000000..04406d0f6e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+_IO_vsprintf (char *string, const char *fmt, va_list ap)
+{
+  return __nldbl_vsprintf (string, fmt, ap);
+}
+extern __typeof (_IO_vsprintf) vsprintf attribute_hidden;
+weak_alias (_IO_vsprintf, vsprintf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c
new file mode 100644
index 0000000000..9df143fcef
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsprintf_chk.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vsprintf_chk (char *string, int flag, size_t slen, const char *fmt,
+		va_list ap)
+{
+  return __nldbl___vsprintf_chk (string, flag, slen, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c
new file mode 100644
index 0000000000..f5594c122c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsscanf.c
@@ -0,0 +1,10 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vsscanf (const char *string, const char *fmt, va_list ap)
+{
+  return __nldbl_vsscanf (string, fmt, ap);
+}
+extern __typeof (__vsscanf) vsscanf attribute_hidden;
+weak_alias (__vsscanf, vsscanf)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c
new file mode 100644
index 0000000000..ff3415a072
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+weak_function
+vswprintf (wchar_t *string, size_t maxlen, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vswprintf (string, maxlen, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c
new file mode 100644
index 0000000000..0cd1f96bfe
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswprintf_chk.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vswprintf_chk (wchar_t *string, size_t maxlen, int flag, size_t slen,
+		 const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___vswprintf_chk (string, maxlen, flag, slen, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c
new file mode 100644
index 0000000000..bd4bb5131b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vswscanf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+vswscanf (const wchar_t *string, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vswscanf (string, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c
new file mode 100644
index 0000000000..eed1010eea
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+attribute_hidden
+void
+vsyslog (int pri, const char *fmt, va_list ap)
+{
+  __nldbl_vsyslog (pri, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c
new file mode 100644
index 0000000000..2221474f97
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vsyslog_chk.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+void
+attribute_hidden
+__vsyslog_chk (int pri, int flag, const char *fmt, va_list ap)
+{
+  __nldbl___vsyslog_chk (pri, flag, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c
new file mode 100644
index 0000000000..f46bdb3137
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+vwprintf (const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vfwprintf (stdout, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c
new file mode 100644
index 0000000000..f7e7185977
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwprintf_chk.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__vwprintf_chk (int flag, const wchar_t *fmt, va_list ap)
+{
+  return __nldbl___vfwprintf_chk (stdout, flag, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c
new file mode 100644
index 0000000000..d39578ca4e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-vwscanf.c
@@ -0,0 +1,9 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+weak_function
+vwscanf (const wchar_t *fmt, va_list ap)
+{
+  return __nldbl_vfwscanf (stdin, fmt, ap);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c
new file mode 100644
index 0000000000..dbaffaa486
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold.c
@@ -0,0 +1,10 @@
+#define wcstold wcstold_XXX
+#include "nldbl-compat.h"
+#undef wcstold
+
+double
+attribute_hidden
+wcstold (const wchar_t *nptr, wchar_t **endptr)
+{
+  return wcstod (nptr, endptr);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
new file mode 100644
index 0000000000..e32d13a94b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstold_l.c
@@ -0,0 +1,14 @@
+#define wcstold_l wcstold_l_XXX
+#define __wcstold_l __wcstold_l_XXX
+#include "nldbl-compat.h"
+#undef wcstold_l
+#undef __wcstold_l
+
+double
+attribute_hidden
+__wcstold_l (const wchar_t *nptr, wchar_t **endptr, __locale_t loc)
+{
+  return __wcstod_l (nptr, endptr, loc);
+}
+extern __typeof (__wcstold_l) wcstold_l attribute_hidden;
+weak_alias (__wcstold_l, wcstold_l)
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c
new file mode 100644
index 0000000000..b638a399ad
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wcstoldint.c
@@ -0,0 +1,10 @@
+#define __wcstold_internal __wcstold_internal_XXX
+#include "nldbl-compat.h"
+#undef __wcstold_internal
+
+double
+attribute_hidden
+__wcstold_internal (const wchar_t *nptr, wchar_t **endptr, int group)
+{
+  return __wcstod_internal (nptr, endptr, group);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c
new file mode 100644
index 0000000000..2aa1a7475a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+wprintf (const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwprintf (stdout, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c
new file mode 100644
index 0000000000..39191e123b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wprintf_chk.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+__wprintf_chk (int flag, const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl___vfwprintf_chk (stdout, flag, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c
new file mode 100644
index 0000000000..4ee3fdc15f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-wscanf.c
@@ -0,0 +1,15 @@
+#include "nldbl-compat.h"
+
+int
+attribute_hidden
+wscanf (const wchar_t *fmt, ...)
+{
+  va_list arg;
+  int done;
+
+  va_start (arg, fmt);
+  done = __nldbl_vfwscanf (stdin, fmt, arg);
+  va_end (arg);
+
+  return done;
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y0.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y0.c
new file mode 100644
index 0000000000..e35621f60f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y0.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+y0l (double x)
+{
+  return y0 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y1.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y1.c
new file mode 100644
index 0000000000..c47abcd3c5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-y1.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+y1l (double x)
+{
+  return y1 (x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-yn.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-yn.c
new file mode 100644
index 0000000000..7623d4513b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/nldbl-yn.c
@@ -0,0 +1,8 @@
+#include "nldbl-compat.h"
+
+double
+attribute_hidden
+ynl (int n, double x)
+{
+  return yn (n, x);
+}
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_asinh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_asinh.c
new file mode 100644
index 0000000000..e9bcfaea62
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_asinh.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_asinh.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __asinh, asinhl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_atan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_atan.c
new file mode 100644
index 0000000000..5fbd5e62d6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_atan.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_atan.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, atan, atanl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_cbrt.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_cbrt.c
new file mode 100644
index 0000000000..cdc635771e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_cbrt.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_cbrt.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __cbrt, cbrtl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ceil.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ceil.c
new file mode 100644
index 0000000000..6e4b70795d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ceil.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_ceil.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __ceil, ceill, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_clog10l.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_clog10l.c
new file mode 100644
index 0000000000..15dc3ed891
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_clog10l.c
@@ -0,0 +1,31 @@
+/* clog10l alias overrides for platforms where long double
+   was previously not unique.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define M_DECL_FUNC(x) __clog10l_internal
+#include <math-type-macros-ldouble.h>
+
+#undef declare_mgen_alias
+#define declare_mgen_alias(from, to)
+
+#include <s_clog10_template.c>
+
+/* __clog10l is also a public symbol.  */
+strong_alias (__clog10l_internal, __clog10l__internal)
+long_double_symbol (libm, __clog10l_internal, __clog10l);
+long_double_symbol (libm, __clog10l__internal, clog10l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_copysign.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_copysign.c
new file mode 100644
index 0000000000..f4303f5768
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_copysign.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_copysign.c>
+#if IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __copysign, copysignl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __copysign, copysignl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_erf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_erf.c
new file mode 100644
index 0000000000..76f1baa5ca
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_erf.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_erf.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __erf, erfl, GLIBC_2_0);
+compat_symbol (libm, __erfc, erfcl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_expm1.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_expm1.c
new file mode 100644
index 0000000000..ef9b5956db
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_expm1.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_expm1.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __expm1, expm1l, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fabs.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fabs.c
new file mode 100644
index 0000000000..e7c92187e9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fabs.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_fabs.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __fabs, fabsl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_finite.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_finite.c
new file mode 100644
index 0000000000..7d3ab0068d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_finite.c
@@ -0,0 +1,18 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_finite.c>
+weak_alias (__finite, ___finite)
+#if IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __finite, __finitel, GLIBC_2_1);
+# endif
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, ___finite, finitel, GLIBC_2_0);
+# endif
+#else
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libm, __finite, __finitel, GLIBC_2_0);
+# endif
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, ___finite, finitel, GLIBC_2_0);
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_floor.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_floor.c
new file mode 100644
index 0000000000..7797944e9e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_floor.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_floor.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __floor, floorl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fma.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fma.c
new file mode 100644
index 0000000000..1723c5c306
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fma.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_fma.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __fma, fmal, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fmal.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fmal.c
new file mode 100644
index 0000000000..bd12dabcbe
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_fmal.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/s_fmal.c>
+long_double_symbol (libm, __fmal, fmal);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_frexp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_frexp.c
new file mode 100644
index 0000000000..0e3a5e0830
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_frexp.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_frexp.c>
+#if IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __frexp, frexpl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __frexp, frexpl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isinf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isinf.c
new file mode 100644
index 0000000000..1f760a0320
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isinf.c
@@ -0,0 +1,8 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_isinf.c>
+#if !IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
+compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isnan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isnan.c
new file mode 100644
index 0000000000..33f57f1955
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_isnan.c
@@ -0,0 +1,8 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_isnan.c>
+#if !IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
+# endif
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexp.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexp.c
new file mode 100644
index 0000000000..809080a149
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexp.c
@@ -0,0 +1,30 @@
+/* ldexp alias overrides for platforms where long double
+   was previously not unique.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define M_LIBM_NEED_COMPAT(f) 0
+#include <math-type-macros-double.h>
+#include <s_ldexp_template.c>
+
+#if IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __ldexp, ldexpl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __ldexp, ldexpl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexpl.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
new file mode 100644
index 0000000000..85f34fa2c4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_ldexpl.c
@@ -0,0 +1,31 @@
+/* ldexpl alias overrides for platforms where long double
+   was previously not unique.
+   Copyright (C) 2016-2017 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#define declare_mgen_alias(f,t)
+#include <math-type-macros-ldouble.h>
+#include <s_ldexp_template.c>
+
+strong_alias (__ldexpl, __ldexpl_2)
+#if IS_IN (libm)
+long_double_symbol (libm, __ldexpl, ldexpl);
+long_double_symbol (libm, __ldexpl_2, scalbnl);
+#else
+long_double_symbol (libc, __ldexpl, ldexpl);
+long_double_symbol (libc, __ldexpl_2, scalbnl);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llrint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llrint.c
new file mode 100644
index 0000000000..e6311972e1
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llrint.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_llrint.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __llrint, llrintl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llround.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llround.c
new file mode 100644
index 0000000000..36c7e6edac
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_llround.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_llround.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __llround, llroundl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_log1p.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_log1p.c
new file mode 100644
index 0000000000..495fa32e35
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_log1p.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_log1p.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __log1p, log1pl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_logb.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_logb.c
new file mode 100644
index 0000000000..4d7a6db275
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_logb.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_logb.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __logb, logbl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lrint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lrint.c
new file mode 100644
index 0000000000..b7af812846
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lrint.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_lrint.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __lrint, lrintl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lround.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lround.c
new file mode 100644
index 0000000000..f3a27fa9c9
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_lround.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_lround.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __lround, lroundl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_modf.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_modf.c
new file mode 100644
index 0000000000..93acb43ae6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_modf.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_modf.c>
+#if IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __modf, modfl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __modf, modfl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nearbyint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nearbyint.c
new file mode 100644
index 0000000000..a8b7973acd
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nearbyint.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_nearbyint.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nextafter.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nextafter.c
new file mode 100644
index 0000000000..78e2c0ff37
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nextafter.c
@@ -0,0 +1,12 @@
+#include <math_ldbl_opt.h>
+#include <math/s_nextafter.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __nextafter, nextafterl, GLIBC_2_0);
+#endif
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+strong_alias (__nextafter, __nexttowardd)
+strong_alias (__nextafter, __nexttowardld)
+#undef nexttoward
+compat_symbol (libm, __nexttowardd, nexttoward, GLIBC_2_1);
+compat_symbol (libm, __nexttowardld, nexttowardl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c
new file mode 100644
index 0000000000..07e9375b78
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_nexttowardfd.c
@@ -0,0 +1,81 @@
+/* Single precision version of nexttoward.c.
+   Conversion to IEEE single float by Jakub Jelinek, jj@ultra.linux.cz. */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+/* IEEE functions
+ *	__nexttowardfd(x,y)
+ *	return the next machine floating-point number of x in the
+ *	direction toward y.
+ * This is for machines which use different binary type for double and
+ * long double conditionally, y is long double equal to double.
+ *   Special cases:
+ */
+
+#include <errno.h>
+#include <math.h>
+#include <math_private.h>
+#include <math_ldbl_opt.h>
+#include <float.h>
+
+float __nldbl_nexttowardf(float x, double y);
+
+float __nldbl_nexttowardf(float x, double y)
+{
+	int32_t hx,hy,ix,iy;
+	u_int32_t ly;
+
+	GET_FLOAT_WORD(hx,x);
+	EXTRACT_WORDS(hy,ly,y);
+	ix = hx&0x7fffffff;		/* |x| */
+	iy = hy&0x7fffffff;		/* |y| */
+
+	if((ix>0x7f800000) ||				   /* x is nan */
+	   ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0))    /* y is nan */
+	   return x+y;
+	if((double) x==y) return y;		/* x=y, return y */
+	if(ix==0) {				/* x == 0 */
+	    float u;
+	    SET_FLOAT_WORD(x,(u_int32_t)(hy&0x80000000)|1);/* return +-minsub*/
+	    u = math_opt_barrier (x);
+	    u = u * u;
+	    math_force_eval (u);		/* raise underflow flag */
+	    return x;
+	}
+	if(hx>=0) {				/* x > 0 */
+	    if(x > y)				/* x -= ulp */
+		hx -= 1;
+	    else				/* x < y, x += ulp */
+		hx += 1;
+	} else {				/* x < 0 */
+	    if(x < y)				/* x -= ulp */
+		hx -= 1;
+	    else				/* x > y, x += ulp */
+		hx += 1;
+	}
+	hy = hx&0x7f800000;
+	if(hy>=0x7f800000) {
+	  float u = x+x;			/* overflow  */
+	  math_force_eval (u);
+	  __set_errno (ERANGE);
+	}
+	if(hy<0x00800000) {
+	    float u = x*x;			/* underflow */
+	    math_force_eval (u);		/* raise underflow flag */
+	    __set_errno (ERANGE);
+	}
+	SET_FLOAT_WORD(x,hx);
+	return x;
+}
+
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __nldbl_nexttowardf, nexttowardf, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_remquo.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_remquo.c
new file mode 100644
index 0000000000..9f3d7ba368
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_remquo.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_remquo.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __remquo, remquol, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_rint.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_rint.c
new file mode 100644
index 0000000000..d9b156ea27
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_rint.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_rint.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __rint, rintl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_round.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_round.c
new file mode 100644
index 0000000000..edff2f017b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_round.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_round.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __round, roundl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbln.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbln.c
new file mode 100644
index 0000000000..391142b769
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbln.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_scalbln.c>
+#if IS_IN (libm)
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __scalbln, scalblnl, GLIBC_2_1);
+#endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_1)
+compat_symbol (libc, __scalbln, scalblnl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbn.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbn.c
new file mode 100644
index 0000000000..1ad81b199e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_scalbn.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_scalbn.c>
+#if IS_IN (libm)
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __scalbn, scalbnl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __scalbn, scalbnl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significand.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significand.c
new file mode 100644
index 0000000000..5287c09066
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significand.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/s_significand.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __significand, significandl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significandl.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significandl.c
new file mode 100644
index 0000000000..9339b4780d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_significandl.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/s_significandl.c>
+long_double_symbol (libm, __significandl, significandl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sin.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sin.c
new file mode 100644
index 0000000000..6932ccc080
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sin.c
@@ -0,0 +1,15 @@
+/* dbl-64/s_sin.c uses NAN and sincos identifiers internally.  */
+#define sincos sincos_disable
+/* These definitions needed for proper unfolding of __MATHDECL_VEC.  */
+#define __DECL_SIMD_sincos_disable
+#define __DECL_SIMD_sincos_disablef
+#define __DECL_SIMD_sincos_disablel
+#define __DECL_SIMD_sincos_disablef128
+#include <math_ldbl_opt.h>
+#undef NAN
+#undef sincos
+#include <sysdeps/ieee754/dbl-64/s_sin.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __sin, sinl, GLIBC_2_0);
+compat_symbol (libm, __cos, cosl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sincos.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sincos.c
new file mode 100644
index 0000000000..6d2a48f25b
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_sincos.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_sincos.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __sincos, sincosl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tan.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tan.c
new file mode 100644
index 0000000000..6b0fec0063
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tan.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_tan.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, tan, tanl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tanh.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tanh.c
new file mode 100644
index 0000000000..e763bbde77
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_tanh.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_tanh.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __tanh, tanhl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_trunc.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_trunc.c
new file mode 100644
index 0000000000..9d90a2bd73
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/s_trunc.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/s_trunc.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __trunc, truncl, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acos_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acos_compat.c
new file mode 100644
index 0000000000..1e6d1b37ec
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acos_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_acos_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __acos, acosl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosh_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosh_compat.c
new file mode 100644
index 0000000000..40da339a7a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosh_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_acosh_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __acosh, acoshl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c
new file mode 100644
index 0000000000..df4338d9fa
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acoshl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_acoshl_compat.c>
+long_double_symbol (libm, __acoshl, acoshl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c
new file mode 100644
index 0000000000..5efc99024c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_acosl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_acosl_compat.c>
+long_double_symbol (libm, __acosl, acosl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asin_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asin_compat.c
new file mode 100644
index 0000000000..1c52cc22ad
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asin_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_asin_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __asin, asinl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c
new file mode 100644
index 0000000000..087fab25bb
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_asinl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_asinl_compat.c>
+long_double_symbol (libm, __asinl, asinl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2_compat.c
new file mode 100644
index 0000000000..d3f7964d7c
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_atan2_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __atan2, atan2l, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c
new file mode 100644
index 0000000000..6b12209625
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atan2l_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_atan2l_compat.c>
+long_double_symbol (libm, __atan2l, atan2l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanh_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanh_compat.c
new file mode 100644
index 0000000000..e15ef1f93d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanh_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_atanh_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __atanh, atanhl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c
new file mode 100644
index 0000000000..49bae1ee8f
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_atanhl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_atanhl_compat.c>
+long_double_symbol (libm, __atanhl, atanhl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_cosh_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_cosh_compat.c
new file mode 100644
index 0000000000..af29735e10
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_cosh_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_cosh_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __cosh, coshl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c
new file mode 100644
index 0000000000..a8808778ba
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_coshl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_coshl_compat.c>
+long_double_symbol (libm, __coshl, coshl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10_compat.c
new file mode 100644
index 0000000000..142a70bcd6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#include <math/w_exp10_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __exp10, exp10l, GLIBC_2_1);
+compat_symbol (libm, __pow10, pow10l, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
new file mode 100644
index 0000000000..8f2ccd3441
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp10l_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_exp10l_compat.c>
+long_double_symbol (libm, __exp10l, exp10l);
+long_double_symbol (libm, __pow10l, pow10l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp_compat.c
new file mode 100644
index 0000000000..686c9c26d0
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_exp_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/w_exp_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __exp, expl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmod_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmod_compat.c
new file mode 100644
index 0000000000..9280d39d70
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmod_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_fmod_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __fmod, fmodl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c
new file mode 100644
index 0000000000..88fe0ac4d2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_fmodl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_fmodl_compat.c>
+long_double_symbol (libm, __fmodl, fmodl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypot_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypot_compat.c
new file mode 100644
index 0000000000..b3979ff0f4
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypot_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_hypot_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __hypot, hypotl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c
new file mode 100644
index 0000000000..68e3997489
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_hypotl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_hypotl_compat.c>
+long_double_symbol (libm, __hypotl, hypotl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0_compat.c
new file mode 100644
index 0000000000..45b4d14764
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#include <math/w_j0_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, j0, j0l, GLIBC_2_0);
+compat_symbol (libm, y0, y0l, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c
new file mode 100644
index 0000000000..9050657e03
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j0l_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_j0l_compat.c>
+long_double_symbol (libm, __j0l, j0l);
+long_double_symbol (libm, __y0l, y0l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1_compat.c
new file mode 100644
index 0000000000..1071c8fd6a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#include <math/w_j1_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, j1, j1l, GLIBC_2_0);
+compat_symbol (libm, y1, y1l, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c
new file mode 100644
index 0000000000..4ed9e2dd12
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_j1l_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_j1l_compat.c>
+long_double_symbol (libm, __j1l, j1l);
+long_double_symbol (libm, __y1l, y1l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jn_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jn_compat.c
new file mode 100644
index 0000000000..be29a36041
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jn_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#include <math/w_jn_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, jn, jnl, GLIBC_2_0);
+compat_symbol (libm, yn, ynl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c
new file mode 100644
index 0000000000..d22ee54997
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_jnl_compat.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_jnl_compat.c>
+long_double_symbol (libm, __jnl, jnl);
+long_double_symbol (libm, __ynl, ynl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compat.c
new file mode 100644
index 0000000000..f268e65a88
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compat.c
@@ -0,0 +1,7 @@
+#include <math_ldbl_opt.h>
+#include <math/w_lgamma_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+strong_alias (__lgamma_compat, __lgammal_dbl_compat)
+compat_symbol (libm, __lgammal_dbl_compat, lgammal, GLIBC_2_0);
+compat_symbol (libm, __gamma, gammal, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c
new file mode 100644
index 0000000000..f60b3d7bcf
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_compatl.c
@@ -0,0 +1,11 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#define USE_AS_COMPAT 1
+#include <math/lgamma-compat.h>
+#undef LGAMMA_OLD_VER
+#define LGAMMA_OLD_VER LONG_DOUBLE_COMPAT_VERSION
+#include <math/w_lgamma_compatl.c>
+#if GAMMA_ALIAS
+long_double_symbol (libm, __gammal, gammal);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c
new file mode 100644
index 0000000000..673954cd1a
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgamma_r_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_lgamma_r_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __lgamma_r, lgammal_r, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c
new file mode 100644
index 0000000000..6fdf2bba87
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_lgammal_r_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_lgammal_r_compat.c>
+long_double_symbol (libm, __lgammal_r, lgammal_r);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10_compat.c
new file mode 100644
index 0000000000..5ec6a2b2b6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_log10_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __log10, log10l, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c
new file mode 100644
index 0000000000..17de3e7856
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log10l_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_log10l_compat.c>
+long_double_symbol (libm, __log10l, log10l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2_compat.c
new file mode 100644
index 0000000000..dffd2c183e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_log2_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __log2, log2l, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c
new file mode 100644
index 0000000000..3c5e734573
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log2l_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_log2l_compat.c>
+long_double_symbol (libm, __log2l, log2l);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log_compat.c
new file mode 100644
index 0000000000..d2a2bcadde
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_log_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_log_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __log, logl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_logl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_logl_compat.c
new file mode 100644
index 0000000000..2b55842139
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_logl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_logl_compat.c>
+long_double_symbol (libm, __logl, logl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_pow_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_pow_compat.c
new file mode 100644
index 0000000000..c2a7942019
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_pow_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_pow_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __pow, powl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_powl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_powl_compat.c
new file mode 100644
index 0000000000..1897cf1c63
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_powl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_powl_compat.c>
+long_double_symbol (libm, __powl, powl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainder_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainder_compat.c
new file mode 100644
index 0000000000..c823dcb8e7
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainder_compat.c
@@ -0,0 +1,7 @@
+#include <math_ldbl_opt.h>
+#include <math/w_remainder_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __remainder, remainderl, GLIBC_2_0);
+strong_alias (__remainder, __drem)
+compat_symbol (libm, __drem, dreml, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
new file mode 100644
index 0000000000..b2ce5c9563
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_remainderl_compat.c
@@ -0,0 +1,7 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_remainderl_compat.c>
+long_double_symbol (libm, __remainderl, remainderl);
+strong_alias (__remainderl, __dreml)
+long_double_symbol (libm, __dreml, dreml);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalb_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalb_compat.c
new file mode 100644
index 0000000000..f6d53a5ba5
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalb_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_scalb_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __scalb, scalbl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalbl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalbl_compat.c
new file mode 100644
index 0000000000..c8feb654a2
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_scalbl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_scalbl_compat.c>
+long_double_symbol (libm, __scalbl, scalbl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinh_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinh_compat.c
new file mode 100644
index 0000000000..b47182c017
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinh_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_sinh_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __sinh, sinhl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c
new file mode 100644
index 0000000000..305ed82357
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sinhl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_sinhl_compat.c>
+long_double_symbol (libm, __sinhl, sinhl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c
new file mode 100644
index 0000000000..355d1c20db
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrt_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_sqrt_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __sqrt, sqrtl, GLIBC_2_0);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c
new file mode 100644
index 0000000000..1e4526f2c6
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_sqrtl_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_sqrtl_compat.c>
+long_double_symbol (libm, __sqrtl, sqrtl);
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c
new file mode 100644
index 0000000000..082ce8aaff
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgamma_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <math/w_tgamma_compat.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __tgamma, tgammal, GLIBC_2_1);
+#endif
diff --git a/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c
new file mode 100644
index 0000000000..aaf5403522
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/ldbl-opt/w_tgammal_compat.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#undef weak_alias
+#define weak_alias(n,a)
+#include <math/w_tgammal_compat.c>
+long_double_symbol (libm, __tgammal, tgammal);
diff --git a/REORG.TODO/sysdeps/ieee754/s_lib_version.c b/REORG.TODO/sysdeps/ieee754/s_lib_version.c
new file mode 100644
index 0000000000..bb59300953
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/s_lib_version.c
@@ -0,0 +1,41 @@
+/* @(#)s_lib_ver.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_lib_version.c,v 1.6 1995/05/10 20:47:44 jtc Exp $";
+#endif
+
+/*
+ * MACRO for standards
+ */
+
+#include <math.h>
+#include <math_private.h>
+
+/*
+ * define and initialize _LIB_VERSION
+ */
+#ifdef _POSIX_MODE
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _POSIX_;
+#else
+#ifdef _XOPEN_MODE
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _XOPEN_;
+#else
+#ifdef _SVID3_MODE
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _SVID_;
+#else					/* default _IEEE_MODE */
+_LIB_VERSION_TYPE _LIB_VERSION_INTERNAL = _IEEE_;
+#endif
+#endif
+#endif
+
+weak_alias (_LIB_VERSION_INTERNAL, _LIB_VERSION)
diff --git a/REORG.TODO/sysdeps/ieee754/s_matherr.c b/REORG.TODO/sysdeps/ieee754/s_matherr.c
new file mode 100644
index 0000000000..d5dc6f122d
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/s_matherr.c
@@ -0,0 +1,28 @@
+/* @(#)s_matherr.c 5.1 93/09/24 */
+/*
+ * ====================================================
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ *
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this
+ * software is freely granted, provided that this notice
+ * is preserved.
+ * ====================================================
+ */
+
+#if defined(LIBM_SCCS) && !defined(lint)
+static char rcsid[] = "$NetBSD: s_matherr.c,v 1.6 1995/05/10 20:47:53 jtc Exp $";
+#endif
+
+#include <math.h>
+#include <math_private.h>
+
+int
+weak_function
+__matherr(struct exception *x)
+{
+	int n=0;
+	if(x->arg1!=x->arg1) return 0;
+	return n;
+}
+weak_alias (__matherr, matherr)
diff --git a/REORG.TODO/sysdeps/ieee754/s_signgam.c b/REORG.TODO/sysdeps/ieee754/s_signgam.c
new file mode 100644
index 0000000000..9af3a75f1e
--- /dev/null
+++ b/REORG.TODO/sysdeps/ieee754/s_signgam.c
@@ -0,0 +1,4 @@
+#include <math.h>
+#include <math_private.h>
+int __signgam = 0;
+weak_alias (__signgam, signgam)