version 1.21, 2017/11/29 19:12:48 |
version 1.22, 2021/11/10 04:39:16 |
|
|
stack_clear(&stack); |
stack_clear(&stack); |
if (b->scale > 0) { |
if (b->scale > 0) { |
struct number *num_base; |
struct number *num_base; |
BIGNUM mult, stop; |
BIGNUM *mult, *stop; |
|
|
putcharwrap(f, '.'); |
putcharwrap(f, '.'); |
num_base = new_number(); |
num_base = new_number(); |
bn_check(BN_set_word(num_base->number, base)); |
bn_check(BN_set_word(num_base->number, base)); |
BN_init(&mult); |
mult = BN_new(); |
bn_check(BN_one(&mult)); |
bn_checkp(mult); |
BN_init(&stop); |
bn_check(BN_one(mult)); |
bn_check(BN_one(&stop)); |
stop = BN_new(); |
scale_number(&stop, b->scale); |
bn_checkp(stop); |
|
bn_check(BN_one(stop)); |
|
scale_number(stop, b->scale); |
|
|
i = 0; |
i = 0; |
while (BN_cmp(&mult, &stop) < 0) { |
while (BN_cmp(mult, stop) < 0) { |
u_long rem; |
u_long rem; |
|
|
if (i && base > 16) |
if (i && base > 16) |
|
|
int_part->number)); |
int_part->number)); |
printwrap(f, p); |
printwrap(f, p); |
free(p); |
free(p); |
bn_check(BN_mul_word(&mult, base)); |
bn_check(BN_mul_word(mult, base)); |
} |
} |
free_number(num_base); |
free_number(num_base); |
BN_free(&mult); |
BN_free(mult); |
BN_free(&stop); |
BN_free(stop); |
} |
} |
flushwrap(f); |
flushwrap(f); |
free_number(int_part); |
free_number(int_part); |