]> hydra-www.ietfng.org Git - dyna2/commitdiff
using "pair-valued" shape as suggested by Jason in 12/14 Dyna meeting.
authortimv <tim.f.vieira@gmail.com>
Mon, 17 Dec 2012 20:47:30 +0000 (15:47 -0500)
committertimv <tim.f.vieira@gmail.com>
Mon, 17 Dec 2012 20:47:30 +0000 (15:47 -0500)
examples/matrixops.dyna

index 288dd979e62385b5ae7eb288eb4992543871fd26..c2050ce354bb27e163290c6454d5638e20d71342 100644 (file)
@@ -1,16 +1,20 @@
 
 
+
+
 % A and B are names of matrices
-times(A, B, I, J) += m(A, I, K) * m(B, K, J) whenever product(A,B).
+times(A, B, I, J) += m(A, I, K) * m(B, K, J) whenever product(A,B).  % use "?"
 
-m(P, I, J) += shape(A, R, C),
-              shape(B, C, D),
+m(P, I, J) += pair(R, C) is shape(A),
+              pair(C, D) is shape(B),
               P is product(A, B),
               times(A, B, I, J).
 
-shape(P, R, C) :- P is product(A, B), shape(A, R, X), shape(B, X, C).
+%shape(P, R, C) :- P is product(A, B), shape(A, R, X), shape(B, X, C).
+
+shape(A) += &pair(*rows(A), *cols(A)).
 
-shape(X, *rows(X), *cols(X)).
+%shape(X, *rows(X), *cols(X)).
 rows(X) max= m(X, R, _), R.
 cols(X) max= m(X, _, C), C.