45 lines
		
	
	
		
			715 B
		
	
	
	
		
			Prolog
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			715 B
		
	
	
	
		
			Prolog
		
	
	
	
	
	
 | 
						|
:- use_module(library(cuda)).
 | 
						|
:- use_module(library(lists)).
 | 
						|
 | 
						|
:- initialization(main).
 | 
						|
 | 
						|
main :-
 | 
						|
	Rule = ( db(Y, Z), db(X, Z), db(1, Z), X = Y  ),
 | 
						|
	setof(a(X,Y), Z^Rule, L0), reverse(L0, RL0), writeln(RL0), 
 | 
						|
	cuda_rule((a(X, Y) :- Rule ), Q),
 | 
						|
	cuda_eval(Q, L),
 | 
						|
	cuda_erase( Q ),
 | 
						|
	writeln(L).
 | 
						|
 | 
						|
main2 :-
 | 
						|
	Rule = ( db(Y, Z), db(X, Z), db(1, Z), X \= Y  ),
 | 
						|
	setof(a(X,Y), Z^Rule, L0), reverse(L0, RL0), writeln(RL0), 
 | 
						|
	cuda_rule((a(X, Y) :- Rule ), Q),
 | 
						|
	cuda_eval(Q, L),
 | 
						|
	cuda_erase( Q ),
 | 
						|
	writeln(L).
 | 
						|
 | 
						|
 | 
						|
db(1,a).
 | 
						|
db(2,a).
 | 
						|
db(5,b).
 | 
						|
db(4,q).
 | 
						|
db(6,w).
 | 
						|
db(10,s).
 | 
						|
/*
 | 
						|
db(11,a).
 | 
						|
db(12,a).
 | 
						|
db(15,b).
 | 
						|
db(14,q).
 | 
						|
db(16,w).
 | 
						|
db(110,s).
 | 
						|
db(21,a).
 | 
						|
db(22,a).
 | 
						|
db(25,b).
 | 
						|
db(24,q).
 | 
						|
db(26,w).
 | 
						|
db(210,s).
 | 
						|
*/
 | 
						|
 | 
						|
:- 	cuda_extensional(db/2, _X). |