aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Eigen/Core/DynBlock.h21
-rw-r--r--Eigen/Core/MatrixBase.h2
-rw-r--r--doc/CMakeLists.txt1
-rw-r--r--doc/Doxyfile.in6
-rw-r--r--doc/examples/CMakeLists.txt14
-rw-r--r--doc/examples/class_DynBlock.cpp19
-rw-r--r--doc/snippets/MatrixBase_dynBlock.cpp (renamed from doc/snippets/function_dynBlock.cpp)0
-rw-r--r--doc/snippets/compile_snippet.cpp.in1
8 files changed, 61 insertions, 3 deletions
diff --git a/Eigen/Core/DynBlock.h b/Eigen/Core/DynBlock.h
index b6795151c..39c83584d 100644
--- a/Eigen/Core/DynBlock.h
+++ b/Eigen/Core/DynBlock.h
@@ -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>
diff --git a/Eigen/Core/MatrixBase.h b/Eigen/Core/MatrixBase.h
index 6ca815ef0..3cc4e5e41 100644
--- a/Eigen/Core/MatrixBase.h
+++ b/Eigen/Core/MatrixBase.h
@@ -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 */
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index ba8798e9c..90228f071 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -5,6 +5,7 @@ CONFIGURE_FILE(
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
)
+ADD_SUBDIRECTORY(examples)
ADD_SUBDIRECTORY(snippets)
ENDIF(BUILD_DOC)
diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index fb0bd8137..423a6eac6 100644
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -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
diff --git a/doc/examples/CMakeLists.txt b/doc/examples/CMakeLists.txt
new file mode 100644
index 000000000..8ced15735
--- /dev/null
+++ b/doc/examples/CMakeLists.txt
@@ -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)
diff --git a/doc/examples/class_DynBlock.cpp b/doc/examples/class_DynBlock.cpp
new file mode 100644
index 000000000..8407d8733
--- /dev/null
+++ b/doc/examples/class_DynBlock.cpp
@@ -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;
+}
diff --git a/doc/snippets/function_dynBlock.cpp b/doc/snippets/MatrixBase_dynBlock.cpp
index 5ca7655ed..5ca7655ed 100644
--- a/doc/snippets/function_dynBlock.cpp
+++ b/doc/snippets/MatrixBase_dynBlock.cpp
diff --git a/doc/snippets/compile_snippet.cpp.in b/doc/snippets/compile_snippet.cpp.in
index 552a5db21..952a3ee81 100644
--- a/doc/snippets/compile_snippet.cpp.in
+++ b/doc/snippets/compile_snippet.cpp.in
@@ -4,4 +4,5 @@ using namespace std;
int main(int, char**)
{
${snippet_source_code}
+return 0;
}