diff options
author | Gael Guennebaud <g.gael@free.fr> | 2008-05-22 16:31:00 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2008-05-22 16:31:00 +0000 |
commit | 8f1fc80a77551b26c05669527534aff7b621b86c (patch) | |
tree | 145a82470e1193e7c25492925f10dcbe34221dd6 | |
parent | 94e1629a1b64e384281514b3c11e4c74ca31a622 (diff) |
some documentation fixes (Cwise* and Cholesky)
-rw-r--r-- | Eigen/src/Cholesky/Cholesky.h | 2 | ||||
-rw-r--r-- | Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h | 7 | ||||
-rw-r--r-- | Eigen/src/Core/CwiseBinaryOp.h | 9 | ||||
-rw-r--r-- | Eigen/src/Core/CwiseNullaryOp.h | 1 | ||||
-rw-r--r-- | Eigen/src/Core/CwiseUnaryOp.h | 3 | ||||
-rw-r--r-- | bench/BenchTimer.h | 3 | ||||
-rw-r--r-- | doc/Doxyfile.in | 1 | ||||
-rw-r--r-- | doc/examples/class_CwiseBinaryOp.cpp | 22 | ||||
-rw-r--r-- | doc/examples/class_CwiseUnaryOp.cpp | 6 |
9 files changed, 24 insertions, 30 deletions
diff --git a/Eigen/src/Cholesky/Cholesky.h b/Eigen/src/Cholesky/Cholesky.h index cb40cd9ce..325c9c6fc 100644 --- a/Eigen/src/Cholesky/Cholesky.h +++ b/Eigen/src/Cholesky/Cholesky.h @@ -109,7 +109,7 @@ void Cholesky<MatrixType>::compute(const MatrixType& a) /** \returns the solution of A x = \a b using the current decomposition of A. * In other words, it returns \code A^-1 b \endcode computing - * \code L^-* L^1 b \code from right to left. + * \code L^-* L^1 b \endcode from right to left. */ template<typename MatrixType> template<typename Derived> diff --git a/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h b/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h index 4a97282dc..589dd858d 100644 --- a/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h +++ b/Eigen/src/Cholesky/CholeskyWithoutSquareRoot.h @@ -119,9 +119,10 @@ void CholeskyWithoutSquareRoot<MatrixType>::compute(const MatrixType& a) } } -/** \returns the solution of A x = \a b using the current decomposition of A. - * In other words, it returns \code A^-1 b \endcode computing - * \code (L^-*) (D^-1) (L^-1) b \code from right to left. +/** \returns the solution of \f$ A x = b \f$ using the current decomposition of A. + * In other words, it returns \f$ A^{-1} b \f$ computing + * \f$ {L^{*}}^{-1} D^{-1} L^{-1} b \f$ from right to left. + * \param vecB the vector \f$ b \f$ (or an array of vectors) */ template<typename MatrixType> template<typename Derived> diff --git a/Eigen/src/Core/CwiseBinaryOp.h b/Eigen/src/Core/CwiseBinaryOp.h index 70b90fbdb..3142a7885 100644 --- a/Eigen/src/Core/CwiseBinaryOp.h +++ b/Eigen/src/Core/CwiseBinaryOp.h @@ -41,10 +41,7 @@ * However, if you want to write a function returning such an expression, you * will need to use this class. * - * Here is an example illustrating this: - * \include class_CwiseBinaryOp.cpp - * - * \sa class ei_scalar_product_op, class ei_scalar_quotient_op + * \sa MatrixBase::cwise(const MatrixBase<OtherDerived> &,const CustomBinaryOp &) const, class CwiseUnaryOp, class CwiseNullaryOp */ template<typename BinaryOp, typename Lhs, typename Rhs> struct ei_traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> > @@ -220,6 +217,10 @@ MatrixBase<Derived>::cwiseMax(const MatrixBase<OtherDerived> &other) const * The template parameter \a CustomBinaryOp is the type of the functor * of the custom operator (see class CwiseBinaryOp for an example) * + * Here is an example illustrating the use of custom functors: + * \include class_CwiseBinaryOp.cpp + * Output: \verbinclude class_CwiseBinaryOp.out + * * \sa class CwiseBinaryOp, MatrixBase::operator+, MatrixBase::operator-, MatrixBase::cwiseProduct, MatrixBase::cwiseQuotient */ template<typename Derived> diff --git a/Eigen/src/Core/CwiseNullaryOp.h b/Eigen/src/Core/CwiseNullaryOp.h index 7d47fa198..66ccb40f1 100644 --- a/Eigen/src/Core/CwiseNullaryOp.h +++ b/Eigen/src/Core/CwiseNullaryOp.h @@ -38,6 +38,7 @@ * However, if you want to write a function returning such an expression, you * will need to use this class. * + * \sa class CwiseUnaryOp, class CwiseBinaryOp, MatrixBase::create() */ template<typename NullaryOp, typename MatrixType> struct ei_traits<CwiseNullaryOp<NullaryOp, MatrixType> > diff --git a/Eigen/src/Core/CwiseUnaryOp.h b/Eigen/src/Core/CwiseUnaryOp.h index 32ddfe2ed..26197b369 100644 --- a/Eigen/src/Core/CwiseUnaryOp.h +++ b/Eigen/src/Core/CwiseUnaryOp.h @@ -37,7 +37,7 @@ * It is the return type of the unary operator-, of a matrix or a vector, and most * of the time this is the only way it is used. * - * \sa class CwiseBinaryOp + * \sa MatrixBase::cwise(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp */ template<typename UnaryOp, typename MatrixType> struct ei_traits<CwiseUnaryOp<UnaryOp, MatrixType> > @@ -100,6 +100,7 @@ class CwiseUnaryOp : ei_no_assignment_operator, * * Here is an example: * \include class_CwiseUnaryOp.cpp + * Output: \verbinclude class_CwiseUnaryOp.out * * \sa class CwiseUnaryOp, class CwiseBinarOp, MatrixBase::operator-, MatrixBase::cwiseAbs */ diff --git a/bench/BenchTimer.h b/bench/BenchTimer.h index e86c6ce13..b7791fcba 100644 --- a/bench/BenchTimer.h +++ b/bench/BenchTimer.h @@ -39,10 +39,11 @@ class BenchTimer { public: - BenchTimer() : m_best(1e99) {} + BenchTimer() : m_best(1e12) {} ~BenchTimer() {} + inline void reset(void) {m_best = 1e12;} inline void start(void) {m_start = getTime();} inline void stop(void) { diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index a54c8e2b7..d03648f0c 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -143,6 +143,7 @@ DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 1 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 250 +FORMULA_FONTSIZE = 12 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- diff --git a/doc/examples/class_CwiseBinaryOp.cpp b/doc/examples/class_CwiseBinaryOp.cpp index b91abd1ef..f95090b4d 100644 --- a/doc/examples/class_CwiseBinaryOp.cpp +++ b/doc/examples/class_CwiseBinaryOp.cpp @@ -1,29 +1,17 @@ -// FIXME - this example is not too good as that functionality is provided in the Eigen API -// additionally it's quite heavy. the CwiseUnaryOp example is better. - #include <Eigen/Core> USING_PART_OF_NAMESPACE_EIGEN using namespace std; // define a custom template binary functor -template<typename Scalar> struct CwiseMinOp EIGEN_EMPTY_STRUCT { - Scalar operator()(const Scalar& a, const Scalar& b) const { return std::min(a,b); } - enum { Cost = Eigen::ConditionalJumpCost + Eigen::NumTraits<Scalar>::AddCost }; +template<typename Scalar> struct MakeComplexOp EIGEN_EMPTY_STRUCT { + typedef complex<Scalar> result_type; + complex<Scalar> operator()(const Scalar& a, const Scalar& b) const { return complex<Scalar>(a,b); } + enum { Cost = 0 }; }; -// define a custom binary operator between two matrices -template<typename Derived1, typename Derived2> -const Eigen::CwiseBinaryOp<CwiseMinOp<typename Derived1::Scalar>, Derived1, Derived2> -cwiseMin(const MatrixBase<Derived1> &mat1, const MatrixBase<Derived2> &mat2) -{ - return Eigen::CwiseBinaryOp<CwiseMinOp<typename Derived1::Scalar>, Derived1, Derived2>(mat1, mat2); -} - int main(int, char**) { Matrix4d m1 = Matrix4d::random(), m2 = Matrix4d::random(); - cout << cwiseMin(m1,m2) << endl; // use our new global operator - cout << m1.cwise<CwiseMinOp<double> >(m2) << endl; // directly use the generic expression member - cout << m1.cwise(m2, CwiseMinOp<double>()) << endl; // directly use the generic expression member (variant) + cout << m1.cwise(m2, MakeComplexOp<double>()) << endl; return 0; } diff --git a/doc/examples/class_CwiseUnaryOp.cpp b/doc/examples/class_CwiseUnaryOp.cpp index ea27876eb..4111b7eec 100644 --- a/doc/examples/class_CwiseUnaryOp.cpp +++ b/doc/examples/class_CwiseUnaryOp.cpp @@ -2,9 +2,9 @@ USING_PART_OF_NAMESPACE_EIGEN using namespace std; -// define a custom template binary functor +// define a custom template unary functor template<typename Scalar> -struct CwiseClampOp EIGEN_EMPTY_STRUCT { +struct CwiseClampOp { CwiseClampOp(const Scalar& inf, const Scalar& sup) : m_inf(inf), m_sup(sup) {} const Scalar operator()(const Scalar& x) const { return x<m_inf ? m_inf : (x>m_sup ? m_sup : x); } Scalar m_inf, m_sup; @@ -14,6 +14,6 @@ struct CwiseClampOp EIGEN_EMPTY_STRUCT { int main(int, char**) { Matrix4d m1 = Matrix4d::random(); - cout << m1.cwise(CwiseClampOp<double>(-0.5,0.5)) << endl; + cout << m1 << endl << "becomes: " << endl << m1.cwise(CwiseClampOp<double>(-0.5,0.5)) << endl; return 0; } |