Lines Matching full:lu

47   * \brief LU decomposition of a matrix with partial pivoting, and related features
49 * \tparam _MatrixType the type of the matrix of which we are computing the LU decomposition
51 …* This class represents a LU decomposition of a \b square \b invertible matrix, with partial pivot…
55 …* Typically, partial pivoting LU decomposition is only considered numerically stable for square in…
60 …* The guaranteed safe alternative, working for all matrices, is the full pivoting LU decomposition…
63 …* This is \b not a rank-revealing LU decomposition. Many features are intentionally absent from th…
66 …* This LU decomposition is suitable to invert invertible matrices. It is what MatrixBase::inverse(…
70 …* The data of the LU decomposition can be directly accessed through the methods matrixLU(), permut…
112 * \param matrix the matrix of which to compute the LU decomposition.
122 * \param matrix the matrix of which to compute the LU decomposition.
137 /** \returns the LU decomposition matrix: the upper-triangular part is U, the
159 * *this is the LU decomposition.
163 * b.rows()==A.rows(), where A is the matrix of which *this is the LU decomposition.
181 the LU decomposition.
189 /** \returns the inverse of the matrix of which *this is the LU decomposition.
194 * \sa MatrixBase::inverse(), LU::inverse()
203 * *this is the LU decomposition. It has only linear complexity
205 * as the LU decomposition has already been computed.
226 /* The decomposition PA = LU can be rewritten as A = P^{-1} L U.
246 /* The decomposition PA = LU can be rewritten as A^T = U^T L^T P.
348 /** \internal performs the LU decomposition in-place of the matrix \a lu
353 * of columns of the matrix \a lu, and an integer \a nb_transpositions
358 …static Index unblocked_lu(MatrixTypeRef& lu, PivIndex* row_transpositions, PivIndex& nb_transposit…
362 const Index rows = lu.rows();
363 const Index cols = lu.cols();
377 = lu.col(k).tail(rows-k).unaryExpr(Scoring()).maxCoeff(&row_of_biggest_in_col);
386 lu.row(k).swap(lu.row(row_of_biggest_in_col));
390 lu.col(k).tail(fix<RRows>(rrows)) /= lu.coeff(k,k);
400lu.bottomRightCorner(fix<RRows>(rrows),fix<RCols>(rcols)).noalias() -= lu.col(k).tail(fix<RRows>(r…
408 if (Scoring()(lu(k, k)) == Score(0) && first_zero_pivot == -1)
415 /** \internal performs the LU decomposition in-place of the matrix represented
421 * of columns of the matrix \a lu, and an integer \a nb_transpositions
432 MatrixTypeRef lu = MatrixType::Map(lu_data,rows, cols, OuterStride<>(luStride));
439 return unblocked_lu(lu, row_transpositions, nb_transpositions);
461 // lu = A_0 | A_1 | A_2 = A10 | A11 | A12
463 BlockType A_0 = lu.block(0,0,rows,k);
464 BlockType A_2 = lu.block(0,k+bs,rows,tsize);
465 BlockType A11 = lu.block(k,k,bs,bs);
466 BlockType A12 = lu.block(k,k+bs,bs,tsize);
467 BlockType A21 = lu.block(k+bs,k,trows,bs);
468 BlockType A22 = lu.block(k+bs,k+bs,trows,tsize);
471 // recursively call the blocked LU algorithm on [A11^T A21^T]^T
473 Index ret = blocked_lu(trows+bs, bs, &lu.coeffRef(k,k), luStride,
502 /** \internal performs the LU decomposition with partial pivoting in-place.
505 void partial_lu_inplace(MatrixType& lu, TranspositionType& row_transpositions, typename Transpositi…
508 if (lu.rows() == 0 || lu.cols() == 0) {
512 eigen_assert(lu.cols() == row_transpositions.size());
519 …::blocked_lu(lu.rows(), lu.cols(), &lu.coeffRef(0,0), lu.outerStride(), &row_transpositions.coeffR…
564 eigen_assert(m_isInitialized && "LU is not initialized.");
565 // LU
569 // P^{-1}(LU)
596 * \return the partial-pivoting LU decomposition of \c *this.
611 * \return the partial-pivoting LU decomposition of \c *this.
617 MatrixBase<Derived>::lu() const