Lines Matching refs:pB

2606 **    pB!=0
2607 ** pB->isNull==0
2609 static int decimal_cmp(const Decimal *pA, const Decimal *pB){
2611 if( pA->sign!=pB->sign ){
2616 pA = pB;
2617 pB = pTemp;
2620 nBSig = pB->nDigit - pB->nFrac;
2625 if( n>pB->nDigit ) n = pB->nDigit;
2626 rc = memcmp(pA->a, pB->a, n);
2628 rc = pA->nDigit - pB->nDigit;
2644 Decimal *pA = 0, *pB = 0;
2650 pB = decimal_new(context, argv[1], 0, 0);
2651 if( pB==0 || pB->isNull ) goto cmp_done;
2652 rc = decimal_cmp(pA, pB);
2658 decimal_free(pB);
2690 ** Add the value pB into pA.
2692 ** Both pA and pB might become denormalized by this routine.
2694 static void decimal_add(Decimal *pA, Decimal *pB){
2700 if( pA->oom || pB==0 || pB->oom ){
2704 if( pA->isNull || pB->isNull ){
2710 if( nSig<pB->nDigit-pB->nFrac ){
2711 nSig = pB->nDigit - pB->nFrac;
2714 if( nFrac<pB->nFrac ) nFrac = pB->nFrac;
2717 decimal_expand(pB, nDigit, nFrac);
2718 if( pA->oom || pB->oom ){
2721 if( pA->sign==pB->sign ){
2724 int x = pA->a[i] + pB->a[i] + carry;
2736 rc = memcmp(pA->a, pB->a, nDigit);
2738 aA = pB->a;
2743 aB = pB->a;
2770 Decimal *pB = decimal_new(0, 0, nKey2, zB);
2773 if( pA==0 || pB==0 ){
2776 rc = decimal_cmp(pA, pB);
2779 decimal_free(pB);
2796 Decimal *pB = decimal_new(context, argv[1], 0, 0);
2798 decimal_add(pA, pB);
2801 decimal_free(pB);
2809 Decimal *pB = decimal_new(context, argv[1], 0, 0);
2811 if( pB ){
2812 pB->sign = !pB->sign;
2813 decimal_add(pA, pB);
2817 decimal_free(pB);
2895 Decimal *pB = decimal_new(context, argv[1], 0, 0);
2901 || pB==0 || pB->oom || pB->isNull
2905 acc = sqlite3_malloc64( pA->nDigit + pB->nDigit + 2 );
2910 memset(acc, 0, pA->nDigit + pB->nDigit + 2);
2912 if( pB->nFrac<minFrac ) minFrac = pB->nFrac;
2916 for(j=pB->nDigit-1, k=i+j+3; j>=0; j--, k--){
2917 x = acc[k] + f*pB->a[j] + carry;
2928 pA->nDigit += pB->nDigit + 2;
2929 pA->nFrac += pB->nFrac;
2930 pA->sign ^= pB->sign;
2940 decimal_free(pB);