matrix_multiplication.hpp 860 Bytes
Newer Older
Ignacio Labarca Figueroa's avatar
Ignacio Labarca Figueroa committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/*
 * Programming Techniques for Scientific Simulations I
 * HS 2019
 * Exercise 10
 */

#pragma once
#include <cstdint>
#include <vector>

using value_t    = double;
using matrix_t   = std::vector<value_t>;
using function_t = void (*)(matrix_t const &, matrix_t const &, matrix_t &, std::size_t N);

void mm0(     matrix_t const & A, matrix_t const & B, matrix_t & C, std::size_t N) noexcept;
void mm1(     matrix_t const & A, matrix_t const & B, matrix_t & C, std::size_t N) noexcept;
void mm2(     matrix_t const & A, matrix_t const & B, matrix_t & C, std::size_t N) noexcept;
void mm3(     matrix_t const & A, matrix_t const & B, matrix_t & C, std::size_t N) noexcept;

void mm_blas( matrix_t const & A, matrix_t const & B, matrix_t & C, std::size_t N) noexcept;
void mm_eigen(matrix_t const & A, matrix_t const & B, matrix_t & C, std::size_t N) noexcept;