transpose-fb.pl

loading
details
attribute value
description
owner Johannes Waldmann
uploaded 2017-08-17 03:45:07.0
disk size 1.79 KB
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
%query: transpose(o,i).

/* variant of example from toplas collection
 * using cons and nil instead of [_|_] and []
 */

%TWTYPES :- type transpose(matrix,matrix).

transpose(A,B) :-
        transpose_aux(A,nil,B).

%TWTYPES :- type transpose_aux(matrix,matrix,matrix).

transpose_aux(cons(R,Rs),_,cons(C,Cs)) :-
    row2col(R,cons(C,Cs),Cols1,Accm),
    transpose_aux(Rs,Accm,Cols1).
transpose_aux(nil, X, X).

%TWTYPES :- type row2col(row,matrix,matrix,matrix).

row2col(cons(X,Xs),cons(cons(X,Ys),Cols),cons(Ys,Cols1),cons(nil,As)) :-
    row2col(Xs,Cols,Cols1,As).
row2col(nil,nil,nil,nil).







/*TWDESC

Transpose a matrix

*/


/*TWTYPES

row([X|Xs]) :-
    poly(X),
	row(Xs).
row([]).

poly(dummy).

matrix([X|Xs]) :-
	row(X),
	matrix(Xs).
matrix([]).
*/



/*TWDEMO

selected_norms([row,matrix,poly]).

query(transpose(b,b,f,f,f,f)).
query(transpose(b,f,b,f,f,f)).
query(transpose(b,f,f,b,f,f)).
query(transpose(b,f,f,f,b,f)).
query(transpose(b,f,f,f,f,b)).
query(transpose(f,b,f,f,f,f)).
query(transpose(f,f,b,f,f,f)).
query(transpose(f,f,f,f,b,f)).
query(transpose(f,f,f,f,f,b)).
query(transpose_aux(b,b,f,f,f,f,f,f,f)).
query(transpose_aux(b,f,b,f,f,f,f,f,f)).
query(transpose_aux(b,f,f,f,f,f,b,f,f)).
query(transpose_aux(b,f,f,f,f,f,f,b,f)).
query(transpose_aux(b,f,f,f,f,f,f,f,b)).
query(transpose_aux(f,b,f,f,f,f,f,f,f)).
query(transpose_aux(f,f,b,f,f,f,f,f,f)).
query(transpose_aux(f,f,f,f,f,f,f,b,f)).
query(transpose_aux(f,f,f,f,f,f,f,f,b)).
query(row2col(f,b,f,f,f,f,f,f,f,f,f,f)).
query(row2col(f,f,b,f,f,f,f,f,f,f,f,f)).
query(row2col(f,f,f,b,f,f,f,f,f,f,f,f)).
query(row2col(f,f,f,f,b,f,f,f,f,f,f,f)).
query(row2col(f,f,f,f,f,b,f,f,f,f,f,f)).
query(row2col(f,f,f,f,f,f,b,f,f,f,f,f)).
query(row2col(f,f,f,f,f,f,f,f,b,f,f,f)).
query(row2col(f,f,f,f,f,f,f,f,f,b,f,f)).
query(row2col(f,f,f,f,f,f,f,f,f,f,f,b)).

*/

popout

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

actions get anonymous link download benchmark