48 size_t min_bytes = min_len + min_scale;
49 char *n1ptr, *n2ptr, *sumptr;
59 sumptr = (
char *) (sum->
n_value + sum_scale + sum_len - 1);
88 memcpy(&n1bytes, n1ptr,
sizeof(n1bytes));
89 memcpy(&n2bytes, n2ptr,
sizeof(n2bytes));
122 memcpy(sumptr, &n1bytes,
sizeof(n1bytes));
132 *sumptr = *n1ptr-- + *n2ptr-- + carry;
133 if (*sumptr >=
BASE) {
148 *sumptr = *n1ptr-- + carry;
149 if (*sumptr >=
BASE) {
181 size_t min_bytes = min_len + min_scale;
185 char *n1ptr, *n2ptr, *diffptr;
193 diffptr = (
char *) (diff->n_value + diff_len + diff_scale - 1);
196 if (n1->
n_scale != min_scale) {
199 *diffptr-- = *n1ptr--;
204 val = -*n2ptr-- - borrow;
229 memcpy(&n1bytes, n1ptr,
sizeof(n1bytes));
230 memcpy(&n2bytes, n2ptr,
sizeof(n2bytes));
238 n1bytes -= n2bytes + borrow;
250 n1bytes = (n1bytes &
SWAR_REPEAT(0x0F)) - borrow_mask;
257 memcpy(diffptr, &n1bytes,
sizeof(n1bytes));
269 val = *n1ptr-- - *n2ptr-- - borrow;
280 if (diff_len != min_len) {
282 val = *n1ptr-- - borrow;
count(Countable|array $value, int $mode=COUNT_NORMAL)
struct bc_struct * bc_num
#define bc_new_num_nonzeroed(length, scale)
bc_num _bc_do_sub(bc_num n1, bc_num n2)
bc_num _bc_do_add(bc_num n1, bc_num n2)
void _bc_rm_leading_zeros(bc_num num)
#define EXPECTED(condition)