able to commit 64 bits
This commit is contained in:
		@@ -362,6 +362,17 @@ Yap_gmp_exp_big_int(MP_INT *b, Int i)
 | 
			
		||||
  return MkBigAndClose(&new);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Term
 | 
			
		||||
Yap_gmp_big_from_64bits(YAP_LONG_LONG i)
 | 
			
		||||
{
 | 
			
		||||
  char s[64];
 | 
			
		||||
  MP_INT new;
 | 
			
		||||
 | 
			
		||||
  sprintf(s, "%lld", (long long int)i);
 | 
			
		||||
  mpz_init_set_str (&new, s, 10);
 | 
			
		||||
  return MkBigAndClose(&new);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3904,7 +3904,7 @@ p_inform_gc(void)
 | 
			
		||||
{
 | 
			
		||||
  Term tn = MkIntegerTerm(TotGcTime);
 | 
			
		||||
  Term tt = MkIntegerTerm(GcCalls);
 | 
			
		||||
  Term ts = MkIntegerTerm((TotGcRecovered*sizeof(CELL)));
 | 
			
		||||
  Term ts = Yap_Mk64IntegerTerm((TotGcRecovered*sizeof(CELL)));
 | 
			
		||||
 
 | 
			
		||||
  return(Yap_unify(tn, ARG2) && Yap_unify(tt, ARG1) && Yap_unify(ts, ARG3));
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -431,8 +431,6 @@ IsPrimitiveTerm (Term t)
 | 
			
		||||
		 || (IsApplTerm (t) && IsBlobFunctor (FunctorOfTerm (t)))));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef TERM_EXTENSIONS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										20
									
								
								H/eval.h
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								H/eval.h
									
									
									
									
									
								
							@@ -225,10 +225,28 @@ Term  STD_PROTO(Yap_gmp_mod_int_big,(Int, MP_INT *));
 | 
			
		||||
Term  STD_PROTO(Yap_gmp_exp_ints,(Int,Int));
 | 
			
		||||
Term  STD_PROTO(Yap_gmp_exp_big_int,(MP_INT *,Int));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Term  STD_PROTO(Yap_gmp_big_from_64bits,(YAP_LONG_LONG));
 | 
			
		||||
 | 
			
		||||
Term   STD_PROTO(Yap_gmp_add_float_big,(Float, MP_INT *));
 | 
			
		||||
Term   STD_PROTO(Yap_gmp_sub_float_big,(Float, MP_INT *));
 | 
			
		||||
Term   STD_PROTO(Yap_gmp_sub_big_float,(MP_INT *, Float));
 | 
			
		||||
Term   STD_PROTO(Yap_gmp_mul_float_big,(Float, MP_INT *));
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
inline EXTERN Term Yap_Mk64IntegerTerm(YAP_LONG_LONG);
 | 
			
		||||
 | 
			
		||||
inline EXTERN Term
 | 
			
		||||
Yap_Mk64IntegerTerm(YAP_LONG_LONG i)
 | 
			
		||||
{
 | 
			
		||||
  if (i <= Int_MAX || i >= Int_MIN) {
 | 
			
		||||
    return MkIntegerTerm((Int)i);
 | 
			
		||||
  } else {
 | 
			
		||||
#if USE_GMP
 | 
			
		||||
    return Yap_gmp_big_from_64bits(i);
 | 
			
		||||
#else
 | 
			
		||||
    return MkIntTerm(-1);
 | 
			
		||||
#endif
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user