Nektar++
Functions
Nektar::DiagonalMatrixOperationsUnitTests Namespace Reference

Functions

 BOOST_AUTO_TEST_CASE (TestDoubleDiagonalVectorMultiplication)
 
 BOOST_AUTO_TEST_CASE (TestDoubleScaledDiagonalVectorMultiplication)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/2]

Nektar::DiagonalMatrixOperationsUnitTests::BOOST_AUTO_TEST_CASE ( TestDoubleDiagonalVectorMultiplication  )

Definition at line 47 of file TestDiagonalMatrixOperations.cpp.

48{
49 double m_buf[] = {1, 2, 3};
50 double v_buf[] = {4, 5, 6};
51
52 NekMatrix<double> m(3, 3, m_buf, eDIAGONAL);
53 NekVector<double> v(3, v_buf);
54
55 double expected_result_buf[] = {4, 10, 18};
56 NekVector<double> expected_result(3, expected_result_buf);
57
58 NekVector<double> result = m * v;
59
60 BOOST_CHECK_EQUAL(expected_result, result);
61}

References Nektar::eDIAGONAL.

◆ BOOST_AUTO_TEST_CASE() [2/2]

Nektar::DiagonalMatrixOperationsUnitTests::BOOST_AUTO_TEST_CASE ( TestDoubleScaledDiagonalVectorMultiplication  )

Definition at line 63 of file TestDiagonalMatrixOperations.cpp.

64{
65 double m_buf[] = {1, 2, 3};
66 double v_buf[] = {4, 5, 6};
67
68 std::shared_ptr<NekMatrix<double>> inner(
69 new NekMatrix<double>(3, 3, m_buf, eDIAGONAL));
70 NekMatrix<NekMatrix<double>, ScaledMatrixTag> m(5.0, inner);
71
72 NekVector<double> v(3, v_buf);
73
74 double expected_result_buf[] = {20, 50, 90};
75 NekVector<double> expected_result(3, expected_result_buf);
76
77 NekVector<double> result = m * v;
78
79 BOOST_CHECK_EQUAL(expected_result, result);
80}

References Nektar::eDIAGONAL.