diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-02-04 09:44:44 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-02-04 09:44:44 +0000 |
commit | 44a527dfa50ce9c473cbf1f446b8b6f406d4bc91 (patch) | |
tree | a0f045d2a4c22a38e08e1b1d1ce0e17e630898c7 /doc/UnalignedArrayAssert.dox | |
parent | b0dd22cc7271523ba83d2bc8a85504b8445587b5 (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.dox | 77 |
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. - -*/ - -} |