Fix and workaround several doxygen issues/warnings

This commit is contained in:
Gael Guennebaud 2017-01-04 23:27:33 +01:00
parent ee6f7f6c0c
commit 2299717fd5
13 changed files with 41 additions and 20 deletions

View File

@ -51,7 +51,8 @@ struct dot_nocheck<T, U, true>
} // end namespace internal } // end namespace internal
/** \returns the dot product of *this with other. /** \fn MatrixBase::dot
* \returns the dot product of *this with other.
* *
* \only_for_vectors * \only_for_vectors
* *

View File

@ -560,7 +560,8 @@ class PlainObjectBase : public internal::dense_xpr_base<Derived>::type
public: public:
/** \copydoc DenseBase::operator=(const EigenBase<OtherDerived>&) /** \brief Copies the generic expression \a other into *this.
* \copydetails DenseBase::operator=(const EigenBase<OtherDerived> &other)
*/ */
template<typename OtherDerived> template<typename OtherDerived>
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC

View File

@ -161,6 +161,7 @@ struct triangular_solver_selector<Lhs,Rhs,OnTheRight,Mode,CompleteUnrolling,1> {
* TriangularView methods * TriangularView methods
***************************************************************************/ ***************************************************************************/
#ifndef EIGEN_PARSED_BY_DOXYGEN
template<typename MatrixType, unsigned int Mode> template<typename MatrixType, unsigned int Mode>
template<int Side, typename OtherDerived> template<int Side, typename OtherDerived>
void TriangularViewImpl<MatrixType,Mode,Dense>::solveInPlace(const MatrixBase<OtherDerived>& _other) const void TriangularViewImpl<MatrixType,Mode,Dense>::solveInPlace(const MatrixBase<OtherDerived>& _other) const
@ -188,6 +189,7 @@ TriangularViewImpl<Derived,Mode,Dense>::solve(const MatrixBase<Other>& other) co
{ {
return internal::triangular_solve_retval<Side,TriangularViewType,Other>(derived(), other.derived()); return internal::triangular_solve_retval<Side,TriangularViewType,Other>(derived(), other.derived());
} }
#endif
namespace internal { namespace internal {

View File

@ -470,6 +470,8 @@ template<typename _MatrixType, unsigned int _Mode> class TriangularViewImpl<_Mat
* \a Side==OnTheLeft (the default), or the right-inverse-multiply \a other * inverse(\c *this) if * \a Side==OnTheLeft (the default), or the right-inverse-multiply \a other * inverse(\c *this) if
* \a Side==OnTheRight. * \a Side==OnTheRight.
* *
* Note that the template parameter \c Side can be ommitted, in which case \c Side==OnTheLeft
*
* The matrix \c *this must be triangular and invertible (i.e., all the coefficients of the * The matrix \c *this must be triangular and invertible (i.e., all the coefficients of the
* diagonal must be non zero). It works as a forward (resp. backward) substitution if \c *this * diagonal must be non zero). It works as a forward (resp. backward) substitution if \c *this
* is an upper (resp. lower) triangular matrix. * is an upper (resp. lower) triangular matrix.
@ -495,6 +497,8 @@ template<typename _MatrixType, unsigned int _Mode> class TriangularViewImpl<_Mat
* \warning The parameter is only marked 'const' to make the C++ compiler accept a temporary expression here. * \warning The parameter is only marked 'const' to make the C++ compiler accept a temporary expression here.
* This function will const_cast it, so constness isn't honored here. * This function will const_cast it, so constness isn't honored here.
* *
* Note that the template parameter \c Side can be ommitted, in which case \c Side==OnTheLeft
*
* See TriangularView:solve() for the details. * See TriangularView:solve() for the details.
*/ */
template<int Side, typename OtherDerived> template<int Side, typename OtherDerived>
@ -546,6 +550,7 @@ template<typename _MatrixType, unsigned int _Mode> class TriangularViewImpl<_Mat
* Implementation of triangular evaluation/assignment * Implementation of triangular evaluation/assignment
***************************************************************************/ ***************************************************************************/
#ifndef EIGEN_PARSED_BY_DOXYGEN
// FIXME should we keep that possibility // FIXME should we keep that possibility
template<typename MatrixType, unsigned int Mode> template<typename MatrixType, unsigned int Mode>
template<typename OtherDerived> template<typename OtherDerived>
@ -583,6 +588,7 @@ void TriangularViewImpl<MatrixType, Mode, Dense>::lazyAssign(const TriangularBas
eigen_assert(Mode == int(OtherDerived::Mode)); eigen_assert(Mode == int(OtherDerived::Mode));
internal::call_assignment_no_alias(derived(), other.derived()); internal::call_assignment_no_alias(derived(), other.derived());
} }
#endif
/*************************************************************************** /***************************************************************************
* Implementation of TriangularBase methods * Implementation of TriangularBase methods

View File

@ -194,7 +194,8 @@ struct functor_traits<max_coeff_visitor<Scalar> > {
} // end namespace internal } // end namespace internal
/** \returns the minimum of all coefficients of *this and puts in *row and *col its location. /** \fn DenseBase<Derived>::minCoeff(IndexType* rowId, IndexType* colId) const
* \returns the minimum of all coefficients of *this and puts in *row and *col its location.
* \warning the result is undefined if \c *this contains NaN. * \warning the result is undefined if \c *this contains NaN.
* *
* \sa DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visit(), DenseBase::minCoeff() * \sa DenseBase::minCoeff(Index*), DenseBase::maxCoeff(Index*,Index*), DenseBase::visit(), DenseBase::minCoeff()
@ -230,7 +231,8 @@ DenseBase<Derived>::minCoeff(IndexType* index) const
return minVisitor.res; return minVisitor.res;
} }
/** \returns the maximum of all coefficients of *this and puts in *row and *col its location. /** \fn DenseBase<Derived>::maxCoeff(IndexType* rowId, IndexType* colId) const
* \returns the maximum of all coefficients of *this and puts in *row and *col its location.
* \warning the result is undefined if \c *this contains NaN. * \warning the result is undefined if \c *this contains NaN.
* *
* \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::maxCoeff() * \sa DenseBase::minCoeff(IndexType*,IndexType*), DenseBase::visit(), DenseBase::maxCoeff()

View File

@ -138,7 +138,7 @@ class CompleteOrthogonalDecomposition {
* problem \f[\mathrm{minimize} \|A X - B\|, \f] where \b A is the matrix of * problem \f[\mathrm{minimize} \|A X - B\|, \f] where \b A is the matrix of
* which \c *this is the complete orthogonal decomposition. * which \c *this is the complete orthogonal decomposition.
* *
* \param B the right-hand sides of the problem to solve. * \param b the right-hand sides of the problem to solve.
* *
* \returns a solution. * \returns a solution.
* *

View File

@ -171,6 +171,8 @@ struct sparse_solve_triangular_selector<Lhs,Rhs,Mode,Upper,ColMajor>
} // end namespace internal } // end namespace internal
#ifndef EIGEN_PARSED_BY_DOXYGEN
template<typename ExpressionType,unsigned int Mode> template<typename ExpressionType,unsigned int Mode>
template<typename OtherDerived> template<typename OtherDerived>
void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(MatrixBase<OtherDerived>& other) const void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(MatrixBase<OtherDerived>& other) const
@ -189,6 +191,7 @@ void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(MatrixBase<Oth
if (copy) if (copy)
other = otherCopy; other = otherCopy;
} }
#endif
// pure sparse path // pure sparse path
@ -286,6 +289,7 @@ struct sparse_solve_triangular_sparse_selector<Lhs,Rhs,Mode,UpLo,ColMajor>
} // end namespace internal } // end namespace internal
#ifndef EIGEN_PARSED_BY_DOXYGEN
template<typename ExpressionType,unsigned int Mode> template<typename ExpressionType,unsigned int Mode>
template<typename OtherDerived> template<typename OtherDerived>
void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(SparseMatrixBase<OtherDerived>& other) const void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(SparseMatrixBase<OtherDerived>& other) const
@ -304,6 +308,7 @@ void TriangularViewImpl<ExpressionType,Mode,Sparse>::solveInPlace(SparseMatrixBa
// if (copy) // if (copy)
// other = otherCopy; // other = otherCopy;
} }
#endif
} // end namespace Eigen } // end namespace Eigen

View File

@ -967,6 +967,7 @@ void SuperILU<MatrixType>::factorize(const MatrixType& a)
m_factorizationIsOk = true; m_factorizationIsOk = true;
} }
#ifndef EIGEN_PARSED_BY_DOXYGEN
template<typename MatrixType> template<typename MatrixType>
template<typename Rhs,typename Dest> template<typename Rhs,typename Dest>
void SuperILU<MatrixType>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const void SuperILU<MatrixType>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest>& x) const
@ -1019,6 +1020,8 @@ void SuperILU<MatrixType>::_solve_impl(const MatrixBase<Rhs> &b, MatrixBase<Dest
} }
#endif #endif
#endif
} // end namespace Eigen } // end namespace Eigen
#endif // EIGEN_SUPERLUSUPPORT_H #endif // EIGEN_SUPERLUSUPPORT_H

View File

@ -818,7 +818,7 @@ inline typename FixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index sta
return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols); return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
} }
/// This is the const version of block<>(Index, Index, Index, Index). */ /// This is the const version of block<>(Index, Index, Index, Index).
template<int NRows, int NCols> template<int NRows, int NCols>
inline const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol, inline const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol,
Index blockRows, Index blockCols) const Index blockRows, Index blockCols) const
@ -832,15 +832,15 @@ inline const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow
/// Output: \verbinclude MatrixBase_col.out /// Output: \verbinclude MatrixBase_col.out
/// ///
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major) EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
/// /**
/// \sa row(), class Block */ * \sa row(), class Block */
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC
inline ColXpr col(Index i) inline ColXpr col(Index i)
{ {
return ColXpr(derived(), i); return ColXpr(derived(), i);
} }
/// This is the const version of col(). */ /// This is the const version of col().
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC
inline ConstColXpr col(Index i) const inline ConstColXpr col(Index i) const
{ {
@ -853,8 +853,8 @@ inline ConstColXpr col(Index i) const
/// Output: \verbinclude MatrixBase_row.out /// Output: \verbinclude MatrixBase_row.out
/// ///
EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major) EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
/// /**
/// \sa col(), class Block */ * \sa col(), class Block */
EIGEN_DEVICE_FUNC EIGEN_DEVICE_FUNC
inline RowXpr row(Index i) inline RowXpr row(Index i)
{ {

View File

@ -366,7 +366,7 @@ This also means that, unless specified, if the function \c std::foo is available
<tr> <tr>
<td class="code"> <td class="code">
\anchor cwisetable_isfinite \anchor cwisetable_isfinite
a.\link ArrayBase::isfinite isfinite\endlink(); \n a.\link ArrayBase::isFinite isFinite\endlink(); \n
\link Eigen::isfinite isfinite\endlink(a); \link Eigen::isfinite isfinite\endlink(a);
</td> </td>
<td>checks if the given number has finite value</td> <td>checks if the given number has finite value</td>
@ -377,7 +377,7 @@ This also means that, unless specified, if the function \c std::foo is available
<tr> <tr>
<td class="code"> <td class="code">
\anchor cwisetable_isinf \anchor cwisetable_isinf
a.\link ArrayBase::isinf isinf\endlink(); \n a.\link ArrayBase::isInf isInf\endlink(); \n
\link Eigen::isinf isinf\endlink(a); \link Eigen::isinf isinf\endlink(a);
</td> </td>
<td>checks if the given number is infinite</td> <td>checks if the given number is infinite</td>
@ -388,7 +388,7 @@ This also means that, unless specified, if the function \c std::foo is available
<tr> <tr>
<td class="code"> <td class="code">
\anchor cwisetable_isnan \anchor cwisetable_isnan
a.\link ArrayBase::isnan isnan\endlink(); \n a.\link ArrayBase::isNaN isNaN\endlink(); \n
\link Eigen::isnan isnan\endlink(a); \link Eigen::isnan isnan\endlink(a);
</td> </td>
<td>checks if the given number is not a number</td> <td>checks if the given number is not a number</td>
@ -399,7 +399,7 @@ This also means that, unless specified, if the function \c std::foo is available
<tr> <tr>
<th colspan="4">Error and gamma functions</th> <th colspan="4">Error and gamma functions</th>
</tr> </tr>
<tr> <td colspan="4"> Require \c #include \c <unsupported/Eigen/SpecialFunctions> </td></tr> <tr> <td colspan="4"> Require \c \#include \c <unsupported/Eigen/SpecialFunctions> </td></tr>
<tr> <tr>
<td class="code"> <td class="code">
\anchor cwisetable_erf \anchor cwisetable_erf
@ -478,7 +478,7 @@ This also means that, unless specified, if the function \c std::foo is available
<tr> <tr>
<th colspan="4">Special functions</th> <th colspan="4">Special functions</th>
</tr> </tr>
<tr> <td colspan="4"> Require \c #include \c <unsupported/Eigen/SpecialFunctions> </td></tr> <tr> <td colspan="4"> Require \c \#include \c <unsupported/Eigen/SpecialFunctions> </td></tr>
<tr> <tr>
<td class="code"> <td class="code">
\anchor cwisetable_polygamma \anchor cwisetable_polygamma
@ -522,4 +522,4 @@ This also means that, unless specified, if the function \c std::foo is available
*/ */
} }

View File

@ -727,7 +727,8 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is # Note that relative paths are relative to the directory from which doxygen is
# run. # run.
EXCLUDE = "${Eigen_SOURCE_DIR}/Eigen/Eigen2Support" \ EXCLUDE = "${Eigen_SOURCE_DIR}/Eigen/src/Core/products" \
"${Eigen_SOURCE_DIR}/Eigen/Eigen2Support" \
"${Eigen_SOURCE_DIR}/Eigen/src/Eigen2Support" \ "${Eigen_SOURCE_DIR}/Eigen/src/Eigen2Support" \
"${Eigen_SOURCE_DIR}/doc/examples" \ "${Eigen_SOURCE_DIR}/doc/examples" \
"${Eigen_SOURCE_DIR}/doc/special_examples" \ "${Eigen_SOURCE_DIR}/doc/special_examples" \

View File

@ -129,7 +129,7 @@ run time. However, these assertions do cost time and can thus be turned off.
\section TopicPreprocessorDirectivesPlugins Plugins \section TopicPreprocessorDirectivesPlugins Plugins
It is possible to add new methods to many fundamental classes in %Eigen by writing a plugin. As explained in It is possible to add new methods to many fundamental classes in %Eigen by writing a plugin. As explained in
the section \ref ExtendingMatrixBase, the plugin is specified by defining a \c EIGEN_xxx_PLUGIN macro. The the section \ref TopicCustomizing_Plugins, the plugin is specified by defining a \c EIGEN_xxx_PLUGIN macro. The
following macros are supported; none of them are defined by default. following macros are supported; none of them are defined by default.
- \b EIGEN_ARRAY_PLUGIN - filename of plugin for extending the Array class. - \b EIGEN_ARRAY_PLUGIN - filename of plugin for extending the Array class.

View File

@ -340,7 +340,7 @@ mat1 = mat2.adjoint(); mat1.adjointInPlace();
\endcode \endcode
</td></tr> </td></tr>
<tr><td> <tr><td>
\link MatrixBase::dot() dot \endlink product \n inner product \matrixworld</td><td>\code \link MatrixBase::dot dot \endlink product \n inner product \matrixworld</td><td>\code
scalar = vec1.dot(vec2); scalar = vec1.dot(vec2);
scalar = col1.adjoint() * col2; scalar = col1.adjoint() * col2;
scalar = (col1.adjoint() * col2).value();\endcode scalar = (col1.adjoint() * col2).value();\endcode