Macaulay2 Engine
Loading...
Searching...
No Matches

◆ mult() [1/10]

template<typename RT>
void MatrixOps::mult ( const DMat< RT > & A,
const DMat< RT > & B,
DMat< RT > & result_product )

Definition at line 437 of file mat-linalg.hpp.

438{
439 // printf("entering dmat mult\n");
440 assert(A.numColumns() == B.numRows());
441 assert(A.numRows() == result_product.numRows());
442 assert(B.numColumns() == result_product.numColumns());
443
444 typename RT::Element tmp(A.ring());
445 for (size_t i = 0; i < A.numRows(); i++)
446 for (size_t j = 0; j < B.numColumns(); j++)
447 {
448 auto& val = result_product.entry(i,j);
449 for (size_t k = 0; k < A.numColumns(); ++k)
450 {
451 A.ring().mult(tmp, A.entry(i,k), B.entry(k,j));
452 A.ring().add(val, val, tmp);
453 }
454 }
455}
size_t numRows() const
Definition dmat.hpp:144
ElementType & entry(size_t row, size_t column)
Definition dmat.hpp:148
const ACoeffRing & ring() const
Definition dmat.hpp:143
size_t numColumns() const
Definition dmat.hpp:145

References DMat< ACoeffRing >::entry(), DMat< ACoeffRing >::numColumns(), DMat< ACoeffRing >::numRows(), and DMat< ACoeffRing >::ring().