home *** CD-ROM | disk | FTP | other *** search
- :-dynamic board/3.
-
- p:-compile('assertbm.pl').
-
- go:-go1,fail;go2.
-
- go1:-
- time(_),nop,time(N),
- initboard1,time(I0),updateboard1,time(U0),accessboard1,time(A0),
- I is I0-N,U is U0-N,A is A0-N,
- T is I+U+A,
- R=[nop=N,init=I,update=U,access=A,total=T],
- write(R),nl,
- findall(X,board(_,_,X),Xs),length(Xs,Len),
- write('asserted elements'(Len)),nl.
-
- go2:-
- time(_),nop,time(N),
- initboard2,time(I0),updateboard2,time(U0),accessboard2,time(A0),
- I is I0-N,U is U0-N,A is A0-N,
- T is I+U+A,
- R=[nop=N,init=I,update=U,access=A,total=T],
- write(R),nl.
-
- dim(16 ,16).
- % dim(2,2).
-
- range(Min,Min,Max):-Min=<Max.
- range(I,Min,Max):-
- Min<Max,
- Min1 is Min+1,
- range(I,Min1,Max).
-
- nop:-
- dim(MaxX,MaxY),
- range(X,1,MaxX),
- range(Y,1,MaxY),
- fail.
- nop.
-
- initboard1:-
- dim(MaxX,MaxY),
- range(X,1,MaxX),
- range(Y,1,MaxY),
- assert(board(X,Y,0)),
- fail.
- initboard1.
-
- updateboard1:-
- dim(MaxX,MaxY),
- range(X,1,MaxX),
- range(Y,1,MaxY),
- % retract1(board(X,Y,_),_),
- retract(board(X,Y,_)),
- assert(board(X,Y,1)),
- fail.
- updateboard1.
-
- accessboard1:-
- dim(MaxX,MaxY),
- range(X,1,MaxX),
- range(Y,1,MaxY),
- board(X,Y,_),
- fail.
- accessboard1.
-
- initboard2:-
- dim(MaxX,MaxY),
- range(X,1,MaxX),
- range(Y,1,MaxY),
- def(X,Y,0),
- fail.
- initboard2.
-
- updateboard2:-
- dim(MaxX,MaxY),
- range(X,1,MaxX),
- range(Y,1,MaxY),
- set(X,Y,1),
- fail.
- updateboard2.
-
- accessboard2:-
- dim(MaxX,MaxY),
- range(X,1,MaxX),
- range(Y,1,MaxY),
- val(X,Y,_),
- fail.
- accessboard2.
-
- time(T):-statistics(runtime,[_,T]).
-