support db_ref_e:

This commit is contained in:
Vitor Santos Costa 2010-03-06 22:43:21 +00:00
parent 9083dc5633
commit ba091eb2f9
4 changed files with 80 additions and 78 deletions

View File

@ -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();
}
}

View File

@ -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();

View File

@ -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:

View File

@ -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();