Lines Matching full:places

220  * reaches 8 places into the limb, this will return 1 (because it should be
290 size_t i, places, idx = bc_num_nonZeroLen(n) - 1;
292 places = 1;
297 if (bc_num_pow10[i] > (BcBigDig) n->num[idx]) places += 1;
303 return places + (BC_NUM_RDX_VAL(n) - (idx + 1)) * BC_BASE_DIGS;
578 bc_num_truncate(BcNum* restrict n, size_t places)
582 if (!places) return;
584 // Grab these needed values; places_rdx is the rdx equivalent to places like
587 places_rdx = nrdx ? nrdx - BC_NUM_RDX(n->scale - places) : 0;
589 // We cannot truncate more places than we have.
590 assert(places <= n->scale && (BC_NUM_ZERO(n) || places_rdx <= n->len));
592 n->scale -= places;
619 bc_num_extend(BcNum* restrict n, size_t places)
623 if (!places) return;
628 n->scale += places;
632 // Grab these needed values; places_rdx is the rdx equivalent to places like
635 places_rdx = BC_NUM_RDX(places + n->scale) - nrdx;
650 n->scale += places;
779 * @param dig The number of places to shift right.
810 * Shift a number left by a certain number of places. This is the workhorse of
813 * @param places The amount of places to shift @a n left by.
816 bc_num_shiftLeft(BcNum* restrict n, size_t places)
822 if (!places) return;
825 if (places > n->scale)
827 size_t size = bc_vm_growSize(BC_NUM_RDX(places - n->scale), n->len);
834 if (n->scale >= places) n->scale -= places;
844 dig = (BcBigDig) (places % BC_BASE_DIGS);
847 // Convert places to a rdx value.
848 places_rdx = BC_NUM_RDX(places);
889 if (places > n->scale)
896 n->scale -= places;
907 bc_num_shiftRight(BcNum* restrict n, size_t places)
913 if (!places) return;
918 n->scale += places;
924 dig = (BcBigDig) (places % BC_BASE_DIGS);
933 // We need to know the int length and rdx for places.
935 places_rdx = BC_NUM_RDX(places);
967 n->scale = scale + places;
2211 * Implements the places operator. This is a BcNumBinOp function.
2895 size_t places, mod, nrdx = BC_NUM_RDX_VAL(n);
2916 places = bc_num_negPow10(n);
2920 mod = places % 3;
2922 // Calculate places if we are in engineering mode.
2923 if (eng && mod != 0) places += 3 - mod;
2926 bc_num_shiftLeft(&temp, places);
2932 places = bc_num_intDigits(n) - 1;
2936 mod = places % 3;
2937 if (eng && mod != 0) places -= 3 - (3 - mod);
2940 bc_num_shiftRight(&temp, places);
2950 if (!places)
2961 bc_num_bigdig2num(&exp, (BcBigDig) places);