mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 03:39:01 +08:00
fix the flags and matrix options, to always have the right RowMajor bit in the vector case
This commit is contained in:
parent
9dba86df0b
commit
547269da35
@ -60,7 +60,8 @@ struct ei_traits<PartialReduxExpr<MatrixType, MemberOp, Direction> >
|
|||||||
ColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::ColsAtCompileTime,
|
ColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::ColsAtCompileTime,
|
||||||
MaxRowsAtCompileTime = Direction==Vertical ? 1 : MatrixType::MaxRowsAtCompileTime,
|
MaxRowsAtCompileTime = Direction==Vertical ? 1 : MatrixType::MaxRowsAtCompileTime,
|
||||||
MaxColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::MaxColsAtCompileTime,
|
MaxColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::MaxColsAtCompileTime,
|
||||||
Flags = (unsigned int)_MatrixTypeNested::Flags & HereditaryBits,
|
Flags0 = (unsigned int)_MatrixTypeNested::Flags & HereditaryBits,
|
||||||
|
Flags = (Flags0 & ~RowMajorBit) | (RowsAtCompileTime == 1 ? RowMajorBit : 0),
|
||||||
TraversalSize = Direction==Vertical ? RowsAtCompileTime : ColsAtCompileTime
|
TraversalSize = Direction==Vertical ? RowsAtCompileTime : ColsAtCompileTime
|
||||||
};
|
};
|
||||||
#if EIGEN_GNUC_AT_LEAST(3,4)
|
#if EIGEN_GNUC_AT_LEAST(3,4)
|
||||||
|
@ -65,9 +65,7 @@ template<typename _MatrixType> class LDLT
|
|||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
||||||
typedef Matrix<Scalar, ColsAtCompileTime, 1, Options, MaxColsAtCompileTime, 1> VectorType;
|
typedef typename ei_plain_col_type<MatrixType, int>::type IntColVectorType;
|
||||||
typedef Matrix<int, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> IntColVectorType;
|
|
||||||
typedef Matrix<int, 1, RowsAtCompileTime, Options, 1, MaxRowsAtCompileTime> IntRowVectorType;
|
|
||||||
|
|
||||||
/** \brief Default Constructor.
|
/** \brief Default Constructor.
|
||||||
*
|
*
|
||||||
|
@ -65,7 +65,6 @@ template<typename _MatrixType, int _UpLo> class LLT
|
|||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
||||||
typedef Matrix<Scalar, ColsAtCompileTime, 1, Options, MaxColsAtCompileTime, 1> VectorType;
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PacketSize = ei_packet_traits<Scalar>::size,
|
PacketSize = ei_packet_traits<Scalar>::size,
|
||||||
|
@ -165,8 +165,8 @@ template<typename MatrixType, int Options, typename StrideType> class Map
|
|||||||
StrideType m_stride;
|
StrideType m_stride;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename _Scalar, int _Rows, int _Cols, int _StorageOrder, int _MaxRows, int _MaxCols>
|
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
|
||||||
inline Matrix<_Scalar, _Rows, _Cols, _StorageOrder, _MaxRows, _MaxCols>
|
inline Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>
|
||||||
::Matrix(const Scalar *data)
|
::Matrix(const Scalar *data)
|
||||||
{
|
{
|
||||||
_set_noalias(Eigen::Map<Matrix>(data));
|
_set_noalias(Eigen::Map<Matrix>(data));
|
||||||
|
@ -42,8 +42,10 @@ struct ei_traits<ProductBase<Derived,_Lhs,_Rhs> > //: ei_traits<typename ei_clea
|
|||||||
ColsAtCompileTime = ei_traits<Rhs>::ColsAtCompileTime,
|
ColsAtCompileTime = ei_traits<Rhs>::ColsAtCompileTime,
|
||||||
MaxRowsAtCompileTime = ei_traits<Lhs>::MaxRowsAtCompileTime,
|
MaxRowsAtCompileTime = ei_traits<Lhs>::MaxRowsAtCompileTime,
|
||||||
MaxColsAtCompileTime = ei_traits<Rhs>::MaxColsAtCompileTime,
|
MaxColsAtCompileTime = ei_traits<Rhs>::MaxColsAtCompileTime,
|
||||||
Flags = EvalBeforeNestingBit | EvalBeforeAssigningBit | NestByRefBit, // Note that EvalBeforeNestingBit and NestByRefBit
|
Flags = (RowsAtCompileTime==1 ? RowMajorBit : 0)
|
||||||
// are not used in practice because ei_nested is overloaded for products
|
| EvalBeforeNestingBit | EvalBeforeAssigningBit | NestByRefBit,
|
||||||
|
// Note that EvalBeforeNestingBit and NestByRefBit
|
||||||
|
// are not used in practice because ei_nested is overloaded for products
|
||||||
CoeffReadCost = 0 // FIXME why is it needed ?
|
CoeffReadCost = 0 // FIXME why is it needed ?
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -137,7 +137,10 @@ struct IOFormat;
|
|||||||
|
|
||||||
// Array module
|
// Array module
|
||||||
template<typename _Scalar, int _Rows, int _Cols,
|
template<typename _Scalar, int _Rows, int _Cols,
|
||||||
int _Options = EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION | AutoAlign,
|
int _Options = AutoAlign |
|
||||||
|
( (_Rows==1 && _Cols!=1) ? RowMajor
|
||||||
|
: (_Cols==1 && _Rows!=1) ? ColMajor
|
||||||
|
: EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION ),
|
||||||
int _MaxRows = _Rows, int _MaxCols = _Cols> class Array;
|
int _MaxRows = _Rows, int _MaxCols = _Cols> class Array;
|
||||||
template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType> class Select;
|
template<typename ConditionMatrixType, typename ThenMatrixType, typename ElseMatrixType> class Select;
|
||||||
template<typename MatrixType, typename BinaryOp, int Direction> class PartialReduxExpr;
|
template<typename MatrixType, typename BinaryOp, int Direction> class PartialReduxExpr;
|
||||||
|
@ -185,16 +185,16 @@ template<typename T> struct ei_eval<T,Dense>
|
|||||||
};
|
};
|
||||||
|
|
||||||
// for matrices, no need to evaluate, just use a const reference to avoid a useless copy
|
// for matrices, no need to evaluate, just use a const reference to avoid a useless copy
|
||||||
template<typename _Scalar, int _Rows, int _Cols, int _StorageOrder, int _MaxRows, int _MaxCols>
|
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
|
||||||
struct ei_eval<Matrix<_Scalar, _Rows, _Cols, _StorageOrder, _MaxRows, _MaxCols>, Dense>
|
struct ei_eval<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
|
||||||
{
|
{
|
||||||
typedef const Matrix<_Scalar, _Rows, _Cols, _StorageOrder, _MaxRows, _MaxCols>& type;
|
typedef const Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename _Scalar, int _Rows, int _Cols, int _StorageOrder, int _MaxRows, int _MaxCols>
|
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
|
||||||
struct ei_eval<Array<_Scalar, _Rows, _Cols, _StorageOrder, _MaxRows, _MaxCols>, Dense>
|
struct ei_eval<Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>, Dense>
|
||||||
{
|
{
|
||||||
typedef const Array<_Scalar, _Rows, _Cols, _StorageOrder, _MaxRows, _MaxCols>& type;
|
typedef const Array<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>& type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -355,4 +355,30 @@ template <typename A> struct ei_promote_storage_type<A,A>
|
|||||||
typedef A ret;
|
typedef A ret;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \internal gives the plain matrix type to store a row/column/diagonal of a matrix type.
|
||||||
|
* \param Scalar optional parameter allowing to pass a different scalar type than the one of the MatrixType.
|
||||||
|
*/
|
||||||
|
template<typename MatrixType, typename Scalar = typename MatrixType::Scalar>
|
||||||
|
struct ei_plain_row_type
|
||||||
|
{
|
||||||
|
typedef Matrix<Scalar, 1, MatrixType::ColsAtCompileTime,
|
||||||
|
MatrixType::PlainObject::Options | RowMajor, 1, MatrixType::MaxColsAtCompileTime> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename MatrixType, typename Scalar = typename MatrixType::Scalar>
|
||||||
|
struct ei_plain_col_type
|
||||||
|
{
|
||||||
|
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1,
|
||||||
|
MatrixType::PlainObject::Options & ~RowMajor, MatrixType::MaxRowsAtCompileTime, 1> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<typename MatrixType, typename Scalar = typename MatrixType::Scalar>
|
||||||
|
struct ei_plain_diag_type
|
||||||
|
{
|
||||||
|
enum { diag_size = EIGEN_SIZE_MIN(MatrixType::RowsAtCompileTime, MatrixType::ColsAtCompileTime),
|
||||||
|
max_diag_size = EIGEN_SIZE_MIN(MatrixType::MaxRowsAtCompileTime, MatrixType::MaxColsAtCompileTime)
|
||||||
|
};
|
||||||
|
typedef Matrix<Scalar, diag_size, 1, MatrixType::PlainObject::Options & ~RowMajor, max_diag_size, 1> type;
|
||||||
|
};
|
||||||
|
|
||||||
#endif // EIGEN_XPRHELPER_H
|
#endif // EIGEN_XPRHELPER_H
|
||||||
|
@ -51,7 +51,7 @@ template<typename _MatrixType> class ComplexEigenSolver
|
|||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef std::complex<RealScalar> Complex;
|
typedef std::complex<RealScalar> Complex;
|
||||||
typedef Matrix<Complex, ColsAtCompileTime, 1, Options, MaxColsAtCompileTime, 1> EigenvalueType;
|
typedef typename ei_plain_col_type<MatrixType, Complex>::type EigenvalueType;
|
||||||
typedef Matrix<Complex, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, ColsAtCompileTime> EigenvectorType;
|
typedef Matrix<Complex, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, ColsAtCompileTime> EigenvectorType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,9 +55,9 @@ template<typename _MatrixType> class EigenSolver
|
|||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef std::complex<RealScalar> Complex;
|
typedef std::complex<RealScalar> Complex;
|
||||||
typedef Matrix<Complex, ColsAtCompileTime, 1, Options, MaxColsAtCompileTime, 1> EigenvalueType;
|
typedef typename ei_plain_col_type<MatrixType, Complex>::type EigenvalueType;
|
||||||
typedef Matrix<Complex, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorType;
|
typedef Matrix<Complex, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> EigenvectorType;
|
||||||
typedef Matrix<RealScalar, ColsAtCompileTime, 1, Options, MaxColsAtCompileTime, 1> RealVectorType;
|
typedef typename ei_plain_col_type<MatrixType, RealScalar>::type RealVectorType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Default Constructor.
|
* \brief Default Constructor.
|
||||||
|
@ -53,8 +53,8 @@ template<typename _MatrixType> class HessenbergDecomposition
|
|||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef Matrix<Scalar, SizeMinusOne, 1, Options, MaxSizeMinusOne, 1> CoeffVectorType;
|
typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
|
||||||
typedef Matrix<Scalar, 1, Size, Options, 1, MaxSize> VectorType;
|
typedef typename ei_plain_col_type<MatrixType>::type VectorType;
|
||||||
|
|
||||||
/** This constructor initializes a HessenbergDecomposition object for
|
/** This constructor initializes a HessenbergDecomposition object for
|
||||||
* further use with HessenbergDecomposition::compute()
|
* further use with HessenbergDecomposition::compute()
|
||||||
|
@ -52,7 +52,7 @@ template<typename _MatrixType> class SelfAdjointEigenSolver
|
|||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||||
typedef std::complex<RealScalar> Complex;
|
typedef std::complex<RealScalar> Complex;
|
||||||
typedef Matrix<RealScalar, ColsAtCompileTime, 1, Options, MaxColsAtCompileTime, 1> RealVectorType;
|
typedef typename ei_plain_col_type<MatrixType, RealScalar>::type RealVectorType;
|
||||||
typedef Tridiagonalization<MatrixType> TridiagonalizationType;
|
typedef Tridiagonalization<MatrixType> TridiagonalizationType;
|
||||||
// typedef typename TridiagonalizationType::TridiagonalMatrixType TridiagonalMatrixType;
|
// typedef typename TridiagonalizationType::TridiagonalMatrixType TridiagonalMatrixType;
|
||||||
|
|
||||||
|
@ -57,10 +57,10 @@ template<typename _MatrixType> class Tridiagonalization
|
|||||||
PacketSize = ei_packet_traits<Scalar>::size
|
PacketSize = ei_packet_traits<Scalar>::size
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef Matrix<Scalar, SizeMinusOne, 1, Options, MaxSizeMinusOne, 1> CoeffVectorType;
|
typedef Matrix<Scalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> CoeffVectorType;
|
||||||
typedef Matrix<RealScalar, Size, 1, Options, MaxSize, 1> DiagonalType;
|
typedef typename ei_plain_col_type<MatrixType>::type DiagonalType;
|
||||||
typedef Matrix<RealScalar, SizeMinusOne, 1, Options, MaxSizeMinusOne, 1> SubDiagonalType;
|
typedef Matrix<RealScalar, SizeMinusOne, 1, Options & ~RowMajor, MaxSizeMinusOne, 1> SubDiagonalType;
|
||||||
typedef Matrix<Scalar, 1, Size, Options, 1, MaxSize> RowVectorType;
|
typedef typename ei_plain_row_type<MatrixType>::type RowVectorType;
|
||||||
|
|
||||||
typedef typename ei_meta_if<NumTraits<Scalar>::IsComplex,
|
typedef typename ei_meta_if<NumTraits<Scalar>::IsComplex,
|
||||||
typename Diagonal<MatrixType,0>::RealReturnType,
|
typename Diagonal<MatrixType,0>::RealReturnType,
|
||||||
|
@ -96,7 +96,7 @@ void MatrixBase<Derived>::applyHouseholderOnTheLeft(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Map<Matrix<Scalar, 1, Base::ColsAtCompileTime, PlainObject::Options, 1, Base::MaxColsAtCompileTime> > tmp(workspace,cols());
|
Map<typename ei_plain_row_type<PlainObject>::type> tmp(workspace,cols());
|
||||||
Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
|
Block<Derived, EssentialPart::SizeAtCompileTime, Derived::ColsAtCompileTime> bottom(derived(), 1, 0, rows()-1, cols());
|
||||||
tmp.noalias() = essential.adjoint() * bottom;
|
tmp.noalias() = essential.adjoint() * bottom;
|
||||||
tmp += this->row(0);
|
tmp += this->row(0);
|
||||||
@ -118,7 +118,7 @@ void MatrixBase<Derived>::applyHouseholderOnTheRight(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Map<Matrix<Scalar, Base::RowsAtCompileTime, 1, PlainObject::Options, Base::MaxRowsAtCompileTime, 1> > tmp(workspace,rows());
|
Map<typename ei_plain_col_type<PlainObject>::type> tmp(workspace,rows());
|
||||||
Block<Derived, Derived::RowsAtCompileTime, EssentialPart::SizeAtCompileTime> right(derived(), 0, 1, rows(), cols()-1);
|
Block<Derived, Derived::RowsAtCompileTime, EssentialPart::SizeAtCompileTime> right(derived(), 0, 1, rows(), cols()-1);
|
||||||
tmp.noalias() = right * essential.conjugate();
|
tmp.noalias() = right * essential.conjugate();
|
||||||
tmp += this->col(0);
|
tmp += this->col(0);
|
||||||
|
@ -68,8 +68,8 @@ template<typename _MatrixType> class FullPivLU
|
|||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
||||||
typedef Matrix<int, 1, ColsAtCompileTime, Options, 1, MaxColsAtCompileTime> IntRowVectorType;
|
typedef typename ei_plain_row_type<MatrixType, int>::type IntRowVectorType;
|
||||||
typedef Matrix<int, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> IntColVectorType;
|
typedef typename ei_plain_col_type<MatrixType, int>::type IntColVectorType;
|
||||||
typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationQType;
|
typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationQType;
|
||||||
typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationPType;
|
typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationPType;
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ template<typename _MatrixType> class PartialPivLU
|
|||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
typedef typename NumTraits<typename MatrixType::Scalar>::Real RealScalar;
|
||||||
typedef Matrix<int, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> PermutationVectorType;
|
typedef typename ei_plain_col_type<MatrixType, int>::type PermutationVectorType;
|
||||||
typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
|
typedef PermutationMatrix<RowsAtCompileTime, MaxRowsAtCompileTime> PermutationType;
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,18 +52,16 @@ template<typename _MatrixType> class ColPivHouseholderQR
|
|||||||
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
|
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
|
||||||
Options = MatrixType::Options,
|
Options = MatrixType::Options,
|
||||||
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
|
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
|
||||||
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
|
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
|
||||||
DiagSizeAtCompileTime = EIGEN_SIZE_MIN(ColsAtCompileTime,RowsAtCompileTime),
|
|
||||||
MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN(MaxColsAtCompileTime,MaxRowsAtCompileTime)
|
|
||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename MatrixType::RealScalar RealScalar;
|
typedef typename MatrixType::RealScalar RealScalar;
|
||||||
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
|
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
|
||||||
typedef Matrix<Scalar, DiagSizeAtCompileTime, 1, Options, MaxDiagSizeAtCompileTime, 1> HCoeffsType;
|
typedef typename ei_plain_diag_type<MatrixType>::type HCoeffsType;
|
||||||
typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
|
typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
|
||||||
typedef Matrix<int, 1, ColsAtCompileTime, Options, 1, MaxColsAtCompileTime> IntRowVectorType;
|
typedef typename ei_plain_row_type<MatrixType, int>::type IntRowVectorType;
|
||||||
typedef Matrix<Scalar, 1, ColsAtCompileTime, Options, 1, MaxColsAtCompileTime> RowVectorType;
|
typedef typename ei_plain_row_type<MatrixType>::type RowVectorType;
|
||||||
typedef Matrix<RealScalar, 1, ColsAtCompileTime, Options, 1, MaxColsAtCompileTime> RealRowVectorType;
|
typedef typename ei_plain_row_type<MatrixType, RealScalar>::type RealRowVectorType;
|
||||||
typedef typename HouseholderSequence<MatrixType,HCoeffsType>::ConjugateReturnType HouseholderSequenceType;
|
typedef typename HouseholderSequence<MatrixType,HCoeffsType>::ConjugateReturnType HouseholderSequenceType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -52,19 +52,17 @@ template<typename _MatrixType> class FullPivHouseholderQR
|
|||||||
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
|
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
|
||||||
Options = MatrixType::Options,
|
Options = MatrixType::Options,
|
||||||
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
|
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
|
||||||
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
|
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
|
||||||
DiagSizeAtCompileTime = EIGEN_SIZE_MIN(ColsAtCompileTime,RowsAtCompileTime),
|
|
||||||
MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN(MaxColsAtCompileTime,MaxRowsAtCompileTime)
|
|
||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename MatrixType::RealScalar RealScalar;
|
typedef typename MatrixType::RealScalar RealScalar;
|
||||||
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
|
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, Options, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
|
||||||
typedef Matrix<Scalar, DiagSizeAtCompileTime, 1, Options, MaxDiagSizeAtCompileTime, 1> HCoeffsType;
|
typedef typename ei_plain_diag_type<MatrixType>::type HCoeffsType;
|
||||||
typedef Matrix<int, 1, ColsAtCompileTime, Options, 1, MaxColsAtCompileTime> IntRowVectorType;
|
typedef Matrix<int, 1, ColsAtCompileTime, RowMajor, 1, MaxColsAtCompileTime> IntRowVectorType;
|
||||||
typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
|
typedef PermutationMatrix<ColsAtCompileTime, MaxColsAtCompileTime> PermutationType;
|
||||||
typedef Matrix<int, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> IntColVectorType;
|
typedef typename ei_plain_row_type<MatrixType, int>::type IntColVectorType;
|
||||||
typedef Matrix<Scalar, 1, ColsAtCompileTime, Options, 1, MaxColsAtCompileTime> RowVectorType;
|
typedef typename ei_plain_row_type<MatrixType>::type RowVectorType;
|
||||||
typedef Matrix<Scalar, RowsAtCompileTime, 1, Options, MaxRowsAtCompileTime, 1> ColVectorType;
|
typedef typename ei_plain_col_type<MatrixType>::type ColVectorType;
|
||||||
|
|
||||||
/** \brief Default Constructor.
|
/** \brief Default Constructor.
|
||||||
*
|
*
|
||||||
|
@ -56,15 +56,13 @@ template<typename _MatrixType> class HouseholderQR
|
|||||||
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
|
ColsAtCompileTime = MatrixType::ColsAtCompileTime,
|
||||||
Options = MatrixType::Options,
|
Options = MatrixType::Options,
|
||||||
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
|
MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime,
|
||||||
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime,
|
MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime
|
||||||
DiagSizeAtCompileTime = EIGEN_SIZE_MIN(ColsAtCompileTime,RowsAtCompileTime),
|
|
||||||
MaxDiagSizeAtCompileTime = EIGEN_SIZE_MIN(MaxColsAtCompileTime,MaxRowsAtCompileTime)
|
|
||||||
};
|
};
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
typedef typename MatrixType::RealScalar RealScalar;
|
typedef typename MatrixType::RealScalar RealScalar;
|
||||||
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, ei_traits<MatrixType>::Flags&RowMajorBit ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
|
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, ei_traits<MatrixType>::Flags&RowMajorBit ? RowMajor : ColMajor, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixQType;
|
||||||
typedef Matrix<Scalar, DiagSizeAtCompileTime, 1, Options, MaxDiagSizeAtCompileTime, 1> HCoeffsType;
|
typedef typename ei_plain_diag_type<MatrixType>::type HCoeffsType;
|
||||||
typedef Matrix<Scalar, 1, ColsAtCompileTime, Options, 1, MaxColsAtCompileTime> RowVectorType;
|
typedef typename ei_plain_row_type<MatrixType>::type RowVectorType;
|
||||||
typedef typename HouseholderSequence<MatrixType,HCoeffsType>::ConjugateReturnType HouseholderSequenceType;
|
typedef typename HouseholderSequence<MatrixType,HCoeffsType>::ConjugateReturnType HouseholderSequenceType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -84,10 +84,9 @@ template<typename MatrixType, unsigned int Options> class JacobiSVD
|
|||||||
Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime,
|
Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime,
|
||||||
MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>,
|
MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime>,
|
||||||
DummyMatrixType>::ret MatrixVType;
|
DummyMatrixType>::ret MatrixVType;
|
||||||
typedef Matrix<RealScalar, DiagSizeAtCompileTime, 1,
|
typedef typename ei_plain_diag_type<MatrixType, RealScalar>::type SingularValuesType;
|
||||||
MatrixOptions, MaxDiagSizeAtCompileTime, 1> SingularValuesType;
|
typedef typename ei_plain_row_type<MatrixType>::type RowType;
|
||||||
typedef Matrix<Scalar, 1, RowsAtCompileTime, MatrixOptions, 1, MaxRowsAtCompileTime> RowType;
|
typedef typename ei_plain_col_type<MatrixType>::type ColType;
|
||||||
typedef Matrix<Scalar, RowsAtCompileTime, 1, MatrixOptions, MaxRowsAtCompileTime, 1> ColType;
|
|
||||||
typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
|
typedef Matrix<Scalar, DiagSizeAtCompileTime, DiagSizeAtCompileTime,
|
||||||
MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
|
MatrixOptions, MaxDiagSizeAtCompileTime, MaxDiagSizeAtCompileTime>
|
||||||
WorkMatrixType;
|
WorkMatrixType;
|
||||||
|
@ -58,12 +58,12 @@ template<typename _MatrixType> class SVD
|
|||||||
MatrixOptions = MatrixType::Options
|
MatrixOptions = MatrixType::Options
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef Matrix<Scalar, RowsAtCompileTime, 1, MatrixOptions, MaxRowsAtCompileTime, 1> ColVector;
|
typedef typename ei_plain_col_type<MatrixType>::type ColVector;
|
||||||
typedef Matrix<Scalar, ColsAtCompileTime, 1, MatrixOptions, MaxColsAtCompileTime, 1> RowVector;
|
typedef typename ei_plain_row_type<MatrixType>::type RowVector;
|
||||||
|
|
||||||
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixUType;
|
typedef Matrix<Scalar, RowsAtCompileTime, RowsAtCompileTime, MatrixOptions, MaxRowsAtCompileTime, MaxRowsAtCompileTime> MatrixUType;
|
||||||
typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime, MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime> MatrixVType;
|
typedef Matrix<Scalar, ColsAtCompileTime, ColsAtCompileTime, MatrixOptions, MaxColsAtCompileTime, MaxColsAtCompileTime> MatrixVType;
|
||||||
typedef Matrix<Scalar, ColsAtCompileTime, 1, MatrixOptions, MaxColsAtCompileTime, 1> SingularValuesType;
|
typedef ColVector SingularValuesType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Default Constructor.
|
* \brief Default Constructor.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user