003 File Manager
Current Path:
/usr/src/lib/msun/src
usr
/
src
/
lib
/
msun
/
src
/
📁
..
📄
catrig.c
(18.56 KB)
📄
catrigf.c
(9.27 KB)
📄
catrigl.c
(10.37 KB)
📄
e_acos.c
(3.38 KB)
📄
e_acosf.c
(1.99 KB)
📄
e_acosh.c
(1.63 KB)
📄
e_acoshf.c
(1.27 KB)
📄
e_acoshl.c
(2.19 KB)
📄
e_acosl.c
(2.16 KB)
📄
e_asin.c
(3.55 KB)
📄
e_asinf.c
(1.58 KB)
📄
e_asinl.c
(1.85 KB)
📄
e_atan2.c
(3.74 KB)
📄
e_atan2f.c
(2.63 KB)
📄
e_atan2l.c
(3.42 KB)
📄
e_atanh.c
(1.64 KB)
📄
e_atanhf.c
(1.12 KB)
📄
e_atanhl.c
(1.76 KB)
📄
e_cosh.c
(2.21 KB)
📄
e_coshf.c
(1.45 KB)
📄
e_coshl.c
(4 KB)
📄
e_exp.c
(5.07 KB)
📄
e_expf.c
(2.7 KB)
📄
e_fmod.c
(3.34 KB)
📄
e_fmodf.c
(2.59 KB)
📄
e_fmodl.c
(3.77 KB)
📄
e_gamma.c
(725 B)
📄
e_gamma_r.c
(801 B)
📄
e_gammaf.c
(814 B)
📄
e_gammaf_r.c
(890 B)
📄
e_hypot.c
(3.22 KB)
📄
e_hypotf.c
(2.15 KB)
📄
e_hypotl.c
(3.16 KB)
📄
e_j0.c
(14.39 KB)
📄
e_j0f.c
(10.31 KB)
📄
e_j1.c
(14.12 KB)
📄
e_j1f.c
(9.98 KB)
📄
e_jn.c
(7.08 KB)
📄
e_jnf.c
(4.75 KB)
📄
e_lgamma.c
(819 B)
📄
e_lgamma_r.c
(10.7 KB)
📄
e_lgammaf.c
(820 B)
📄
e_lgammaf_r.c
(5.82 KB)
📄
e_lgammal.c
(599 B)
📄
e_log.c
(4.42 KB)
📄
e_log10.c
(2.5 KB)
📄
e_log10f.c
(1.93 KB)
📄
e_log2.c
(3.64 KB)
📄
e_log2f.c
(2.37 KB)
📄
e_logf.c
(2.36 KB)
📄
e_pow.c
(9.84 KB)
📄
e_powf.c
(7.34 KB)
📄
e_rem_pio2.c
(4.7 KB)
📄
e_rem_pio2f.c
(1.96 KB)
📄
e_remainder.c
(1.75 KB)
📄
e_remainderf.c
(1.41 KB)
📄
e_remainderl.c
(1.55 KB)
📄
e_scalb.c
(1.07 KB)
📄
e_scalbf.c
(1.06 KB)
📄
e_sinh.c
(2.03 KB)
📄
e_sinhf.c
(1.43 KB)
📄
e_sinhl.c
(4.12 KB)
📄
e_sqrt.c
(14.12 KB)
📄
e_sqrtf.c
(1.91 KB)
📄
e_sqrtl.c
(4.28 KB)
📄
fenv-softfloat.h
(4.96 KB)
📄
imprecise.c
(2.08 KB)
📄
k_cos.c
(2.75 KB)
📄
k_cosf.c
(1.23 KB)
📄
k_exp.c
(3.55 KB)
📄
k_expf.c
(2.67 KB)
📄
k_log.h
(3.34 KB)
📄
k_logf.h
(992 B)
📄
k_rem_pio2.c
(15.51 KB)
📄
k_sin.c
(2.27 KB)
📄
k_sincos.h
(1.7 KB)
📄
k_sincosf.h
(1.38 KB)
📄
k_sincosl.h
(4.82 KB)
📄
k_sinf.c
(1.21 KB)
📄
k_tan.c
(3.93 KB)
📄
k_tanf.c
(1.97 KB)
📄
math.h
(13.92 KB)
📄
math_private.h
(24.72 KB)
📄
s_asinh.c
(1.64 KB)
📄
s_asinhf.c
(1.32 KB)
📄
s_asinhl.c
(2.41 KB)
📄
s_atan.c
(4.08 KB)
📄
s_atanf.c
(2.42 KB)
📄
s_atanl.c
(2.32 KB)
📄
s_carg.c
(1.55 KB)
📄
s_cargf.c
(1.55 KB)
📄
s_cargl.c
(1.57 KB)
📄
s_cbrt.c
(4.03 KB)
📄
s_cbrtf.c
(1.85 KB)
📄
s_cbrtl.c
(3.34 KB)
📄
s_ccosh.c
(5.01 KB)
📄
s_ccoshf.c
(3.08 KB)
📄
s_ceil.c
(1.73 KB)
📄
s_ceilf.c
(1.24 KB)
📄
s_ceill.c
(2.38 KB)
📄
s_cexp.c
(2.88 KB)
📄
s_cexpf.c
(2.85 KB)
📄
s_cimag.c
(1.53 KB)
📄
s_cimagf.c
(1.53 KB)
📄
s_cimagl.c
(1.55 KB)
📄
s_clog.c
(5.06 KB)
📄
s_clogf.c
(5.01 KB)
📄
s_clogl.c
(5.49 KB)
📄
s_conj.c
(1.51 KB)
📄
s_conjf.c
(1.52 KB)
📄
s_conjl.c
(1.53 KB)
📄
s_copysign.c
(808 B)
📄
s_copysignf.c
(905 B)
📄
s_copysignl.c
(1.57 KB)
📄
s_cos.c
(2.19 KB)
📄
s_cosf.c
(2.2 KB)
📄
s_cosl.c
(2.55 KB)
📄
s_cpow.c
(1.8 KB)
📄
s_cpowf.c
(1.79 KB)
📄
s_cpowl.c
(1.83 KB)
📄
s_cproj.c
(1.74 KB)
📄
s_cprojf.c
(1.66 KB)
📄
s_cprojl.c
(1.68 KB)
📄
s_creal.c
(1.45 KB)
📄
s_crealf.c
(1.45 KB)
📄
s_creall.c
(1.46 KB)
📄
s_csinh.c
(5.01 KB)
📄
s_csinhf.c
(3.06 KB)
📄
s_csqrt.c
(3.29 KB)
📄
s_csqrtf.c
(2.65 KB)
📄
s_csqrtl.c
(3.78 KB)
📄
s_ctanh.c
(4.32 KB)
📄
s_ctanhf.c
(2.45 KB)
📄
s_erf.c
(11 KB)
📄
s_erff.c
(5.11 KB)
📄
s_exp2.c
(14.03 KB)
📄
s_exp2f.c
(4.14 KB)
📄
s_expm1.c
(7.18 KB)
📄
s_expm1f.c
(3.41 KB)
📄
s_fabs.c
(677 B)
📄
s_fabsf.c
(765 B)
📄
s_fabsl.c
(1.68 KB)
📄
s_fdim.c
(1.7 KB)
📄
s_finite.c
(700 B)
📄
s_finitef.c
(796 B)
📄
s_floor.c
(1.74 KB)
📄
s_floorf.c
(1.41 KB)
📄
s_floorl.c
(2.38 KB)
📄
s_fma.c
(7.92 KB)
📄
s_fmaf.c
(2.57 KB)
📄
s_fmal.c
(7.38 KB)
📄
s_fmax.c
(2.01 KB)
📄
s_fmaxf.c
(1.88 KB)
📄
s_fmaxl.c
(1.98 KB)
📄
s_fmin.c
(2.01 KB)
📄
s_fminf.c
(1.88 KB)
📄
s_fminl.c
(1.98 KB)
📄
s_frexp.c
(1.31 KB)
📄
s_frexpf.c
(1.02 KB)
📄
s_frexpl.c
(2 KB)
📄
s_ilogb.c
(1.14 KB)
📄
s_ilogbf.c
(976 B)
📄
s_ilogbl.c
(1.21 KB)
📄
s_isfinite.c
(1.72 KB)
📄
s_isnan.c
(2.1 KB)
📄
s_isnormal.c
(1.78 KB)
📄
s_llrint.c
(156 B)
📄
s_llrintf.c
(157 B)
📄
s_llrintl.c
(163 B)
📄
s_llround.c
(215 B)
📄
s_llroundf.c
(216 B)
📄
s_llroundl.c
(222 B)
📄
s_log1p.c
(5.6 KB)
📄
s_log1pf.c
(3.14 KB)
📄
s_logb.c
(1.13 KB)
📄
s_logbf.c
(1023 B)
📄
s_logbl.c
(1.24 KB)
📄
s_lrint.c
(2.1 KB)
📄
s_lrintf.c
(151 B)
📄
s_lrintl.c
(157 B)
📄
s_lround.c
(2.45 KB)
📄
s_lroundf.c
(208 B)
📄
s_lroundl.c
(214 B)
📄
s_modf.c
(1.88 KB)
📄
s_modff.c
(1.39 KB)
📄
s_modfl.c
(3.41 KB)
📄
s_nan.c
(3.32 KB)
📄
s_nearbyint.c
(2.29 KB)
📄
s_nextafter.c
(2.03 KB)
📄
s_nextafterf.c
(1.61 KB)
📄
s_nextafterl.c
(2.02 KB)
📄
s_nexttoward.c
(1.75 KB)
📄
s_nexttowardf.c
(1.42 KB)
📄
s_remquo.c
(3.86 KB)
📄
s_remquof.c
(3.02 KB)
📄
s_remquol.c
(4.42 KB)
📄
s_rint.c
(2.33 KB)
📄
s_rintf.c
(1.22 KB)
📄
s_rintl.c
(2.77 KB)
📄
s_round.c
(1.83 KB)
📄
s_roundf.c
(1.74 KB)
📄
s_roundl.c
(1.84 KB)
📄
s_scalbln.c
(1.82 KB)
📄
s_scalbn.c
(1.9 KB)
📄
s_scalbnf.c
(1.67 KB)
📄
s_scalbnl.c
(1.9 KB)
📄
s_signbit.c
(1.7 KB)
📄
s_signgam.c
(61 B)
📄
s_significand.c
(727 B)
📄
s_significandf.c
(691 B)
📄
s_sin.c
(2.18 KB)
📄
s_sincos.c
(1.6 KB)
📄
s_sincosf.c
(2.57 KB)
📄
s_sincosl.c
(2.67 KB)
📄
s_sinf.c
(2.18 KB)
📄
s_sinl.c
(2.49 KB)
📄
s_tan.c
(2.02 KB)
📄
s_tanf.c
(1.97 KB)
📄
s_tanh.c
(2.02 KB)
📄
s_tanhf.c
(1.39 KB)
📄
s_tanhl.c
(5.09 KB)
📄
s_tanl.c
(2.6 KB)
📄
s_tgammaf.c
(1.75 KB)
📄
s_trunc.c
(1.5 KB)
📄
s_truncf.c
(1.21 KB)
📄
s_truncl.c
(1.61 KB)
📄
w_cabs.c
(365 B)
📄
w_cabsf.c
(350 B)
📄
w_cabsl.c
(357 B)
📄
w_drem.c
(211 B)
📄
w_dremf.c
(254 B)
Editing: s_remquo.c
/* @(#)e_fmod.c 1.3 95/01/18 */ /*- * ==================================================== * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * * Developed at SunSoft, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this * software is freely granted, provided that this notice * is preserved. * ==================================================== */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include <float.h> #include "math.h" #include "math_private.h" static const double Zero[] = {0.0, -0.0,}; /* * Return the IEEE remainder and set *quo to the last n bits of the * quotient, rounded to the nearest integer. We choose n=31 because * we wind up computing all the integer bits of the quotient anyway as * a side-effect of computing the remainder by the shift and subtract * method. In practice, this is far more bits than are needed to use * remquo in reduction algorithms. */ double remquo(double x, double y, int *quo) { int32_t n,hx,hy,hz,ix,iy,sx,i; u_int32_t lx,ly,lz,q,sxy; EXTRACT_WORDS(hx,lx,x); EXTRACT_WORDS(hy,ly,y); sxy = (hx ^ hy) & 0x80000000; 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 nan_mix_op(x, y, *)/nan_mix_op(x, y, *); if(hx<=hy) { if((hx<hy)||(lx<ly)) { q = 0; goto fixup; /* |x|<|y| return x or x-y */ } if(lx==ly) { *quo = (sxy ? -1 : 1); return Zero[(u_int32_t)sx>>31]; /* |x|=|y| return x*0*/ } } /* determine ix = ilogb(x) */ if(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(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(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(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; q = 0; 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 {hx = hz+hz+(lz>>31); lx = lz+lz; q++;} q <<= 1; } hz=hx-hy;lz=lx-ly; if(lx<ly) hz -= 1; if(hz>=0) {hx=hz;lx=lz;q++;} /* convert back to floating value and restore the sign */ if((hx|lx)==0) { /* return sign(x)*0 */ q &= 0x7fffffff; *quo = (sxy ? -q : q); return Zero[(u_int32_t)sx>>31]; } while(hx<0x00100000) { /* normalize x */ hx = hx+hx+(lx>>31); lx = lx+lx; iy -= 1; } if(iy>= -1022) { /* normalize output */ hx = ((hx-0x00100000)|((iy+1023)<<20)); } 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 = 0; } else { lx = hx>>(n-32); hx = 0; } } fixup: INSERT_WORDS(x,hx,lx); y = fabs(y); if (y < 0x1p-1021) { if (x+x>y || (x+x==y && (q & 1))) { q++; x-=y; } } else if (x>0.5*y || (x==0.5*y && (q & 1))) { q++; x-=y; } GET_HIGH_WORD(hx,x); SET_HIGH_WORD(x,hx^sx); q &= 0x7fffffff; *quo = (sxy ? -q : q); return x; } #if LDBL_MANT_DIG == 53 __weak_reference(remquo, remquol); #endif
Upload File
Create Folder