mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-30 17:40:05 +08:00
now we also have a examples/ directory for self-contained examples,
and this is already used to document DynBlock
This commit is contained in:
parent
eb6ee51fdf
commit
c38156a217
@ -26,6 +26,23 @@
|
||||
#ifndef EIGEN_DYNBLOCK_H
|
||||
#define EIGEN_DYNBLOCK_H
|
||||
|
||||
/** \class DynBlock
|
||||
*
|
||||
* \brief Expression of a dynamic-size block
|
||||
*
|
||||
* This class represents an expression of a dynamic-size block. It is the return
|
||||
* type of MatrixBase::dynBlock() and most of the time this is the only way this
|
||||
* class is used.
|
||||
*
|
||||
* However, if you want to directly maniputate dynamic-size block expressions,
|
||||
* for instance 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_DynBlock.cpp
|
||||
* Output:
|
||||
* \verbinclude class_DynBlock.out
|
||||
*/
|
||||
template<typename MatrixType> class DynBlock
|
||||
: public MatrixBase<typename MatrixType::Scalar, DynBlock<MatrixType> >
|
||||
{
|
||||
@ -84,6 +101,10 @@ template<typename MatrixType> class DynBlock
|
||||
*
|
||||
* Example:
|
||||
* \include MatrixBase_dynBlock.cpp
|
||||
* Output:
|
||||
* \verbinclude MatrixBase_dynBlock.out
|
||||
*
|
||||
* \sa class DynBlock
|
||||
*/
|
||||
template<typename Scalar, typename Derived>
|
||||
DynBlock<Derived> MatrixBase<Scalar, Derived>
|
||||
|
@ -85,7 +85,7 @@ template<typename Scalar, typename Derived> class MatrixBase
|
||||
|
||||
/** This is the "real scalar" type; if the \a Scalar type is already real numbers
|
||||
* (e.g. int, float or double) then RealScalar is just the same as \a Scalar. If
|
||||
* \Scalar is \a std::complex<T> then RealScalar is \a T. */
|
||||
* \a Scalar is \a std::complex<T> then RealScalar is \a T. */
|
||||
typedef typename NumTraits<Scalar>::Real RealScalar;
|
||||
|
||||
/** \returns the number of rows. \sa cols(), RowsAtCompileTime */
|
||||
|
@ -5,6 +5,7 @@ CONFIGURE_FILE(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||
)
|
||||
|
||||
ADD_SUBDIRECTORY(examples)
|
||||
ADD_SUBDIRECTORY(snippets)
|
||||
|
||||
ENDIF(BUILD_DOC)
|
||||
|
@ -85,7 +85,7 @@ WARN_LOGFILE =
|
||||
#---------------------------------------------------------------------------
|
||||
# configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ${CMAKE_SOURCE_DIR}
|
||||
INPUT = ${CMAKE_SOURCE_DIR}/doc ${CMAKE_SOURCE_DIR}/Eigen
|
||||
INPUT_ENCODING = UTF-8
|
||||
FILE_PATTERNS = *.c \
|
||||
*.cc \
|
||||
@ -133,7 +133,9 @@ EXCLUDE =
|
||||
EXCLUDE_SYMLINKS = NO
|
||||
EXCLUDE_PATTERNS =
|
||||
EXCLUDE_SYMBOLS =
|
||||
EXAMPLE_PATH = ${CMAKE_SOURCE_DIR}/doc/examples \
|
||||
EXAMPLE_PATH = ${CMAKE_SOURCE_DIR}/doc/snippets \
|
||||
${CMAKE_BINARY_DIR}/doc/snippets \
|
||||
${CMAKE_SOURCE_DIR}/doc/examples \
|
||||
${CMAKE_BINARY_DIR}/doc/examples
|
||||
EXAMPLE_PATTERNS = *
|
||||
EXAMPLE_RECURSIVE = NO
|
||||
|
14
doc/examples/CMakeLists.txt
Normal file
14
doc/examples/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
||||
FILE(GLOB examples_SRCS "*.cpp")
|
||||
|
||||
FOREACH(example_src ${examples_SRCS})
|
||||
GET_FILENAME_COMPONENT(example ${example_src} NAME_WE)
|
||||
ADD_EXECUTABLE(${example} ${example_src})
|
||||
GET_TARGET_PROPERTY(example_executable
|
||||
${example} LOCATION)
|
||||
ADD_CUSTOM_COMMAND(
|
||||
TARGET ${example}
|
||||
POST_BUILD
|
||||
COMMAND ${example_executable}
|
||||
ARGS >${CMAKE_CURRENT_BINARY_DIR}/${example}.out
|
||||
)
|
||||
ENDFOREACH(example_src)
|
19
doc/examples/class_DynBlock.cpp
Normal file
19
doc/examples/class_DynBlock.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
#include <Eigen/Core.h>
|
||||
USING_EIGEN_DATA_TYPES
|
||||
using namespace std;
|
||||
|
||||
template<typename Scalar, typename Derived>
|
||||
Eigen::DynBlock<Derived>
|
||||
topLeftCorner(const Eigen::MatrixBase<Scalar, Derived>& m, int rows, int cols)
|
||||
{
|
||||
return m.dynBlock(0, 0, rows, cols);
|
||||
}
|
||||
|
||||
int main(int, char**)
|
||||
{
|
||||
Matrix4d m = Matrix4d::identity();
|
||||
cout << topLeftCorner(m, 2, 3) << endl;
|
||||
topLeftCorner(m, 2, 3) *= 5;
|
||||
cout << "Now the matrix m is:" << endl << m << endl;
|
||||
return 0;
|
||||
}
|
@ -4,4 +4,5 @@ using namespace std;
|
||||
int main(int, char**)
|
||||
{
|
||||
${snippet_source_code}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user