11 #ifndef EIGEN_MATRIXBASE_H    12 #define EIGEN_MATRIXBASE_H    52 #ifndef EIGEN_PARSED_BY_DOXYGEN    72     using Base::const_cast_derived;
    80     using Base::operator+=;
    81     using Base::operator-=;
    82     using Base::operator*=;
    83     using Base::operator/=;
    89 #endif // not EIGEN_PARSED_BY_DOXYGEN    93 #ifndef EIGEN_PARSED_BY_DOXYGEN    97 #endif // not EIGEN_PARSED_BY_DOXYGEN   101     inline Index 
diagonalSize()
 const { 
return (std::min)(rows(),cols()); }
   117 #ifndef EIGEN_PARSED_BY_DOXYGEN   123                         ConstTransposeReturnType
   131                   internal::traits<Derived>::RowsAtCompileTime,
   133 #endif // not EIGEN_PARSED_BY_DOXYGEN   135 #define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::MatrixBase   136 #   include "../plugins/CommonCwiseUnaryOps.h"   137 #   include "../plugins/CommonCwiseBinaryOps.h"   138 #   include "../plugins/MatrixCwiseUnaryOps.h"   139 #   include "../plugins/MatrixCwiseBinaryOps.h"   140 #   ifdef EIGEN_MATRIXBASE_PLUGIN   141 #     include EIGEN_MATRIXBASE_PLUGIN   143 #undef EIGEN_CURRENT_STORAGE_BASE_CLASS   153     template <
typename OtherDerived>
   156     template <
typename OtherDerived>
   159     template<
typename OtherDerived>
   162 #ifndef EIGEN_PARSED_BY_DOXYGEN   163     template<
typename ProductDerived, 
typename Lhs, 
typename Rhs>
   166     template<
typename MatrixPower, 
typename Lhs, 
typename Rhs>
   168 #endif // not EIGEN_PARSED_BY_DOXYGEN   170     template<
typename OtherDerived>
   172     template<
typename OtherDerived>
   175     template<
typename OtherDerived>
   179     template<
typename OtherDerived>
   183     template<
typename OtherDerived>
   186     template<
typename OtherDerived>
   189     template<
typename OtherDerived>
   192     template<
typename DiagonalDerived>
   196     template<
typename OtherDerived>
   200     #ifdef EIGEN2_SUPPORT   201       template<
typename OtherDerived>
   206     RealScalar 
norm() 
const;
   213     const AdjointReturnType 
adjoint() 
const;
   219     ConstDiagonalReturnType 
diagonal() 
const;
   229     #if (defined _MSC_VER) && (_MSC_VER >= 1500) // 2008 or later   237     #ifdef EIGEN2_SUPPORT   238     template<
unsigned int Mode> 
typename internal::eigen2_part_return_type<Derived, Mode>::type part();
   239     template<
unsigned int Mode> 
const typename internal::eigen2_part_return_type<Derived, Mode>::type part() 
const;
   243     template<
template<
typename T, 
int N> 
class U>
   246     #endif // EIGEN2_SUPPORT   262     static const IdentityReturnType 
Identity();
   263     static const IdentityReturnType 
Identity(Index rows, Index cols);
   264     static const BasisReturnType 
Unit(Index size, Index i);
   265     static const BasisReturnType 
Unit(Index i);
   266     static const BasisReturnType 
UnitX();
   267     static const BasisReturnType 
UnitY();
   268     static const BasisReturnType 
UnitZ();
   269     static const BasisReturnType 
UnitW();
   283     template<
typename OtherDerived>
   292     template<
typename OtherDerived>
   300     template<
typename OtherDerived>
   311     Scalar 
trace() 
const;
   315     template<
int p> RealScalar 
lpNorm() 
const;
   330     #if EIGEN2_SUPPORT_STAGE < STAGE20_RESOLVE_API_CONFLICTS   334     #ifdef EIGEN2_SUPPORT   338     #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS   342     #ifdef EIGEN2_SUPPORT   343     template<
typename ResultType>
   350     template<
typename ResultType>
   357     template<
