mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
* update the general TOC
* integrate the old geometry/sparse tutorial into the new one (they are better than nothing) * remove the old tutorial on the core module
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
namespace Eigen {
|
||||
|
||||
/** \page UnalignedArrayAssert Troubleshooting - Explanation of the assertion on unaligned arrays
|
||||
/** \page TopicUnalignedArrayAssert 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>
|
||||
@@ -49,9 +49,9 @@ class Foo
|
||||
Foo *foo = new Foo;
|
||||
\endcode
|
||||
|
||||
then you need to read this separate page: \ref StructHavingEigenMembers "Structures Having Eigen Members".
|
||||
then you need to read this separate page: \ref TopicStructHavingEigenMembers "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".
|
||||
Note that here, Eigen::Vector2d is only used as an example, more generally the issue arises for all \ref TopicFixedSizeVectorizable "fixed-size vectorizable Eigen types".
|
||||
|
||||
\section c2 Cause 2: STL Containers
|
||||
|
||||
@@ -63,9 +63,9 @@ struct my_class { ... Eigen::Matrix2f m; ... };
|
||||
std::map<int, my_class> my_map;
|
||||
\endcode
|
||||
|
||||
then you need to read this separate page: \ref StlContainers "Using STL Containers with Eigen".
|
||||
then you need to read this separate page: \ref TopicStlContainers "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" and \ref StructHavingEigenMembers "structures having such Eigen objects as member".
|
||||
Note that here, Eigen::Matrix2f is only used as an example, more generally the issue arises for all \ref TopicFixedSizeVectorizable "fixed-size vectorizable Eigen types" and \ref TopicStructHavingEigenMembers "structures having such Eigen objects as member".
|
||||
|
||||
\section c3 Cause 3: Passing Eigen objects by value
|
||||
|
||||
@@ -75,9 +75,9 @@ If some function in your code is getting an Eigen object passed by value, like t
|
||||
void func(Eigen::Vector4d v);
|
||||
\endcode
|
||||
|
||||
then you need to read this separate page: \ref PassingByValue "Passing Eigen objects by value to functions".
|
||||
then you need to read this separate page: \ref TopicPassingByValue "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".
|
||||
Note that here, Eigen::Vector4d is only used as an example, more generally the issue arises for all \ref TopicFixedSizeVectorizable "fixed-size vectorizable Eigen types".
|
||||
|
||||
\section c4 Cause 4: Compiler making a wrong assumption on stack alignment (for instance GCC on Windows)
|
||||
|
||||
@@ -91,13 +91,13 @@ void foo()
|
||||
}
|
||||
\endcode
|
||||
|
||||
then you need to read this separate page: \ref WrongStackAlignment "Compiler making a wrong assumption on stack alignment".
|
||||
then you need to read this separate page: \ref TopicWrongStackAlignment "Compiler making a wrong assumption on stack alignment".
|
||||
|
||||
Note that here, Eigen::Quaternionf is only used as an example, more generally the issue arises for all \ref FixedSizeVectorizable "fixed-size vectorizable Eigen types".
|
||||
Note that here, Eigen::Quaternionf is only used as an example, more generally the issue arises for all \ref TopicFixedSizeVectorizable "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.
|
||||
\ref TopicFixedSizeVectorizable "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".
|
||||
|
||||
|
||||
Reference in New Issue
Block a user