mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
last round of changes, mainly to return derived types instead of base types, and fix various compilation issues
This commit is contained in:
@@ -98,11 +98,11 @@ template<typename _MatrixType> class ColPivHouseholderQR
|
||||
* Output: \verbinclude ColPivHouseholderQR_solve.out
|
||||
*/
|
||||
template<typename Rhs>
|
||||
inline const ei_solve_return_value<ColPivHouseholderQR, Rhs>
|
||||
inline const ei_solve_retval<ColPivHouseholderQR, Rhs>
|
||||
solve(const MatrixBase<Rhs>& b) const
|
||||
{
|
||||
ei_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
|
||||
return ei_solve_return_value<ColPivHouseholderQR, Rhs>(*this, b.derived());
|
||||
return ei_solve_retval<ColPivHouseholderQR, Rhs>(*this, b.derived());
|
||||
}
|
||||
|
||||
HouseholderSequenceType matrixQ(void) const;
|
||||
@@ -215,11 +215,11 @@ template<typename _MatrixType> class ColPivHouseholderQR
|
||||
* Use isInvertible() to first determine whether this matrix is invertible.
|
||||
*/
|
||||
inline const
|
||||
ei_solve_return_value<ColPivHouseholderQR, NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
ei_solve_retval<ColPivHouseholderQR, NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
inverse() const
|
||||
{
|
||||
ei_assert(m_isInitialized && "ColPivHouseholderQR is not initialized.");
|
||||
return ei_solve_return_value<ColPivHouseholderQR,NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
return ei_solve_retval<ColPivHouseholderQR,NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
(*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()).nestByValue());
|
||||
}
|
||||
|
||||
@@ -325,8 +325,8 @@ ColPivHouseholderQR<MatrixType>& ColPivHouseholderQR<MatrixType>::compute(const
|
||||
}
|
||||
|
||||
template<typename _MatrixType, typename Rhs>
|
||||
struct ei_solve_impl<ColPivHouseholderQR<_MatrixType>, Rhs>
|
||||
: ei_solve_return_value<ColPivHouseholderQR<_MatrixType>, Rhs>
|
||||
struct ei_solve_retval<ColPivHouseholderQR<_MatrixType>, Rhs>
|
||||
: ei_solve_retval_base<ColPivHouseholderQR<_MatrixType>, Rhs>
|
||||
{
|
||||
EIGEN_MAKE_SOLVE_HELPERS(ColPivHouseholderQR<_MatrixType>,Rhs)
|
||||
|
||||
|
||||
@@ -93,11 +93,11 @@ template<typename _MatrixType> class FullPivHouseholderQR
|
||||
* Output: \verbinclude FullPivHouseholderQR_solve.out
|
||||
*/
|
||||
template<typename Rhs>
|
||||
inline const ei_solve_return_value<FullPivHouseholderQR, Rhs>
|
||||
inline const ei_solve_retval<FullPivHouseholderQR, Rhs>
|
||||
solve(const MatrixBase<Rhs>& b) const
|
||||
{
|
||||
ei_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
|
||||
return ei_solve_return_value<FullPivHouseholderQR, Rhs>(*this, b.derived());
|
||||
return ei_solve_retval<FullPivHouseholderQR, Rhs>(*this, b.derived());
|
||||
}
|
||||
|
||||
MatrixQType matrixQ(void) const;
|
||||
@@ -215,11 +215,11 @@ template<typename _MatrixType> class FullPivHouseholderQR
|
||||
* \note If this matrix is not invertible, the returned matrix has undefined coefficients.
|
||||
* Use isInvertible() to first determine whether this matrix is invertible.
|
||||
*/ inline const
|
||||
ei_solve_return_value<FullPivHouseholderQR, NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
ei_solve_retval<FullPivHouseholderQR, NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
inverse() const
|
||||
{
|
||||
ei_assert(m_isInitialized && "FullPivHouseholderQR is not initialized.");
|
||||
return ei_solve_return_value<FullPivHouseholderQR,NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
return ei_solve_retval<FullPivHouseholderQR,NestByValue<typename MatrixType::IdentityReturnType> >
|
||||
(*this, MatrixType::Identity(m_qr.rows(), m_qr.cols()).nestByValue());
|
||||
}
|
||||
|
||||
@@ -333,8 +333,8 @@ FullPivHouseholderQR<MatrixType>& FullPivHouseholderQR<MatrixType>::compute(cons
|
||||
}
|
||||
|
||||
template<typename _MatrixType, typename Rhs>
|
||||
struct ei_solve_impl<FullPivHouseholderQR<_MatrixType>, Rhs>
|
||||
: ei_solve_return_value<FullPivHouseholderQR<_MatrixType>, Rhs>
|
||||
struct ei_solve_retval<FullPivHouseholderQR<_MatrixType>, Rhs>
|
||||
: ei_solve_retval_base<FullPivHouseholderQR<_MatrixType>, Rhs>
|
||||
{
|
||||
EIGEN_MAKE_SOLVE_HELPERS(FullPivHouseholderQR<_MatrixType>,Rhs)
|
||||
|
||||
|
||||
@@ -98,11 +98,11 @@ template<typename _MatrixType> class HouseholderQR
|
||||
* Output: \verbinclude HouseholderQR_solve.out
|
||||
*/
|
||||
template<typename Rhs>
|
||||
inline const ei_solve_return_value<HouseholderQR, Rhs>
|
||||
inline const ei_solve_retval<HouseholderQR, Rhs>
|
||||
solve(const MatrixBase<Rhs>& b) const
|
||||
{
|
||||
ei_assert(m_isInitialized && "HouseholderQR is not initialized.");
|
||||
return ei_solve_return_value<HouseholderQR, Rhs>(*this, b.derived());
|
||||
return ei_solve_retval<HouseholderQR, Rhs>(*this, b.derived());
|
||||
}
|
||||
|
||||
MatrixQType matrixQ() const;
|
||||
@@ -210,8 +210,8 @@ HouseholderQR<MatrixType>& HouseholderQR<MatrixType>::compute(const MatrixType&
|
||||
}
|
||||
|
||||
template<typename _MatrixType, typename Rhs>
|
||||
struct ei_solve_impl<HouseholderQR<_MatrixType>, Rhs>
|
||||
: ei_solve_return_value<HouseholderQR<_MatrixType>, Rhs>
|
||||
struct ei_solve_retval<HouseholderQR<_MatrixType>, Rhs>
|
||||
: ei_solve_retval_base<HouseholderQR<_MatrixType>, Rhs>
|
||||
{
|
||||
EIGEN_MAKE_SOLVE_HELPERS(HouseholderQR<_MatrixType>,Rhs)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user