
On Tue, 21 Dec 2010, Alberto Ruiz wrote:
Vectorized boolean operations are not yet implemented but I hope to get them ready soon, including a "find" function. In the meantime you can use zipVectorWith, as mentioned by Henning.
I would not find it a great idea to support the MatLab style of handling booleans by 0 and 1. It's the whole point of Haskell's type safety to distinguish between numbers and booleans. MatLab even weakly distinguishs between numbers and booleans. If you use a vector of logical values (MatLab.logical corresponds to Haskell.Bool) as index, then it works like 'filter', e.g. logical indices: [1 2 3 4 5 6]([0 0 1 1 0 0]) = [3 4] number indices: [1 2 3 4 5 6]([0 0 1 1 0 0]) -> zero index not allowed Writing v2>0 in Haskell would mean to compare a matrix with a scalar. You would need a custom '>' operator and new type hacks in order to support all combinations of matrix and scalar operands. I think a Matrix.zipWith function would be the cleanest and most efficient way we can have!