From a96c849c20cd787c40c2cbf30a496fed7bf2bf1e Mon Sep 17 00:00:00 2001 From: Jitse Niesen Date: Tue, 3 May 2011 17:08:14 +0100 Subject: 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. --- Eigen/Core | 1 + Eigen/src/Core/BandMatrix.h | 2 +- Eigen/src/Core/DenseCoeffsBase.h | 14 +- Eigen/src/Core/GenericPacketMath.h | 4 +- Eigen/src/Core/Map.h | 8 +- Eigen/src/Core/Matrix.h | 4 +- Eigen/src/Core/SelfAdjointView.h | 2 +- Eigen/src/Core/TriangularMatrix.h | 14 +- Eigen/src/Core/VectorwiseOp.h | 8 +- Eigen/src/Core/util/Constants.h | 167 ++++++++++++++++++--- .../GeneralizedSelfAdjointEigenSolver.h | 8 +- Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h | 8 +- Eigen/src/Geometry/Hyperplane.h | 8 +- Eigen/src/Geometry/Quaternion.h | 4 +- Eigen/src/Geometry/Transform.h | 16 +- Eigen/src/SVD/JacobiSVD.h | 12 +- Eigen/src/Sparse/SparseSelfAdjointView.h | 2 +- doc/A05_PortingFrom2To3.dox | 2 +- doc/Doxyfile.in | 2 +- doc/I03_InsideEigenExample.dox | 4 +- doc/QuickReference.dox | 2 +- 21 files changed, 205 insertions(+), 87 deletions(-) diff --git a/Eigen/Core b/Eigen/Core index 7f4a62156..e532a00f8 100644 --- a/Eigen/Core +++ b/Eigen/Core @@ -185,6 +185,7 @@ // defined in bits/termios.h #undef B0 +/** \brief Namespace containing all symbols from the %Eigen library. */ namespace Eigen { inline static const char *SimdInstructionSetsInUse(void) { diff --git a/Eigen/src/Core/BandMatrix.h b/Eigen/src/Core/BandMatrix.h index a1f71d5f6..dda8efba3 100644 --- a/Eigen/src/Core/BandMatrix.h +++ b/Eigen/src/Core/BandMatrix.h @@ -180,7 +180,7 @@ class BandMatrixBase : public EigenBase * \param Cols Number of columns, or \b Dynamic * \param Supers Number of super 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 * column-major. The latter controls whether the matrix represents a selfadjoint * matrix in which case either Supers of Subs have to be null. diff --git a/Eigen/src/Core/DenseCoeffsBase.h b/Eigen/src/Core/DenseCoeffsBase.h index 7838a1cfb..e45238fb5 100644 --- a/Eigen/src/Core/DenseCoeffsBase.h +++ b/Eigen/src/Core/DenseCoeffsBase.h @@ -35,7 +35,7 @@ template struct add_const_on_value_type_if_arithmetic /** \brief Base class providing read-only coefficient access to matrices and arrays. * \ingroup Core_Module * \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 * entries of a matrix or array. @@ -212,7 +212,7 @@ class DenseCoeffsBase : public EigenBase * to ensure that a packet really starts there. This method is only available on expressions having the * 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 * starting at an address which is a multiple of the packet size. */ @@ -239,7 +239,7 @@ class DenseCoeffsBase : public EigenBase * to ensure that a packet really starts there. This method is only available on expressions having the * 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 * starting at an address which is a multiple of the packet size. */ @@ -275,7 +275,7 @@ class DenseCoeffsBase : public EigenBase /** \brief Base class providing read/write coefficient access to matrices and arrays. * \ingroup Core_Module * \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 * entries of a matrix or array. This class inherits DenseCoeffsBase which @@ -433,7 +433,7 @@ class DenseCoeffsBase : public DenseCoeffsBase : public DenseCoeffsBase which defines functions to access entries read-only using @@ -637,7 +637,7 @@ class DenseCoeffsBase : public DenseCoeffsBase which defines functions to access entries read/write using diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h index 4ba322a32..2cedab04a 100644 --- a/Eigen/src/Core/GenericPacketMath.h +++ b/Eigen/src/Core/GenericPacketMath.h @@ -286,7 +286,7 @@ pmadd(const Packet& a, { return padd(pmul(a, b),c); } /** \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 inline Packet ploadt(const typename unpacket_traits::type* from) { @@ -297,7 +297,7 @@ inline Packet ploadt(const typename unpacket_traits::type* from) } /** \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 inline void pstoret(Scalar* to, const Packet& from) { diff --git a/Eigen/src/Core/Map.h b/Eigen/src/Core/Map.h index 692d0a179..81e3979f3 100644 --- a/Eigen/src/Core/Map.h +++ b/Eigen/src/Core/Map.h @@ -31,10 +31,10 @@ * * \brief A matrix or vector expression mapping an existing array of data. * - * \param PlainObjectType the equivalent matrix type of the mapped data - * \param MapOptions specifies whether the pointer is \c Aligned, or \c Unaligned. - * The default is \c Unaligned. - * \param StrideType optionnally specifies strides. By default, Map assumes the memory layout + * \tparam PlainObjectType the equivalent matrix type of the mapped data + * \tparam MapOptions specifies whether the pointer is \c #Aligned, or \c #Unaligned. + * The default is \c #Unaligned. + * \tparam StrideType optionnally specifies strides. By default, Map assumes the memory layout * 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. * diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h index 8ae55da6e..44de22cb4 100644 --- a/Eigen/src/Core/Matrix.h +++ b/Eigen/src/Core/Matrix.h @@ -43,8 +43,8 @@ * \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. - * \tparam _Options \anchor matrix_tparam_options A combination of either \b RowMajor or \b ColMajor, and of either - * \b AutoAlign or \b DontAlign. + * \tparam _Options \anchor matrix_tparam_options A combination of either \b #RowMajor or \b #ColMajor, and of either + * \b #AutoAlign or \b #DontAlign. * 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. * \tparam _MaxRows Maximum number of rows. Defaults to \a _Rows (\ref maxrows "note"). diff --git a/Eigen/src/Core/SelfAdjointView.h b/Eigen/src/Core/SelfAdjointView.h index 4bb90c373..4bb68755e 100644 --- a/Eigen/src/Core/SelfAdjointView.h +++ b/Eigen/src/Core/SelfAdjointView.h @@ -32,7 +32,7 @@ * \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 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 * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView() diff --git a/Eigen/src/Core/TriangularMatrix.h b/Eigen/src/Core/TriangularMatrix.h index f9fedcb0f..fee751acd 100644 --- a/Eigen/src/Core/TriangularMatrix.h +++ b/Eigen/src/Core/TriangularMatrix.h @@ -134,13 +134,13 @@ template class TriangularBase : public EigenBase * \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 Mode the kind of triangular matrix expression to construct. Can be Upper, - * Lower, UpperSelfadjoint, or LowerSelfadjoint. This is in fact a bit field; - * it must have either Upper or Lower, and additionnaly it may have either - * UnitDiag or Selfadjoint. + * \param Mode the kind of triangular matrix expression to construct. Can be #Upper, + * #Lower, #UnitUpper, #UnitLower, #StrictlyUpper, or #StrictlyLower. + * This is in fact a bit field; it must have either #Upper or #Lower, + * 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 - * 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. * * \sa MatrixBase::triangularView() @@ -756,8 +756,8 @@ typename internal::eigen2_part_return_type::type MatrixBase class SelfAdjointEigenSolver * * \param[in] matrix Selfadjoint matrix whose eigendecomposition is to * 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 * 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 * Output: \verbinclude SelfAdjointEigenSolver_SelfAdjointEigenSolver_MatrixType.out @@ -171,11 +171,11 @@ template class SelfAdjointEigenSolver * * \param[in] matrix Selfadjoint matrix whose eigendecomposition is to * 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 * * 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 * calling eigenvectors(). * diff --git a/Eigen/src/Geometry/Hyperplane.h b/Eigen/src/Geometry/Hyperplane.h index e43c9d07d..00e027040 100644 --- a/Eigen/src/Geometry/Hyperplane.h +++ b/Eigen/src/Geometry/Hyperplane.h @@ -213,8 +213,8 @@ public: /** 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 traits specifies whether the matrix \a mat represents an Isometry - * or a more generic Affine transformation. The default is Affine. + * \param traits specifies whether the matrix \a mat represents an #Isometry + * or a more generic #Affine transformation. The default is #Affine. */ template inline Hyperplane& transform(const MatrixBase& mat, TransformTraits traits = Affine) @@ -233,8 +233,8 @@ public: /** Applies the transformation \a t to \c *this and returns a reference to \c *this. * * \param t the transformation of dimension Dim - * \param traits specifies whether the transformation \a t represents an Isometry - * or a more generic Affine transformation. The default is Affine. + * \param traits specifies whether the transformation \a t represents an #Isometry + * or a more generic #Affine transformation. The default is #Affine. * Other kind of transformations are not supported. */ template diff --git a/Eigen/src/Geometry/Quaternion.h b/Eigen/src/Geometry/Quaternion.h index 7abe3c702..20e69736b 100644 --- a/Eigen/src/Geometry/Quaternion.h +++ b/Eigen/src/Geometry/Quaternion.h @@ -357,7 +357,7 @@ class Map, _Options > * The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order: * \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) {} inline const Coefficients& coeffs() const { return m_coeffs;} @@ -393,7 +393,7 @@ class Map, _Options > * The pointer \a coeffs must reference the four coeffecients of Quaternion in the following order: * \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) {} inline Coefficients& coeffs() { return m_coeffs; } diff --git a/Eigen/src/Geometry/Transform.h b/Eigen/src/Geometry/Transform.h index 289077c1b..d8ec8236e 100644 --- a/Eigen/src/Geometry/Transform.h +++ b/Eigen/src/Geometry/Transform.h @@ -86,11 +86,11 @@ template struct transform_take_affine_part; * \tparam _Scalar the scalar type, i.e., the type of the coefficients * \tparam _Dim the dimension of the space * \tparam _Mode the type of the transformation. Can be: - * - Affine: the transformation is stored as a (Dim+1)^2 matrix, - * where the last row is assumed to be [0 ... 0 1]. - * - AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix. - * - Projective: the transformation is stored as a (Dim+1)^2 matrix - * without any assumption. + * - #Affine: the transformation is stored as a (Dim+1)^2 matrix, + * where the last row is assumed to be [0 ... 0 1]. + * - #AffineCompact: the transformation is stored as a (Dim)x(Dim+1) matrix. + * - #Projective: the transformation is stored as a (Dim+1)^2 matrix + * without any assumption. * \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. * @@ -1082,10 +1082,10 @@ struct projective_transform_inverse * * \param hint allows to optimize the inversion process when the transformation * 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] - * - Affine if the last row can be assumed to be [0 ... 0 1] - * - Isometry if the transformation is only a concatenations of translations + * - #Affine if the last row can be assumed to be [0 ... 0 1] + * - #Isometry if the transformation is only a concatenations of translations * and rotations. * The default is the template class parameter \c Mode. * diff --git a/Eigen/src/SVD/JacobiSVD.h b/Eigen/src/SVD/JacobiSVD.h index 6826e2c6d..6c13255f5 100644 --- a/Eigen/src/SVD/JacobiSVD.h +++ b/Eigen/src/SVD/JacobiSVD.h @@ -403,8 +403,8 @@ template class JacobiSVD * * \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. - * By default, none is computed. This is a bit-field, the possible bits are ComputeFullU, ComputeThinU, - * ComputeFullV, ComputeThinV. + * By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU, + * #ComputeFullV, #ComputeThinV. * * 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. @@ -422,8 +422,8 @@ template class JacobiSVD * * \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. - * By default, none is computed. This is a bit-field, the possible bits are ComputeFullU, ComputeThinU, - * ComputeFullV, ComputeThinV. + * By default, none is computed. This is a bit-field, the possible bits are #ComputeFullU, #ComputeThinU, + * #ComputeFullV, #ComputeThinV. * * 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. @@ -444,7 +444,7 @@ template class JacobiSVD /** \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, - * 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. * @@ -460,7 +460,7 @@ template class JacobiSVD /** \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, - * 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. * diff --git a/Eigen/src/Sparse/SparseSelfAdjointView.h b/Eigen/src/Sparse/SparseSelfAdjointView.h index 819996ec0..651daaa4d 100644 --- a/Eigen/src/Sparse/SparseSelfAdjointView.h +++ b/Eigen/src/Sparse/SparseSelfAdjointView.h @@ -31,7 +31,7 @@ * \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 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 * with given dense storage of the coefficients. It is the return type of MatrixBase::selfadjointView() diff --git a/doc/A05_PortingFrom2To3.dox b/doc/A05_PortingFrom2To3.dox index 4167dfe33..10ce96870 100644 --- a/doc/A05_PortingFrom2To3.dox +++ b/doc/A05_PortingFrom2To3.dox @@ -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. -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 Map myMappedVector(some_aligned_array); \endcode diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index d9f5f6d91..6a659d9c2 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -488,7 +488,7 @@ SHOW_FILES = YES # Namespaces page. This will remove the Namespaces entry from the Quick Index # 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 # doxygen should invoke to get the current version for each file (typically from diff --git a/doc/I03_InsideEigenExample.dox b/doc/I03_InsideEigenExample.dox index 0c60984a2..3245a01c0 100644 --- a/doc/I03_InsideEigenExample.dox +++ b/doc/I03_InsideEigenExample.dox @@ -400,7 +400,7 @@ inline void writePacket(int index, const PacketScalar& x) internal::pstoret(m_storage.data() + index, x); } \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: \code @@ -442,7 +442,7 @@ class CwiseBinaryOp } }; \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 class Matrix { diff --git a/doc/QuickReference.dox b/doc/QuickReference.dox index 496dadb62..a578d15a6 100644 --- a/doc/QuickReference.dox +++ b/doc/QuickReference.dox @@ -594,7 +594,7 @@ unit or null diagonal (read/write): \code m.triangularView() \endcode \n -\c Xxx = Upper, Lower, StrictlyUpper, StrictlyLower, UnitUpper, UnitLower +\c Xxx = ::Upper, ::Lower, ::StrictlyUpper, ::StrictlyLower, ::UnitUpper, ::UnitLower Writing to a specific triangular part:\n (only the referenced triangular part is evaluated) -- cgit v1.2.3