The Monash examples have been written for clp(R). Nevertheless,
all but rkf45
complete nicely in clp(Q). With rkf45
,
clp(Q) runs out of memory. This is an instance of the problem
discussed in Numerical Precision.
The Monash University clp(R) interpreter features a dump/n
predicate. It is used to print the target variables
according to the given ordering.
Within this version of clp(Q,R), the corresponding functionality
is provided via ordering/1
. The difference is that ordering/1
does only specify the ordering of the variables and no printing
is performed. We think Prolog has enough predicates to perform output already.
You can still run the examples referring to dump/n
from
the Prolog top-level:
clp(r) ?- expand, [library('clpqr/examples/monash/mortgage')], noexpand. % go2 % clp(r) ?- mg(P,120,0.01,0,MP), dump([P,MP]). {P=69.7005220313972*MP} % go3 % clp(r) ?- mg(P,120,0.01,B,MP), dump([P,B,MP]). {P=0.30299477968602706*B+69.7005220313972*MP} % go4 % clp(r) ?- mg(999, 3, Int, 0, 400), dump. clpr:{_B-_B*Int+_A+400.0=0.0}, clpr:{_A-_A*Int+400.0=0.0}, {_B=599.0+999.0*Int}