factor/native/bignum.h

33 lines
1005 B
C
Raw Normal View History

2004-08-29 03:20:19 -04:00
CELL bignum_zero;
CELL bignum_pos_one;
CELL bignum_neg_one;
2004-08-25 02:00:52 -04:00
INLINE ARRAY* untag_bignum(CELL tagged)
{
type_check(BIGNUM_TYPE,tagged);
2004-08-25 02:00:52 -04:00
return (ARRAY*)UNTAG(tagged);
}
2004-08-25 02:00:52 -04:00
ARRAY* to_bignum(CELL tagged);
2004-08-05 15:18:31 -04:00
void primitive_to_bignum(void);
2004-08-25 02:00:52 -04:00
CELL number_eq_bignum(ARRAY* x, ARRAY* y);
CELL add_bignum(ARRAY* x, ARRAY* y);
CELL subtract_bignum(ARRAY* x, ARRAY* y);
CELL multiply_bignum(ARRAY* x, ARRAY* y);
2004-08-25 20:51:19 -04:00
CELL gcd_bignum(ARRAY* x, ARRAY* y);
2004-08-25 02:00:52 -04:00
CELL divide_bignum(ARRAY* x, ARRAY* y);
CELL divint_bignum(ARRAY* x, ARRAY* y);
CELL divfloat_bignum(ARRAY* x, ARRAY* y);
CELL divmod_bignum(ARRAY* x, ARRAY* y);
CELL mod_bignum(ARRAY* x, ARRAY* y);
CELL and_bignum(ARRAY* x, ARRAY* y);
CELL or_bignum(ARRAY* x, ARRAY* y);
CELL xor_bignum(ARRAY* x, ARRAY* y);
2004-08-26 19:37:22 -04:00
CELL shift_bignum(ARRAY* x, FIXNUM y);
2004-08-25 02:00:52 -04:00
CELL less_bignum(ARRAY* x, ARRAY* y);
CELL lesseq_bignum(ARRAY* x, ARRAY* y);
CELL greater_bignum(ARRAY* x, ARRAY* y);
CELL greatereq_bignum(ARRAY* x, ARRAY* y);
CELL not_bignum(ARRAY* x);
void copy_bignum_constants(void);