[Boost-bugs] [Boost C++ Libraries] #3397: provide overloads for operator* for matrix/vector multiplies

Subject: [Boost-bugs] [Boost C++ Libraries] #3397: provide overloads for operator* for matrix/vector multiplies
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2009-09-03 21:41:48

#3397: provide overloads for operator* for matrix/vector multiplies
------------------------------+---------------------------------------------
Reporter: guwi17 | Owner: guwi17
Type: Bugs | Status: new
Milestone: To Be Determined | Component: uBLAS
Version: Boost 1.40.0 | Severity: Not Applicable
Keywords: |
------------------------------+---------------------------------------------
Since many people a familiar with using operator* we should add the
corresponding overloads to uBLAS. A good reference is the syntax used by
MATLAB. The final syntax should be

{{{
matrix<double> A;
vector<double> x;
vector<double> y;

cout << 2.0 * y << endl;
cout << y * 2 << endl;
cout << A * 2 << endl;
cout << 2 * A << endl;
cout << A * y << endl;
cout << trans(y) * A << endl;
cout << A * A << endl;

}}}

Similar to trans() we should provide herm() for complex matrices.

the syntax for inner and outer products could be
{{{
vector<double> x,a,b;
x = trans(a) * b; // inner prod
x = a * trans(b); // outer prod
}}}

the syntax for products with higher precision should be
{{{
prec(A*b);
prec(trans(a) * b);
}}}

a *= operator should also be provided
{{{
b *= A;
A *= B;
}}}
which could be mapped to the correspondy axpy_prod() call.