アプリケーションで多くの行列演算を実行する必要があります。最も時間がかかるのは、行列の乗算です。この方法で実装しました
template<typename T>
Matrix<T> Matrix<T>::operator * (Matrix& matrix)
{
Matrix<T> multipliedMatrix = Matrix<T>(this->rows,matrix.GetColumns(),0);
for (int i=0;i<this->rows;i++)
{
for (int j=0;j<matrix.GetColumns();j++)
{
multipliedMatrix.datavector.at(i).at(j) = 0;
for (int k=0;k<this->columns ;k++)
{
multipliedMatrix.datavector.at(i).at(j) += datavector.at(i).at(k) * matrix.datavector.at(k).at(j);
}
//cout<<(*multipliedMatrix)[i][j]<<endl;
}
}
return multipliedMatrix;
}
もっと上手に書く方法はないでしょうか??これまでのところ、私のアプリケーションでは、行列の乗算操作にほとんどの時間がかかります。たぶん、この種のことを行うための優れた/高速なライブラリがありますか?? しかし、グラフィック カードが統合されたラップトップで作業しているため、数学演算にグラフィック カードを使用するライブラリは使用できません。