typename ResultType>
   376     #ifdef EIGEN2_SUPPORT   387     #ifdef EIGEN2_SUPPORT   393     #ifndef EIGEN_PARSED_BY_DOXYGEN   394     template<
typename OtherDerived> 
struct cross_product_return_type {
   399     #endif // EIGEN_PARSED_BY_DOXYGEN   400     template<
typename OtherDerived>
   403     template<
typename OtherDerived>
   408     #if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS   413     HomogeneousReturnType homogeneous() 
const;
   419     typedef Block<
const Derived,
   420                   internal::traits<Derived>::ColsAtCompileTime==1 ? 
SizeMinusOne : 1,
   430     template<
typename EssentialPart>
   432                          Scalar& tau, RealScalar& beta) 
const;
   433     template<
typename EssentialPart>
   437     template<
typename EssentialPart>
   444     template<
typename OtherScalar>
   446     template<
typename OtherScalar>
   462 #ifdef EIGEN2_SUPPORT   463     template<
typename ProductDerived, 
typename Lhs, 
typename Rhs>
   467     template<
typename ProductDerived, 
typename Lhs, 
typename Rhs>
   473     template<
typename OtherDerived>
   477     template<
unsigned int Added>
   507     {
EIGEN_STATIC_ASSERT(std::ptrdiff_t(
sizeof(
typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); 
return *
this;}
   510     {
EIGEN_STATIC_ASSERT(std::ptrdiff_t(
sizeof(
typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); 
return *
this;}
   515 #endif // EIGEN_MATRIXBASE_H 
Expression of the product of two general matrices or vectors. 
Generic expression of a matrix where all coefficients are defined by a functor. 
Robust Cholesky decomposition of a matrix with pivoting. 
CwiseUnaryOp< internal::scalar_quotient1_op< typename internal::traits< Derived >::Scalar >, const ConstStartMinusOne > HNormalizedReturnType
Scalar determinant() const 
PlainObject unitOrthogonal(void) const 
Enforce aligned packet loads and stores regardless of what is requested. 
const LDLT< PlainObject > ldlt() const 
Matrix< Scalar, MatrixBase::RowsAtCompileTime, MatrixBase::ColsAtCompileTime > type
static const BasisReturnType UnitW()
bool operator!=(const MatrixBase< OtherDerived > &other) const 
Expression of a mathematical vector or matrix as an array object. 
Householder rank-revealing QR decomposition of a matrix with full pivoting. 
internal::traits< Derived >::Index Index
Base::CoeffReturnType CoeffReturnType
bool operator==(const MatrixBase< OtherDerived > &other) const 
const MatrixFunctionReturnValue< Derived > sin() const 
Expression with modified flags. 
void applyOnTheLeft(const EigenBase< OtherDerived > &other)
Pseudo expression providing an operator = assuming no aliasing. 
internal::stem_function< Scalar >::type StemFunction
Diagonal< Derived, Index > Type
const LazyProductReturnType< Derived, OtherDerived >::Type lazyProduct(const MatrixBase< OtherDerived > &other) const 
const MatrixSquareRootReturnValue< Derived > sqrt() const 
SelfAdjointView< Derived, UpLo > Type
DiagonalReturnType diagonal()
MatrixBase StorageBaseType
internal::add_const< Transpose< const Derived > >::type ConstTransposeReturnType
RealScalar operatorNorm() const 
Computes the L2 operator norm. 
bool isLowerTriangular(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const 
internal::scalar_product_traits< typename internal::traits< Derived >::Scalar, typename internal::traits< OtherDerived >::Scalar >::ReturnType dot(const MatrixBase< OtherDerived > &other) const 
void applyOnTheRight(const EigenBase< OtherDerived > &other)
LU decomposition of a matrix with partial pivoting, and related features. 
CwiseNullaryOp< internal::scalar_identity_op< Scalar >, Derived > IdentityReturnType
Derived & operator+=(const MatrixBase< OtherDerived > &other)
Block< const Derived, internal::traits< Derived >::ColsAtCompileTime==1?SizeMinusOne:1, internal::traits< Derived >::ColsAtCompileTime==1?1:SizeMinusOne > ConstStartMinusOne
Rotation given by a cosine-sine pair. 
const ForceAlignedAccess< Derived > forceAlignedAccess() const 
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
void makeHouseholder(EssentialPart &essential, Scalar &tau, RealScalar &beta) const 
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
EigenvaluesReturnType eigenvalues() const 
Computes the eigenvalues of a matrix. 
Base::ConstTransposeReturnType ConstTransposeReturnType
internal::traits< Derived >::Scalar Scalar
static const BasisReturnType UnitY()
const unsigned int RowMajorBit
Base class for all dense matrices, vectors, and arrays. 
const CwiseUnaryOp< std::binder1st< std::equal_to< Scalar > >, const Derived > cwiseEqual(const Scalar &s) const 
const SparseView< Derived > sparseView(const Scalar &m_reference=Scalar(0), const typename NumTraits< Scalar >::Real &m_epsilon=NumTraits< Scalar >::dummy_precision()) const 
const TriangularView< const Derived, Mode > Type
const ArrayWrapper< const Derived > array() const 
Block< Derived, internal::traits< Derived >::RowsAtCompileTime, 1,!IsRowMajor > ColXpr
internal::packet_traits< Scalar >::type PacketScalar
Matrix< Scalar, 3, 1 > eulerAngles(Index a0, Index a1, Index a2) const 
const PartialPivLU< PlainObject > partialPivLu() const 
MatrixBase< Derived > & matrix()
const HNormalizedReturnType hnormalized() const 
void applyHouseholderOnTheLeft(const EssentialPart &essential, const Scalar &tau, Scalar *workspace)
const MatrixFunctionReturnValue< Derived > cos() const 
Expression of a fixed-size or dynamic-size sub-vector. 
internal::scalar_product_traits< typename internal::traits< Derived >::Scalar, typename internal::traits< OtherDerived >::Scalar >::ReturnType Scalar
const MatrixBase< Derived > & matrix() const 
const MatrixLogarithmReturnValue< Derived > log() const 
Derived & lazyAssign(const DenseBase< OtherDerived > &other)
const MatrixPowerReturnValue< Derived > pow(const RealScalar &p) const 
Pseudo expression providing additional coefficient-wise operations. 
RealScalar blueNorm() const 
ArrayWrapper< Derived > array()
Householder rank-revealing QR decomposition of a matrix with column-pivoting. 
const Diagonal< const Derived, Index > Type
Standard Cholesky decomposition (LL^T) of a matrix and associated features. 
Block< const CwiseNullaryOp< internal::scalar_identity_op< Scalar >, SquareMatrixType >, internal::traits< Derived >::RowsAtCompileTime, internal::traits< Derived >::ColsAtCompileTime > BasisReturnType
const SelfAdjointView< const Derived, UpLo > Type
DenseBase< Derived > Base
NumTraits< Scalar >::Real RealScalar
const PlainObject normalized() const 
Standard SVD decomposition of a matrix and associated features. 
internal::traits< Derived >::StorageKind StorageKind
void computeInverseAndDetWithCheck(ResultType &inverse, typename ResultType::Scalar &determinant, bool &invertible, const RealScalar &absDeterminantThreshold=NumTraits< Scalar >::dummy_precision()) const 
Expression of a selfadjoint matrix from a triangular part of a dense matrix. 
Block< Derived, 1, internal::traits< Derived >::ColsAtCompileTime, IsRowMajor > RowXpr
internal::conditional< NumTraits< Scalar >::IsComplex, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, ConstTransposeReturnType >, ConstTransposeReturnType >::type AdjointReturnType
PlainObject cross3(const MatrixBase< OtherDerived > &other) const 
Base class for all 1D and 2D array, and related expressions. 
Class to view a vector of integers as a permutation matrix. 
static const BasisReturnType UnitZ()
const unsigned int EvalBeforeAssigningBit
RealScalar stableNorm() const 
const ColPivHouseholderQR< PlainObject > colPivHouseholderQr() const 
Index diagonalSize() const 
bool isIdentity(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const 
Derived & operator+=(const ArrayBase< OtherDerived > &)
RealScalar squaredNorm() const 
static const IdentityReturnType Identity()
Derived & operator-=(const ArrayBase< OtherDerived > &)
Derived & operator-=(const MatrixBase< OtherDerived > &other)
const PermutationWrapper< const Derived > asPermutation() const 
internal::add_const< Diagonal< const Derived > >::type ConstDiagonalReturnType
SelfAdjointViewReturnType< UpLo >::Type selfadjointView()
void computeInverseWithCheck(ResultType &inverse, bool &invertible, const RealScalar &absDeterminantThreshold=NumTraits< Scalar >::dummy_precision()) const 
bool isUnitary(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const 
#define EIGEN_SIZE_MAX(a, b)
cross_product_return_type< OtherDerived >::type cross(const MatrixBase< OtherDerived > &other) const 
Expression of a fixed-size or dynamic-size block. 
Matrix< std::complex< RealScalar >, internal::traits< Derived >::ColsAtCompileTime, 1, ColMajor > EigenvaluesReturnType
RealScalar hypotNorm() const 
LU decomposition of a matrix with complete pivoting, and related features. 
EIGEN_STRONG_INLINE EvalReturnType eval() const 
void applyHouseholderOnTheRight(const EssentialPart &essential, const Scalar &tau, Scalar *workspace)
const FullPivLU< PlainObject > fullPivLu() const 
Householder QR decomposition of a matrix. 
bool isUpperTriangular(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const 
Two-sided Jacobi SVD decomposition of a rectangular matrix. 
Base class for triangular part in a matrix. 
const CwiseBinaryOp< std::not_equal_to< Scalar >, const Derived, const OtherDerived > cwiseNotEqual(const EIGEN_CURRENT_STORAGE_BASE_CLASS< OtherDerived > &other) const 
const MatrixExponentialReturnValue< Derived > exp() const 
Expression of a diagonal matrix. 
const ExpressionType & _expression() const 
Derived & operator*=(const EigenBase< OtherDerived > &other)
NoAlias< Derived, Eigen::MatrixBase > noalias()
bool isOrthogonal(const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const 
Expression of a diagonal/subdiagonal/superdiagonal in a matrix. 
const LLT< PlainObject > llt() const 
CwiseNullaryOp< internal::scalar_constant_op< Scalar >, Derived > ConstantReturnType
Derived & lazyAssign(const ProductBase< ProductDerived, Lhs, Rhs > &other)
void makeHouseholderInPlace(Scalar &tau, RealScalar &beta)
internal::add_const_on_value_type< typename internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type >::type forceAlignedAccessIf() const 
static const BasisReturnType UnitX()
Generic expression where a coefficient-wise unary operator is applied to an expression. 
bool isDiagonal(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const 
const DiagonalWrapper< const Derived > asDiagonal() const 
The matrix class, also used for vectors and row-vectors. 
Diagonal< Derived > DiagonalReturnType
TriangularViewReturnType< Mode >::Type triangularView()
const AdjointReturnType adjoint() const 
RealScalar lpNorm() const 
TriangularView< Derived, Mode > Type
Derived & operator=(const MatrixBase &other)
const internal::inverse_impl< Derived > inverse() const 
static const BasisReturnType Unit(Index size, Index i)
Base class for all dense matrices, vectors, and expressions. 
Base::CoeffReturnType CoeffReturnType
const MatrixFunctionReturnValue< Derived > sinh() const 
const MatrixFunctionReturnValue< Derived > cosh() const 
const HouseholderQR< PlainObject > householderQr() const 
JacobiSVD< PlainObject > jacobiSvd(unsigned int computationOptions=0) const 
const FullPivHouseholderQR< PlainObject > fullPivHouseholderQr() const 
const MatrixFunctionReturnValue< Derived > matrixFunction(StemFunction f) const 
Matrix< Scalar, EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime), EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime)> SquareMatrixType
Expression of one (or a set of) homogeneous vector(s)