void trmv( matrix_expression<MatrA> const& A, vector_expression<VectorX> &x, boost::mpl::true_ ){ SIZE_CHECK(x().size() == A().size2()); SIZE_CHECK(A().size2() == A().size1()); std::size_t n = A().size1(); CBLAS_DIAG cblasUnit = unit?CblasUnit:CblasNonUnit; CBLAS_UPLO cblasUplo = upper?CblasUpper:CblasLower; CBLAS_ORDER stor_ord= (CBLAS_ORDER)storage_order<typename MatrA::orientation>::value; trmv(stor_ord, cblasUplo, CblasNoTrans, cblasUnit, (int)n, traits::storage(A), traits::leading_dimension(A), traits::storage(x), traits::stride(x) ); }
void test_product_trmv() { int s; for(int i = 0; i < g_repeat ; i++) { CALL_SUBTEST_1( trmv(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( trmv(Matrix<float, 2, 2>()) ); CALL_SUBTEST_3( trmv(Matrix3d()) ); s = ei_random<int>(1,200); CALL_SUBTEST_4( trmv(MatrixXcf(s,s)) ); s = ei_random<int>(1,200); CALL_SUBTEST_5( trmv(MatrixXcd(s,s)) ); s = ei_random<int>(1,320); CALL_SUBTEST_6( trmv(Matrix<float,Dynamic,Dynamic,RowMajor>(s, s)) ); } }
void test_product_trmv() { int s; for(int i = 0; i < g_repeat ; i++) { CALL_SUBTEST_1( trmv(Matrix<float, 1, 1>()) ); CALL_SUBTEST_2( trmv(Matrix<float, 2, 2>()) ); CALL_SUBTEST_3( trmv(Matrix3d()) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_4( trmv(MatrixXcf(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE/2); CALL_SUBTEST_5( trmv(MatrixXcd(s,s)) ); s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE); CALL_SUBTEST_6( trmv(Matrix<float,Dynamic,Dynamic,RowMajor>(s, s)) ); } EIGEN_UNUSED_VARIABLE(s); }