fix interface and docs
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1492 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
2d4d1f1ea8
commit
72214cb08c
@ -10,8 +10,11 @@
|
||||
* File: c_interface.c *
|
||||
* comments: c_interface primitives definition *
|
||||
* *
|
||||
* Last rev: $Date: 2006-01-02 02:25:44 $,$Author: vsc $ *
|
||||
* Last rev: $Date: 2006-01-02 03:35:44 $,$Author: vsc $ *
|
||||
* $Log: not supported by cvs2svn $
|
||||
* Revision 1.79 2006/01/02 02:25:44 vsc
|
||||
* cannot release space from external GMPs.
|
||||
*
|
||||
* Revision 1.78 2006/01/02 02:16:18 vsc
|
||||
* support new interface between YAP and GMP, so that we don't rely on our own
|
||||
* allocation routines.
|
||||
@ -443,7 +446,7 @@ YAP_BigNumOfTerm(Term t, void *b)
|
||||
return;
|
||||
if (!IsBigIntTerm(t))
|
||||
return;
|
||||
mpz_init_set(bz,Yap_BigIntOfTerm(t));
|
||||
mpz_set(bz,Yap_BigIntOfTerm(t));
|
||||
#endif /* USE_GMP */
|
||||
}
|
||||
|
||||
|
28
docs/yap.tex
28
docs/yap.tex
@ -10716,13 +10716,31 @@ a big int, creating a term from a big integer and to access the value
|
||||
of a big int from a term.
|
||||
@example
|
||||
YAP_Bool YAP_IsBigNumTerm(YAP_Term @var{t})
|
||||
YAP_Term YAP_MkBigNumTerm(YAP_Int @var{i})
|
||||
YAP_Int YAP_BigNumOfTerm(YAP_Term @var{t})
|
||||
YAP_Term YAP_MkBigNumTerm(void *@var{b})
|
||||
void *YAP_BigNumOfTerm(YAP_Term @var{t}, void *@var{b})
|
||||
@end example
|
||||
@noindent
|
||||
YAP must support bignum for the configuration you are using (check
|
||||
the YAP configuration and setup). For now, Yap only supports the GNU
|
||||
GMP library and the @code{MP_INT *} type.
|
||||
YAP must support bignum for the configuration you are using (check the
|
||||
YAP configuration and setup). For now, Yap only supports the GNU GMP
|
||||
library, and @code{void *} will be a cast for @code{mpz_t}. Notice
|
||||
that @code{YAP_BigNumOfTerm} requires the number to be already
|
||||
initialised. As an example, we show how to print a bignum:
|
||||
|
||||
@example
|
||||
static int
|
||||
p_print_bignum(void)
|
||||
{
|
||||
mpz_t mz;
|
||||
if (!YAP_IsBigNumTerm(YAP_ARG1))
|
||||
return FALSE;
|
||||
|
||||
mpz_init(mz);
|
||||
YAP_BigNumOfTerm(YAP_ARG1, mz);
|
||||
gmp_printf("Shows up as %Zd\n", mz);
|
||||
mpz_clear(mz);
|
||||
}
|
||||
@end example
|
||||
|
||||
|
||||
Currently, no primitives are supplied to users for manipulating data base
|
||||
references.
|
||||
|
@ -116,7 +116,7 @@ extern X_API YAP_Term PROTO(YAP_MkBigNumTerm,(void *));
|
||||
extern X_API YAP_Int PROTO(YAP_IntOfTerm,(YAP_Term));
|
||||
|
||||
/* void * BigNumOfTerm(Term) */
|
||||
extern X_API void *PROTO(YAP_BigNumOfTerm,(YAP_Term));
|
||||
extern X_API void *PROTO(YAP_BigNumOfTerm,(YAP_Term, void *));
|
||||
|
||||
/* Term MkFloatTerm(YAP_Float) */
|
||||
extern X_API YAP_Term PROTO(YAP_MkFloatTerm,(YAP_Float));
|
||||
|
Reference in New Issue
Block a user