Home | History | Annotate | Download | only in dc

Lines Matching refs:number

64 static u_long		get_ulong(struct number *);
66 static __inline void push_number(struct number *);
70 static __inline struct number *pop_number(void);
90 static u_int count_digits(const struct number *);
115 static bool compare_numbers(enum bcode_compare, struct number *,
116 struct number *);
312 pn(const char *str, const struct number *n)
314 char *p = BN_bn2dec(n->number);
386 split_number(const struct number *n, BIGNUM *i, BIGNUM *f)
390 bn_checkp(BN_copy(i, n->number));
412 bn_check(BN_div(i, f, n->number, a, ctx));
420 normalize(struct number *n, u_int s)
422 scale_number(n->number, (int)(s - n->scale));
427 get_ulong(struct number *n)
430 return BN_get_word(n->number);
434 negate(struct number *n)
436 BN_set_negative(n->number, !BN_is_negative(n->number));
440 push_number(struct number *n)
469 static __inline struct number *
575 struct number *n;
578 bn_check(BN_set_word(n->number, bmachine.scale));
585 struct number *n;
590 if (BN_is_negative(n->number))
591 warnx("scale must be a nonnegative number");
606 struct number *n;
609 bn_check(BN_set_word(n->number, bmachine.obase));
616 struct number *n;
625 warnx("output base must be a number greater than 1");
633 struct number *n;
636 bn_check(BN_set_word(n->number, bmachine.ibase));
643 struct number *n;
652 warnx("input base must be a number between 2 and 16 "
662 struct number *n;
666 bn_check(BN_set_word(n->number, (BN_ULONG)i));
675 struct number *n;
691 bn_check(BN_set_word(n->number, scale));
697 count_digits(const struct number *n)
699 struct number *int_part, *fract_part;
702 if (BN_is_zero(n->number))
708 split_number(n, int_part->number, fract_part->number);
711 while (!BN_is_zero(int_part->number)) {
712 (void)BN_div_word(int_part->number, 10);
725 struct number *n = NULL;
735 bn_check(BN_set_word(n->number, (BN_ULONG)digits));
740 bn_check(BN_set_word(n->number, (BN_ULONG)digits));
753 struct number *n;
764 if (BN_num_bits(n->number) > 8)
765 bn_check(BN_mask_bits(n->number, 8));
766 str[0] = (char)BN_get_word(n->number);
804 struct number *n;
811 bn_check(BN_set_word(n->number, 0));
875 struct number *inumber, *n;
886 if (BN_is_negative(inumber->number))
895 bn_check(BN_set_word(n->number, 0));
909 struct number *inumber;
925 if (BN_is_negative(inumber->number)) {
954 struct number *a, *b;
955 struct number *r;
972 bn_check(BN_add(r->number, a->number, b->number));
981 struct number *a, *b;
982 struct number *r;
1000 bn_check(BN_sub(r->number, b->number, a->number));
1007 bmul_number(struct number *r, struct number *a, struct number *b, u_int scale)
1018 bn_check(BN_mul(r->number, a->number, b->number, ctx));
1029 struct number *a, *b;
1030 struct number *r;
1052 struct number *a, *b;
1053 struct number *r;
1070 if (BN_is_zero(a->number))
1078 bn_check(BN_div(r->number, NULL, b->number, a->number, ctx));
1089 struct number *a, *b;
1090 struct number *r;
1107 if (BN_is_zero(a->number))
1115 bn_check(BN_mod(r->number, b->number, a->number, ctx));
1126 struct number *a, *b;
1127 struct number *rdiv, *rmod;
1146 if (BN_is_zero(a->number))
1154 bn_check(BN_div(rdiv->number, rmod->number,
1155 b->number, a->number, ctx));
1167 struct number *a, *p;
1168 struct number *r;
1197 if (BN_is_negative(p->number)) {
1206 b = BN_get_word(p->number);
1214 if (BN_is_zero(p->number)) {
1216 bn_check(BN_one(r->number));
1222 while (!BN_is_bit_set(p->number, 0)) {
1225 bn_check(BN_rshift1(p->number, p->number));
1229 bn_check(BN_rshift1(p->number, p->number));
1232 while (!BN_is_zero(p->number)) {
1235 if (BN_is_bit_set(p->number, 0)) {
1239 bn_check(BN_rshift1(p->number, p->number));
1253 if (BN_is_zero(r->number))
1256 bn_check(BN_div(r->number, NULL, one,
1257 r->number, ctx));
1288 struct number *n;
1289 struct number *r;
1298 if (BN_is_zero(n->number)) {
1301 } else if (BN_is_negative(n->number))
1302 warnx("square root of negative number");
1306 x = BN_dup(n->number);
1315 bn_check(BN_div(x, NULL, n->number, x, ctx));
1323 r->number = y;
1335 struct number *a;
1341 bn_check(BN_set_word(a->number, BN_get_word(a->number) ? 0 : 1));
1354 struct number *a, *b, *r;
1365 bn_check(BN_set_word(r->number,
1373 struct number *a, *b, *r;
1384 bn_check(BN_set_word(r->number,
1392 struct number *a, *b, *r;
1403 bn_check(BN_set_word(r->number,
1459 compare_numbers(enum bcode_compare type, struct number *a, struct number *b)
1471 cmp = BN_cmp(a->number, b->number);
1497 struct number *a, *b;
1562 struct number *n;
1571 warnx("Q command requires a number >= 1");
1585 struct number *n;
1593 warnx("J command requires a number >= 0");