aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/UnalignedArrayAssert.dox
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-02-04 09:44:44 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-02-04 09:44:44 +0000
commit44a527dfa50ce9c473cbf1f446b8b6f406d4bc91 (patch)
treea0f045d2a4c22a38e08e1b1d1ce0e17e630898c7 /doc/UnalignedArrayAssert.dox
parentb0dd22cc7271523ba83d2bc8a85504b8445587b5 (diff)
* classify and sort the doxygen "related pages"
by tweaking the filename and adding 2 categories: Troubleshooting and Advanced * use the EXCLUDE_SYMBOLS to clean the class list (insteaded of a homemade bash script) * remove the broken "exemple list" * re-structure the unsupported directory as mentionned in the ML and integrate the doc as follow: - snippets of the unsupported directory are directly imported from the main snippets/CMakefile.txt (no need to duplicate code) - add a top level "Unsupported modules" group - unsupported modules have to defined their own sub group and nest it using \ingroup Unsupported_modules - then a pair of //@{ //@} will put everything in the submodule - this is just a proposal !
Diffstat (limited to 'doc/UnalignedArrayAssert.dox')
-rw-r--r--doc/UnalignedArrayAssert.dox77
1 files changed, 0 insertions, 77 deletions
diff --git a/doc/UnalignedArrayAssert.dox b/doc/UnalignedArrayAssert.dox
deleted file mode 100644
index 05c784ca9..000000000
--- a/doc/UnalignedArrayAssert.dox
+++ /dev/null
@@ -1,77 +0,0 @@
-namespace Eigen {
-
-/** \page UnalignedArrayAssert Explanation of the assertion on unaligned arrays
-
-Hello! You are seeing this webpage because your program terminated on an assertion failure like this one:
-<pre>
-my_program: path/to/eigen2/Eigen/src/Core/MatrixStorage.h:44:
-Eigen::ei_matrix_array<T, Size, MatrixOptions, Align>::ei_matrix_array()
-[with T = double, int Size = 2, int MatrixOptions = 2, bool Align = true]:
-Assertion `(reinterpret_cast<size_t>(array) & 0xf) == 0 && "this assertion
-is explained here: http://eigen.tuxfamily.org/dox/UnalignedArrayAssert.html
-**** READ THIS WEB PAGE !!! ****"' failed.
-</pre>
-
-There are 3 known causes for this issue. Please read on to understand them and learn how to fix them.
-
-\b Table \b of \b contents
- - \ref c1
- - \ref c2
- - \ref c3
- - \ref explanation
-
-\section c1 Cause 1: Structures having Eigen objects as members
-
-If you have code like this,
-
-\code
-class Foo
-{
- //...
- Eigen::Vector2d v;
- //...
-};
-//...
-Foo *foo = new Foo;
-\endcode
-
-then you need to read this separate page: \ref StructHavingEigenMembers "Structures Having Eigen Members".
-
-Note that here, Eigen::Vector2d is only used as an example, more generally the issue arises for all \ref FixedSizeVectorizable "fixed-size vectorizable Eigen types".
-
-\section c2 Cause 2: STL Containers
-
-If you use STL Containers such as std::vector, std::map, ..., with Eigen objects, like this,
-
-\code
-std::vector<Eigen::Matrix2f> my_vector;
-std::map<int, Eigen::Matrix2f> my_map;
-\endcode
-
-then you need to read this separate page: \ref StlContainers "Using STL Containers with Eigen".
-
-Note that here, Eigen::Matrix2f is only used as an example, more generally the issue arises for all \ref FixedSizeVectorizable "fixed-size vectorizable Eigen types".
-
-\section c3 Cause 3: Passing Eigen objects by value
-
-If some function in your code is getting an Eigen object passed by value, like this,
-
-\code
-void func(Eigen::Vector4d v);
-\endcode
-
-then you need to read this separate page: \ref PassingByValue "Passing Eigen objects by value to functions".
-
-Note that here, Eigen::Vector4d is only used as an example, more generally the issue arises for all \ref FixedSizeVectorizable "fixed-size vectorizable Eigen types".
-
-\section explanation General explanation of this assertion
-
-\ref FixedSizeVectorizable "fixed-size vectorizable Eigen objects" must absolutely be created at 16-byte-aligned locations, otherwise SIMD instructions adressing them will crash.
-
-Eigen normally takes care of these alignment issues for you, by setting an alignment attribute on them and by overloading their "operator new".
-
-However there are a few corner cases where these alignment settings get overridden: they are the possible causes for this assertion.
-
-*/
-
-}