I generated a list with 501 items in it. Each item in the list is a list with
the form [N,LOG_OF_N_FACTORIAL]. N is an integer from 0 to 500.
LOG_OF_N_FACTORIAL is a float and, except for the trivial cases, all have
exactly 15 significant digits. For example, [2,0.301029995663981] and
[500,1134.08640853513]. When I put it in a file "test.pl" as a predication
like
my_log_n_factorial([[0,0.0],[1,0.0],[2,0.301029995663981],...,[500,1134.08640853513]]).
all by itself and try to consult it in the gprolog (1.3.1 or 1.4.1)
interpreter, I must increase the GLOBALSZ to a very large value to get it to
successfully consult the file. Both systems being 64-bit I made
GLOBALSZ=1920000. When the consult('test.pl') is successful I query
"my_log_n_factorial(X)." and the answer is "no". If I cut the list in half,
everything works fine, with either the top half or the bottom half of the
list. Also, if I consult my own prolog file, which has a lot of
predicates defined, and then paste into the gprolog interpreter "LIST =
[[0,0.0],[1,0.0],[2,0.301029995663981],...,[500,1134.08640853513]],my_prolog_pred(LIST,TREE)."
and then the call succeeds without a problem. Why can't I consult a file with
a predication with a single argument which is an array of 500 rows by 2
columns? It seems to me I should be able to do this. Why does the query say
"no" if perhaps there is not enough memory for the query? Also, why does it
take around 20 seconds to compile? The text file which contains the list is
11560 bytes in size.
Dave_______________________________________________
Users-prolog mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/users-prolog