/** * DD/SFA 13.3.17 * * Newlib LIBM (Newlib math.h) https://sourceware.org/newlib/ * Version 2.4.0 ftp://sourceware.org/pub/newlib/newlib-2.4.0.tar.gz * * Example of a real-world verification task obtained by gcc -E for the * library function double __ieee754_acos(double) (https://sourceware.org/newlib/libm.html#acos). * * The task is to check for generic errors: over/underflows, div-by-zero, float becoming NaN. * */ # 1 "e_acos.c" # 1 "" # 1 "" # 31 "" # 1 "/usr/include/stdc-predef.h" 1 3 4 # 32 "" 2 # 1 "e_acos.c" # 38 "e_acos.c" # 1 "../common/fdlibm.h" 1 # 48 "../common/fdlibm.h" # 1 "../../include/m4s.h" 1 # 39 "../../include/m4s.h" # 1 "../../include/m4s_ext.h" 1 # 33 "../../include/m4s_ext.h" # 1 "/usr/include/x86_64-linux-gnu/sys/types.h" 1 3 4 # 25 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 364 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 1 3 4 # 415 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 416 "/usr/include/x86_64-linux-gnu/sys/cdefs.h" 2 3 4 # 365 "/usr/include/features.h" 2 3 4 # 388 "/usr/include/features.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 1 3 4 # 10 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/gnu/stubs-64.h" 1 3 4 # 11 "/usr/include/x86_64-linux-gnu/gnu/stubs.h" 2 3 4 # 389 "/usr/include/features.h" 2 3 4 # 26 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/types.h" 1 3 4 # 27 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 # 30 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; typedef signed long int __int64_t; typedef unsigned long int __uint64_t; typedef long int __quad_t; typedef unsigned long int __u_quad_t; # 121 "/usr/include/x86_64-linux-gnu/bits/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/typesizes.h" 1 3 4 # 122 "/usr/include/x86_64-linux-gnu/bits/types.h" 2 3 4 typedef unsigned long int __dev_t; typedef unsigned int __uid_t; typedef unsigned int __gid_t; typedef unsigned long int __ino_t; typedef unsigned long int __ino64_t; typedef unsigned int __mode_t; typedef unsigned long int __nlink_t; typedef long int __off_t; typedef long int __off64_t; typedef int __pid_t; typedef struct { int __val[2]; } __fsid_t; typedef long int __clock_t; typedef unsigned long int __rlim_t; typedef unsigned long int __rlim64_t; typedef unsigned int __id_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef int __daddr_t; typedef int __key_t; typedef int __clockid_t; typedef void * __timer_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef long int __blkcnt64_t; typedef unsigned long int __fsblkcnt_t; typedef unsigned long int __fsblkcnt64_t; typedef unsigned long int __fsfilcnt_t; typedef unsigned long int __fsfilcnt64_t; typedef long int __fsword_t; typedef long int __ssize_t; typedef long int __syscall_slong_t; typedef unsigned long int __syscall_ulong_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; typedef long int __intptr_t; typedef unsigned int __socklen_t; # 30 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; # 60 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; # 98 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 132 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 57 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 73 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 91 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 103 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 133 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 146 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 1 3 4 # 216 "/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h" 3 4 typedef long unsigned int size_t; # 147 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 194 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 216 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 36 "/usr/include/endian.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 2 3 4 # 60 "/usr/include/endian.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 1 3 4 # 28 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 29 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/byteswap-16.h" 1 3 4 # 36 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 2 3 4 # 44 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 static __inline unsigned int __bswap_32 (unsigned int __bsx) { return __builtin_bswap32 (__bsx); } # 108 "/usr/include/x86_64-linux-gnu/bits/byteswap.h" 3 4 static __inline __uint64_t __bswap_64 (__uint64_t __bsx) { return __builtin_bswap64 (__bsx); } # 61 "/usr/include/endian.h" 2 3 4 # 217 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/select.h" 1 3 4 # 30 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/select.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/select.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 23 "/usr/include/x86_64-linux-gnu/bits/select.h" 2 3 4 # 31 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 34 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 120 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; __syscall_slong_t tv_nsec; }; # 46 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/time.h" 1 3 4 # 30 "/usr/include/x86_64-linux-gnu/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 48 "/usr/include/x86_64-linux-gnu/sys/select.h" 2 3 4 typedef __suseconds_t suseconds_t; typedef long int __fd_mask; # 66 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 typedef struct { __fd_mask __fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 98 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 # 108 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 120 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 133 "/usr/include/x86_64-linux-gnu/sys/select.h" 3 4 # 220 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 1 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 1 3 4 # 24 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 __extension__ extern unsigned int gnu_dev_major (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned int gnu_dev_minor (unsigned long long int __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); __extension__ extern unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); # 58 "/usr/include/x86_64-linux-gnu/sys/sysmacros.h" 3 4 # 223 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 270 "/usr/include/x86_64-linux-gnu/sys/types.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 1 3 4 # 21 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 # 1 "/usr/include/x86_64-linux-gnu/bits/wordsize.h" 1 3 4 # 22 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 2 3 4 # 60 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; union pthread_attr_t { char __size[56]; long int __align; }; typedef union pthread_attr_t pthread_attr_t; typedef struct __pthread_internal_list { struct __pthread_internal_list *__prev; struct __pthread_internal_list *__next; } __pthread_list_t; # 90 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 typedef union { struct __pthread_mutex_s { int __lock; unsigned int __count; int __owner; unsigned int __nusers; int __kind; short __spins; short __elision; __pthread_list_t __list; # 125 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 } __data; char __size[40]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; unsigned int __futex; __extension__ unsigned long long int __total_seq; __extension__ unsigned long long int __wakeup_seq; __extension__ unsigned long long int __woken_seq; void *__mutex; unsigned int __nwaiters; unsigned int __broadcast_seq; } __data; char __size[48]; __extension__ long long int __align; } pthread_cond_t; typedef union { char __size[4]; int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; int __writer; int __shared; signed char __rwelision; unsigned char __pad1[7]; unsigned long int __pad2; unsigned int __flags; } __data; # 220 "/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h" 3 4 char __size[56]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[32]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 271 "/usr/include/x86_64-linux-gnu/sys/types.h" 2 3 4 # 36 "../../include/m4s_ext.h" 2 # 70 "../../include/m4s_ext.h" # 70 "../../include/m4s_ext.h" extern int __fpclassifyd(double x); # 82 "../../include/m4s_ext.h" extern int __fpclassifyf(float x); # 46 "../../include/m4s.h" 2 # 125 "../../include/m4s.h" extern double deg2rad(const double x); # 136 "../../include/m4s.h" extern double rem2pi(const double x); # 146 "../../include/m4s.h" extern double sin(const double x); # 155 "../../include/m4s.h" extern double asin(const double x); # 164 "../../include/m4s.h" extern double cos(const double x); # 173 "../../include/m4s.h" extern double acos(const double x); # 182 "../../include/m4s.h" extern double tan(const double x); # 191 "../../include/m4s.h" extern double atan(const double x); # 201 "../../include/m4s.h" extern double atan2(const double y, const double x); # 211 "../../include/m4s.h" extern double exp(const double x); # 220 "../../include/m4s.h" extern double log(const double x); # 229 "../../include/m4s.h" extern double log10(const double x); # 239 "../../include/m4s.h" extern double fabs(const double x); # 249 "../../include/m4s.h" extern double hypot(const double x, const double y); # 259 "../../include/m4s.h" extern double pow(const double x, const double y); # 268 "../../include/m4s.h" extern double sqrt(const double x); # 278 "../../include/m4s.h" extern double ceil(const double x); # 287 "../../include/m4s.h" extern double floor(const double x); # 296 "../../include/m4s.h" extern double round(const double x); # 307 "../../include/m4s.h" extern double trunc(const double x); # 318 "../../include/m4s.h" extern double fmod(const double x, const double y); # 328 "../../include/m4s.h" extern double modf(const double x, double * const iPtr); # 339 "../../include/m4s.h" extern double fmax(const double x, const double y); # 349 "../../include/m4s.h" extern double fmin(const double x, const double y); # 360 "../../include/m4s.h" extern double copysign(const double x, const double y); # 378 "../../include/m4s.h" extern float deg2radf(const float x); # 389 "../../include/m4s.h" extern float rem2pif(const float x); # 399 "../../include/m4s.h" extern float sinf(const float x); # 408 "../../include/m4s.h" extern float asinf(const float x); # 417 "../../include/m4s.h" extern float cosf(const float x); # 426 "../../include/m4s.h" extern float acosf(const float x); # 435 "../../include/m4s.h" extern float tanf(const float x); # 444 "../../include/m4s.h" extern float atanf(const float x); # 454 "../../include/m4s.h" extern float atan2f(const float y, const float x); # 464 "../../include/m4s.h" extern float expf(const float x); # 473 "../../include/m4s.h" extern float logf(const float x); # 482 "../../include/m4s.h" extern float log10f(const float x); # 492 "../../include/m4s.h" extern float fabsf(const float x); # 502 "../../include/m4s.h" extern float hypotf(const float x, const float y); # 512 "../../include/m4s.h" extern float powf(const float x, const float y); # 521 "../../include/m4s.h" extern float sqrtf(const float x); # 531 "../../include/m4s.h" extern float ceilf(const float x); # 540 "../../include/m4s.h" extern float floorf(const float x); # 549 "../../include/m4s.h" extern float roundf(const float x); # 560 "../../include/m4s.h" extern float truncf(const float x); # 571 "../../include/m4s.h" extern float fmodf(const float x, const float y); # 581 "../../include/m4s.h" extern float modff(const float x, float * const iPtr); # 592 "../../include/m4s.h" extern float fmaxf(const float x, const float y); # 602 "../../include/m4s.h" extern float fminf(const float x, const float y); # 613 "../../include/m4s.h" extern float copysignf(const float x, const float y); # 51 "../common/fdlibm.h" 2 # 1 "../m4s/m4s_impl.h" 1 # 33 "../m4s/m4s_impl.h" extern double nan (const char *); extern double scalbn (double, int); extern float nanf (const char *); extern float scalbnf (float, int); # 52 "../common/fdlibm.h" 2 # 186 "../common/fdlibm.h" extern double scalb (double, double); extern double significand (double); extern long double __ieee754_hypotl (long double, long double); extern double __ieee754_sqrt (double); extern double __ieee754_acos (double); extern double __ieee754_acosh (double); extern double __ieee754_log (double); extern double __ieee754_atanh (double); extern double __ieee754_asin (double); extern double __ieee754_atan2 (double,double); extern double __ieee754_exp (double); extern double __ieee754_cosh (double); extern double __ieee754_fmod (double,double); extern double __ieee754_pow (double,double); extern double __ieee754_lgamma_r (double,int *); extern double __ieee754_gamma_r (double,int *); extern double __ieee754_log10 (double); extern double __ieee754_sinh (double); extern double __ieee754_hypot (double,double); extern double __ieee754_j0 (double); extern double __ieee754_j1 (double); extern double __ieee754_y0 (double); extern double __ieee754_y1 (double); extern double __ieee754_jn (int,double); extern double __ieee754_yn (int,double); extern double __ieee754_remainder (double,double); extern __int32_t __ieee754_rem_pio2 (double,double*); extern double __ieee754_scalb (double,double); extern double __kernel_standard (double,double,int); extern double __kernel_sin (double,double,int); extern double __kernel_cos (double,double); extern double __kernel_tan (double,double,int); extern int __kernel_rem_pio2 (double*,double*,int,int,int,const __int32_t*); extern float scalbf (float, float); extern float significandf (float); extern float __ieee754_sqrtf (float); extern float __ieee754_acosf (float); extern float __ieee754_acoshf (float); extern float __ieee754_logf (float); extern float __ieee754_atanhf (float); extern float __ieee754_asinf (float); extern float __ieee754_atan2f (float,float); extern float __ieee754_expf (float); extern float __ieee754_coshf (float); extern float __ieee754_fmodf (float,float); extern float __ieee754_powf (float,float); extern float __ieee754_lgammaf_r (float,int *); extern float __ieee754_gammaf_r (float,int *); extern float __ieee754_log10f (float); extern float __ieee754_sinhf (float); extern float __ieee754_hypotf (float,float); extern float __ieee754_j0f (float); extern float __ieee754_j1f (float); extern float __ieee754_y0f (float); extern float __ieee754_y1f (float); extern float __ieee754_jnf (int,float); extern float __ieee754_ynf (int,float); extern float __ieee754_remainderf (float,float); extern __int32_t __ieee754_rem_pio2f (float,float*); extern float __ieee754_scalbf (float,float); extern float __kernel_sinf (float,float,int); extern float __kernel_cosf (float,float); extern float __kernel_tanf (float,float,int); extern int __kernel_rem_pio2f (float*,float*,int,int,int,const __int32_t*); # 311 "../common/fdlibm.h" typedef union { double value; struct { __uint32_t lsw; __uint32_t msw; } parts; } ieee_double_shape_type; # 384 "../common/fdlibm.h" typedef union { float value; __uint32_t word; } ieee_float_shape_type; # 39 "e_acos.c" 2 static const double one= 1.00000000000000000000e+00, pi = 3.14159265358979311600e+00, pio2_hi = 1.57079632679489655800e+00, pio2_lo = 6.12323399573676603587e-17, pS0 = 1.66666666666666657415e-01, pS1 = -3.25565818622400915405e-01, pS2 = 2.01212532134862925881e-01, pS3 = -4.00555345006794114027e-02, pS4 = 7.91534994289814532176e-04, pS5 = 3.47933107596021167570e-05, qS1 = -2.40339491173441421878e+00, qS2 = 2.02094576023350569471e+00, qS3 = -6.88283971605453293030e-01, qS4 = 7.70381505559019352791e-02; double __ieee754_acos(double x) { double z,p,q,r,w,s,c,df; __int32_t hx,ix; do { ieee_double_shape_type gh_u; gh_u.value = (x); (hx) = gh_u.parts.msw; } while (0); ix = hx&0x7fffffff; if(ix>=0x3ff00000) { __uint32_t lx; do { ieee_double_shape_type gl_u; gl_u.value = (x); (lx) = gl_u.parts.lsw; } while (0); if(((ix-0x3ff00000)|lx)==0) { if(hx>0) return 0.0; else return pi+2.0*pio2_lo; } return (x-x)/(x-x); } if(ix<0x3fe00000) { if(ix<=0x3c600000) return pio2_hi+pio2_lo; 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) { z = (one+x)*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_sqrt(z); r = p/q; w = r*s-pio2_lo; return pi - 2.0*(s+w); } else { z = (one-x)*0.5; s = __ieee754_sqrt(z); df = s; do { ieee_double_shape_type sl_u; sl_u.value = (df); sl_u.parts.lsw = (0); (df) = sl_u.value; } while (0); 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 2.0*(df+w); } }