Select Git revision
genericpipeline.py
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test_matrix_multiplication.cpp 1.12 KiB
#include <matrix_multiplication.h>
#include <catch2/catch_test_macros.hpp>
#include "helpers.h"
TEST_CASE("test complex matrix multiplication", "[float]") {
// This setup will be done 4 times in total, once for each section
std::array<std::complex<float>, 4> A;
std::array<std::complex<float>, 4> B;
std::array<std::complex<float>, 4> C;
std::array<std::complex<float>, 4> C_expected;
Initialize(A.data());
Initialize(B.data());
matrixMultiply(A.data(), B.data(), C_expected.data());
SECTION("test correctness of naive implementation") {
matrixMultiplyNaive(A.data(), B.data(), C.data());
COMPARE_ARRAYS(C_expected, C, 1.e-6);
}
SECTION("test correctness of aocommon implementation") {
matrixMultiplyAoCommon(A.data(), B.data(), C.data());
COMPARE_ARRAYS(C_expected, C, 1.e-6);
}
SECTION("test correctness of avx2 implementation") {
matrixMultiplyAVX2(A.data(), B.data(), C.data());
COMPARE_ARRAYS(C_expected, C, 1.e-6);
}
SECTION("test correctness of avx2b implementation") {
matrixMultiplyAVX2b(A.data(), B.data(), C.data());
COMPARE_ARRAYS(C_expected, C, 1.e-6);
}
}