Lines Matching refs:BcDig

178 static inline size_t bc_num_zeroDigits(const BcDig *n) {  in bc_num_zeroDigits()
221 static BcDig bc_num_addDigits(BcDig a, BcDig b, bool *carry) { in bc_num_addDigits()
223 assert(((BcBigDig) BC_BASE_POW) * 2 == ((BcDig) BC_BASE_POW) * 2); in bc_num_addDigits()
245 static BcDig bc_num_subDigits(BcDig a, BcDig b, bool *carry) { in bc_num_subDigits()
266 static void bc_num_addArrays(BcDig *restrict a, const BcDig *restrict b, in bc_num_addArrays()
284 static void bc_num_subArrays(BcDig *restrict a, const BcDig *restrict b, in bc_num_subArrays()
327 c->num[i] = (BcDig) carry; in bc_num_mulArray()
359 c->num[i] = (BcDig) (in / b); in bc_num_divArray()
381 static ssize_t bc_num_compare(const BcDig *restrict a, const BcDig *restrict b, in bc_num_compare()
385 BcDig c = 0; in bc_num_compare()
393 BcDig *max_num, *min_num; in bc_num_cmp()
488 if (BC_NUM_NONZERO(n)) n->num[0] -= n->num[0] % (BcDig) pow; in bc_num_truncate()
645 BcDig *ptr = n->num; in bc_num_shift()
660 ptr[i] = ((BcDig) (in / pow)) + (BcDig) temp; in bc_num_shift()
895 BcDig *ptr_c, *ptr_l, *ptr_r; in bc_num_as()
1066 BcDig *ptr_a = a->num, *ptr_b = b->num, *ptr_c; in bc_num_m_simp()
1069 assert(sizeof(sum) >= sizeof(BcDig) * 2); in bc_num_m_simp()
1112 ptr_c[i] = (BcDig) sum; in bc_num_m_simp()
1149 BcDig *digs, *dig_ptr; in bc_num_k()
1411 static bool bc_num_nonZeroDig(BcDig *restrict a, size_t len) { in bc_num_nonZeroDig()
1427 static ssize_t bc_num_divCmp(const BcDig *a, const BcNum *b, size_t len) { in bc_num_divCmp()
1488 memset(c->num, 0, c->cap * sizeof(BcDig)); in bc_num_d_long()
1559 BcDig *n; in bc_num_d_long()
1612 c->num[i] = (BcDig) result; in bc_num_d_long()
2085 BcDig c = val[i]; in bc_num_strValid()
2481 BcDig n9 = n->num[i]; in bc_num_printDecimal()
2536 BcDig digs[BC_NUM_BIGDIG_LOG10]; in bc_num_printExponent()
2631 BcDig *a = n->num + idx; in bc_num_printFixup()
2647 a[i - 1] = (BcDig) (acc % pow); in bc_num_printFixup()
2678 a[i] = (BcDig) acc; in bc_num_printFixup()
2706 assert(pow == ((BcBigDig) ((BcDig) pow))); in bc_num_printPrepare()
2709 if (n->num[i] >= (BcDig) pow) { in bc_num_printPrepare()
2725 n->num[i + 1] += n->num[i] / ((BcDig) pow); in bc_num_printPrepare()
2726 n->num[i] %= (BcDig) pow; in bc_num_printPrepare()
2739 BcDig digit_digs[BC_NUM_BIGDIG_LOG10 + 1]; in bc_num_printNum()
2893 bc_num_setup(&digit, digit_digs, sizeof(digit_digs) / sizeof(BcDig)); in bc_num_printNum()
3006 void bc_num_setup(BcNum *restrict n, BcDig *restrict num, size_t cap) { in bc_num_setup()
3015 BcDig *num; in bc_num_init()
3224 BcDig *ptr; in bc_num_bigdig2num()
3347 BcDig temp1_num[BC_RAND_NUM_SIZE], temp2_num[BC_RAND_NUM_SIZE]; in bc_num_createFromRNG()
3348 BcDig conv_num[BC_NUM_BIGDIG_LOG10]; in bc_num_createFromRNG()
3358 bc_num_setup(&temp1, temp1_num, sizeof(temp1_num) / sizeof(BcDig)); in bc_num_createFromRNG()
3359 bc_num_setup(&temp2, temp2_num, sizeof(temp2_num) / sizeof(BcDig)); in bc_num_createFromRNG()
3360 bc_num_setup(&conv, conv_num, sizeof(conv_num) / sizeof(BcDig)); in bc_num_createFromRNG()
3431 b->num[i] = (BcDig) bc_rand_bounded(rng, BC_BASE_POW); in bc_num_irand()
3437 b->num[i] = (BcDig) bc_rand_bounded(rng, (BcRand) atemp.num[i]); in bc_num_irand()
3576 BcDig half_digs[1]; in bc_num_sqrt()
3627 bc_num_setup(&half, half_digs, sizeof(half_digs) / sizeof(BcDig)); in bc_num_sqrt()
3760 d->num[0] = (BcDig) rem; in bc_num_divmod()
3787 BcDig two_digs[2]; in bc_num_modexp()
3814 bc_num_setup(&two, two_digs, sizeof(two_digs) / sizeof(BcDig)); in bc_num_modexp()
3876 void bc_num_printDigs(const BcDig *n, size_t len, bool emptyline) { in bc_num_printDigs()
3913 BcDig div; in bc_num_dump()
3916 div = n->num[i] / ((BcDig) bc_num_pow10[(ulong) d]); in bc_num_dump()
3920 div = n->num[i] % ((BcDig) bc_num_pow10[(ulong) d]); in bc_num_dump()