Lines Matching refs:dfr

178 			    const decFloat *dfr, decContext *set, uInt op) {  in decDivide()  argument
201 num.sign=(DFWORD(dfl, 0)^DFWORD(dfr, 0)) & DECFLOAT_Sign; in decDivide()
203 if (DFISSPECIAL(dfl) || DFISSPECIAL(dfr)) { /* either is special? */ in decDivide()
205 if (DFISNAN(dfl) || DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decDivide()
208 if (DFISINF(dfr)) return decInvalid(result, set); /* Two infinities bad */ in decDivide()
224 if (DFISZERO(dfr)) { /* x/0 */ in decDivide()
236 num.exponent=GETEXPUN(dfl)-GETEXPUN(dfr); /* ideal exponent */ in decDivide()
247 num.exponent=MINI(GETEXPUN(dfl), GETEXPUN(dfr)); in decDivide()
267 GETCOEFFBILL(dfr, div); in decDivide()
668 decFloatFMA(result, &quotient, dfr, dfl, set); in decDivide()
719 const decFloat *dfl, const decFloat *dfr) { in decFiniteMultiply() argument
737 num->sign=(DFWORD(dfl, 0)^DFWORD(dfr, 0)) & DECFLOAT_Sign; in decFiniteMultiply()
738 num->exponent=GETEXPUN(dfl)+GETEXPUN(dfr); /* [see assertion above] */ in decFiniteMultiply()
745 GETCOEFFBILL(dfr, bufr); in decFiniteMultiply()
1060 decFloatShow(dfr, "dfr"); in decFiniteMultiply()
1113 const decFloat *dfl, const decFloat *dfr, in decFloatAdd() argument
1156 sourhir=DFWORD(dfr, 0); /* RHS top word */ in decFloatAdd()
1159 bexpl+=GETECON(dfr); in decFloatAdd()
1178 if (summ<-64) return decNaNs(result, dfl, dfr, set); /* one or two NaNs */ in decFloatAdd()
1182 return decInfinity(result, dfr); /* RHS must be Inf */ in decFloatAdd()
1192 ADDCOEFFTHOU(dfr, tac); in decFloatAdd()
1251 dfl=dfr; in decFloatAdd()
1252 dfr=dfswap; in decFloatAdd()
1262 decCanonical(result, dfr); /* clean copy */ in decFloatAdd()
1370 *ub=(uByte)(!DFISZERO(dfr)); /* make sticky digit */ in decFloatAdd()
1373 GETCOEFF(dfr, ub); /* decode from decFloat */ in decFloatAdd()
1387 GETCOEFF(dfr, ub); /* decode from decFloat */ in decFloatAdd()
1402 GETCOEFF(dfr, ub); /* decode from decFloat */ in decFloatAdd()
1531 num.sign=DFWORD(dfr, 0) & DECFLOAT_Sign; in decFloatAdd()
1574 decFloatShow(dfr, "dfr"); in decFloatAdd()
1593 const decFloat *dfl, const decFloat *dfr, in decFloatAnd() argument
1595 if (!DFISUINT01(dfl) || !DFISUINT01(dfr) in decFloatAnd()
1596 || !DFISCC01(dfl) || !DFISCC01(dfr)) return decInvalid(result, set); in decFloatAnd()
1600 |((DFWORD(dfl, 0) & DFWORD(dfr, 0))&0x04009124); in decFloatAnd()
1601 DFWORD(result, 1)=(DFWORD(dfl, 1) & DFWORD(dfr, 1))&0x49124491; in decFloatAnd()
1604 |((DFWORD(dfl, 0) & DFWORD(dfr, 0))&0x04000912); in decFloatAnd()
1605 DFWORD(result, 1)=(DFWORD(dfl, 1) & DFWORD(dfr, 1))&0x44912449; in decFloatAnd()
1606 DFWORD(result, 2)=(DFWORD(dfl, 2) & DFWORD(dfr, 2))&0x12449124; in decFloatAnd()
1607 DFWORD(result, 3)=(DFWORD(dfl, 3) & DFWORD(dfr, 3))&0x49124491; in decFloatAnd()
1688 const decFloat *dfl, const decFloat *dfr, in decFloatCompare() argument
1692 if (DFISNAN(dfl) || DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatCompare()
1694 comp=decNumCompare(dfl, dfr, 0); in decFloatCompare()
1712 const decFloat *dfl, const decFloat *dfr, in decFloatCompareSignal() argument
1716 if (DFISNAN(dfl) || DFISNAN(dfr)) { in decFloatCompareSignal()
1718 return decNaNs(result, dfl, dfr, set); in decFloatCompareSignal()
1721 comp=decNumCompare(dfl, dfr, 0); in decFloatCompareSignal()
1738 const decFloat *dfl, const decFloat *dfr) { in decFloatCompareTotal() argument
1744 if (DFISNAN(dfl) || DFISNAN(dfr)) { in decFloatCompareTotal()
1749 nanr=DFISSNAN(dfr)+DFISQNAN(dfr)*2; in decFloatCompareTotal()
1750 if (DFISSIGNED(dfr)) nanr=-nanr; in decFloatCompareTotal()
1768 GETCOEFF(dfr, bufr+QUAD*2); /* .. */ in decFloatCompareTotal()
1786 comp=decNumCompare(dfl, dfr, 1); /* total ordering */ in decFloatCompareTotal()
1804 const decFloat *dfl, const decFloat *dfr) { in decFloatCompareTotalMag() argument
1811 if (DFISSIGNED(dfr)) { in decFloatCompareTotalMag()
1812 decFloatCopyAbs(&b, dfr); in decFloatCompareTotalMag()
1813 dfr=&b; in decFloatCompareTotalMag()
1815 return decFloatCompareTotal(result, dfl, dfr); in decFloatCompareTotalMag()
1873 const decFloat *dfl, const decFloat *dfr) { in decFloatCopySign() argument
1874 uByte sign=(uByte)(DFBYTE(dfr, 0)&0x80); /* save sign bit */ in decFloatCopySign()
1974 const decFloat *dfl, const decFloat *dfr, in decFloatDivide() argument
1976 return decDivide(result, dfl, dfr, set, DIVIDE); in decFloatDivide()
1990 const decFloat *dfl, const decFloat *dfr, in decFloatDivideInteger() argument
1992 return decDivide(result, dfl, dfr, set, DIVIDEINT); in decFloatDivideInteger()
2007 const decFloat *dfr, const decFloat *dff, in decFloatFMA() argument
2029 if (DFISSPECIAL(dfl) || DFISSPECIAL(dfr) || DFISSPECIAL(dff)) { in decFloatFMA()
2032 if (DFISSNAN(dfl) || DFISSNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatFMA()
2034 if (DFISNAN(dfl) || DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatFMA()
2040 if (DFISZERO(dfr)) return decInvalid(result, set); in decFloatFMA()
2043 else if (DFISINF(dfr)) { in decFloatFMA()
2048 DFWORD(&proxy, 0)|=(DFWORD(dfl, 0)^DFWORD(dfr, 0))&DECFLOAT_Sign; in decFloatFMA()
2061 decFiniteMultiply(&mul, acc+1, dfl, dfr); in decFloatFMA()
2521 const decFloat *dfl, const decFloat *dfr, in decFloatMax() argument
2526 if (DFISNAN(dfr) || DFISSNAN(dfl)) return decNaNs(result, dfl, dfr, set); in decFloatMax()
2527 return decCanonical(result, dfr); /* RHS is numeric */ in decFloatMax()
2529 if (DFISNAN(dfr)) { in decFloatMax()
2531 if (DFISSNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatMax()
2536 comp=decNumCompare(dfl, dfr, 1); in decFloatMax()
2538 return decCanonical(result, dfr); in decFloatMax()
2554 const decFloat *dfl, const decFloat *dfr, in decFloatMaxMag() argument
2558 if (DFISNAN(dfl) || DFISNAN(dfr)) return decFloatMax(result, dfl, dfr, set); in decFloatMaxMag()
2561 decFloatCopyAbs(&absr, dfr); in decFloatMaxMag()
2564 if (comp<0) return decCanonical(result, dfr); in decFloatMaxMag()
2565 return decFloatMax(result, dfl, dfr, set); in decFloatMaxMag()
2580 const decFloat *dfl, const decFloat *dfr, in decFloatMin() argument
2585 if (DFISNAN(dfr) || DFISSNAN(dfl)) return decNaNs(result, dfl, dfr, set); in decFloatMin()
2586 return decCanonical(result, dfr); /* RHS is numeric */ in decFloatMin()
2588 if (DFISNAN(dfr)) { in decFloatMin()
2590 if (DFISSNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatMin()
2595 comp=decNumCompare(dfl, dfr, 1); in decFloatMin()
2597 return decCanonical(result, dfr); in decFloatMin()
2613 const decFloat *dfl, const decFloat *dfr, in decFloatMinMag() argument
2617 if (DFISNAN(dfl) || DFISNAN(dfr)) return decFloatMin(result, dfl, dfr, set); in decFloatMinMag()
2620 decFloatCopyAbs(&absr, dfr); in decFloatMinMag()
2623 if (comp>0) return decCanonical(result, dfr); in decFloatMinMag()
2624 return decFloatMin(result, dfl, dfr, set); in decFloatMinMag()
2661 const decFloat *dfl, const decFloat *dfr, in decFloatMultiply() argument
2666 if (DFISSPECIAL(dfl) || DFISSPECIAL(dfr)) { /* either is special? */ in decFloatMultiply()
2668 if (DFISNAN(dfl) || DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatMultiply()
2670 if (DFISINF(dfl) && DFISZERO(dfr)) return decInvalid(result, set); in decFloatMultiply()
2671 if (DFISINF(dfr) && DFISZERO(dfl)) return decInvalid(result, set); in decFloatMultiply()
2673 DFWORD(result, 0)=DFWORD(dfl, 0)^DFWORD(dfr, 0); /* compute sign */ in decFloatMultiply()
2678 decFiniteMultiply(&num, bcdacc, dfl, dfr); in decFloatMultiply()
2783 const decFloat *dfl, const decFloat *dfr, in decFloatNextToward() argument
2792 if (DFISNAN(dfl) || DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatNextToward()
2794 comp=decNumCompare(dfl, dfr, 0); in decFloatNextToward()
2795 if (comp==0) return decFloatCopySign(result, dfl, dfr); /* equal */ in decFloatNextToward()
2847 const decFloat *dfl, const decFloat *dfr, in decFloatOr() argument
2849 if (!DFISUINT01(dfl) || !DFISUINT01(dfr) in decFloatOr()
2850 || !DFISCC01(dfl) || !DFISCC01(dfr)) return decInvalid(result, set); in decFloatOr()
2854 |((DFWORD(dfl, 0) | DFWORD(dfr, 0))&0x04009124); in decFloatOr()
2855 DFWORD(result, 1)=(DFWORD(dfl, 1) | DFWORD(dfr, 1))&0x49124491; in decFloatOr()
2858 |((DFWORD(dfl, 0) | DFWORD(dfr, 0))&0x04000912); in decFloatOr()
2859 DFWORD(result, 1)=(DFWORD(dfl, 1) | DFWORD(dfr, 1))&0x44912449; in decFloatOr()
2860 DFWORD(result, 2)=(DFWORD(dfl, 2) | DFWORD(dfr, 2))&0x12449124; in decFloatOr()
2861 DFWORD(result, 3)=(DFWORD(dfl, 3) | DFWORD(dfr, 3))&0x49124491; in decFloatOr()
2901 const decFloat *dfl, const decFloat *dfr, in decFloatQuantize() argument
2923 sourhir=DFWORD(dfr, 0); /* RHS top word */ in decFloatQuantize()
2928 if (DFISNAN(dfl) || DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatQuantize()
2930 if (DFISINF(dfl)!=DFISINF(dfr)) return decInvalid(result, set); in decFloatQuantize()
2938 exprb+=GETECON(dfr); /* .. */ in decFloatQuantize()
3228 const decFloat *dfl, const decFloat *dfr, in decFloatRemainder() argument
3230 return decDivide(result, dfl, dfr, set, REMAINDER); in decFloatRemainder()
3245 const decFloat *dfl, const decFloat *dfr, in decFloatRemainderNear() argument
3247 return decDivide(result, dfl, dfr, set, REMNEAR); in decFloatRemainderNear()
3270 const decFloat *dfl, const decFloat *dfr, in decFloatRotate() argument
3278 if (DFISNAN(dfl)||DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatRotate()
3279 if (!DFISINT(dfr)) return decInvalid(result, set); in decFloatRotate()
3280 digits=decFloatDigits(dfr); /* calculate digits */ in decFloatRotate()
3282 rotate=DPD2BIN[DFWORD(dfr, DECWORDS-1)&0x3ff]; /* is in bottom declet */ in decFloatRotate()
3291 if (DFISSIGNED(dfr)) rotate=-rotate; in decFloatRotate()
3329 uInt decFloatSameQuantum(const decFloat *dfl, const decFloat *dfr) { in decFloatSameQuantum() argument
3330 if (DFISSPECIAL(dfl) || DFISSPECIAL(dfr)) { in decFloatSameQuantum()
3331 if (DFISNAN(dfl) && DFISNAN(dfr)) return 1; in decFloatSameQuantum()
3332 if (DFISINF(dfl) && DFISINF(dfr)) return 1; in decFloatSameQuantum()
3335 if (GETEXP(dfl)==GETEXP(dfr)) return 1; /* biased exponents match */ in decFloatSameQuantum()
3355 const decFloat *dfl, const decFloat *dfr, in decFloatScaleB() argument
3360 if (DFISNAN(dfl)||DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatScaleB()
3361 if (!DFISINT(dfr)) return decInvalid(result, set); in decFloatScaleB()
3362 digits=decFloatDigits(dfr); /* calculate digits */ in decFloatScaleB()
3366 expr=DPD2BIN[DFWORD(dfr, 1)&0x3ff]; /* must be in bottom declet */ in decFloatScaleB()
3369 expr=DPD2BIN[DFWORD(dfr, 3)&0x3ff] /* in bottom 2 declets .. */ in decFloatScaleB()
3370 +DPD2BIN[(DFWORD(dfr, 3)>>10)&0x3ff]*1000; /* .. */ in decFloatScaleB()
3375 if (DFISSIGNED(dfr)) expr=-expr; in decFloatScaleB()
3400 const decFloat *dfl, const decFloat *dfr, in decFloatShift() argument
3408 if (DFISNAN(dfl)||DFISNAN(dfr)) return decNaNs(result, dfl, dfr, set); in decFloatShift()
3409 if (!DFISINT(dfr)) return decInvalid(result, set); in decFloatShift()
3410 digits=decFloatDigits(dfr); /* calculate digits */ in decFloatShift()
3412 shift=DPD2BIN[DFWORD(dfr, DECWORDS-1)&0x3ff]; /* is in bottom declet */ in decFloatShift()
3431 if (DFISSIGNED(dfr)) { /* shift right */ in decFloatShift()
3459 const decFloat *dfl, const decFloat *dfr, in decFloatSubtract() argument
3463 if (DFISNAN(dfr)) return decFloatAdd(result, dfl, dfr, set); in decFloatSubtract()
3464 temp=*dfr; /* make a copy */ in decFloatSubtract()
3530 const decFloat *dfl, const decFloat *dfr, in decFloatXor() argument
3532 if (!DFISUINT01(dfl) || !DFISUINT01(dfr) in decFloatXor()
3533 || !DFISCC01(dfl) || !DFISCC01(dfr)) return decInvalid(result, set); in decFloatXor()
3537 |((DFWORD(dfl, 0) ^ DFWORD(dfr, 0))&0x04009124); in decFloatXor()
3538 DFWORD(result, 1)=(DFWORD(dfl, 1) ^ DFWORD(dfr, 1))&0x49124491; in decFloatXor()
3541 |((DFWORD(dfl, 0) ^ DFWORD(dfr, 0))&0x04000912); in decFloatXor()
3542 DFWORD(result, 1)=(DFWORD(dfl, 1) ^ DFWORD(dfr, 1))&0x44912449; in decFloatXor()
3543 DFWORD(result, 2)=(DFWORD(dfl, 2) ^ DFWORD(dfr, 2))&0x12449124; in decFloatXor()
3544 DFWORD(result, 3)=(DFWORD(dfl, 3) ^ DFWORD(dfr, 3))&0x49124491; in decFloatXor()
3597 const decFloat *dfl, const decFloat *dfr, in decNaNs() argument
3600 if (dfr!=NULL && DFISSNAN(dfr) && !DFISSNAN(dfl)) dfl=dfr; /* use RHS */ in decNaNs()
3608 if (!DFISNAN(dfl)) dfl=dfr; /* RHS must be NaN, use it */ in decNaNs()
3622 static Int decNumCompare(const decFloat *dfl, const decFloat *dfr, Flag tot) { in decNumCompare() argument
3633 if (!DFISSIGNED(dfr)) { /* -LHS +RHS */ in decNumCompare()
3634 if (DFISZERO(dfl) && DFISZERO(dfr) && !tot) return 0; in decNumCompare()
3639 if (DFISSIGNED(dfr)) { in decNumCompare()
3641 if (DFISZERO(dfl) && DFISZERO(dfr) && !tot) return 0; in decNumCompare()
3650 if (DFISINF(dfr)) return 0; /* both infinite & same sign */ in decNumCompare()
3653 if (DFISINF(dfr)) return sigr; /* n < inf [dfl is finite] */ in decNumCompare()
3656 shift=GETEXP(dfl)-GETEXP(dfr); /* [0 means aligned] */ in decNumCompare()
3660 if (!DFISZERO(dfr)) return sigr; /* LHS=0, RHS!=0 */ in decNumCompare()
3667 if (DFISZERO(dfr)) return sigl; /* LHS!=0, RHS=0 */ in decNumCompare()
3686 GETCOEFF(dfr, bufr+QUAD*2); /* .. */ in decNumCompare()