Lines Matching refs:sqrtT
20 …triangular_2x2_diagonal_block(const MatrixType& T, typename MatrixType::Index i, ResultType& sqrtT) in matrix_sqrt_quasi_triangular_2x2_diagonal_block() argument
27 sqrtT.template block<2,2>(i,i) in matrix_sqrt_quasi_triangular_2x2_diagonal_block()
35 …const MatrixType& T, typename MatrixType::Index i, typename MatrixType::Index j, ResultType& sqrtT) in matrix_sqrt_quasi_triangular_1x1_off_diagonal_block() argument
38 Scalar tmp = (sqrtT.row(i).segment(i+1,j-i-1) * sqrtT.col(j).segment(i+1,j-i-1)).value(); in matrix_sqrt_quasi_triangular_1x1_off_diagonal_block()
39 sqrtT.coeffRef(i,j) = (T.coeff(i,j) - tmp) / (sqrtT.coeff(i,i) + sqrtT.coeff(j,j)); in matrix_sqrt_quasi_triangular_1x1_off_diagonal_block()
44 …const MatrixType& T, typename MatrixType::Index i, typename MatrixType::Index j, ResultType& sqrtT) in matrix_sqrt_quasi_triangular_1x2_off_diagonal_block() argument
49 rhs -= sqrtT.block(i, i+1, 1, j-i-1) * sqrtT.block(i+1, j, j-i-1, 2); in matrix_sqrt_quasi_triangular_1x2_off_diagonal_block()
50 Matrix<Scalar,2,2> A = sqrtT.coeff(i,i) * Matrix<Scalar,2,2>::Identity(); in matrix_sqrt_quasi_triangular_1x2_off_diagonal_block()
51 A += sqrtT.template block<2,2>(j,j).transpose(); in matrix_sqrt_quasi_triangular_1x2_off_diagonal_block()
52 sqrtT.template block<1,2>(i,j).transpose() = A.fullPivLu().solve(rhs.transpose()); in matrix_sqrt_quasi_triangular_1x2_off_diagonal_block()
57 …const MatrixType& T, typename MatrixType::Index i, typename MatrixType::Index j, ResultType& sqrtT) in matrix_sqrt_quasi_triangular_2x1_off_diagonal_block() argument
62 rhs -= sqrtT.block(i, i+2, 2, j-i-2) * sqrtT.block(i+2, j, j-i-2, 1); in matrix_sqrt_quasi_triangular_2x1_off_diagonal_block()
63 Matrix<Scalar,2,2> A = sqrtT.coeff(j,j) * Matrix<Scalar,2,2>::Identity(); in matrix_sqrt_quasi_triangular_2x1_off_diagonal_block()
64 A += sqrtT.template block<2,2>(i,i); in matrix_sqrt_quasi_triangular_2x1_off_diagonal_block()
65 sqrtT.template block<2,1>(i,j) = A.fullPivLu().solve(rhs); in matrix_sqrt_quasi_triangular_2x1_off_diagonal_block()
104 …const MatrixType& T, typename MatrixType::Index i, typename MatrixType::Index j, ResultType& sqrtT) in matrix_sqrt_quasi_triangular_2x2_off_diagonal_block() argument
107 Matrix<Scalar,2,2> A = sqrtT.template block<2,2>(i,i); in matrix_sqrt_quasi_triangular_2x2_off_diagonal_block()
108 Matrix<Scalar,2,2> B = sqrtT.template block<2,2>(j,j); in matrix_sqrt_quasi_triangular_2x2_off_diagonal_block()
111 C -= sqrtT.block(i, i+2, 2, j-i-2) * sqrtT.block(i+2, j, j-i-2, 2); in matrix_sqrt_quasi_triangular_2x2_off_diagonal_block()
114 sqrtT.template block<2,2>(i,j) = X; in matrix_sqrt_quasi_triangular_2x2_off_diagonal_block()
120 void matrix_sqrt_quasi_triangular_diagonal(const MatrixType& T, ResultType& sqrtT) in matrix_sqrt_quasi_triangular_diagonal() argument
128 sqrtT.coeffRef(i,i) = sqrt(T.coeff(i,i)); in matrix_sqrt_quasi_triangular_diagonal()
131 matrix_sqrt_quasi_triangular_2x2_diagonal_block(T, i, sqrtT); in matrix_sqrt_quasi_triangular_diagonal()
140 void matrix_sqrt_quasi_triangular_off_diagonal(const MatrixType& T, ResultType& sqrtT) in matrix_sqrt_quasi_triangular_off_diagonal() argument
153 matrix_sqrt_quasi_triangular_2x2_off_diagonal_block(T, i, j, sqrtT); in matrix_sqrt_quasi_triangular_off_diagonal()
155 matrix_sqrt_quasi_triangular_2x1_off_diagonal_block(T, i, j, sqrtT); in matrix_sqrt_quasi_triangular_off_diagonal()
157 matrix_sqrt_quasi_triangular_1x2_off_diagonal_block(T, i, j, sqrtT); in matrix_sqrt_quasi_triangular_off_diagonal()
159 matrix_sqrt_quasi_triangular_1x1_off_diagonal_block(T, i, j, sqrtT); in matrix_sqrt_quasi_triangular_off_diagonal()
270 MatrixType sqrtT = MatrixType::Zero(arg.rows(), arg.cols());
271 matrix_sqrt_quasi_triangular(T, sqrtT);
274 result = U * sqrtT * U.adjoint();
295 MatrixType sqrtT;
296 matrix_sqrt_triangular(T, sqrtT);
299 result = U * (sqrtT.template triangularView<Upper>() * U.adjoint());