| 
									
										
										
										
											2011-10-12 01:38:36 +08:00
										 |  |  | // This file is part of Eigen, a lightweight C++ template library
 | 
					
						
							|  |  |  | // for linear algebra.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // Copyright (C) 2011 Gael Guennebaud <g.gael@free.fr>
 | 
					
						
							|  |  |  | //
 | 
					
						
							| 
									
										
										
										
											2012-07-14 02:42:47 +08:00
										 |  |  | // This Source Code Form is subject to the terms of the Mozilla
 | 
					
						
							|  |  |  | // Public License v. 2.0. If a copy of the MPL was not distributed
 | 
					
						
							|  |  |  | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
					
						
							| 
									
										
										
										
											2011-10-12 01:38:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | #include "sparse_solver.h"
 | 
					
						
							| 
									
										
										
										
											2011-11-12 21:11:27 +08:00
										 |  |  | #include <Eigen/IterativeLinearSolvers>
 | 
					
						
							| 
									
										
										
										
											2011-10-12 01:38:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-25 21:54:39 +08:00
										 |  |  | template <typename T, typename I_> | 
					
						
							|  |  |  | void test_bicgstab_T() { | 
					
						
							|  |  |  |   BiCGSTAB<SparseMatrix<T, 0, I_>, DiagonalPreconditioner<T> > bicgstab_colmajor_diag; | 
					
						
							|  |  |  |   BiCGSTAB<SparseMatrix<T, 0, I_>, IdentityPreconditioner> bicgstab_colmajor_I; | 
					
						
							|  |  |  |   BiCGSTAB<SparseMatrix<T, 0, I_>, IncompleteLUT<T, I_> > bicgstab_colmajor_ilut; | 
					
						
							| 
									
										
										
										
											2011-11-12 21:11:27 +08:00
										 |  |  |   // BiCGSTAB<SparseMatrix<T>, SSORPreconditioner<T> >     bicgstab_colmajor_ssor;
 | 
					
						
							| 
									
										
										
										
											2011-10-12 01:38:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-05 20:32:26 +08:00
										 |  |  |   bicgstab_colmajor_diag.setTolerance(NumTraits<T>::epsilon() * 4); | 
					
						
							|  |  |  |   bicgstab_colmajor_ilut.setTolerance(NumTraits<T>::epsilon() * 4); | 
					
						
							| 
									
										
										
										
											2023-12-06 05:22:55 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-12 01:38:36 +08:00
										 |  |  |   CALL_SUBTEST(check_sparse_square_solving(bicgstab_colmajor_diag)); | 
					
						
							| 
									
										
										
										
											2012-02-11 01:57:38 +08:00
										 |  |  |   //   CALL_SUBTEST( check_sparse_square_solving(bicgstab_colmajor_I)     );
 | 
					
						
							|  |  |  |   CALL_SUBTEST(check_sparse_square_solving(bicgstab_colmajor_ilut)); | 
					
						
							| 
									
										
										
										
											2011-11-12 21:11:27 +08:00
										 |  |  |   // CALL_SUBTEST( check_sparse_square_solving(bicgstab_colmajor_ssor)     );
 | 
					
						
							| 
									
										
										
										
											2011-10-12 01:38:36 +08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-17 20:46:15 +08:00
										 |  |  | EIGEN_DECLARE_TEST(bicgstab) { | 
					
						
							| 
									
										
										
										
											2015-03-09 20:55:20 +08:00
										 |  |  |   CALL_SUBTEST_1((test_bicgstab_T<double, int>())); | 
					
						
							|  |  |  |   CALL_SUBTEST_2((test_bicgstab_T<std::complex<double>, int>())); | 
					
						
							| 
									
										
										
										
											2015-03-09 21:33:15 +08:00
										 |  |  |   CALL_SUBTEST_3((test_bicgstab_T<double, long int>())); | 
					
						
							| 
									
										
										
										
											2011-10-12 01:38:36 +08:00
										 |  |  | } |