Subject: Re: [boost] different matrix library?
From: Edward Grace (ej.grace_at_[hidden])
Date: 2009-08-15 05:40:23
On 15 Aug 2009, at 07:28, joel wrote:
> Edward Grace wrote:
>> Err - surely the point of overloading is to assign meaningful context
>> specific behaviour to the same operator, so.
>> unsigned a,b,c; c = a ^ b; // ^ => XOR makes sense.
>> pseudovector<3> c;
>> vector<3> a,b; c = a ^ b; // ^ => Wedge product makes sense XOR
>> does not.
> Well, except there is use case in computer vision or machien
> learning in
> which you have large matrix of integer on which you apply bitwise
> operation before feeding to some solver. ^ is clearly 'elementwise
> in this context.
Hmm, is the 'vector' and 'matrix' paradime you have in mind in the
same manner as MATLAB? There they seem to be two-faced, they are
mathematical vectors and matricies but also just collections of values.
Perhaps there needs to be a reasonable distinction between element
wise operations and global operations on the object, for instance all
the different types of product
- Matrix product (* in MATLAB)
- Hadamard product (.* in MATLAB)
- Kronecker product (kron(A,B) in MATLAB)
- Tensor product (tprod MATLAB Mex http://www.mathworks.com/
> so wedge_product is a better alternative.
>> If, for example, b and c were pseudovectors then s would be a (true)
>> scalar and could be assigned to the concrete type double. This is
>> where carrying along some (meta) information concerning the
>> transformation rules of these different entities would be both tricky
>> and crucial.
> In NT2 matrix of size(1,1) are castable to scalar and such operations
> works flawlessly.
Hmm, on second thoughts distinguishing between a pseudo<vector/
scalar> and vector/scalar probably doesn't matter for any practical
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk