rhs 210 src/decNumber/decNumber.c static Int decCompare(const decNumber *lhs, const decNumber *rhs, Flag); rhs 259 src/decNumber/decNumber.c #define SPECIALARG (rhs->bits & DECSPECIAL) rhs 260 src/decNumber/decNumber.c #define SPECIALARGS ((lhs->bits | rhs->bits) & DECSPECIAL) rhs 656 src/decNumber/decNumber.c decNumber * decNumberAbs(decNumber *res, const decNumber *rhs, rhs 662 src/decNumber/decNumber.c dzero.exponent=rhs->exponent; // [no coefficient expansion] rhs 663 src/decNumber/decNumber.c decAddOp(res, &dzero, rhs, set, (uByte)(rhs->bits & DECNEG), &status); rhs 682 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 684 src/decNumber/decNumber.c decAddOp(res, lhs, rhs, set, 0, &status); rhs 705 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 712 src/decNumber/decNumber.c || rhs->exponent!=0 || decNumberIsSpecial(rhs) || decNumberIsNegative(rhs)) { rhs 719 src/decNumber/decNumber.c ub=rhs->lsu; // .. rhs 722 src/decNumber/decNumber.c msub=ub+D2U(rhs->digits)-1; // -> msu of rhs rhs 770 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 772 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPARE, &status); rhs 790 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 792 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPSIG, &status); rhs 811 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 813 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPTOTAL, &status); rhs 832 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 857 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) { // rhs<0 rhs 859 src/decNumber/decNumber.c needbytes=sizeof(decNumber)+(D2U(rhs->digits)-1)*sizeof(Unit); rhs 867 src/decNumber/decNumber.c decNumberCopy(b, rhs); // copy content rhs 869 src/decNumber/decNumber.c rhs=b; // use copy from here on rhs 871 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPTOTAL, &status); rhs 893 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 895 src/decNumber/decNumber.c decDivideOp(res, lhs, rhs, set, DIVIDE, &status); rhs 913 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 915 src/decNumber/decNumber.c decDivideOp(res, lhs, rhs, set, DIVIDEINT, &status); rhs 945 src/decNumber/decNumber.c decNumber * decNumberExp(decNumber *res, const decNumber *rhs, rhs 956 src/decNumber/decNumber.c if (!decCheckMath(rhs, set, &status)) do { // protect allocation rhs 960 src/decNumber/decNumber.c if (rhs->digits>set->digits) { rhs 961 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, &status); rhs 963 src/decNumber/decNumber.c rhs=allocrhs; rhs 967 src/decNumber/decNumber.c decExpOp(res, rhs, set, &status); rhs 995 src/decNumber/decNumber.c const decNumber *rhs, const decNumber *fhs, rhs 1013 src/decNumber/decNumber.c || (!decNumberIsSpecial(rhs) && decCheckMath(rhs, set, &status)) rhs 1017 src/decNumber/decNumber.c dcmul.digits=lhs->digits+rhs->digits; // just enough rhs 1032 src/decNumber/decNumber.c decMultiplyOp(acc, lhs, rhs, &dcmul, &status); rhs 1071 src/decNumber/decNumber.c decNumber * decNumberInvert(decNumber *res, const decNumber *rhs, rhs 1077 src/decNumber/decNumber.c if (rhs->exponent!=0 || decNumberIsSpecial(rhs) || decNumberIsNegative(rhs)) { rhs 1082 src/decNumber/decNumber.c ua=rhs->lsu; // bottom-up rhs 1084 src/decNumber/decNumber.c msua=ua+D2U(rhs->digits)-1; // -> msu of rhs rhs 1141 src/decNumber/decNumber.c decNumber * decNumberLn(decNumber *res, const decNumber *rhs, rhs 1150 src/decNumber/decNumber.c if (!decCheckMath(rhs, set, &status)) do { // protect allocation rhs 1154 src/decNumber/decNumber.c if (rhs->digits>set->digits) { rhs 1155 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, &status); rhs 1157 src/decNumber/decNumber.c rhs=allocrhs; rhs 1160 src/decNumber/decNumber.c if (ISZERO(rhs)) { // +/- zeros -> error rhs 1165 src/decNumber/decNumber.c decLnOp(res, rhs, set, &status); rhs 1200 src/decNumber/decNumber.c decNumber * decNumberLogB(decNumber *res, const decNumber *rhs, rhs 1205 src/decNumber/decNumber.c if (decNumberIsNaN(rhs)) decNaNs(res, rhs, NULL, set, &status); rhs 1206 src/decNumber/decNumber.c else if (decNumberIsInfinite(rhs)) decNumberCopyAbs(res, rhs); rhs 1207 src/decNumber/decNumber.c else if (decNumberIsZero(rhs)) { rhs 1213 src/decNumber/decNumber.c Int ae=rhs->exponent+rhs->digits-1; // adjusted exponent rhs 1258 src/decNumber/decNumber.c decNumber * decNumberLog10(decNumber *res, const decNumber *rhs, rhs 1282 src/decNumber/decNumber.c if (rhs->bits&(DECNAN|DECSNAN)) { rhs 1283 src/decNumber/decNumber.c decNumberPlus(res, rhs, set); rhs 1289 src/decNumber/decNumber.c if (!decCheckMath(rhs, set, &status)) do { // protect malloc rhs 1293 src/decNumber/decNumber.c if (rhs->digits>set->digits) { rhs 1294 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, &status); rhs 1296 src/decNumber/decNumber.c rhs=allocrhs; rhs 1299 src/decNumber/decNumber.c if (ISZERO(rhs)) { // +/- zeros -> error rhs 1308 src/decNumber/decNumber.c if (!(rhs->bits&(DECNEG|DECSPECIAL)) && !ISZERO(rhs)) { rhs 1314 src/decNumber/decNumber.c decCopyFit(w, rhs, &aset, &residue, ©stat); // copy & shorten rhs 1336 src/decNumber/decNumber.c p=(rhs->digits+t>set->digits?rhs->digits+t:set->digits)+3; rhs 1349 src/decNumber/decNumber.c decLnOp(a, rhs, &aset, &status); // a=ln(rhs) rhs 1406 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1408 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPMAX, &status); rhs 1426 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1428 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPMAXMAG, &status); rhs 1446 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1448 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPMIN, &status); rhs 1466 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1468 src/decNumber/decNumber.c decCompareOp(res, lhs, rhs, set, COMPMINMAG, &status); rhs 1487 src/decNumber/decNumber.c decNumber * decNumberMinus(decNumber *res, const decNumber *rhs, rhs 1493 src/decNumber/decNumber.c dzero.exponent=rhs->exponent; // [no coefficient expansion] rhs 1494 src/decNumber/decNumber.c decAddOp(res, &dzero, rhs, set, DECNEG, &status); rhs 1510 src/decNumber/decNumber.c decNumber * decNumberNextMinus(decNumber *res, const decNumber *rhs, rhs 1517 src/decNumber/decNumber.c if ((rhs->bits&(DECINF|DECNEG))==DECINF) { rhs 1525 src/decNumber/decNumber.c decNumberPlus(res, rhs, &workset); rhs 1534 src/decNumber/decNumber.c decAddOp(res, rhs, &dtiny, &workset, DECNEG, &status); rhs 1551 src/decNumber/decNumber.c decNumber * decNumberNextPlus(decNumber *res, const decNumber *rhs, rhs 1558 src/decNumber/decNumber.c if ((rhs->bits&(DECINF|DECNEG))==(DECINF|DECNEG)) { rhs 1567 src/decNumber/decNumber.c decNumberPlus(res, rhs, &workset); rhs 1576 src/decNumber/decNumber.c decAddOp(res, rhs, &dtiny, &workset, 0, &status); rhs 1597 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1603 src/decNumber/decNumber.c if (decNumberIsNaN(lhs) || decNumberIsNaN(rhs)) { rhs 1604 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, &status); rhs 1607 src/decNumber/decNumber.c result=decCompare(lhs, rhs, 0); // sign matters rhs 1610 src/decNumber/decNumber.c if (result==0) decNumberCopySign(res, lhs, rhs); // easy rhs 1662 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1669 src/decNumber/decNumber.c || rhs->exponent!=0 || decNumberIsSpecial(rhs) || decNumberIsNegative(rhs)) { rhs 1675 src/decNumber/decNumber.c ub=rhs->lsu; // .. rhs 1678 src/decNumber/decNumber.c msub=ub+D2U(rhs->digits)-1; // -> msu of rhs rhs 1728 src/decNumber/decNumber.c decNumber * decNumberPlus(decNumber *res, const decNumber *rhs, rhs 1734 src/decNumber/decNumber.c dzero.exponent=rhs->exponent; // [no coefficient expansion] rhs 1735 src/decNumber/decNumber.c decAddOp(res, &dzero, rhs, set, 0, &status); rhs 1753 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1755 src/decNumber/decNumber.c decMultiplyOp(res, lhs, rhs, set, &status); rhs 1787 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 1824 src/decNumber/decNumber.c if (rhs->digits>reqdigits) { rhs 1825 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, &status); rhs 1827 src/decNumber/decNumber.c rhs=allocrhs; rhs 1835 src/decNumber/decNumber.c if (decNumberIsNaN(lhs) || decNumberIsNaN(rhs)) { // NaNs rhs 1836 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, &status); rhs 1838 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs)) { // rhs Infinity rhs 1839 src/decNumber/decNumber.c Flag rhsneg=rhs->bits&DECNEG; // save rhs sign rhs 1868 src/decNumber/decNumber.c n=decGetInt(rhs); rhs 1881 src/decNumber/decNumber.c uByte rbits=rhs->bits; // save rhs 1907 src/decNumber/decNumber.c uByte rbits=rhs->bits; // save rhs 1931 src/decNumber/decNumber.c || decCheckMath(rhs, set, &status)) break; // variable status rhs 1963 src/decNumber/decNumber.c aset.digits=reqdigits+(rhs->digits+rhs->exponent)+2; rhs 2004 src/decNumber/decNumber.c decMultiplyOp(dac, dac, rhs, &aset, &status); // dac=dac*rhs rhs 2016 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) { // was a **-n [hence digits>0] rhs 2070 src/decNumber/decNumber.c if (!set->extended && decNumberIsNegative(rhs)) { rhs 2089 src/decNumber/decNumber.c decNumberIsNegative(rhs)) { // was a **-n [hence digits>0] rhs 2133 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2135 src/decNumber/decNumber.c decQuantizeOp(res, lhs, rhs, set, 1, &status); rhs 2152 src/decNumber/decNumber.c decNumber * decNumberNormalize(decNumber *res, const decNumber *rhs, rhs 2154 src/decNumber/decNumber.c return decNumberReduce(res, rhs, set); rhs 2157 src/decNumber/decNumber.c decNumber * decNumberReduce(decNumber *res, const decNumber *rhs, rhs 2170 src/decNumber/decNumber.c if (rhs->digits>set->digits) { rhs 2171 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, &status); rhs 2173 src/decNumber/decNumber.c rhs=allocrhs; rhs 2180 src/decNumber/decNumber.c if (decNumberIsNaN(rhs)) { rhs 2181 src/decNumber/decNumber.c decNaNs(res, rhs, NULL, set, &status); rhs 2186 src/decNumber/decNumber.c decCopyFit(res, rhs, set, &residue, &status); // copy & round rhs 2218 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2220 src/decNumber/decNumber.c decQuantizeOp(res, lhs, rhs, set, 0, &status); rhs 2238 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2240 src/decNumber/decNumber.c decDivideOp(res, lhs, rhs, set, REMAINDER, &status); rhs 2258 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2260 src/decNumber/decNumber.c decDivideOp(res, lhs, rhs, set, REMNEAR, &status); rhs 2291 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2296 src/decNumber/decNumber.c if (decNumberIsNaN(lhs) || decNumberIsNaN(rhs)) rhs 2297 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, &status); rhs 2299 src/decNumber/decNumber.c else if (decNumberIsInfinite(rhs) || rhs->exponent!=0) rhs 2302 src/decNumber/decNumber.c rotate=decGetInt(rhs); // [cannot fail] rhs 2409 src/decNumber/decNumber.c const decNumber *rhs) { rhs 2413 src/decNumber/decNumber.c if (decNumberIsNaN(lhs) && decNumberIsNaN(rhs)) ret=1; rhs 2414 src/decNumber/decNumber.c else if (decNumberIsInfinite(lhs) && decNumberIsInfinite(rhs)) ret=1; rhs 2417 src/decNumber/decNumber.c else if (lhs->exponent==rhs->exponent) ret=1; rhs 2440 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2446 src/decNumber/decNumber.c if (decNumberIsNaN(lhs) || decNumberIsNaN(rhs)) rhs 2447 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, &status); rhs 2449 src/decNumber/decNumber.c else if (decNumberIsInfinite(rhs) || rhs->exponent!=0) rhs 2453 src/decNumber/decNumber.c reqexp=decGetInt(rhs); // [cannot fail] rhs 2503 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2508 src/decNumber/decNumber.c if (decNumberIsNaN(lhs) || decNumberIsNaN(rhs)) rhs 2509 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, &status); rhs 2511 src/decNumber/decNumber.c else if (decNumberIsInfinite(rhs) || rhs->exponent!=0) rhs 2514 src/decNumber/decNumber.c shift=decGetInt(rhs); // [cannot fail] rhs 2627 src/decNumber/decNumber.c decNumber * decNumberSquareRoot(decNumber *res, const decNumber *rhs, rhs 2664 src/decNumber/decNumber.c if (rhs->digits>set->digits) { rhs 2665 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, &status); rhs 2669 src/decNumber/decNumber.c rhs=allocrhs; rhs 2677 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs)) { // an infinity rhs 2678 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) status|=DEC_Invalid_operation; rhs 2679 src/decNumber/decNumber.c else decNumberCopy(res, rhs); // +Infinity rhs 2681 src/decNumber/decNumber.c else decNaNs(res, rhs, NULL, set, &status); // a NaN rhs 2688 src/decNumber/decNumber.c ideal=(rhs->exponent&~1)/2; // target rhs 2691 src/decNumber/decNumber.c if (ISZERO(rhs)) { rhs 2692 src/decNumber/decNumber.c decNumberCopy(res, rhs); // could be 0 or -0 rhs 2700 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) { rhs 2712 src/decNumber/decNumber.c workp=MAXI(set->digits+1, rhs->digits); // actual rounding precision rhs 2716 src/decNumber/decNumber.c needbytes=sizeof(decNumber)+(D2U(rhs->digits)-1)*sizeof(Unit); rhs 2737 src/decNumber/decNumber.c decNumberCopy(f, rhs); rhs 2894 src/decNumber/decNumber.c decCompareOp(t, b, rhs, &workset, COMPARE, &mstatus); // b ? rhs rhs 2926 src/decNumber/decNumber.c Int ae=rhs->exponent+rhs->digits-1; // adjusted exponent rhs 2963 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 2966 src/decNumber/decNumber.c decAddOp(res, lhs, rhs, set, DECNEG, &status); rhs 2992 src/decNumber/decNumber.c decNumber * decNumberToIntegralExact(decNumber *res, const decNumber *rhs, rhs 3000 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs)) decNumberCopy(res, rhs); // an Infinity rhs 3001 src/decNumber/decNumber.c else decNaNs(res, rhs, NULL, set, &status); // a NaN rhs 3005 src/decNumber/decNumber.c if (rhs->exponent>=0) return decNumberCopy(res, rhs); rhs 3008 src/decNumber/decNumber.c workset.digits=rhs->digits; // no length rounding rhs 3011 src/decNumber/decNumber.c decNumberQuantize(res, rhs, &dn, &workset); rhs 3018 src/decNumber/decNumber.c decNumber * decNumberToIntegralValue(decNumber *res, const decNumber *rhs, rhs 3022 src/decNumber/decNumber.c decNumberToIntegralExact(res, rhs, &workset); rhs 3045 src/decNumber/decNumber.c const decNumber *rhs, decContext *set) { rhs 3052 src/decNumber/decNumber.c || rhs->exponent!=0 || decNumberIsSpecial(rhs) || decNumberIsNegative(rhs)) { rhs 3058 src/decNumber/decNumber.c ub=rhs->lsu; // .. rhs 3061 src/decNumber/decNumber.c msub=ub+D2U(rhs->digits)-1; // -> msu of rhs rhs 3194 src/decNumber/decNumber.c decNumber * decNumberCopyAbs(decNumber *res, const decNumber *rhs) { rhs 3195 src/decNumber/decNumber.c decNumberCopy(res, rhs); rhs 3212 src/decNumber/decNumber.c decNumber * decNumberCopyNegate(decNumber *res, const decNumber *rhs) { rhs 3213 src/decNumber/decNumber.c decNumberCopy(res, rhs); rhs 3231 src/decNumber/decNumber.c const decNumber *rhs) { rhs 3233 src/decNumber/decNumber.c sign=rhs->bits & DECNEG; // save sign bit rhs 3575 src/decNumber/decNumber.c const decNumber *rhs, decContext *set, rhs 3605 src/decNumber/decNumber.c if (rhs->digits>reqdigits) { rhs 3606 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, status); rhs 3608 src/decNumber/decNumber.c rhs=allocrhs; rhs 3615 src/decNumber/decNumber.c diffsign=(Flag)((lhs->bits^rhs->bits^negate)&DECNEG); rhs 3620 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, status); rhs 3624 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs) && diffsign) { rhs 3630 src/decNumber/decNumber.c else bits=(rhs->bits^negate) & DECNEG;// RHS must be Infinity rhs 3645 src/decNumber/decNumber.c decCopyFit(res, rhs, set, &residue, status); // copy (as needed) rhs 3676 src/decNumber/decNumber.c if (ISZERO(rhs)) { // [lhs is non-zero] rhs 3678 src/decNumber/decNumber.c Int rexp=rhs->exponent; // save in case RHS==RES rhs 3679 src/decNumber/decNumber.c bits=rhs->bits; // be clean rhs 3707 src/decNumber/decNumber.c padding=rhs->exponent-lhs->exponent; rhs 3713 src/decNumber/decNumber.c && rhs->digits<=DECDPUN rhs 3714 src/decNumber/decNumber.c && rhs->exponent>=set->emin // [some normals drop through] rhs 3715 src/decNumber/decNumber.c && rhs->exponent<=set->emax-set->digits+1 // [could clamp] rhs 3716 src/decNumber/decNumber.c && rhs->digits<=reqdigits rhs 3720 src/decNumber/decNumber.c partial+=*rhs->lsu; rhs 3731 src/decNumber/decNumber.c partial-=*rhs->lsu; rhs 3758 src/decNumber/decNumber.c bits=(uByte)(rhs->bits^negate); // assumed sign is now that of RHS rhs 3759 src/decNumber/decNumber.c t=lhs; lhs=rhs; rhs=t; rhs 3762 src/decNumber/decNumber.c exponent = rhs->exponent-1; rhs 3763 src/decNumber/decNumber.c exponent += (rhs->digits>reqdigits) ? 0 : rhs->digits-reqdigits-1; rhs 3771 src/decNumber/decNumber.c padding=rhs->exponent-exponent; rhs 3783 src/decNumber/decNumber.c maxdigits=rhs->digits+padding; // virtual length of RHS rhs 3793 src/decNumber/decNumber.c || (res==rhs && rhsshift>0)) { // destructive overlap rhs 3812 src/decNumber/decNumber.c rhs->lsu, D2U(rhs->digits), rhs 3964 src/decNumber/decNumber.c const decNumber *lhs, const decNumber *rhs, rhs 4016 src/decNumber/decNumber.c if (rhs->digits>reqdigits) { rhs 4017 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, status); rhs 4019 src/decNumber/decNumber.c rhs=allocrhs; rhs 4025 src/decNumber/decNumber.c bits=(lhs->bits^rhs->bits)&DECNEG; // assumed sign for divisions rhs 4030 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, status); rhs 4035 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs) || // two infinities are invalid .. rhs 4067 src/decNumber/decNumber.c if (ISZERO(rhs)) { // x/0 is always exceptional rhs 4089 src/decNumber/decNumber.c exponent=lhs->exponent-rhs->exponent; // ideal exponent rhs 4099 src/decNumber/decNumber.c exponent=rhs->exponent; // [save in case overwrite] rhs 4114 src/decNumber/decNumber.c exponent=(lhs->exponent+lhs->digits)-(rhs->exponent+rhs->digits); rhs 4129 src/decNumber/decNumber.c if (lhs->exponent<=rhs->exponent) { rhs 4166 src/decNumber/decNumber.c maxdigits=rhs->digits+reqdigits-1; rhs 4192 src/decNumber/decNumber.c var2units=D2U(rhs->digits); // rhs actual length (units) rhs 4193 src/decNumber/decNumber.c var2=rhs->lsu; // -> rhs array rhs 4234 src/decNumber/decNumber.c maxexponent=lhs->exponent-rhs->exponent; // save rhs 4405 src/decNumber/decNumber.c if (rhs->exponent<exp) exp=rhs->exponent; rhs 4424 src/decNumber/decNumber.c postshift=var1initpad+exponent-lhs->exponent+rhs->exponent; rhs 4435 src/decNumber/decNumber.c if (rhs->exponent<exponent) exponent=rhs->exponent; rhs 4453 src/decNumber/decNumber.c compare=decUnitCompare(accnext, tarunits, rhs->lsu, D2U(rhs->digits), rhs 4454 src/decNumber/decNumber.c rhs->exponent-exponent); rhs 4495 src/decNumber/decNumber.c exp=rhs->exponent-exponent; // RHS padding needed rhs 4501 src/decNumber/decNumber.c rhs->lsu, D2U(rhs->digits), rhs 4575 src/decNumber/decNumber.c const decNumber *rhs, decContext *set, rhs 4636 src/decNumber/decNumber.c bits=(uByte)((lhs->bits^rhs->bits)&DECNEG); rhs 4641 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, status); rhs 4645 src/decNumber/decNumber.c ||((rhs->bits & DECINF)==0 && ISZERO(rhs))) { rhs 4656 src/decNumber/decNumber.c if (lhs->digits<rhs->digits) { // swap... rhs 4658 src/decNumber/decNumber.c lhs=rhs; rhs 4659 src/decNumber/decNumber.c rhs=hold; rhs 4671 src/decNumber/decNumber.c if (rhs->digits>set->digits) { rhs 4672 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, status); rhs 4674 src/decNumber/decNumber.c rhs=allocrhs; rhs 4684 src/decNumber/decNumber.c if (rhs->digits>NEEDTWO) { // use fastpath... rhs 4687 src/decNumber/decNumber.c irhs=(rhs->digits+FASTDIGS-1)/FASTDIGS; // .. rhs 4730 src/decNumber/decNumber.c for (count=rhs->digits, cup=rhs->lsu, rip=zrhi; count>0; rip++) rhs 4807 src/decNumber/decNumber.c needbytes=(D2U(lhs->digits)+D2U(rhs->digits))*sizeof(Unit); rhs 4823 src/decNumber/decNumber.c mermsup=rhs->lsu+D2U(rhs->digits); // -> msu+1 of multiplier rhs 4825 src/decNumber/decNumber.c for (mer=rhs->lsu; mer<mermsup; mer++) { rhs 4855 src/decNumber/decNumber.c exponent=lhs->exponent+rhs->exponent; // calculate exponent rhs 4856 src/decNumber/decNumber.c if (lhs->exponent<0 && rhs->exponent<0 && exponent>0) rhs 4956 src/decNumber/decNumber.c decNumber * decExpOp(decNumber *res, const decNumber *rhs, rhs 4963 src/decNumber/decNumber.c const decNumber *x=rhs; // (may point to safe copy later) rhs 4993 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs)) { // an infinity rhs 4994 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) // -Infinity -> +0 rhs 4996 src/decNumber/decNumber.c else decNumberCopy(res, rhs); // +Infinity -> self rhs 4998 src/decNumber/decNumber.c else decNaNs(res, rhs, NULL, set, status); // a NaN rhs 5001 src/decNumber/decNumber.c if (ISZERO(rhs)) { // zeros -> exact 1 rhs 5023 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) d->exponent--; // negative case rhs 5024 src/decNumber/decNumber.c comp=decCompare(d, rhs, 1); // signless compare rhs 5047 src/decNumber/decNumber.c h=rhs->exponent+rhs->digits; rhs 5059 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) a->exponent=-2; // make 0.02 rhs 5064 src/decNumber/decNumber.c Int maxlever=(rhs->digits>8?1:0); rhs 5076 src/decNumber/decNumber.c Int use=-rhs->digits-lever; // exponent to use for RHS rhs 5083 src/decNumber/decNumber.c if (rhs->exponent!=use) { rhs 5085 src/decNumber/decNumber.c needbytes=sizeof(decNumber)+(D2U(rhs->digits)-1)*sizeof(Unit); rhs 5093 src/decNumber/decNumber.c decNumberCopy(newrhs, rhs); // copy to safe space rhs 5301 src/decNumber/decNumber.c decNumber * decLnOp(decNumber *res, const decNumber *rhs, rhs 5326 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs)) { // an infinity rhs 5327 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) // -Infinity -> error rhs 5329 src/decNumber/decNumber.c else decNumberCopy(res, rhs); // +Infinity -> self rhs 5331 src/decNumber/decNumber.c else decNaNs(res, rhs, NULL, set, status); // a NaN rhs 5334 src/decNumber/decNumber.c if (ISZERO(rhs)) { // +/- zeros -> -Infinity rhs 5340 src/decNumber/decNumber.c if (decNumberIsNegative(rhs)) { // -x -> error rhs 5347 src/decNumber/decNumber.c if (rhs->exponent==0 && set->digits<=40) { rhs 5349 src/decNumber/decNumber.c if (rhs->lsu[0]==0 && rhs->lsu[1]==1 && rhs->digits==2) { // ln(10) rhs 5351 src/decNumber/decNumber.c if (rhs->lsu[0]==10 && rhs->digits==2) { // ln(10) rhs 5358 src/decNumber/decNumber.c if (rhs->lsu[0]==2 && rhs->digits==1) { // ln(2) rhs 5371 src/decNumber/decNumber.c p=MAXI(rhs->digits, MAXI(set->digits, 7))+2; rhs 5387 src/decNumber/decNumber.c pp=p+rhs->digits; rhs 5407 src/decNumber/decNumber.c r=rhs->exponent+rhs->digits; // 'normalised' exponent rhs 5416 src/decNumber/decNumber.c decCopyFit(b, rhs, &aset, &residue, &ignore); // copy & shorten rhs 5442 src/decNumber/decNumber.c if (rhs->digits > set->digits) { rhs 5457 src/decNumber/decNumber.c bset.digits=pp+rhs->digits; // wider context rhs 5468 src/decNumber/decNumber.c decMultiplyOp(b, b, rhs, &bset, &ignore); // b=b*rhs rhs 5483 src/decNumber/decNumber.c decCompareOp(&cmp, rhs, &numone, &aset, COMPARE, &ignore); // rhs=1 ? rhs 5499 src/decNumber/decNumber.c bset.digits=pp+rhs->digits; // wider context rhs 5539 src/decNumber/decNumber.c const decNumber *rhs, decContext *set, rhs 5545 src/decNumber/decNumber.c const decNumber *inrhs=rhs; // save original rhs rhs 5560 src/decNumber/decNumber.c if (rhs->digits>reqdigits) { // [this only checks lostDigits] rhs 5561 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, status); rhs 5563 src/decNumber/decNumber.c rhs=allocrhs; rhs 5573 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, status); rhs 5575 src/decNumber/decNumber.c else if ((lhs->bits ^ rhs->bits) & DECINF) rhs 5708 src/decNumber/decNumber.c const decNumber *rhs, decContext *set, rhs 5726 src/decNumber/decNumber.c if (rhs->digits>set->digits) { rhs 5727 src/decNumber/decNumber.c allocrhs=decRoundOperand(rhs, set, status); rhs 5729 src/decNumber/decNumber.c rhs=allocrhs; rhs 5739 src/decNumber/decNumber.c if (decNumberIsNegative(lhs) && !decNumberIsNegative(rhs)) { rhs 5745 src/decNumber/decNumber.c if (!decNumberIsNegative(lhs) && decNumberIsNegative(rhs)) { rhs 5753 src/decNumber/decNumber.c merged=(lhs->bits | rhs->bits) & (DECSNAN | DECNAN); rhs 5762 src/decNumber/decNumber.c else if (!decNumberIsNaN(rhs)) result=+1; rhs 5764 src/decNumber/decNumber.c else if (decNumberIsSNaN(lhs) && decNumberIsQNaN(rhs)) result=-1; rhs 5765 src/decNumber/decNumber.c else if (decNumberIsQNaN(lhs) && decNumberIsSNaN(rhs)) result=+1; rhs 5769 src/decNumber/decNumber.c rhs->lsu, D2U(rhs->digits), 0); rhs 5779 src/decNumber/decNumber.c if (!decNumberIsNaN(lhs) || !decNumberIsNaN(rhs)) { rhs 5788 src/decNumber/decNumber.c decNaNs(res, lhs, rhs, set, status); // propagate NaN rhs 5792 src/decNumber/decNumber.c if (op==COMPMAXMAG || op==COMPMINMAG) result=decCompare(lhs, rhs, 1); rhs 5793 src/decNumber/decNumber.c else result=decCompare(lhs, rhs, 0); // sign matters rhs 5802 src/decNumber/decNumber.c if (lhs->exponent!=rhs->exponent) { rhs 5803 src/decNumber/decNumber.c if (lhs->exponent<rhs->exponent) result=-1; rhs 5822 src/decNumber/decNumber.c uByte srhs=(rhs->bits & DECNEG); rhs 5836 src/decNumber/decNumber.c if (lhs->exponent<rhs->exponent) result=+1; rhs 5841 src/decNumber/decNumber.c if (lhs->exponent>rhs->exponent) result=+1; rhs 5848 src/decNumber/decNumber.c choice=(result>0 ? lhs : rhs); // choose rhs 5873 src/decNumber/decNumber.c static Int decCompare(const decNumber *lhs, const decNumber *rhs, rhs 5882 src/decNumber/decNumber.c if (ISZERO(rhs)) return result; // LHS wins or both 0 rhs 5890 src/decNumber/decNumber.c if (ISZERO(rhs)) sigr=0; rhs 5891 src/decNumber/decNumber.c else if (decNumberIsNegative(rhs)) sigr=-1; rhs 5898 src/decNumber/decNumber.c if ((lhs->bits | rhs->bits) & DECINF) { // one or more infinities rhs 5899 src/decNumber/decNumber.c if (decNumberIsInfinite(rhs)) { rhs 5906 src/decNumber/decNumber.c if (lhs->exponent>rhs->exponent) { // LHS exponent larger rhs 5909 src/decNumber/decNumber.c lhs=rhs; rhs 5910 src/decNumber/decNumber.c rhs=temp; rhs 5914 src/decNumber/decNumber.c rhs->lsu, D2U(rhs->digits), rhs 5915 src/decNumber/decNumber.c rhs->exponent-lhs->exponent); rhs 7194 src/decNumber/decNumber.c static uInt decCheckMath(const decNumber *rhs, decContext *set, rhs 7200 src/decNumber/decNumber.c else if ((rhs->digits>DEC_MAX_MATH rhs 7201 src/decNumber/decNumber.c || rhs->exponent+rhs->digits>DEC_MAX_MATH+1 rhs 7202 src/decNumber/decNumber.c || rhs->exponent+rhs->digits<2*(1-DEC_MAX_MATH)) rhs 7203 src/decNumber/decNumber.c && !ISZERO(rhs)) *status|=DEC_Invalid_operation; rhs 7366 src/decNumber/decNumber.c const decNumber *rhs, decContext *set, rhs 7372 src/decNumber/decNumber.c else if (rhs==NULL); rhs 7373 src/decNumber/decNumber.c else if (rhs->bits & DECSNAN) { rhs 7374 src/decNumber/decNumber.c lhs=rhs; rhs 7378 src/decNumber/decNumber.c else lhs=rhs; rhs 830 src/dps8/dps8_decimal.c int decCompare(decNumber *lhs, decNumber *rhs, decContext *set) rhs 833 src/dps8/dps8_decimal.c cmp = decNumberCompareTotal(&_cmp, lhs, rhs, set); rhs 845 src/dps8/dps8_decimal.c int decCompareMAG(decNumber *lhs, decNumber *rhs, decContext *set) rhs 848 src/dps8/dps8_decimal.c cmpm = decNumberCompareTotalMag(&_cmpm, lhs, rhs, set); rhs 52 src/dps8/dps8_decimal.h int decCompareMAG(decNumber *lhs, decNumber *rhs, decContext *set); rhs 12355 src/dps8/dps8_eis.c rhs 12358 src/dps8/dps8_eis.c rhs 350 src/libsir/include/sir/helpers.h bool _sir_strsame(const char* lhs, const char* rhs, size_t count) { rhs 351 src/libsir/include/sir/helpers.h return 0 == strncmp(lhs, rhs, count);