15 template<
typename MatrixType>
17 return m.cwiseAbs().colwise().sum().maxCoeff();
29 if(MatrixType::RowsAtCompileTime==
Dynamic)
35 rows = MatrixType::RowsAtCompileTime;
37 if(MatrixType::ColsAtCompileTime==
Dynamic)
44 cols2 =
cols = MatrixType::ColsAtCompileTime;
48 RowsAtCompileTime = MatrixType::RowsAtCompileTime,
49 ColsAtCompileTime = MatrixType::ColsAtCompileTime
51 typedef typename internal::kernel_retval_base<FullPivLU<MatrixType> >::ReturnType KernelMatrixType;
52 typedef typename internal::image_retval_base<FullPivLU<MatrixType> >::ReturnType ImageMatrixType;
64 KernelMatrixType kernel = MatrixType::Zero(
rows,
cols).fullPivLu().kernel();
65 VERIFY((kernel.fullPivLu().isInvertible()));
68 CMatrixType
m2(
cols, cols2);
80 u =
lu.matrixLU().template triangularView<Upper>();
81 RMatrixType
l = RMatrixType::Identity(
rows,
rows);
87 KernelMatrixType m1kernel =
lu.kernel();
88 ImageMatrixType m1image =
lu.image(
m1);
97 VERIFY(m1image.fullPivLu().rank() == rank);
100 check_solverbase<CMatrixType, MatrixType>(
m1,
lu,
rows,
cols, cols2);
102 m2 = CMatrixType::Random(
cols,cols2);
104 m2 = CMatrixType::Random(
cols,cols2);
106 m2.block(0,0,
m2.rows(),
m2.cols()) =
lu.solve(
m3);
116 Index size = MatrixType::RowsAtCompileTime;
126 }
while(!
lu.isInvertible());
129 VERIFY(0 ==
lu.dimensionOfKernel());
135 VERIFY(
lu.image(
m1).fullPivLu().isInvertible());
148 VERIFY(rcond_est > rcond / 10 && rcond_est < rcond * 10);
170 check_solverbase<MatrixType, MatrixType>(
m1, plu,
size,
size,
size);
180 VERIFY(rcond_est > rcond / 10 && rcond_est < rcond * 10);