in place matrix ops?

May 27, 2012 at 5:29 AM
Edited May 27, 2012 at 5:48 AM

Iridium has quite a few of "in place" functions for matrices. Numerics has a couple or pairwise functions (PairwiseMultiply; PairwiseDivide) and that's about it, I think, based on what I read in the beta docs. But Numerics is supposed to superseed Iridium. What am I missing? For example, how do you compute an "in place" Power(x) function for a matrix in Numerics? Thanks.

Coordinator
May 27, 2012 at 9:29 AM

In Numerics, most arithmetic operations support an "in place" mode as well: simply by passing one of the matrix operands also as result matrix, in which case - if possible - the operation will operate directly in place in that matrix.

Note that "pointwise" and "in place" are completely different things: "in place" means that the result is computed directly in one of the matrix operands (i.e. without allocating a new result matrix), while "pointwise" means to operate field by field (on matching indices) between two matrices of the same size, ignoring any matrix semantics.

Yes indeed, it seems we are missing a PointwisePower function so far, extending PointwiseMultiply to generic exponents.

Jul 11, 2012 at 6:32 AM
cdrnet wrote:

In Numerics, most arithmetic operations support an "in place" mode as well: simply by passing one of the matrix operands also as result matrix, in which case - if possible - the operation will operate directly in place in that matrix.

Note that "pointwise" and "in place" are completely different things: "in place" means that the result is computed directly in one of the matrix operands (i.e. without allocating a new result matrix), while "pointwise" means to operate field by field (on matching indices) between two matrices of the same size, ignoring any matrix semantics.

Yes indeed, it seems we are missing a PointwisePower function so far, extending PointwiseMultiply to generic exponents.

Another thing that I have used in Iridium and I can't find how to do in Numerics is "element by element" operation like ArrayDivide (./ in Matlab).

Is there another way to do such operations?

Thanks.

Coordinator
Jul 14, 2012 at 8:57 AM

Yes, Array* has become Pointwise*, e.g. Matrix.PointwiseDivide.

Thanks,
Christoph