[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. |