mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-06-04 18:54:00 +08:00
Document enums in Constants.h (bug #248).
To get the links to work, I also had to document the Eigen namespace. Unfortunately, this means that the word Eigen is linked whenever it appears in the docs.
This commit is contained in:
parent
1947da39ab
commit
a96c849c20
@ -185,6 +185,7 @@
|
|||||||
// defined in bits/termios.h
|
// defined in bits/termios.h
|
||||||
#undef B0
|
#undef B0
|
||||||
|
|
||||||
|
/** \brief Namespace containing all symbols from the %Eigen library. */
|
||||||
namespace Eigen {
|
namespace Eigen {
|
||||||
|
|
||||||
inline static const char *SimdInstructionSetsInUse(void) {
|
inline static const char *SimdInstructionSetsInUse(void) {
|
||||||
|
@ -180,7 +180,7 @@ class BandMatrixBase : public EigenBase<Derived>
|
|||||||
* \param Cols Number of columns, or \b Dynamic
|
* \param Cols Number of columns, or \b Dynamic
|
||||||
* \param Supers Number of super diagonal
|
* \param Supers Number of super diagonal
|
||||||
* \param Subs Number of sub diagonal
|
* \param Subs Number of sub diagonal
|
||||||
* \param _Options A combination of either \b RowMajor or \b ColMajor, and of \b SelfAdjoint
|
* \param _Options A combination of either \b #RowMajor or \b #ColMajor, and of \b #SelfAdjoint
|
||||||
* The former controls \ref TopicStorageOrders "storage order", and defaults to
|
* The former controls \ref TopicStorageOrders "storage order", and defaults to
|
||||||
* column-major. The latter controls whether the matrix represents a selfadjoint
|
* column-major. The latter controls whether the matrix represents a selfadjoint
|
||||||
* matrix in which case either Supers of Subs have to be null.
|
* matrix in which case either Supers of Subs have to be null.
|
||||||
|
@ -35,7 +35,7 @@ template<typename T> struct add_const_on_value_type_if_arithmetic
|
|||||||
/** \brief Base class providing read-only coefficient access to matrices and arrays.
|
/** \brief Base class providing read-only coefficient access to matrices and arrays.
|
||||||
* \ingroup Core_Module
|
* \ingroup Core_Module
|
||||||
* \tparam Derived Type of the derived class
|
* \tparam Derived Type of the derived class
|
||||||
* \tparam ReadOnlyAccessors Constant indicating read-only access
|
* \tparam #ReadOnlyAccessors Constant indicating read-only access
|
||||||
*
|
*
|
||||||
* This class defines the \c operator() \c const function and friends, which can be used to read specific
|
* This class defines the \c operator() \c const function and friends, which can be used to read specific
|
||||||
* entries of a matrix or array.
|
* entries of a matrix or array.
|
||||||
@ -212,7 +212,7 @@ class DenseCoeffsBase<Derived,ReadOnlyAccessors> : public EigenBase<Derived>
|
|||||||
* to ensure that a packet really starts there. This method is only available on expressions having the
|
* to ensure that a packet really starts there. This method is only available on expressions having the
|
||||||
* PacketAccessBit.
|
* PacketAccessBit.
|
||||||
*
|
*
|
||||||
* The \a LoadMode parameter may have the value \a Aligned or \a Unaligned. Its effect is to select
|
* The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
|
||||||
* the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
|
* the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
|
||||||
* starting at an address which is a multiple of the packet size.
|
* starting at an address which is a multiple of the packet size.
|
||||||
*/
|
*/
|
||||||
@ -239,7 +239,7 @@ class DenseCoeffsBase<Derived,ReadOnlyAccessors> : public EigenBase<Derived>
|
|||||||
* to ensure that a packet really starts there. This method is only available on expressions having the
|
* to ensure that a packet really starts there. This method is only available on expressions having the
|
||||||
* PacketAccessBit and the LinearAccessBit.
|
* PacketAccessBit and the LinearAccessBit.
|
||||||
*
|
*
|
||||||
* The \a LoadMode parameter may have the value \a Aligned or \a Unaligned. Its effect is to select
|
* The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
|
||||||
* the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
|
* the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
|
||||||
* starting at an address which is a multiple of the packet size.
|
* starting at an address which is a multiple of the packet size.
|
||||||
*/
|
*/
|
||||||
@ -275,7 +275,7 @@ class DenseCoeffsBase<Derived,ReadOnlyAccessors> : public EigenBase<Derived>
|
|||||||
/** \brief Base class providing read/write coefficient access to matrices and arrays.
|
/** \brief Base class providing read/write coefficient access to matrices and arrays.
|
||||||
* \ingroup Core_Module
|
* \ingroup Core_Module
|
||||||
* \tparam Derived Type of the derived class
|
* \tparam Derived Type of the derived class
|
||||||
* \tparam WriteAccessors Constant indicating read/write access
|
* \tparam #WriteAccessors Constant indicating read/write access
|
||||||
*
|
*
|
||||||
* This class defines the non-const \c operator() function and friends, which can be used to write specific
|
* This class defines the non-const \c operator() function and friends, which can be used to write specific
|
||||||
* entries of a matrix or array. This class inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which
|
* entries of a matrix or array. This class inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which
|
||||||
@ -433,7 +433,7 @@ class DenseCoeffsBase<Derived, WriteAccessors> : public DenseCoeffsBase<Derived,
|
|||||||
* to ensure that a packet really starts there. This method is only available on expressions having the
|
* to ensure that a packet really starts there. This method is only available on expressions having the
|
||||||
* PacketAccessBit.
|
* PacketAccessBit.
|
||||||
*
|
*
|
||||||
* The \a LoadMode parameter may have the value \a Aligned or \a Unaligned. Its effect is to select
|
* The \a LoadMode parameter may have the value \a #Aligned or \a #Unaligned. Its effect is to select
|
||||||
* the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
|
* the appropriate vectorization instruction. Aligned access is faster, but is only possible for packets
|
||||||
* starting at an address which is a multiple of the packet size.
|
* starting at an address which is a multiple of the packet size.
|
||||||
*/
|
*/
|
||||||
@ -567,7 +567,7 @@ class DenseCoeffsBase<Derived, WriteAccessors> : public DenseCoeffsBase<Derived,
|
|||||||
/** \brief Base class providing direct read-only coefficient access to matrices and arrays.
|
/** \brief Base class providing direct read-only coefficient access to matrices and arrays.
|
||||||
* \ingroup Core_Module
|
* \ingroup Core_Module
|
||||||
* \tparam Derived Type of the derived class
|
* \tparam Derived Type of the derived class
|
||||||
* \tparam DirectAccessors Constant indicating direct access
|
* \tparam #DirectAccessors Constant indicating direct access
|
||||||
*
|
*
|
||||||
* This class defines functions to work with strides which can be used to access entries directly. This class
|
* This class defines functions to work with strides which can be used to access entries directly. This class
|
||||||
* inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which defines functions to access entries read-only using
|
* inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which defines functions to access entries read-only using
|
||||||
@ -637,7 +637,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
|
|||||||
/** \brief Base class providing direct read/write coefficient access to matrices and arrays.
|
/** \brief Base class providing direct read/write coefficient access to matrices and arrays.
|
||||||
* \ingroup Core_Module
|
* \ingroup Core_Module
|
||||||
* \tparam Derived Type of the derived class
|
* \tparam Derived Type of the derived class
|
||||||
* \tparam DirectAccessors Constant indicating direct access
|
* \tparam #DirectWriteAccessors Constant indicating direct access
|
||||||
*
|
*
|
||||||
* This class defines functions to work with strides which can be used to access entries directly. This class
|
* This class defines functions to work with strides which can be used to access entries directly. This class
|
||||||
* inherits DenseCoeffsBase<Derived, WriteAccessors> which defines functions to access entries read/write using
|
* inherits DenseCoeffsBase<Derived, WriteAccessors> which defines functions to access entries read/write using
|
||||||
|
@ -286,7 +286,7 @@ pmadd(const Packet& a,
|
|||||||
{ return padd(pmul(a, b),c); }
|
{ return padd(pmul(a, b),c); }
|
||||||
|
|
||||||
/** \internal \returns a packet version of \a *from.
|
/** \internal \returns a packet version of \a *from.
|
||||||
* \If LoadMode equals Aligned, \a from must be 16 bytes aligned */
|
* If LoadMode equals #Aligned, \a from must be 16 bytes aligned */
|
||||||
template<typename Packet, int LoadMode>
|
template<typename Packet, int LoadMode>
|
||||||
inline Packet ploadt(const typename unpacket_traits<Packet>::type* from)
|
inline Packet ploadt(const typename unpacket_traits<Packet>::type* from)
|
||||||
{
|
{
|
||||||
@ -297,7 +297,7 @@ inline Packet ploadt(const typename unpacket_traits<Packet>::type* from)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** \internal copy the packet \a from to \a *to.
|
/** \internal copy the packet \a from to \a *to.
|
||||||
* If StoreMode equals Aligned, \a to must be 16 bytes aligned */
|
* If StoreMode equals #Aligned, \a to must be 16 bytes aligned */
|
||||||
template<typename Scalar, typename Packet, int LoadMode>
|
template<typename Scalar, typename Packet, int LoadMode>
|
||||||
inline void pstoret(Scalar* to, const Packet& from)
|
inline void pstoret(Scalar* to, const Packet& from)
|
||||||
{
|
{
|
||||||
|
@ -31,10 +31,10 @@
|
|||||||
*
|
*
|
||||||
* \brief A matrix or vector expression mapping an existing array of data.
|
* \brief A matrix or vector expression mapping an existing array of data.
|
||||||
*
|
*
|
||||||
* \param PlainObjectType the equivalent matrix type of the mapped data
|
* \tparam PlainObjectType the equivalent matrix type of the mapped data
|
||||||
* \param MapOptions specifies whether the pointer is \c Aligned, or \c Unaligned.
|
* \tparam MapOptions specifies whether the pointer is \c #Aligned, or \c #Unaligned.
|
||||||
* The default is \c Unaligned.
|
* The default is \c #Unaligned.
|
||||||
* \param StrideType optionnally specifies strides. By default, Map assumes the memory layout
|
* \tparam StrideType optionnally specifies strides. By default, Map assumes the memory layout
|
||||||
* of an ordinary, contiguous array. This can be overridden by specifying strides.
|
* of an ordinary, contiguous array. This can be overridden by specifying strides.
|
||||||
* The type passed here must be a specialization of the Stride template, see examples below.
|
* The type passed here must be a specialization of the Stride template, see examples below.
|
||||||
*
|
*
|
||||||
|
@ -43,8 +43,8 @@
|
|||||||
* \tparam _Cols Number of columns, or \b Dynamic
|
* \tparam _Cols Number of columns, or \b Dynamic
|
||||||
*
|
*
|
||||||
* The remaining template parameters are optional -- in most cases you don't have to worry about them.
|
* The remaining template parameters are optional -- in most cases you don't have to worry about them.
|
||||||
* \tparam _Options \anchor matrix_tparam_options A combination of either \b RowMajor or \b ColMajor, and of either
|
* \tparam _Options \anchor matrix_tparam_options A combination of either \b #RowMajor or \b #ColMajor, and of either
|
||||||
* \b AutoAlign or \b DontAlign.
|
* \b #AutoAlign or \b #DontAlign.
|
||||||
* The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
|
* The former controls \ref TopicStorageOrders "storage order", and defaults to column-major. The latter controls alignment, which is required
|
||||||
* for vectorization. It defaults to aligning matrices except for fixed sizes that aren't a multiple of the packet size.
|
* for vectorization. It defaults to aligning matrices except for fixed sizes that aren't a multiple of the packet size.
|
||||||
* \tparam _MaxRows Maximum number of rows. Defaults to \a _Rows (\ref maxrows "note").
|
* \tparam _MaxRows Maximum number of rows. Defaults to \a _Rows (\ref maxrows "note").
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
* \brief Expression of a selfadjoint matrix from a triangular part of a dense matrix
|
* \brief Expression of a selfadjoint matrix from a triangular part of a dense matrix
|
||||||
*
|
*
|
||||||
* \param MatrixType the type of the dense matrix storing the coefficients
|
* \param MatrixType the type of the dense matrix storing the coefficients
|
||||||
* \param TriangularPart can be either \c Lower or \c Upper
|
* \param TriangularPart can be either \c #Lower or \c #Upper
|
||||||
*
|
*
|
||||||
* This class is an expression of a sefladjoint matrix from a triangular part of a matrix
|
* This class is an expression of a sefladjoint matrix from a triangular part of a matrix
|
||||||
* with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
|
* with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
|
||||||
|
@ -134,13 +134,13 @@ template<typename Derived> class TriangularBase : public EigenBase<Derived>
|
|||||||
* \brief Base class for triangular part in a matrix
|
* \brief Base class for triangular part in a matrix
|
||||||
*
|
*
|
||||||
* \param MatrixType the type of the object in which we are taking the triangular part
|
* \param MatrixType the type of the object in which we are taking the triangular part
|
||||||
* \param Mode the kind of triangular matrix expression to construct. Can be Upper,
|
* \param Mode the kind of triangular matrix expression to construct. Can be #Upper,
|
||||||
* Lower, UpperSelfadjoint, or LowerSelfadjoint. This is in fact a bit field;
|
* #Lower, #UnitUpper, #UnitLower, #StrictlyUpper, or #StrictlyLower.
|
||||||
* it must have either Upper or Lower, and additionnaly it may have either
|
* This is in fact a bit field; it must have either #Upper or #Lower,
|
||||||
* UnitDiag or Selfadjoint.
|
* and additionnaly it may have #UnitDiag or #ZeroDiag or neither.
|
||||||
*
|
*
|
||||||
* This class represents a triangular part of a matrix, not necessarily square. Strictly speaking, for rectangular
|
* This class represents a triangular part of a matrix, not necessarily square. Strictly speaking, for rectangular
|
||||||
* matrices one should speak ok "trapezoid" parts. This class is the return type
|
* matrices one should speak of "trapezoid" parts. This class is the return type
|
||||||
* of MatrixBase::triangularView() and most of the time this is the only way it is used.
|
* of MatrixBase::triangularView() and most of the time this is the only way it is used.
|
||||||
*
|
*
|
||||||
* \sa MatrixBase::triangularView()
|
* \sa MatrixBase::triangularView()
|
||||||
@ -756,8 +756,8 @@ typename internal::eigen2_part_return_type<Derived, Mode>::type MatrixBase<Deriv
|
|||||||
/**
|
/**
|
||||||
* \returns an expression of a triangular view extracted from the current matrix
|
* \returns an expression of a triangular view extracted from the current matrix
|
||||||
*
|
*
|
||||||
* The parameter \a Mode can have the following values: \c Upper, \c StrictlyUpper, \c UnitUpper,
|
* The parameter \a Mode can have the following values: \c #Upper, \c #StrictlyUpper, \c #UnitUpper,
|
||||||
* \c Lower, \c StrictlyLower, \c UnitLower.
|
* \c #Lower, \c #StrictlyLower, \c #UnitLower.
|
||||||
*
|
*
|
||||||
* Example: \include MatrixBase_extract.cpp
|
* Example: \include MatrixBase_extract.cpp
|
||||||
* Output: \verbinclude MatrixBase_extract.out
|
* Output: \verbinclude MatrixBase_extract.out
|
||||||
|
@ -31,9 +31,9 @@
|
|||||||
*
|
*
|
||||||
* \brief Generic expression of a partially reduxed matrix
|
* \brief Generic expression of a partially reduxed matrix
|
||||||
*
|
*
|
||||||
* \param MatrixType the type of the matrix we are applying the redux operation
|
* \tparam MatrixType the type of the matrix we are applying the redux operation
|
||||||
* \param MemberOp type of the member functor
|
* \tparam MemberOp type of the member functor
|
||||||
* \param Direction indicates the direction of the redux (Vertical or Horizontal)
|
* \tparam Direction indicates the direction of the redux (#Vertical or #Horizontal)
|
||||||
*
|
*
|
||||||
* This class represents an expression of a partial redux operator of a matrix.
|
* This class represents an expression of a partial redux operator of a matrix.
|
||||||
* It is the return type of some VectorwiseOp functions,
|
* It is the return type of some VectorwiseOp functions,
|
||||||
@ -164,7 +164,7 @@ struct member_redux {
|
|||||||
* \brief Pseudo expression providing partial reduction operations
|
* \brief Pseudo expression providing partial reduction operations
|
||||||
*
|
*
|
||||||
* \param ExpressionType the type of the object on which to do partial reductions
|
* \param ExpressionType the type of the object on which to do partial reductions
|
||||||
* \param Direction indicates the direction of the redux (Vertical or Horizontal)
|
* \param Direction indicates the direction of the redux (#Vertical or #Horizontal)
|
||||||
*
|
*
|
||||||
* This class represents a pseudo expression with partial reduction features.
|
* This class represents a pseudo expression with partial reduction features.
|
||||||
* It is the return type of DenseBase::colwise() and DenseBase::rowwise()
|
* It is the return type of DenseBase::colwise() and DenseBase::rowwise()
|
||||||
|
@ -161,23 +161,72 @@ const unsigned int HereditaryBits = RowMajorBit
|
|||||||
| EvalBeforeNestingBit
|
| EvalBeforeNestingBit
|
||||||
| EvalBeforeAssigningBit;
|
| EvalBeforeAssigningBit;
|
||||||
|
|
||||||
// Possible values for the Mode parameter of triangularView()
|
/** \defgroup enums Enumerations
|
||||||
enum {
|
* \ingroup Core_Module
|
||||||
Lower=0x1, Upper=0x2, UnitDiag=0x4, ZeroDiag=0x8,
|
*
|
||||||
UnitLower=UnitDiag|Lower, UnitUpper=UnitDiag|Upper,
|
* Various enumerations used in %Eigen. Many of these are used as template parameters.
|
||||||
StrictlyLower=ZeroDiag|Lower, StrictlyUpper=ZeroDiag|Upper,
|
*/
|
||||||
SelfAdjoint=0x10};
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Enum containing possible values for the \p Mode parameter of
|
||||||
|
* MatrixBase::selfadjointView() and MatrixBase::triangularView(). */
|
||||||
|
enum {
|
||||||
|
/** View matrix as a lower triangular matrix. */
|
||||||
|
Lower=0x1,
|
||||||
|
/** View matrix as an upper triangular matrix. */
|
||||||
|
Upper=0x2,
|
||||||
|
/** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
|
||||||
|
UnitDiag=0x4,
|
||||||
|
/** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
|
||||||
|
ZeroDiag=0x8,
|
||||||
|
/** View matrix as a lower triangular matrix with ones on the diagonal. */
|
||||||
|
UnitLower=UnitDiag|Lower,
|
||||||
|
/** View matrix as an upper triangular matrix with ones on the diagonal. */
|
||||||
|
UnitUpper=UnitDiag|Upper,
|
||||||
|
/** View matrix as a lower triangular matrix with zeros on the diagonal. */
|
||||||
|
StrictlyLower=ZeroDiag|Lower,
|
||||||
|
/** View matrix as an upper triangular matrix with zeros on the diagonal. */
|
||||||
|
StrictlyUpper=ZeroDiag|Upper,
|
||||||
|
/** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
|
||||||
|
SelfAdjoint=0x10
|
||||||
|
};
|
||||||
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Enum for indicating whether an object is aligned or not. */
|
||||||
|
enum {
|
||||||
|
/** Object is not correctly aligned for vectorization. */
|
||||||
|
Unaligned=0,
|
||||||
|
/** Object is aligned for vectorization. */
|
||||||
|
Aligned=1
|
||||||
|
};
|
||||||
|
|
||||||
enum { Unaligned=0, Aligned=1 };
|
|
||||||
enum { ConditionalJumpCost = 5 };
|
enum { ConditionalJumpCost = 5 };
|
||||||
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Enum used by DenseBase::corner() in Eigen2 compatibility mode. */
|
||||||
// FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
|
// FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
|
||||||
// TODO: find out what to do with that. Adapt the AlignedBox API ?
|
// TODO: find out what to do with that. Adapt the AlignedBox API ?
|
||||||
enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
|
enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
|
||||||
|
|
||||||
enum DirectionType { Vertical, Horizontal, BothDirections };
|
/** \ingroup enums
|
||||||
|
* Enum containing possible values for the \p Direction parameter of
|
||||||
|
* Reverse, PartialReduxExpr and VectorwiseOp. */
|
||||||
|
enum DirectionType {
|
||||||
|
/** For Reverse, all columns are reversed;
|
||||||
|
* for PartialReduxExpr and VectorwiseOp, act on columns. */
|
||||||
|
Vertical,
|
||||||
|
/** For Reverse, all rows are reversed;
|
||||||
|
* for PartialReduxExpr and VectorwiseOp, act on rows. */
|
||||||
|
Horizontal,
|
||||||
|
/** For Reverse, both rows and columns are reversed;
|
||||||
|
* not used for PartialReduxExpr and VectorwiseOp. */
|
||||||
|
BothDirections
|
||||||
|
};
|
||||||
|
|
||||||
enum ProductEvaluationMode { NormalProduct, CacheFriendlyProduct };
|
enum ProductEvaluationMode { NormalProduct, CacheFriendlyProduct };
|
||||||
|
|
||||||
|
/** \internal \ingroup enums
|
||||||
|
* Enum to specify how to traverse the entries of a matrix. */
|
||||||
enum {
|
enum {
|
||||||
/** \internal Default traversal, no vectorization, no index-based access */
|
/** \internal Default traversal, no vectorization, no index-based access */
|
||||||
DefaultTraversal,
|
DefaultTraversal,
|
||||||
@ -196,14 +245,25 @@ enum {
|
|||||||
InvalidTraversal
|
InvalidTraversal
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \internal \ingroup enums
|
||||||
|
* Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
|
||||||
enum {
|
enum {
|
||||||
|
/** \internal Do not unroll loops. */
|
||||||
NoUnrolling,
|
NoUnrolling,
|
||||||
|
/** \internal Unroll only the inner loop, but not the outer loop. */
|
||||||
InnerUnrolling,
|
InnerUnrolling,
|
||||||
|
/** \internal Unroll both the inner and the outer loop. If there is only one loop,
|
||||||
|
* because linear traversal is used, then unroll that loop. */
|
||||||
CompleteUnrolling
|
CompleteUnrolling
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Enum containing possible values for the \p _Options template parameter of
|
||||||
|
* Matrix, Array and BandMatrix. */
|
||||||
enum {
|
enum {
|
||||||
|
/** Storage order is column major (see \ref TopicStorageOrders). */
|
||||||
ColMajor = 0,
|
ColMajor = 0,
|
||||||
|
/** Storage order is row major (see \ref TopicStorageOrders). */
|
||||||
RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
|
RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
|
||||||
/** \internal Align the matrix itself if it is vectorizable fixed-size */
|
/** \internal Align the matrix itself if it is vectorizable fixed-size */
|
||||||
AutoAlign = 0,
|
AutoAlign = 0,
|
||||||
@ -211,11 +271,13 @@ enum {
|
|||||||
DontAlign = 0x2
|
DontAlign = 0x2
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \brief Enum for specifying whether to apply or solve on the left or right.
|
/** \ingroup enums
|
||||||
*/
|
* Enum for specifying whether to apply or solve on the left or right. */
|
||||||
enum {
|
enum {
|
||||||
OnTheLeft = 1, /**< \brief Apply transformation on the left. */
|
/** Apply transformation on the left. */
|
||||||
OnTheRight = 2 /**< \brief Apply transformation on the right. */
|
OnTheLeft = 1,
|
||||||
|
/** Apply transformation on the right. */
|
||||||
|
OnTheRight = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
/* the following could as well be written:
|
/* the following could as well be written:
|
||||||
@ -239,53 +301,104 @@ namespace {
|
|||||||
EIGEN_UNUSED Default_t Default;
|
EIGEN_UNUSED Default_t Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** \internal \ingroup enums
|
||||||
|
* Used in AmbiVector. */
|
||||||
enum {
|
enum {
|
||||||
IsDense = 0,
|
IsDense = 0,
|
||||||
IsSparse
|
IsSparse
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Used as template parameter in DenseCoeffBase and MapBase to indicate
|
||||||
|
* which accessors should be provided. */
|
||||||
enum AccessorLevels {
|
enum AccessorLevels {
|
||||||
ReadOnlyAccessors, WriteAccessors, DirectAccessors, DirectWriteAccessors
|
/** Read-only access via a member function. */
|
||||||
|
ReadOnlyAccessors,
|
||||||
|
/** Read/write access via member functions. */
|
||||||
|
WriteAccessors,
|
||||||
|
/** Direct read-only access to the coefficients. */
|
||||||
|
DirectAccessors,
|
||||||
|
/** Direct read/write access to the coefficients. */
|
||||||
|
DirectWriteAccessors
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Enum with options to give to various decompositions. */
|
||||||
enum DecompositionOptions {
|
enum DecompositionOptions {
|
||||||
Pivoting = 0x01, // LDLT,
|
/** \internal Not used (meant for LDLT?). */
|
||||||
NoPivoting = 0x02, // LDLT,
|
Pivoting = 0x01,
|
||||||
ComputeFullU = 0x04, // SVD,
|
/** \internal Not used (meant for LDLT?). */
|
||||||
ComputeThinU = 0x08, // SVD,
|
NoPivoting = 0x02,
|
||||||
ComputeFullV = 0x10, // SVD,
|
/** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
|
||||||
ComputeThinV = 0x20, // SVD,
|
ComputeFullU = 0x04,
|
||||||
EigenvaluesOnly = 0x40, // all eigen solvers
|
/** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
|
||||||
ComputeEigenvectors = 0x80, // all eigen solvers
|
ComputeThinU = 0x08,
|
||||||
|
/** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
|
||||||
|
ComputeFullV = 0x10,
|
||||||
|
/** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
|
||||||
|
ComputeThinV = 0x20,
|
||||||
|
/** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
|
||||||
|
* that only the eigenvalues are to be computed and not the eigenvectors. */
|
||||||
|
EigenvaluesOnly = 0x40,
|
||||||
|
/** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
|
||||||
|
* that both the eigenvalues and the eigenvectors are to be computed. */
|
||||||
|
ComputeEigenvectors = 0x80,
|
||||||
|
/** \internal */
|
||||||
EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
|
EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
|
||||||
|
/** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
|
||||||
|
* solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
|
||||||
Ax_lBx = 0x100,
|
Ax_lBx = 0x100,
|
||||||
|
/** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
|
||||||
|
* solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
|
||||||
ABx_lx = 0x200,
|
ABx_lx = 0x200,
|
||||||
|
/** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
|
||||||
|
* solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
|
||||||
BAx_lx = 0x400,
|
BAx_lx = 0x400,
|
||||||
|
/** \internal */
|
||||||
GenEigMask = Ax_lBx | ABx_lx | BAx_lx
|
GenEigMask = Ax_lBx | ABx_lx | BAx_lx
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
|
||||||
enum QRPreconditioners {
|
enum QRPreconditioners {
|
||||||
|
/** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
|
||||||
NoQRPreconditioner,
|
NoQRPreconditioner,
|
||||||
|
/** Use a QR decomposition without pivoting as the first step. */
|
||||||
HouseholderQRPreconditioner,
|
HouseholderQRPreconditioner,
|
||||||
|
/** Use a QR decomposition with column pivoting as the first step. */
|
||||||
ColPivHouseholderQRPreconditioner,
|
ColPivHouseholderQRPreconditioner,
|
||||||
|
/** Use a QR decomposition with full pivoting as the first step. */
|
||||||
FullPivHouseholderQRPreconditioner
|
FullPivHouseholderQRPreconditioner
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \brief Enum for reporting the status of a computation.
|
/** \ingroups enums
|
||||||
*/
|
* Enum for reporting the status of a computation. */
|
||||||
enum ComputationInfo {
|
enum ComputationInfo {
|
||||||
Success = 0, /**< \brief Computation was successful. */
|
/** Computation was successful. */
|
||||||
NumericalIssue = 1, /**< \brief The provided data did not satisfy the prerequisites. */
|
Success = 0,
|
||||||
NoConvergence = 2 /**< \brief Iterative procedure did not converge. */
|
/** The provided data did not satisfy the prerequisites. */
|
||||||
|
NumericalIssue = 1,
|
||||||
|
/** Iterative procedure did not converge. */
|
||||||
|
NoConvergence = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \ingroup enums
|
||||||
|
* Enum used to specify how a particular transformation is stored in a matrix.
|
||||||
|
* \sa Transform, Hyperplane::transform(). */
|
||||||
enum TransformTraits {
|
enum TransformTraits {
|
||||||
|
/** Transformation is an isometry. */
|
||||||
Isometry = 0x1,
|
Isometry = 0x1,
|
||||||
|
/** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
|
||||||
|
* assumed to be [0 ... 0 1]. */
|
||||||
Affine = 0x2,
|
Affine = 0x2,
|
||||||
|
/** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
|
||||||
AffineCompact = 0x10 | Affine,
|
AffineCompact = 0x10 | Affine,
|
||||||
|
/** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
|
||||||
Projective = 0x20
|
Projective = 0x20
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** \internal \ingroup enums
|
||||||
|
* Enum used to choose between implementation depending on the computer architecture. */
|
||||||
namespace Architecture
|
namespace Architecture
|
||||||
{
|
{
|
||||||
enum Type {
|
enum Type {
|
||||||
@ -302,8 +415,12 @@ namespace Architecture
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** \internal \ingroup enums
|
||||||
|
* Enum used as template parameter in GeneralProduct. */
|
||||||
enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
|
enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
|
||||||
|
|
||||||
|
/** \internal \ingroup enums
|
||||||
|
* Enum used in experimental parallel implementation. */
|
||||||
enum Action {GetAction, SetAction};
|
enum Action {GetAction, SetAction};
|
||||||
|
|
||||||
/** The type used to identify a dense storage. */
|
/** The type used to identify a dense storage. */
|
||||||
|
@ -98,8 +98,8 @@ class GeneralizedSelfAdjointEigenSolver : public SelfAdjointEigenSolver<_MatrixT
|
|||||||
* Only the lower triangular part of the matrix is referenced.
|
* Only the lower triangular part of the matrix is referenced.
|
||||||
* \param[in] matB Positive-definite matrix in matrix pencil.
|
* \param[in] matB Positive-definite matrix in matrix pencil.
|
||||||
* Only the lower triangular part of the matrix is referenced.
|
* Only the lower triangular part of the matrix is referenced.
|
||||||
* \param[in] options A or-ed set of flags {ComputeEigenvectors,EigenvaluesOnly} | {Ax_lBx,ABx_lx,BAx_lx}.
|
* \param[in] options A or-ed set of flags {#ComputeEigenvectors,#EigenvaluesOnly} | {#Ax_lBx,#ABx_lx,#BAx_lx}.
|
||||||
* Default is ComputeEigenvectors|Ax_lBx.
|
* Default is #ComputeEigenvectors|#Ax_lBx.
|
||||||
*
|
*
|
||||||
* This constructor calls compute(const MatrixType&, const MatrixType&, int)
|
* This constructor calls compute(const MatrixType&, const MatrixType&, int)
|
||||||
* to compute the eigenvalues and (if requested) the eigenvectors of the
|
* to compute the eigenvalues and (if requested) the eigenvectors of the
|
||||||
@ -131,8 +131,8 @@ class GeneralizedSelfAdjointEigenSolver : public SelfAdjointEigenSolver<_MatrixT
|
|||||||
* Only the lower triangular part of the matrix is referenced.
|
* Only the lower triangular part of the matrix is referenced.
|
||||||
* \param[in] matB Positive-definite matrix in matrix pencil.
|
* \param[in] matB Positive-definite matrix in matrix pencil.
|
||||||
* Only the lower triangular part of the matrix is referenced.
|
* Only the lower triangular part of the matrix is referenced.
|
||||||
* \param[in] options A or-ed set of flags {ComputeEigenvectors,EigenvaluesOnly} | {Ax_lBx,ABx_lx,BAx_lx}.
|
* \param[in] options A or-ed set of flags {#ComputeEigenvectors,#EigenvaluesOnly} | {#Ax_lBx,#ABx_lx,#BAx_lx}.
|
||||||
* Default is ComputeEigenvectors|Ax_lBx.
|
* Default is #ComputeEigenvectors|#Ax_lBx.
|
||||||
*
|
*
|
||||||
* \returns Reference to \c *this
|
* \returns Reference to \c *this
|
||||||
*
|
*
|
||||||
|
@ -147,11 +147,11 @@ template<typename _MatrixType> class SelfAdjointEigenSolver
|
|||||||
*
|
*
|
||||||
* \param[in] matrix Selfadjoint matrix whose eigendecomposition is to
|
* \param[in] matrix Selfadjoint matrix whose eigendecomposition is to
|
||||||
* be computed. Only the lower triangular part of the matrix is referenced.
|
* be computed. Only the lower triangular part of the matrix is referenced.
|
||||||
* \param[in] options Can be ComputeEigenvectors (default) or EigenvaluesOnly.
|
* \param[in] options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
|
||||||
*
|
*
|
||||||
* This constructor calls compute(const MatrixType&, int) to compute the
|
* This constructor calls compute(const MatrixType&, int) to compute the
|
||||||
* eigenvalues of the matrix \p matrix. The eigenvectors are computed if
|
* eigenvalues of the matrix \p matrix. The eigenvectors are computed if
|
||||||
* \p options equals ComputeEigenvectors.
|
* \p options equals #ComputeEigenvectors.
|
||||||
*
|
*
|
||||||
* Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
|
* Example: \include SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.cpp
|
||||||
* Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.out
|
* Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.out
|
||||||
@ -171,11 +171,11 @@ template<typename _MatrixType> class SelfAdjointEigenSolver
|
|||||||
*
|
*
|
||||||
* \param[in] matrix Selfadjoint matrix whose eigendecomposition is to
|
* \param[in] matrix Selfadjoint matrix whose eigendecomposition is to
|
||||||
* be computed. Only the lower triangular part of the matrix is referenced.
|
* be computed. Only the lower triangular part of the matrix is referenced.
|
||||||
* \param[in] options Can be ComputeEigenvectors (default) or EigenvaluesOnly.
|
* \param[in] options Can be #ComputeEigenvectors (default) or #EigenvaluesOnly.
|
||||||
* \returns Reference to \c *this
|
* \returns Reference to \c *this
|
||||||
*
|
*
|
||||||
* This function computes the eigenvalues of \p matrix. The eigenvalues()
|
* This function computes the eigenvalues of \p matrix. The eigenvalues()
|
||||||
* function can be used to retrieve them. If \p options equals ComputeEigenvectors,
|
* function can be used to retrieve them. If \p options equals #ComputeEigenvectors,
|
||||||
* then the eigenvectors are also computed and can be retrieved by
|
* then the eigenvectors are also computed and can be retrieved by
|
||||||
* calling eigenvectors().
|
* calling eigenvectors().
|
||||||
*
|
*
|
||||||
|
@ -213,8 +213,8 @@ public:
|
|||||||
/** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
|
/** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
|
||||||
*
|
*
|
||||||
* \param mat the Dim x Dim transformation matrix
|
* \param mat the Dim x Dim transformation matrix
|
||||||
* \param traits specifies whether the matrix \a mat represents an Isometry
|
* \param traits specifies whether the matrix \a mat represents an #Isometry
|
||||||
* or a more generic Affine transformation. The default is Affine.
|
* or a more generic #Affine transformation. The default is #Affine.
|
||||||
*/
|
*/
|
||||||
template<typename XprType>
|
template<typename XprType>
|
||||||
inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
|
inline Hyperplane& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
|
||||||
@ -233,8 +233,8 @@ public:
|
|||||||
/** Applies the transformation \a t to \c *this and returns a reference to \c *this.
|
/** Applies the transformation \a t to \c *this and returns a reference to \c *this.
|
||||||
*
|
*
|
||||||
* \param t the transformation of dimension Dim
|
* \param t the transformation of dimension Dim
|
||||||
* \param traits specifies whether the transformation \a t represents an Isometry
|
* \param traits specifies whether the transformation \a t represents an #Isometry
|
||||||
* or a more generic Affine transformation. The default is Affine.
|
* or a more generic #Affine transformation. The default is #Affine.
|
||||||
* Other kind of transformations are not supported.
|
* Other kind of transformations are not supported.
|
||||||
*/
|
*/
|
||||||
template<int TrOptions>
|
template<int TrOptions>
|
||||||
|
@ -357,7 +357,7 @@ class Map<const Quaternion<_Scalar>, _Options >
|
|||||||
* The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order:
|
* The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order:
|
||||||
* \code *coeffs == {x, y, z, w} \endcode
|
* \code *coeffs == {x, y, z, w} \endcode
|
||||||
*
|
*
|
||||||
* If the template parameter _Options is set to Aligned, then the pointer coeffs must be aligned. */
|
* If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
|
||||||
EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
|
EIGEN_STRONG_INLINE Map(const Scalar* coeffs) : m_coeffs(coeffs) {}
|
||||||
|
|
||||||
inline const Coefficients& coeffs() const { return m_coeffs;}
|
inline const Coefficients& coeffs() const { return m_coeffs;}
|
||||||
@ -393,7 +393,7 @@ class Map<Quaternion<_Scalar>, _Options >
|
|||||||
* The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order:
|
* The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order:
|
||||||
* \code *coeffs == {x, y, z, w} \endcode
|
* \code *coeffs == {x, y, z, w} \endcode
|
||||||
*
|
*
|
||||||
* If the template parameter _Options is set to Aligned, then the pointer coeffs must be aligned. */
|
* If the template parameter _Options is set to #Aligned, then the pointer coeffs must be aligned. */
|
||||||
EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
|
EIGEN_STRONG_INLINE Map(Scalar* coeffs) : m_coeffs(coeffs) {}
|
||||||
|
|
||||||
inline Coefficients& coeffs() { return m_coeffs; }
|
inline Coefficients& coeffs() { return m_coeffs; }
|
||||||
|
@ -86,11 +86,11 @@ template<typename TransformType> struct transform_take_affine_part;
|
|||||||
* \tparam _Scalar the scalar type, i.e., the type of the coefficients
|
* \tparam _Scalar the scalar type, i.e., the type of the coefficients
|
||||||
* \tparam _Dim the dimension of the space
|
* \tparam _Dim the dimension of the space
|
||||||
* \tparam _Mode the type of the transformation. Can be:
|
* \tparam _Mode the type of the transformation. Can be:
|
||||||
* - Affine: the transformation is stored as a (Dim+1)^2 matrix,
|
* - #Affine: the transformation is stored as a (Dim+1)^2 matrix,
|
||||||
* where the last row is assumed to be [0 ... 0 1].
|
* where the last row is assumed to be [0 ... 0 1].
|
||||||
* - AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix.
|
* - #AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix.
|
||||||
* - Projective: the transformation is stored as a (Dim+1)^2 matrix
|
* - #Projective: the transformation is stored as a (Dim+1)^2 matrix
|
||||||
* without any assumption.
|
* without any assumption.
|
||||||
* \tparam _Options has the same meaning as in class Matrix. It allows to specify DontAlign and/or RowMajor.
|
* \tparam _Options has the same meaning as in class Matrix. It allows to specify DontAlign and/or RowMajor.
|
||||||
* These Options are passed directly to the underlying matrix type.
|
* These Options are passed directly to the underlying matrix type.
|
||||||
*
|
*
|
||||||
@ -1082,10 +1082,10 @@ struct projective_transform_inverse<TransformType, Projective>
|
|||||||
*
|
*
|
||||||
* \param hint allows to optimize the inversion process when the transformation
|
* \param hint allows to optimize the inversion process when the transformation
|
||||||
* is known to be not a general transformation (optional). The possible values are:
|
* is known to be not a general transformation (optional). The possible values are:
|
||||||
* - Projective if the transformation is not necessarily affine, i.e., if the
|
* - #Projective if the transformation is not necessarily affine, i.e., if the
|
||||||
* last row is not guaranteed to be [0 ... 0 1]
|
* last row is not guaranteed to be [0 ... 0 1]
|
||||||
* - Affine if the last row can be assumed to be [0 ... 0 1]
|
* - #Affine if the last row can be assumed to be [0 ... 0 1]
|
||||||
* - Isometry if the transformation is only a concatenations of translations
|
* - #Isometry if the transformation is only a concatenations of translations
|
||||||
* and rotations.
|
* and rotations.
|
||||||
* The default is the template class parameter \c Mode.
|
* The default is the template class parameter \c Mode.
|
||||||
*
|
*
|
||||||
|
@ -403,8 +403,8 @@ template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
|
|||||||
*
|
*
|
||||||
* \param matrix the matrix to decompose
|
* \param matrix the matrix to decompose
|
||||||
* \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
|
* \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
|
||||||
* By default, none is computed. This is a bit-field, the possible bits are ComputeFullU, ComputeThinU,
|
* By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
|
||||||
* ComputeFullV, ComputeThinV.
|
* #ComputeFullV, #ComputeThinV.
|
||||||
*
|
*
|
||||||
* Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
|
* Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
|
||||||
* available with the (non-default) FullPivHouseholderQR preconditioner.
|
* available with the (non-default) FullPivHouseholderQR preconditioner.
|
||||||
@ -422,8 +422,8 @@ template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
|
|||||||
*
|
*
|
||||||
* \param matrix the matrix to decompose
|
* \param matrix the matrix to decompose
|
||||||
* \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
|
* \param computationOptions optional parameter allowing to specify if you want full or thin U or V unitaries to be computed.
|
||||||
* By default, none is computed. This is a bit-field, the possible bits are ComputeFullU, ComputeThinU,
|
* By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU,
|
||||||
* ComputeFullV, ComputeThinV.
|
* #ComputeFullV, #ComputeThinV.
|
||||||
*
|
*
|
||||||
* Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
|
* Thin unitaries are only available if your matrix type has a Dynamic number of columns (for example MatrixXf). They also are not
|
||||||
* available with the (non-default) FullPivHouseholderQR preconditioner.
|
* available with the (non-default) FullPivHouseholderQR preconditioner.
|
||||||
@ -444,7 +444,7 @@ template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
|
|||||||
/** \returns the \a U matrix.
|
/** \returns the \a U matrix.
|
||||||
*
|
*
|
||||||
* For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
|
* For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
|
||||||
* the U matrix is n-by-n if you asked for ComputeFullU, and is n-by-m if you asked for ComputeThinU.
|
* the U matrix is n-by-n if you asked for #ComputeFullU, and is n-by-m if you asked for #ComputeThinU.
|
||||||
*
|
*
|
||||||
* The \a m first columns of \a U are the left singular vectors of the matrix being decomposed.
|
* The \a m first columns of \a U are the left singular vectors of the matrix being decomposed.
|
||||||
*
|
*
|
||||||
@ -460,7 +460,7 @@ template<typename _MatrixType, int QRPreconditioner> class JacobiSVD
|
|||||||
/** \returns the \a V matrix.
|
/** \returns the \a V matrix.
|
||||||
*
|
*
|
||||||
* For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
|
* For the SVD decomposition of a n-by-p matrix, letting \a m be the minimum of \a n and \a p,
|
||||||
* the V matrix is p-by-p if you asked for ComputeFullV, and is p-by-m if you asked for ComputeThinV.
|
* the V matrix is p-by-p if you asked for #ComputeFullV, and is p-by-m if you asked for ComputeThinV.
|
||||||
*
|
*
|
||||||
* The \a m first columns of \a V are the right singular vectors of the matrix being decomposed.
|
* The \a m first columns of \a V are the right singular vectors of the matrix being decomposed.
|
||||||
*
|
*
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
* \brief Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
|
* \brief Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
|
||||||
*
|
*
|
||||||
* \param MatrixType the type of the dense matrix storing the coefficients
|
* \param MatrixType the type of the dense matrix storing the coefficients
|
||||||
* \param UpLo can be either \c Lower or \c Upper
|
* \param UpLo can be either \c #Lower or \c #Upper
|
||||||
*
|
*
|
||||||
* This class is an expression of a sefladjoint matrix from a triangular part of a matrix
|
* This class is an expression of a sefladjoint matrix from a triangular part of a matrix
|
||||||
* with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
|
* with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView()
|
||||||
|
@ -287,7 +287,7 @@ The EIGEN_DONT_ALIGN option still exists in Eigen 3, but it has a new cousin: EI
|
|||||||
|
|
||||||
A common issue with Eigen 2 was that when mapping an array with Map, there was no way to tell Eigen that your array was aligned. There was a ForceAligned option but it didn't mean that; it was just confusing and has been removed.
|
A common issue with Eigen 2 was that when mapping an array with Map, there was no way to tell Eigen that your array was aligned. There was a ForceAligned option but it didn't mean that; it was just confusing and has been removed.
|
||||||
|
|
||||||
New in Eigen3 is the Aligned option. See the documentation of class Map. Use it like this:
|
New in Eigen3 is the #Aligned option. See the documentation of class Map. Use it like this:
|
||||||
\code
|
\code
|
||||||
Map<Vector4f, Aligned> myMappedVector(some_aligned_array);
|
Map<Vector4f, Aligned> myMappedVector(some_aligned_array);
|
||||||
\endcode
|
\endcode
|
||||||
|
@ -488,7 +488,7 @@ SHOW_FILES = YES
|
|||||||
# Namespaces page. This will remove the Namespaces entry from the Quick Index
|
# Namespaces page. This will remove the Namespaces entry from the Quick Index
|
||||||
# and from the Folder Tree View (if specified). The default is YES.
|
# and from the Folder Tree View (if specified). The default is YES.
|
||||||
|
|
||||||
SHOW_NAMESPACES = NO
|
SHOW_NAMESPACES = YES
|
||||||
|
|
||||||
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
||||||
# doxygen should invoke to get the current version for each file (typically from
|
# doxygen should invoke to get the current version for each file (typically from
|
||||||
|
@ -400,7 +400,7 @@ inline void writePacket(int index, const PacketScalar& x)
|
|||||||
internal::pstoret<Scalar, PacketScalar, StoreMode>(m_storage.data() + index, x);
|
internal::pstoret<Scalar, PacketScalar, StoreMode>(m_storage.data() + index, x);
|
||||||
}
|
}
|
||||||
\endcode
|
\endcode
|
||||||
Here, \a StoreMode is \a Aligned, indicating that we are doing a 128-bit-aligned write access, \a PacketScalar is a type representing a "SSE packet of 4 floats" and internal::pstoret is a function writing such a packet in memory. Their definitions are architecture-specific, we find them in src/Core/arch/SSE/PacketMath.h:
|
Here, \a StoreMode is \a #Aligned, indicating that we are doing a 128-bit-aligned write access, \a PacketScalar is a type representing a "SSE packet of 4 floats" and internal::pstoret is a function writing such a packet in memory. Their definitions are architecture-specific, we find them in src/Core/arch/SSE/PacketMath.h:
|
||||||
|
|
||||||
The line in src/Core/arch/SSE/PacketMath.h that determines the PacketScalar type (via a typedef in Matrix.h) is:
|
The line in src/Core/arch/SSE/PacketMath.h that determines the PacketScalar type (via a typedef in Matrix.h) is:
|
||||||
\code
|
\code
|
||||||
@ -442,7 +442,7 @@ class CwiseBinaryOp
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
\endcode
|
\endcode
|
||||||
Here, \a m_lhs is the vector \a v, and \a m_rhs is the vector \a w. So the packet() function here is Matrix::packet(). The template parameter \a LoadMode is \a Aligned. So we're looking at
|
Here, \a m_lhs is the vector \a v, and \a m_rhs is the vector \a w. So the packet() function here is Matrix::packet(). The template parameter \a LoadMode is \a #Aligned. So we're looking at
|
||||||
\code
|
\code
|
||||||
class Matrix
|
class Matrix
|
||||||
{
|
{
|
||||||
|
@ -594,7 +594,7 @@ unit or null diagonal (read/write):
|
|||||||
</td><td>\code
|
</td><td>\code
|
||||||
m.triangularView<Xxx>()
|
m.triangularView<Xxx>()
|
||||||
\endcode \n
|
\endcode \n
|
||||||
\c Xxx = Upper, Lower, StrictlyUpper, StrictlyLower, UnitUpper, UnitLower
|
\c Xxx = ::Upper, ::Lower, ::StrictlyUpper, ::StrictlyLower, ::UnitUpper, ::UnitLower
|
||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td>
|
<tr><td>
|
||||||
Writing to a specific triangular part:\n (only the referenced triangular part is evaluated)
|
Writing to a specific triangular part:\n (only the referenced triangular part is evaluated)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user