public static bool NEGATIVEP_BIGNUM( bignum n ) { return n.value < 0; }
public static Object bgl_string_to_integer_obj(byte[] s, int r) { String str = newstring(s); Object res; try { res = BINT(Convert.ToInt32(str, r)); } catch (OverflowException e) { res = new bignum(new BigInteger(str, r)); } return res; }
public static bignum MUL_BIGNUM( bignum n1, bignum n2 ) { return new bignum(n1.value * n2.value); }
public static bignum QUOTIENT_BIGNUM( bignum n1, bignum n2 ) { return new bignum(n1.value / n2.value); }
public static bool ZEROP_BIGNUM( bignum n ) { return n.value == 0; }
public static bignum PLUS_BIGNUM( bignum n1, bignum n2 ) { return new bignum(n1.value + n2.value); }
public static int bgl_bignum_to_long( bignum n ) { return n.value.IntValue(); }
public static bool EQ_BIGNUM( bignum n1, bignum n2 ) { return (n1.value == n2.value); }
public static bool EVENP_BIGNUM( bignum n ) { return ((n.value & 1) == 0); }
public static bignum DIVREM_BIGNUM( bignum n1, bignum n2 ) { bgldynamic env = BGL_CURRENT_DYNAMIC_ENV(); env.mvalues_number = 2; env.mvalues_values[ 1 ] = REMAINDER_BIGNUM(n1, n2); return QUOTIENT_BIGNUM(n1, n2); }
public static bignum ABS_BIGNUM( bignum n ) { return new bignum(n.value.abs()); }
public static int CMP_BIGNUM( bignum n1, bignum n2 ) { return (n1.value < n2.value) ? -1 : (n1.value == n2.value) ? 0 : 1; }
public static double BIGNUM_TO_FLONUM( bignum n ) { return n.DoubleValue(); }
public static Object bgl_write_bignum( bignum n, output_port p ) { p.write( (byte)'#' ); p.write( (byte)'z' ); p.write( n.value.ToString() ); return p; }
public static bignum NEG_BIGNUM( bignum n ) { return new bignum(-n.value); }
public static bignum GCD_BIGNUM( bignum n1, bignum n2 ) { return new bignum(n1.value.gcd(n2.value)); }
public static bool ODDP_BIGNUM( bignum n ) { return ((n.value & 1) != 0); }
public static bool GE_BIGNUM( bignum n1, bignum n2 ) { return (n1.value >= n2.value); }
public static bool POSITIVEP_BIGNUM( bignum n ) { return n.value > 0; }
public static bignum LCM_BIGNUM( bignum n1, bignum n2 ) { return new bignum(((n1.value / n1.value.gcd(n2.value)) * n2.value).abs()); }
public static byte[] bgl_bignum_to_string(bignum n, int r) { return getbytes(n.value.ToString(r)); }
public static bool LT_BIGNUM( bignum n1, bignum n2 ) { return (n1.value < n2.value); }
public static bignum REMAINDER_BIGNUM( bignum n1, bignum n2 ) { return new bignum(n1.value % n2.value); }
public static bignum MINUS_BIGNUM( bignum n1, bignum n2 ) { return new bignum(n1.value - n2.value); }
public static Object bgl_display_bignum( bignum n, output_port p ) { p.write( n.value.ToString() ); return p; }
public static bignum bgl_rand_bignum( bignum bx ) { return bx.rand(randg); }