* 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:
Gael Guennebaud
2010-07-04 10:14:47 +02:00
parent 11329f49f4
commit 41ea92d355
15 changed files with 71 additions and 826 deletions

View File

@@ -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".