support db_ref_e:
This commit is contained in:
parent
9083dc5633
commit
ba091eb2f9
30
C/arith1.c
30
C/arith1.c
@ -240,7 +240,7 @@ eval1(Int fi, Term t) {
|
||||
RBIG(&new);
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_unot:
|
||||
@ -259,7 +259,7 @@ eval1(Int fi, Term t) {
|
||||
RBIG(&new);
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_exp:
|
||||
@ -480,7 +480,7 @@ eval1(Int fi, Term t) {
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#if HAVE_ISNAN
|
||||
@ -518,7 +518,7 @@ eval1(Int fi, Term t) {
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#if HAVE_ISNAN
|
||||
@ -555,7 +555,7 @@ eval1(Int fi, Term t) {
|
||||
}
|
||||
return t;
|
||||
break;
|
||||
case db_ref_e:
|
||||
default:
|
||||
#endif
|
||||
RERROR();
|
||||
}
|
||||
@ -591,7 +591,7 @@ eval1(Int fi, Term t) {
|
||||
return Yap_ArithError(TYPE_ERROR_FLOAT, t, "X is round(BIGNUM)");
|
||||
}
|
||||
return t;
|
||||
case db_ref_e:
|
||||
default:
|
||||
#endif
|
||||
RERROR();
|
||||
}
|
||||
@ -629,7 +629,7 @@ eval1(Int fi, Term t) {
|
||||
#ifdef USE_GMP
|
||||
RFLOAT(mpz_get_d(Yap_BigIntOfTerm(t)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_abs:
|
||||
@ -648,7 +648,7 @@ eval1(Int fi, Term t) {
|
||||
RBIG(&new);
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_msb:
|
||||
@ -667,7 +667,7 @@ eval1(Int fi, Term t) {
|
||||
RINT(mpz_sizeinbase(big,2));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_lsb:
|
||||
@ -686,7 +686,7 @@ eval1(Int fi, Term t) {
|
||||
RINT(mpz_scan1(big,0));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_popcount:
|
||||
@ -705,7 +705,7 @@ eval1(Int fi, Term t) {
|
||||
RINT(mpz_popcount(big));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_ffracp:
|
||||
@ -731,7 +731,7 @@ eval1(Int fi, Term t) {
|
||||
RFLOAT(0.0);
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_fintp:
|
||||
@ -753,7 +753,7 @@ eval1(Int fi, Term t) {
|
||||
RFLOAT(mpz_get_d(Yap_BigIntOfTerm(t)));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_sign:
|
||||
@ -775,7 +775,7 @@ eval1(Int fi, Term t) {
|
||||
#ifdef USE_GMP
|
||||
RINT(mpz_sgn(Yap_BigIntOfTerm(t)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case op_random1:
|
||||
@ -788,7 +788,7 @@ eval1(Int fi, Term t) {
|
||||
#ifdef USE_GMP
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t, "random(%f)", FloatOfTerm(t));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
}
|
||||
|
72
C/arith2.c
72
C/arith2.c
@ -93,7 +93,7 @@ p_mod(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return Yap_gmp_mod_int_big(IntegerOfTerm(t1), Yap_BigIntOfTerm(t2));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
break;
|
||||
}
|
||||
@ -115,11 +115,11 @@ p_mod(Term t1, Term t2) {
|
||||
return Yap_gmp_mod_big_big(Yap_BigIntOfTerm(t1), Yap_BigIntOfTerm(t2));
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "mod/2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
zero_divisor:
|
||||
@ -157,7 +157,7 @@ p_rem(Term t1, Term t2) {
|
||||
/* I know the term is much larger, so: */
|
||||
RINT(IntegerOfTerm(t1));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -191,11 +191,11 @@ p_rem(Term t1, Term t2) {
|
||||
}
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "mod/2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
zero_divisor:
|
||||
@ -234,7 +234,7 @@ p_fdiv(Term t1, Term t2)
|
||||
RFLOAT(((Float)i1/f2));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -257,7 +257,7 @@ p_fdiv(Term t1, Term t2)
|
||||
RFLOAT(FloatOfTerm(t1)/mpz_get_d(Yap_BigIntOfTerm(t2)));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -278,11 +278,11 @@ p_fdiv(Term t1, Term t2)
|
||||
Float dbl = FloatOfTerm(t2);
|
||||
RFLOAT(mpz_get_d(Yap_BigIntOfTerm(t1))/dbl);
|
||||
}
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -334,7 +334,7 @@ p_xor(Term t1, Term t2)
|
||||
RBIG(&new);
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -362,11 +362,11 @@ p_xor(Term t1, Term t2)
|
||||
}
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "#/2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -394,7 +394,7 @@ p_atan2(Term t1, Term t2)
|
||||
RFLOAT(atan2(i1,f2));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
break;
|
||||
}
|
||||
@ -417,7 +417,7 @@ p_atan2(Term t1, Term t2)
|
||||
RFLOAT(atan2(FloatOfTerm(t1),mpz_get_d(Yap_BigIntOfTerm(t2))));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -437,11 +437,11 @@ p_atan2(Term t1, Term t2)
|
||||
Float dbl = FloatOfTerm(t2);
|
||||
RFLOAT(atan2(mpz_get_d(Yap_BigIntOfTerm(t1)),dbl));
|
||||
}
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -479,7 +479,7 @@ p_power(Term t1, Term t2)
|
||||
RFLOAT(pow(i1,f2));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -502,7 +502,7 @@ p_power(Term t1, Term t2)
|
||||
RFLOAT(pow(FloatOfTerm(t1),mpz_get_d(Yap_BigIntOfTerm(t2))));
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -522,11 +522,11 @@ p_power(Term t1, Term t2)
|
||||
Float dbl = FloatOfTerm(t2);
|
||||
RFLOAT(pow(mpz_get_d(Yap_BigIntOfTerm(t1)),dbl));
|
||||
}
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -605,7 +605,7 @@ p_exp(Term t1, Term t2)
|
||||
return Yap_ArithError(RESOURCE_ERROR_HUGE_INT, t2, "^/2");
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -628,7 +628,7 @@ p_exp(Term t1, Term t2)
|
||||
return Yap_ArithError(RESOURCE_ERROR_HUGE_INT, t2, "^/2");
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -649,11 +649,11 @@ p_exp(Term t1, Term t2)
|
||||
Float dbl = FloatOfTerm(t2);
|
||||
RFLOAT(pow(mpz_get_d(Yap_BigIntOfTerm(t1)),dbl));
|
||||
}
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -741,7 +741,7 @@ p_gcd(Term t1, Term t2)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -774,11 +774,11 @@ p_gcd(Term t1, Term t2)
|
||||
}
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "gcd/2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -821,7 +821,7 @@ p_min(Term t1, Term t2)
|
||||
return t1;
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -858,7 +858,7 @@ p_min(Term t1, Term t2)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -897,11 +897,11 @@ p_min(Term t1, Term t2)
|
||||
return t1;
|
||||
}
|
||||
}
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -944,7 +944,7 @@ p_max(Term t1, Term t2)
|
||||
return t1;
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -981,7 +981,7 @@ p_max(Term t1, Term t2)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -1020,11 +1020,11 @@ p_max(Term t1, Term t2)
|
||||
return t1;
|
||||
}
|
||||
}
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
|
@ -518,6 +518,8 @@ unify_extension (Functor f, CELL d0, CELL * pt0, CELL d1)
|
||||
{
|
||||
case db_ref_e:
|
||||
return (d0 == d1);
|
||||
case attvar_e:
|
||||
return (d0 == d1);
|
||||
case long_int_e:
|
||||
return (pt0[1] == RepAppl (d1)[1]);
|
||||
case big_int_e:
|
||||
|
54
H/arith2.h
54
H/arith2.h
@ -158,7 +158,7 @@ p_plus(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_add_int_big(IntegerOfTerm(t1), Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case double_e:
|
||||
@ -172,7 +172,7 @@ p_plus(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_add_float_big(FloatOfTerm(t1),Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
case big_int_e:
|
||||
@ -185,11 +185,11 @@ p_plus(Term t1, Term t2) {
|
||||
return(Yap_gmp_add_big_big(Yap_BigIntOfTerm(t1), Yap_BigIntOfTerm(t2)));
|
||||
case double_e:
|
||||
return(Yap_gmp_add_float_big(FloatOfTerm(t2),Yap_BigIntOfTerm(t1)));
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -214,7 +214,7 @@ p_minus(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_sub_int_big(IntegerOfTerm(t1), Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -231,7 +231,7 @@ p_minus(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_sub_float_big(FloatOfTerm(t1),Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -244,11 +244,11 @@ p_minus(Term t1, Term t2) {
|
||||
return(Yap_gmp_sub_big_big(Yap_BigIntOfTerm(t1), Yap_BigIntOfTerm(t2)));
|
||||
case double_e:
|
||||
return(Yap_gmp_sub_big_float(Yap_BigIntOfTerm(t1),FloatOfTerm(t2)));
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -274,7 +274,7 @@ p_times(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_mul_int_big(IntegerOfTerm(t1), Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -289,7 +289,7 @@ p_times(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_mul_float_big(FloatOfTerm(t1),Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -303,11 +303,11 @@ p_times(Term t1, Term t2) {
|
||||
return(Yap_gmp_mul_big_big(Yap_BigIntOfTerm(t1), Yap_BigIntOfTerm(t2)));
|
||||
case double_e:
|
||||
return(Yap_gmp_mul_float_big(FloatOfTerm(t2),Yap_BigIntOfTerm(t1)));
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -343,7 +343,7 @@ p_div(Term t1, Term t2) {
|
||||
/* Cool */
|
||||
RINT(0);
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -360,11 +360,11 @@ p_div(Term t1, Term t2) {
|
||||
return Yap_gmp_div_big_big(Yap_BigIntOfTerm(t1), Yap_BigIntOfTerm(t2));
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "// /2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -384,7 +384,7 @@ p_and(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_and_int_big(IntegerOfTerm(t1),Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -401,11 +401,11 @@ p_and(Term t1, Term t2) {
|
||||
return(Yap_gmp_and_big_big(Yap_BigIntOfTerm(t2), Yap_BigIntOfTerm(t1)));
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "/\\ /2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -425,7 +425,7 @@ p_or(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return(Yap_gmp_ior_int_big(IntegerOfTerm(t1),Yap_BigIntOfTerm(t2)));
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -442,11 +442,11 @@ p_or(Term t1, Term t2) {
|
||||
return Yap_gmp_ior_big_big(Yap_BigIntOfTerm(t2), Yap_BigIntOfTerm(t1));
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "\\/ /2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -473,7 +473,7 @@ p_sll(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return Yap_ArithError(RESOURCE_ERROR_HUGE_INT, t2, "<</2");
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -488,11 +488,11 @@ p_sll(Term t1, Term t2) {
|
||||
return Yap_ArithError(RESOURCE_ERROR_HUGE_INT, t2, ">>/2");
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, "<</2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
@ -519,7 +519,7 @@ p_slr(Term t1, Term t2) {
|
||||
#ifdef USE_GMP
|
||||
return Yap_ArithError(RESOURCE_ERROR_HUGE_INT, t2, ">>/2");
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
break;
|
||||
@ -534,11 +534,11 @@ p_slr(Term t1, Term t2) {
|
||||
return Yap_ArithError(RESOURCE_ERROR_HUGE_INT, t2, ">>/2");
|
||||
case double_e:
|
||||
return Yap_ArithError(TYPE_ERROR_INTEGER, t2, ">>/2");
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
#endif
|
||||
case db_ref_e:
|
||||
default:
|
||||
RERROR();
|
||||
}
|
||||
RERROR();
|
||||
|
Reference in New Issue
Block a user