51 typename Interface::stl_matrix A_stl;
52 typename Interface::stl_vector B_stl;
53 typename Interface::stl_vector X_stl;
55 init_matrix<pseudo_random>(A_stl,
size);
56 init_vector<pseudo_random>(B_stl,
size);
57 init_vector<null_function>(X_stl,
size);
61 typename Interface::gene_matrix
A;
62 typename Interface::gene_vector
B;
63 typename Interface::gene_vector
X;
65 typename Interface::gene_matrix LU;
67 Interface::matrix_from_stl(
A,A_stl);
68 Interface::vector_from_stl(
B,B_stl);
69 Interface::vector_from_stl(
X,X_stl);
70 Interface::matrix_from_stl(LU,A_stl);
74 typename Interface::Pivot_Vector pivot;
75 Interface::new_Pivot_Vector(pivot,
size);
85 for (
int ii=0;ii<nb_calc;ii++){
88 Interface::copy_matrix(
A,LU,
size);
89 Interface::LU_factor(LU,pivot,
size);
93 Interface::LU_solve(LU,pivot,
B,
X,
size);
105 typename Interface::stl_vector B_new_stl(
size);
106 Interface::vector_to_stl(
X,X_stl);
108 STL_interface<typename Interface::real_type>::matrix_vector_product(A_stl,X_stl,B_new_stl,
size);
110 typename Interface::real_type error=
111 STL_interface<typename Interface::real_type>::norm_diff(B_stl,B_new_stl);
114 INFOS(
"WRONG CALCULATION...residual=" << error);
115 STL_interface<typename Interface::real_type>::display_vector(B_stl);
116 STL_interface<typename Interface::real_type>::display_vector(B_new_stl);
122 Interface::free_matrix(
A,
size);
123 Interface::free_vector(
B);
124 Interface::free_vector(
X);
125 Interface::free_Pivot_Vector(pivot);