blob: 515cd10160caa672a05b25a6212566f29047c50f [file] [log] [blame]
/* VAX C-Prolog Benchmark Package */
/* Copyright 1985 by Tektronix, Inc., and Portland State University */
gen_list(0,[]).
gen_list(N,[[N,N]|L]) :- N1 is N-1, gen_list(N1,L).
expand_term(0,Xvalue, Tvalue) :- Tvalue is Xvalue.
expand_term(Power,Xvalue, Tvalue) :- TempValue is 2*Xvalue,
Power1 is Power - 1,
expand_term(Power1 ,TempValue, Tvalue).
eval_term([Coef,Power],Value,Xvalue) :- expand_term(Power,Xvalue, Tvalue),
Value is Coef*Tvalue .
eval_poly([],Answer, Svalue) :- Answer is Svalue .
eval_poly([Term|Rest],Answer, Svalue) :- eval_term(Term,Value,1),
Ans is Svalue + Value,
eval_poly(Rest,Answer,Ans).
polybench(N,Answer) :- gen_list(N,Poly),!,
eval_poly(Poly,Answer, 0 ).