Lines Matching refs:carry
4914 uInt carry; /* carry (NB not uLong) */ in decMultiplyOp() local
5073 if (lcarry<FASTBASE) carry=(uInt)lcarry; /* [usual] */ in decMultiplyOp()
5078 carry=(uInt)(lcarry-((uLong)FASTBASE*carry2)); /* [inline] */ in decMultiplyOp()
5080 *(lp+1)+=carry; /* add to item above [inline] */ in decMultiplyOp()
5081 *lp-=((uLong)FASTBASE*carry); /* [inline] */ in decMultiplyOp()
6384 eInt carry=0; /* carry integer (could be Long) */ local
6420 carry+=*a;
6422 carry+=((eInt)*b)*m; /* [special-casing m=1/-1 */
6425 if ((ueInt)carry<=DECDPUNMAX) { /* fastpath 0-DECDPUNMAX */
6426 *c=(Unit)carry;
6427 carry=0;
6431 if (carry>=0) {
6432 est=(((ueInt)carry>>11)*53687)>>18;
6433 *c=(Unit)(carry-est*(DECDPUNMAX+1)); /* remainder */
6434 carry=est; /* likely quotient [89%] */
6436 carry++;
6441 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6442 est=(((ueInt)carry>>11)*53687)>>18;
6443 *c=(Unit)(carry-est*(DECDPUNMAX+1));
6444 carry=est-(DECDPUNMAX+1); /* correctly negative */
6446 carry++;
6449 if (carry>=0) {
6450 est=(((ueInt)carry>>3)*16777)>>21;
6451 *c=(Unit)(carry-est*(DECDPUNMAX+1)); /* remainder */
6452 carry=est; /* likely quotient [99%] */
6454 carry++;
6459 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6460 est=(((ueInt)carry>>3)*16777)>>21;
6461 *c=(Unit)(carry-est*(DECDPUNMAX+1));
6462 carry=est-(DECDPUNMAX+1); /* correctly negative */
6464 carry++;
6468 if (carry>=0) {
6469 est=QUOT10(carry, DECDPUN);
6470 *c=(Unit)(carry-est*(DECDPUNMAX+1)); /* remainder */
6471 carry=est; /* quotient */
6475 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6476 est=QUOT10(carry, DECDPUN);
6477 *c=(Unit)(carry-est*(DECDPUNMAX+1));
6478 carry=est-(DECDPUNMAX+1); /* correctly negative */
6481 if ((ueInt)carry<(DECDPUNMAX+1)*2) { /* fastpath carry +1 */
6482 *c=(Unit)(carry-(DECDPUNMAX+1)); /* [helps additions] */
6483 carry=1;
6486 if (carry>=0) {
6487 *c=(Unit)(carry%(DECDPUNMAX+1));
6488 carry=carry/(DECDPUNMAX+1);
6492 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6493 *c=(Unit)(carry%(DECDPUNMAX+1));
6494 carry=carry/(DECDPUNMAX+1)-(DECDPUNMAX+1);
6502 carry+=*a;
6506 carry+=((eInt)*b)*m;
6511 if ((ueInt)carry<=DECDPUNMAX) { /* fastpath 0-DECDPUNMAX */
6512 *c=(Unit)carry;
6513 carry=0;
6518 if (carry>=0) {
6519 est=(((ueInt)carry>>11)*53687)>>18;
6520 *c=(Unit)(carry-est*(DECDPUNMAX+1)); /* remainder */
6521 carry=est; /* likely quotient [79.7%] */
6523 carry++;
6528 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6529 est=(((ueInt)carry>>11)*53687)>>18;
6530 *c=(Unit)(carry-est*(DECDPUNMAX+1));
6531 carry=est-(DECDPUNMAX+1); /* correctly negative */
6533 carry++;
6536 if (carry>=0) {
6537 est=(((ueInt)carry>>3)*16777)>>21;
6538 *c=(Unit)(carry-est*(DECDPUNMAX+1)); /* remainder */
6539 carry=est; /* likely quotient [99%] */
6541 carry++;
6546 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6547 est=(((ueInt)carry>>3)*16777)>>21;
6548 *c=(Unit)(carry-est*(DECDPUNMAX+1));
6549 carry=est-(DECDPUNMAX+1); /* correctly negative */
6551 carry++;
6554 if (carry>=0) {
6555 est=QUOT10(carry, DECDPUN);
6556 *c=(Unit)(carry-est*(DECDPUNMAX+1)); /* remainder */
6557 carry=est; /* quotient */
6561 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6562 est=QUOT10(carry, DECDPUN);
6563 *c=(Unit)(carry-est*(DECDPUNMAX+1));
6564 carry=est-(DECDPUNMAX+1); /* correctly negative */
6566 if ((ueInt)carry<(DECDPUNMAX+1)*2){ /* fastpath carry 1 */
6567 *c=(Unit)(carry-(DECDPUNMAX+1));
6568 carry=1;
6572 if (carry>=0) {
6573 *c=(Unit)(carry%(DECDPUNMAX+1));
6574 carry=carry/(DECDPUNMAX+1);
6578 carry=carry+(eInt)(DECDPUNMAX+1)*(DECDPUNMAX+1); /* make positive */
6579 *c=(Unit)(carry%(DECDPUNMAX+1));
6580 carry=carry/(DECDPUNMAX+1)-(DECDPUNMAX+1);
6586 if (carry==0) return c-clsu; /* no carry, so no more to do */
6587 if (carry>0) { /* positive carry */
6588 *c=(Unit)carry; /* place as new unit */
6607 printf("UAS borrow: add %ld, carry %ld\n", add, carry);
6609 if ((add-carry-1)!=0) {
6610 *c=(Unit)(add-carry-1);