Lines Matching defs:BcNum
144 typedef struct BcNum {
148 } BcNum;
153 // the size required for ibase and obase BcNum's.
162 typedef BcStatus (*BcNumBinaryOp)(BcNum*, BcNum*, BcNum*, size_t);
163 typedef size_t (*BcNumBinaryOpReq)(BcNum*, BcNum*, size_t);
166 void bc_num_init(BcNum *n, size_t req);
167 void bc_num_expand(BcNum *n, size_t req);
168 void bc_num_copy(BcNum *d, BcNum *s);
169 void bc_num_createCopy(BcNum *d, BcNum *s);
170 void bc_num_createFromUlong(BcNum *n, unsigned long val);
173 BcStatus bc_num_ulong(BcNum *n, unsigned long *result);
174 void bc_num_ulong2num(BcNum *n, unsigned long val);
176 BcStatus bc_num_add(BcNum *a, BcNum *b, BcNum *c, size_t scale);
177 BcStatus bc_num_sub(BcNum *a, BcNum *b, BcNum *c, size_t scale);
178 BcStatus bc_num_mul(BcNum *a, BcNum *b, BcNum *c, size_t scale);
179 BcStatus bc_num_div(BcNum *a, BcNum *b, BcNum *c, size_t scale);
180 BcStatus bc_num_mod(BcNum *a, BcNum *b, BcNum *c, size_t scale);
181 BcStatus bc_num_pow(BcNum *a, BcNum *b, BcNum *c, size_t scale);
182 BcStatus bc_num_sqrt(BcNum *a, BcNum *b, size_t scale);
183 BcStatus bc_num_divmod(BcNum *a, BcNum *b, BcNum *c, BcNum *d, size_t scale);
185 size_t bc_num_addReq(BcNum *a, BcNum *b, size_t scale);
187 size_t bc_num_mulReq(BcNum *a, BcNum *b, size_t scale);
188 size_t bc_num_powReq(BcNum *a, BcNum *b, size_t scale);
297 BcNum n;
547 BcNum ib;
549 BcNum ob;
564 BcNum one;
565 BcNum last;
580 typedef void (*BcProgramUnary)(BcResult*, BcNum*);
587 unsigned long bc_program_scale(BcNum *n);
588 unsigned long bc_program_len(BcNum *n);
590 void bc_program_negate(BcResult *r, BcNum *n);
591 void bc_program_not(BcResult *r, BcNum *n);
1134 static void bc_num_setToZero(BcNum *n, size_t scale) {
1140 void bc_num_one(BcNum *n) {
1146 void bc_num_ten(BcNum *n) {
1180 ssize_t bc_num_cmp(BcNum *a, BcNum *b) {
1224 static void bc_num_clean(BcNum *n) {
1230 void bc_num_truncate(BcNum *n, size_t places) {
1243 static void bc_num_extend(BcNum *n, size_t places) {
1259 static void bc_num_retireMul(BcNum *n, size_t scale, int neg1, int neg2) {
1268 static void bc_num_split(BcNum *n, size_t idx, BcNum *a, BcNum *b) {
1286 static BcStatus bc_num_shift(BcNum *n, size_t places) {
1303 static BcStatus bc_num_inv(BcNum *a, BcNum *b, size_t scale) {
1305 BcNum one;
1322 static BcStatus bc_num_a(BcNum *a, BcNum *b, BcNum *c, size_t sub) {
1391 static BcStatus bc_num_s(BcNum *a, BcNum *b, BcNum *c, size_t sub) {
1395 BcNum *minuend, *subtrahend;
1454 static BcStatus bc_num_k(BcNum *a, BcNum *b, BcNum *c) {
1458 BcNum l1, h1, l2, h2, m2, m1, z0, z1, z2, temp;
1559 static BcStatus bc_num_m(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
1562 BcNum cpa, cpb;
1599 static BcStatus bc_num_d(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
1604 BcNum cp;
1662 static BcStatus bc_num_r(BcNum *a, BcNum *b, BcNum *c, BcNum *d, size_t scale,
1666 BcNum temp;
1697 static BcStatus bc_num_rem(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
1700 BcNum c1;
1710 static BcStatus bc_num_p(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
1713 BcNum copy;
1793 static BcStatus bc_num_binary(BcNum *a, BcNum *b, BcNum *c, size_t scale,
1797 BcNum num2, *ptr_a, *ptr_b;
1802 memcpy(ptr_a, c, sizeof(BcNum));
1810 memcpy(ptr_b, c, sizeof(BcNum));
1836 static BcStatus bc_num_parseBase(BcNum *n, char *val,
1837 BcNum *base, size_t base_t)
1840 BcNum temp, mult, result;
1941 static void bc_num_printDecimal(BcNum *n) {
1952 static BcStatus bc_num_printNum(BcNum *n, BcNum *base,
1957 BcNum intp, fracp, digit, frac_len;
2015 static BcStatus bc_num_printBase(BcNum *n, BcNum *base, size_t base_t) {
2041 void bc_num_setup(BcNum *n, signed char *num, size_t cap) {
2048 void bc_num_init(BcNum *n, size_t req) {
2053 void bc_num_expand(BcNum *n, size_t req) {
2062 free(((BcNum*) num)->num);
2065 void bc_num_copy(BcNum *d, BcNum *s) {
2074 void bc_num_createCopy(BcNum *d, BcNum *s) {
2079 void bc_num_createFromUlong(BcNum *n, unsigned long val) {
2084 BcStatus bc_num_parse(BcNum *n, char *val,
2085 BcNum *base, size_t base_t, int letter)
2122 BcStatus bc_num_ulong(BcNum *n, unsigned long *result) {
2148 void bc_num_ulong2num(BcNum *n, unsigned long val) {
2163 size_t bc_num_addReq(BcNum *a, BcNum *b, size_t scale) {
2167 size_t bc_num_mulReq(BcNum *a, BcNum *b, size_t scale) {
2171 size_t bc_num_powReq(BcNum *a, BcNum *b, size_t scale) {
2175 BcStatus bc_num_add(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
2180 BcStatus bc_num_sub(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
2185 BcStatus bc_num_mul(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
2189 BcStatus bc_num_div(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
2193 BcStatus bc_num_mod(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
2197 BcStatus bc_num_pow(BcNum *a, BcNum *b, BcNum *c, size_t scale) {
2201 BcStatus bc_num_sqrt(BcNum *a, BcNum *b, size_t scale) {
2204 BcNum num1, num2, half, f, fprime, *x0, *x1, *temp;
2302 BcStatus bc_num_divmod(BcNum *a, BcNum *b, BcNum *c, BcNum *d, size_t scale) {
2305 BcNum num2, *ptr_a;
2310 memcpy(&num2, c, sizeof(BcNum));
2389 if (nums) bc_vec_init(a, sizeof(BcNum), bc_num_free);
2403 BcNum *dnum = bc_vec_item(d, i), *snum = bc_vec_item(s, i);
2410 if (a->size == sizeof(BcNum) && a->dtor == bc_num_free) {
2411 BcNum n;
4461 static BcStatus bc_program_type_num(BcResult *r, BcNum *n) {
4542 static BcStatus bc_program_num(BcProgram *p, BcResult *r, BcNum **num) {
4545 BcNum *n = &r->d.n;
4622 BcNum **n, size_t idx)
4630 static BcStatus bc_program_binPrep(BcProgram *p, BcResult **l, BcNum **ln,
4631 BcResult **r, BcNum **rn)
4653 static BcStatus bc_program_binOpPrep(BcProgram *p, BcResult **l, BcNum **ln,
4654 BcResult **r, BcNum **rn)
4667 static BcStatus bc_program_assignPrep(BcProgram *p, BcResult **l, BcNum **ln,
4668 BcResult **r, BcNum **rn)
4696 static BcStatus bc_program_prep(BcProgram *p, BcResult **r, BcNum **n) {
4716 BcNum *n1 = NULL, *n2 = NULL;
4822 BcNum *n = NULL;
4868 void bc_program_negate(BcResult *r, BcNum *n) {
4869 BcNum *rn = &r->d.n;
4874 void bc_program_not(BcResult *r, BcNum *n) {
4882 BcNum *num = NULL;
4898 BcNum *n1 = NULL, *n2 = NULL;
4967 BcNum *n = NULL;
5008 BcNum *l = NULL, *r = NULL;
5076 BcNum *num = NULL;
5112 BcNum *num = NULL;
5213 BcNum *num = NULL;
5241 unsigned long bc_program_scale(BcNum *n) {
5245 unsigned long bc_program_len(BcNum *n) {
5261 BcNum *num = NULL, *resn = &res.d.n;
5416 BcNum *num;