Lines Matching refs:bc

2306 	(x, bc) U *x; BCinfo *bc;  in sulp()  argument
2308 (U *x, BCinfo *bc)
2316 if (!bc->scale || (i = 2*P + 1 - ((word0(x) & Exp_mask) >> Exp_shift)) <= 0)
2328 (rv, s0, bc) in bigcomp() argument
2329 U *rv; CONST char *s0; BCinfo *bc; in bigcomp()
2331 (U *rv, const char *s0, BCinfo *bc)
2337 dsign = bc->dsign;
2338 nd = bc->nd;
2339 nd0 = bc->nd0;
2340 p5 = nd + bc->e0 - 1;
2355 if (bc->rounding == 1)
2368 p2 -= bc->scale;
2380 word0(rv) = (1 + bc->scale) << Exp_shift;
2390 if (bc->rounding != 1) {
2449 for(j = bc->dp1; i++ < nd;) {
2466 if (bc->rounding != 1) {
2468 if (bc->rounding == 0) {
2476 if (bc->rounding == 0) {
2483 dval(rv) += 2.*sulp(rv,bc);
2486 bc->inexact = 0;
2500 dval(rv) -= sulp(rv,bc);
2505 dval(rv) += sulp(rv,bc);
2510 if ((j = ((word0(rv) & Exp_mask) >> Exp_shift) - bc->scale) <= 0) {
2549 BCinfo bc; local
2562 bc.rounding = Flt_Rounds;
2564 bc.rounding = 1;
2566 case FE_TOWARDZERO: bc.rounding = 0; break;
2567 case FE_UPWARD: bc.rounding = 2; break;
2568 case FE_DOWNWARD: bc.rounding = 3;
2576 sign = nz0 = nz1 = nz = bc.dplen = bc.uflchk = 0;
2605 gethex(&s, &rv, bc.rounding, sign);
2625 bc.dp0 = bc.dp1 = s - s0;
2649 bc.dp1 = s - s0;
2650 bc.dplen = bc.dp1 - bc.dp0;
2655 bc.dp0 = s0 - s;
2656 bc.dp1 = bc.dp0 + bc.dplen;
2732 if (!bc.dplen)
2764 bc.e0 = e1 = e -= nf;
2859 bc.inexact = 1;
2864 bc.scale = 0;
2867 if (bc.rounding >= 2) {
2869 bc.rounding = bc.rounding == 2 ? 0 : 2;
2871 if (bc.rounding != 2)
2872 bc.rounding = 0;
2888 switch(bc.rounding) {
2953 bc.scale = 2*P;
2957 if (bc.scale && (j = 2*P + 1 - ((word0(&rv) & Exp_mask)
3003 bc.nd = nd - nz1;
3005 bc.nd0 = nd0; /* Only needed if nd > strtod_diglim, but done here */
3014 j += bc.dplen;
3016 if (--j < bc.dp1 && j >= bc.dp0)
3017 j = bc.dp0 - 1;
3030 for(j = bc.dp1; i < nd; ++i)
3035 bd0 = s2b(s0, nd0, nd, y, bc.dplen);
3057 if (bc.rounding != 1)
3063 j = bbe - bc.scale;
3095 bd2 += bc.scale;
3120 bc.dsign = delta->sign;
3124 if (bc.nd > nd && i <= 0) {
3125 if (bc.dsign) {
3131 if (bc.rounding != 1) {
3143 if (bc.rounding != 1) {
3149 bc.inexact = 0;
3153 if (bc.rounding) {
3154 if (bc.dsign) {
3159 else if (!bc.dsign) {
3165 if (!bc.scale || y > 2*P*Exp_msk1)
3177 if (bc.scale && (y = word0(&rv) & Exp_mask)
3202 if (!((bc.rounding>>1) ^ bc.dsign))
3208 if (bc.scale && (y = word0(&rv) & Exp_mask) <= 2*P*Exp_msk1)
3215 if (bc.dsign)
3225 if (bc.dsign) {
3240 if (bc.dsign || word1(&rv) || word0(&rv) & Bndry_mask
3251 bc.inexact = 0;
3258 bc.inexact = 0;
3269 if (bc.dsign) {
3273 (bc.scale && (y = word0(&rv) & Exp_mask) <= 2*P*Exp_msk1)
3288 bc.dsign = 0;
3302 if (L <= (bc.scale ? (2*P+1)*Exp_msk1 : Exp_msk1))
3308 if (bc.nd >nd) {
3309 bc.uflchk = 1;
3317 if (bc.scale) {
3325 if (bc.nd >nd) {
3326 bc.uflchk = 1;
3341 if (bc.nd > nd)
3360 if (bc.dsign)
3362 dval(&rv) += sulp(&rv, &bc);
3369 dval(&rv) -= sulp(&rv, &bc);
3375 if (bc.nd >nd) {
3376 bc.uflchk = 1;
3384 bc.dsign = 1 - bc.dsign;
3390 if (bc.dsign)
3395 if (bc.nd >nd) {
3396 bc.uflchk = 1;
3418 aadj1 = bc.dsign ? aadj : -aadj;
3420 switch(bc.rounding) {
3455 if (bc.scale && y <= 2*P*Exp_msk1) {
3460 aadj1 = bc.dsign ? aadj : -aadj;
3496 if (bc.nd >nd) {
3497 bc.uflchk = 1;
3523 if (!bc.dsign)
3533 if (bc.nd == nd) {
3535 if (!bc.scale)
3542 if (bc.dsign || word1(&rv) || word0(&rv) & Bndry_mask) {
3565 bc.e0 += nz1;
3566 bigcomp(&rv, s0, &bc);
3575 if (bc.inexact) {
3586 if (bc.scale) {
3602 if (bc.inexact && !(word0(&rv) & Exp_mask)) {