From 90d5a7c0dd076b7d383ed7284faf6f9073bc9546 Mon Sep 17 00:00:00 2001 From: Hauke Heibel Date: Fri, 15 Jan 2010 15:45:07 +0100 Subject: Adapted doxygen's new style sheet. Added documentation to some of the typedefs. --- Eigen/src/Core/Matrix.h | 8 +- Eigen/src/Core/util/Macros.h | 14 ++- doc/I00_CustomizingEigen.dox | 2 +- doc/eigendoxy.css | 253 ++++++++++++++++--------------------------- 4 files changed, 112 insertions(+), 165 deletions(-) diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h index fa8859f3c..0fe7cb8e2 100644 --- a/Eigen/src/Core/Matrix.h +++ b/Eigen/src/Core/Matrix.h @@ -36,7 +36,8 @@ * The %Matrix class encompasses \em both fixed-size and dynamic-size objects (\ref fixedsize "note"). * * The first three template parameters are required: - * \tparam _Scalar Numeric type, i.e. float, double, int + * \tparam _Scalar \anchor matrix_tparam_scalar Numeric type, e.g. float, double, int or std::complex. + * User defined sclar types are supported as well (see \ref user_defined_scalars "here"). * \tparam _Rows Number of rows, or \b Dynamic * \tparam _Cols Number of columns, or \b Dynamic * @@ -133,12 +134,11 @@ class Matrix * \sa DenseStorageBase */ typedef DenseStorageBase, Eigen::MatrixBase, _Options> Base; + + enum { Options = _Options }; _EIGEN_GENERIC_PUBLIC_INTERFACE(Matrix) - /** \brief Template parameter alias for \ref matrix_tparam_options "_Options". */ - enum { Options = _Options }; - typedef typename Base::PlainMatrixType PlainMatrixType; // friend class Eigen::Map; diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index 34020b7ba..54739810d 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -277,11 +277,19 @@ using Eigen::ei_cos; #define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \ EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) +/** +* Just a side note. Commenting within defines works only by documenting +* behind the object (via /*!<../). Comments cannot be multi-line and thus +* we have these extra long lines. What is confusing doxygen over here is +* that we use '\' and basically have a bunch of typedefs with their +* documentation in a single line. +**/ + #define _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived) \ - typedef typename Eigen::ei_traits::Scalar Scalar; \ - typedef typename Eigen::NumTraits::Real RealScalar; \ + typedef typename Eigen::ei_traits::Scalar Scalar; /*!< \brief Numeric type, e.g. float, double, int or std::complex. */ \ + typedef typename Eigen::NumTraits::Real RealScalar; /*!< \brief The underlying numeric type for composed scalar types. \details In cases where Scalar is e.g. std::complex, T were corresponding to RealScalar. */ \ typedef typename Base::PacketScalar PacketScalar; \ - typedef typename Base::CoeffReturnType CoeffReturnType; \ + typedef typename Base::CoeffReturnType CoeffReturnType; /*!< \brief The return type for coefficient access. \details Depending on whether the object allows direct coefficient access (e.g. for a MatrixXd), this type is either 'const Scalar&' or simply 'Scalar' for objects that do not allow direct coefficient access. */ \ typedef typename Eigen::ei_nested::type Nested; \ enum { RowsAtCompileTime = Eigen::ei_traits::RowsAtCompileTime, \ ColsAtCompileTime = Eigen::ei_traits::ColsAtCompileTime, \ diff --git a/doc/I00_CustomizingEigen.dox b/doc/I00_CustomizingEigen.dox index ede6f23b7..2c8bb455e 100644 --- a/doc/I00_CustomizingEigen.dox +++ b/doc/I00_CustomizingEigen.dox @@ -115,7 +115,7 @@ Eigen::MatrixBase, 10000, 1, 2, 10000, 1> >2, 10000, 1> >*)((const spectral1d*)where)) + 8u)))’ \endcode -\section CustomScalarType Using custom scalar types +\anchor user_defined_scalars \section CustomScalarType Using custom scalar types By default, Eigen currently supports the following scalar types: \c int, \c float, \c double, \c std::complex, \c std::complex, \c long \c double, \c long \c long \c int (64 bits integers), and \c bool. The \c long \c double is especially useful on x86-64 systems or when the SSE2 instruction set is enabled because it enforces the use of x87 registers with extended accuracy. diff --git a/doc/eigendoxy.css b/doc/eigendoxy.css index 4cc395518..77d062837 100644 --- a/doc/eigendoxy.css +++ b/doc/eigendoxy.css @@ -1,20 +1,23 @@ BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { - font-family: Geneva, Arial, Helvetica, sans-serif; - font-size: 9.4pt; -} -BODY,TD { - /*font-size: 90%;*/ + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 10pt; } H1 { - text-align: center; - font-size: 15pt; + text-align: center; + font-size: 150%; } H2 { - font-size: 12pt; - background-color : #d8d6af; margin-top : 20pt; + font-size: 120%; } H3 { - font-size: 100%; + font-size: 100%; +} +TD H2 +{ + /* We need the margin in order to ensure that in tables + * the headings are centered. */ + margin-top: 12px; + margin-bottom: 12px; } CAPTION { font-weight: bold @@ -210,119 +213,35 @@ SPAN.vhdlchar { color: #000000 } SPAN.vhdlkeyword { color: #700070 } SPAN.vhdllogic { color: #ff0000 } -.mdescLeft { - padding: 0px 8px 4px 8px; - font-size: 90%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.mdescRight { - padding: 0px 8px 4px 8px; - font-size: 90%; - font-style: italic; - background-color: #FAFAFA; - border-top: 1px none #E0E0E0; - border-right: 1px none #E0E0E0; - border-bottom: 1px none #E0E0E0; - border-left: 1px none #E0E0E0; - margin: 0px; -} -.memItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 90%; +/* @group Member Descriptions */ + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FAFAFA; + border: none; + margin: 4px; + padding: 1px 0 0 8px; } -.memItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 90%; + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; } -.memTemplItemLeft { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 90%; + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #ccc; } -.memTemplItemRight { - padding: 1px 8px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: none; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - background-color: #FAFAFA; - font-size: 90%; + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; } + .memTemplParams { - padding: 1px 0px 0px 8px; - margin: 4px; - border-top-width: 1px; - border-right-width: 1px; - border-bottom-width: 1px; - border-left-width: 1px; - border-top-color: #E0E0E0; - border-right-color: #E0E0E0; - border-bottom-color: #E0E0E0; - border-left-color: #E0E0E0; - border-top-style: solid; - border-right-style: none; - border-bottom-style: none; - border-left-style: none; - color: #606060; - background-color: #FAFAFA; - font-size: 90%; + color: #606060; + white-space: nowrap; } + .search { color: #003399; font-weight: bold; @@ -355,62 +274,85 @@ TH.dirtab { background: #e8eef2; font-weight: bold; } -HR { - height: 1px; - border: none; - border-top: 1px solid black; +hr { + height: 0; + border: none; + border-top: 1px solid #666; } -/* Style for detailed member documentation */ +/* Styles for detailed member documentation */ + .memtemplate { - font-size: 90%; - color: #606060; - font-weight: normal; - margin-left: 3px; + font-size: 80%; + color: #606060; + font-weight: normal; + margin-left: 3px; } + .memnav { - background-color: #e8eef2; - border: 1px solid #84b0c7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; } + .memitem { - padding: 4px; - background-color: #eef3f5; - border-width: 1px; - border-style: solid; - border-color: #dedeee; - -moz-border-radius: 8px 8px 8px 8px; + padding: 0; + margin-bottom: 10px; } + .memname { - white-space: nowrap; - font-weight: bold; + white-space: nowrap; + font-weight: bold; } -.memdoc{ - padding-left: 10px; + +.memproto, .memdoc { + border: 1px solid #84b0c7; } + .memproto { - background-color: #d5e1e8; - width: 100%; - border-width: 1px; - border-style: solid; - border-color: #84b0c7; - font-weight: bold; - -moz-border-radius: 8px 8px 8px 8px; + padding: 2; + background-color: #d5e1e8; + font-weight: bold; + -webkit-border-top-left-radius: 8px; + -webkit-border-top-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -moz-border-radius-topleft: 8px; + -moz-border-radius-topright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + +} + +.memdoc { + padding: 2px 5px; + background-color: #eef3f5; + border-top-width: 0; + -webkit-border-bottom-left-radius: 8px; + -webkit-border-bottom-right-radius: 8px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -moz-border-radius-bottomleft: 8px; + -moz-border-radius-bottomright: 8px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; } + .paramkey { - text-align: right; + text-align: right; } + .paramtype { - white-space: nowrap; + white-space: nowrap; } + .paramname { - color: #602020; - font-style: italic; - white-space: nowrap; + color: #602020; + white-space: nowrap; } +.paramname em { + font-style: normal; +} + /* End Styling for detailed member documentation */ /* for the tree view */ @@ -530,11 +472,8 @@ table.tutorial_code td { padding: 2pt 5pt 2pt 5pt; vertical-align: middle; } - DIV.eimainmenu { text-align: center; /* border-top: solid; */ /* border-bottom: solid; */ } - - -- cgit v1.2.3