xref: /aosp_15_r20/external/eigen/test/umfpack_support.cpp (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1 // This file is part of Eigen, a lightweight C++ template library
2 // for linear algebra.
3 //
4 // Copyright (C) 2011 Gael Guennebaud <[email protected]>
5 //
6 // This Source Code Form is subject to the terms of the Mozilla
7 // Public License v. 2.0. If a copy of the MPL was not distributed
8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 
10 #define EIGEN_NO_DEBUG_SMALL_PRODUCT_BLOCKS
11 #include "sparse_solver.h"
12 
13 #include <Eigen/UmfPackSupport>
14 
test_umfpack_support_T()15 template<typename T1, typename T2> void test_umfpack_support_T()
16 {
17   UmfPackLU<SparseMatrix<T1, ColMajor, T2> > umfpack_colmajor;
18   UmfPackLU<SparseMatrix<T1, RowMajor, T2> > umfpack_rowmajor;
19 
20   check_sparse_square_solving(umfpack_colmajor);
21   check_sparse_square_solving(umfpack_rowmajor);
22 
23   check_sparse_square_determinant(umfpack_colmajor);
24   check_sparse_square_determinant(umfpack_rowmajor);
25 }
26 
EIGEN_DECLARE_TEST(umfpack_support)27 EIGEN_DECLARE_TEST(umfpack_support)
28 {
29   CALL_SUBTEST_1((test_umfpack_support_T<double, int>()));
30   CALL_SUBTEST_2((test_umfpack_support_T<std::complex<double>, int>()));
31   CALL_SUBTEST_3((test_umfpack_support_T<double, long >()));
32   CALL_SUBTEST_4((test_umfpack_support_T<std::complex<double>, long>()));
33 }
34 
35