informatique 4
template<class T>
matrix& operator*=(matrix& x, T value)
{
vector<T>
elem2 = x.getElem();
int size =
elem2.size();
for (int i=0;
i<size; i++)
(x.getElem())[i]
*= value;
return x;
};
//operator|
template<class T> bool operator|(const vector& tv,
const matrix& x)
{
//right matrix.
int rLines =
x.getElem().size()/x.getJump();
//left vector.
int lCols =
tv.size();
if (rLines !=
lCols)
return
false;
return true;
};
//operator|
template<class T> bool operator|(const matrix& x,
const vector& v)
{
//left matrix.
int rLines =
x.getJump();
//right vector.
int lCols =
v.size();
if (rLines !=
lCols)
return
false;
return true;
};
//Multiplication tV*X
template<class T> vector operator*(vector&
tv, matrix& x)
{
int size =
x.getJump();
vector<T>
res(size);
vector<T> cols;
T value = T();
for (int i=1; i<=size; i++)
{
cols
= x.getCol(i);
value
= ScalarPositive<T>(tv, cols);
res[i-1]
= value;
}
return res;
};
//Multiplication X*V
template<class T>
vector operator*(matrix& x, vector& v)
{
//Retourne une matrice de jump = 1.
int size = x.getElem().size()/x.getJump();
vector<T>
res(size);
vector<T>
lines;
T value = T();
for (int i=1;
i<=size; i++)
{
lines
= x.getLine(i);
value
= ScalarPositive<T>(v, lines);
res[i-1]
= value;
}
return res;
};
4/10 sur 2 votes
Sélectionnez une note dans le menu déroulant.
Aucun commentaire
Dernière mise à jour de cette page le 21/03/2008