Я хотел просто умножить три матрицы следующим образом:
boost::numeric::ublas::matrix<double> bTP = trans(b1);
boost::numeric::ublas::matrix<double> tmp3 = prod((M1*elem[e_].alpha_por*Kf), trans(M1));
boost::numeric::ublas::matrix<double> tmp1 = prod(bTP, tmp3);
boost::numeric::ublas::matrix<double> tmp2 = prod(tmp1, b1);
Моя tmp3
матрица симметрична, но всякий раз, когда я умножаю ((b1)^T * tmp3 * b1)
, я получаю несимметричную матрицу вместо симметричной матрицы.
Есть ли проблема с функцией prod
библиотек наддува для обработки матриц большой двойной точности с умножением?