[pure-lang-svn] SF.net SVN: pure-lang:[837] pure/trunk/lib/matrices.pure
Status: Beta
Brought to you by:
agraef
|
From: <ag...@us...> - 2008-09-23 10:48:19
|
Revision: 837
http://pure-lang.svn.sourceforge.net/pure-lang/?rev=837&view=rev
Author: agraef
Date: 2008-09-23 10:48:11 +0000 (Tue, 23 Sep 2008)
Log Message:
-----------
Add optimization rules for "void" matrix comprehensions.
Modified Paths:
--------------
pure/trunk/lib/matrices.pure
Modified: pure/trunk/lib/matrices.pure
===================================================================
--- pure/trunk/lib/matrices.pure 2008-09-23 10:31:58 UTC (rev 836)
+++ pure/trunk/lib/matrices.pure 2008-09-23 10:48:11 UTC (rev 837)
@@ -190,7 +190,8 @@
extern expr* matrix_rows(expr *x) = rowcat;
extern expr* matrix_columns(expr *x) = colcat;
-/* Combinations of rowcat/colcat and map. */
+/* Combinations of rowcat/colcat and map. These are used, in particular, for
+ implementing matrix comprehensions. */
rowcatmap f [] = {};
rowcatmap f xs@(_:_) = rowcat (map f xs);
@@ -198,6 +199,12 @@
colcatmap f [] = {};
colcatmap f xs@(_:_) = colcat (map f xs);
+/* Optimization rules for "void" matrix comprehensions (cf. the catmap
+ optimization rules at the beginning of prelude.pure). */
+
+def void (rowcatmap f x) = do f x;
+def void (colcatmap f x) = do f x;
+
/* Transpose a matrix. */
private matrix_transpose;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|