diff options
author | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2012-09-07 13:18:16 +0200 |
---|---|---|
committer | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2012-09-07 13:18:16 +0200 |
commit | fdd0f0c5fc807f3b90e0442cfe4f3fa1f624b50a (patch) | |
tree | 63a7f166f41a90c9048b1d743fc6fb5b4b47a54a /test | |
parent | 288e6aab14cc12e604bd1a12f0cba20d88edf54f (diff) | |
parent | 063705b5be5a41e324773887d3d5ae065321a719 (diff) |
merge Sparse LU branch
Diffstat (limited to 'test')
-rw-r--r-- | test/CMakeLists.txt | 2 | ||||
-rw-r--r-- | test/sparse_solver.h | 4 | ||||
-rw-r--r-- | test/sparselu.cpp | 43 |
3 files changed, 46 insertions, 3 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 164f9c275..cbea4dd0a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -205,7 +205,7 @@ ei_add_test(vectorwiseop) ei_add_test(simplicial_cholesky) ei_add_test(conjugate_gradient) ei_add_test(bicgstab) - +ei_add_test(sparselu) if(UMFPACK_FOUND) ei_add_test(umfpack_support "" "${UMFPACK_ALL_LIBS}") diff --git a/test/sparse_solver.h b/test/sparse_solver.h index 75fa85082..73d92874c 100644 --- a/test/sparse_solver.h +++ b/test/sparse_solver.h @@ -158,9 +158,9 @@ inline std::string get_matrixfolder() { std::string mat_folder = TEST_REAL_CASES; if( internal::is_same<Scalar, std::complex<float> >::value || internal::is_same<Scalar, std::complex<double> >::value ) - mat_folder = mat_folder + static_cast<string>("/complex/"); + mat_folder = mat_folder + static_cast<std::string>("/complex/"); else - mat_folder = mat_folder + static_cast<string>("/real/"); + mat_folder = mat_folder + static_cast<std::string>("/real/"); return mat_folder; } #endif diff --git a/test/sparselu.cpp b/test/sparselu.cpp new file mode 100644 index 000000000..e960f9c93 --- /dev/null +++ b/test/sparselu.cpp @@ -0,0 +1,43 @@ +// This file is part of Eigen, a lightweight C++ template library +// for linear algebra. +// +// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr> +// +// Eigen is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 3 of the License, or (at your option) any later version. +// +// Alternatively, you can redistribute it and/or +// modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation; either version 2 of +// the License, or (at your option) any later version. +// +// Eigen is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License and a copy of the GNU General Public License along with +// Eigen. If not, see <http://www.gnu.org/licenses/>. +#include "sparse_solver.h" +#include <Eigen/SparseLU> +#include <unsupported/Eigen/SparseExtra> + +template<typename T> void test_sparselu_T() +{ + SparseLU<SparseMatrix<T, ColMajor>, COLAMDOrdering<int> > sparselu_colamd; + SparseLU<SparseMatrix<T, ColMajor>, AMDOrdering<int> > sparselu_amd; + + check_sparse_square_solving(sparselu_colamd); + check_sparse_square_solving(sparselu_amd); +} + +void test_sparselu() +{ + CALL_SUBTEST_1(test_sparselu_T<float>()); + CALL_SUBTEST_2(test_sparselu_T<double>()); + CALL_SUBTEST_3(test_sparselu_T<std::complex<float> >()); + CALL_SUBTEST_4(test_sparselu_T<std::complex<double> >()); +}
\ No newline at end of file |