frac-reduce.pl

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:08.0
disk size 487 Bytes
downloadable true
type
attribute value
name no_type
processor id 1
description this is the default benchmark type for rejected benchmarks and benchmarks that are not associated with a type.
owning community none
loading contents
%Source: Random examples used for debugging termination analysis for arithmetic Prolog programs
%query:reduce(g,f).
reduce(frac(C,D), frac(C,D)) :- !, gcd(C,D,Gcd), Gcd =:= 1.
reduce(frac(C,D), frac(Cres, Dres)) :- !, gcd(C,D,Gcd), Gcd > 1, reduce(frac(C//Gcd, D//Gcd), frac(CRec, DRec)), Cres is CRec, Dres is DRec.

gcd(X,0,X) :- !.
gcd(0,X,X) :- !.
gcd(X,Y,Divisor) :- X>=Y, !, Y>0, Remainder is X mod Y, gcd(Y,Remainder,Divisor).
gcd(X,Y,Divisor) :- X<Y, !, X > 0, gcd(Y,X,Divisor).
popout

content may be truncated. 'popout' for larger text window.

actions get anonymous link download benchmark