Multiplication de deux matrices
Salut à tous,
En faisant le profiling de mon programme, j'ai retrouvé que le hot path est la fonction que j'ai définit pour la multiplication entre deux matrices, voici son code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| vector<double> Multiplication(vector<double>const & a,vector<double>const & b,int m)
{
int i,j,w;
int l(a.size()/m);
int e(b.size()/m);
double sum;
vector<double> cl;
cl.reserve(l*e);
for(int i(0);i<l;++i)
for(int j(0);j<e;++j)
{
sum=0;
for(int w(0);w<m;++w)
{
sum=sum+a[i*m+w]*b[w*e+j];
}
cl.push_back(sum);
}
return(cl);
} |
Alors est ce que je peux faire mieux ??