#include#include using namespace Eigen; int main() { // define matrices MatrixXd A = MatrixXd::Random(3,3); MatrixXd B = MatrixXd::Random(3,3); // multiply matrices MatrixXd C = A * B; std::cout << "A:\n" << A << std::endl; std::cout << "B:\n" << B << std::endl; std::cout << "C (A*B):\n" << C << std::endl; return 0; }
#includeIn this example, Boost.MultiArray is used to define two 3x3 matrices with specific values, multiply them together using a nested loop algorithm, and output the result. Overall, both Eigen and Boost.MultiArray are widely used C++ library packages for matrix multiplication.#include using boost::multi_array; int main() { // define matrices typedef multi_array matrix_type; typedef matrix_type::index index; matrix_type A(boost::extents[3][3]); matrix_type B(boost::extents[3][3]); A[0][0] = 1.0; A[0][1] = 2.0; A[0][2] = 3.0; A[1][0] = 4.0; A[1][1] = 5.0; A[1][2] = 6.0; A[2][0] = 7.0; A[2][1] = 8.0; A[2][2] = 9.0; B[0][0] = 9.0; B[0][1] = 8.0; B[0][2] = 7.0; B[1][0] = 6.0; B[1][1] = 5.0; B[1][2] = 4.0; B[2][0] = 3.0; B[2][1] = 2.0; B[2][2] = 1.0; // multiply matrices matrix_type C(boost::extents[3][3]); for (index i = 0; i < 3; ++i) { for (index j = 0; j < 3; ++j) { C[i][j] = 0.0; for (index k = 0; k < 3; ++k) { C[i][j] += A[i][k] * B[k][j]; } } } // output result for (index i = 0; i < 3; ++i) { for (index j = 0; j < 3; ++j) { std::cout << C[i][j] << " "; } std::cout << std::endl; } return 0; }