From: Nizar Khalifa Sallem (nksallem_at_[hidden])
Date: 2008-07-23 12:00:20
Garret McGraw wrote:
> Nizar Khalifa Sallem wrote:
>> Garret McGraw wrote:
>>> I've looked around at the wiki and previous mailing list posts and I
>>> cannot find the answer to my question there. What I need to do is
>>> define a custom class and set it to be stored in a matrix such as:
>>> matrix<MyCustomClass> mat1(300, 300);
>>> And then it must be able to be multiplied by another matrix of a
>>> different type.
>>> matrix<MyCustomClass2> mat2(300, 300);
>>> Then I want to be able to take the product of the two matrices have
>>> have it go into another matrix of a third type:
>>> matrix<MyCustomClass3> mat3(300, 300);
>>> mat3 = prod(mat1, mat2);
>>> Now I have defined operators to multiply
>>> MyCustomClass*MyCustomClass2 and return MyCustomClass3 and also the
>>> operator MyCustomClass3 += MyCustomClass3
>>> Is there any other operators that I must define for this to
>>> compile? Is this even possible with ublas?
>>> Thanks in advance,
>>> ublas mailing list
>> You need to redefine opertaor (row, col) and prod() I guess since
>> there are some product that only prod can handle ot opertaor *
>> besides you have to make operator (row, col) return also references
>> on your matrixes elements.
>> That's where I can go so far with my experience of ublas, may be
>> others could help better.
>> ublas mailing list
> Thanks so much for your quick response!
> I think if I redefine prod(), it will mean I must program my own
> matrix multiplication algorithm and that's one of the reason that I
> like ublas is because of its efficient matrix multiplication
> algorithm. I guess my question is: what operators must I define to
> accommodate ublas prod() or how do I go about making ublas treat my
> types(classes) just as if they were multipliable, addable objects just
> like an integer or a double.
> ublas mailing list
in this case try just to overload it.