aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-08-28 00:33:58 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-08-28 00:33:58 +0000
commit70266b4d05d2565326d014f678d6c812edd3e27e (patch)
tree5f4deff0c9bb22ec364b877e2bba200b3b3e0463
parentf7de12de690f1b3a7444c503d1a97ca7efc2fa16 (diff)
doc + quick bug fix in Matrix ctor
-rw-r--r--Eigen/Core1
-rw-r--r--Eigen/src/Core/Matrix.h3
-rw-r--r--Eigen/src/Core/util/ForwardDeclarations.h2
-rw-r--r--Eigen/src/Core/util/StaticAssert.h1
-rw-r--r--Eigen/src/Geometry/Rotation.h3
-rw-r--r--doc/QuickStartGuide.dox32
-rw-r--r--doc/eigendoxy.css3
7 files changed, 30 insertions, 15 deletions
diff --git a/Eigen/Core b/Eigen/Core
index b1b61ebc2..ac00f9354 100644
--- a/Eigen/Core
+++ b/Eigen/Core
@@ -25,6 +25,7 @@ namespace Eigen {
*/
#include "src/Core/util/Memory.h"
+
#include "src/Core/NumTraits.h"
#include "src/Core/MathFunctions.h"
#include "src/Core/GenericPacketMath.h"
diff --git a/Eigen/src/Core/Matrix.h b/Eigen/src/Core/Matrix.h
index fb531c1e8..4fce434e9 100644
--- a/Eigen/src/Core/Matrix.h
+++ b/Eigen/src/Core/Matrix.h
@@ -335,7 +335,8 @@ class Matrix
inline Matrix(const MatrixBase<OtherDerived>& other)
: m_storage(other.rows() * other.cols(), other.rows(), other.cols())
{
- Base::lazyAssign(other.derived());
+ ei_assign_selector<Matrix,OtherDerived,false>::run(*this, other.derived());
+ //Base::operator=(other.derived());
}
/** Copy constructor */
inline Matrix(const Matrix& other)
diff --git a/Eigen/src/Core/util/ForwardDeclarations.h b/Eigen/src/Core/util/ForwardDeclarations.h
index 3d9f99644..8e40bea0f 100644
--- a/Eigen/src/Core/util/ForwardDeclarations.h
+++ b/Eigen/src/Core/util/ForwardDeclarations.h
@@ -81,6 +81,8 @@ template<typename Scalar> struct ei_scalar_min_op;
template<typename Scalar> struct ei_scalar_max_op;
template<typename Scalar> struct ei_scalar_random_op;
template<typename Scalar> struct ei_scalar_add_op;
+template<typename Scalar> struct ei_scalar_constant_op;
+template<typename Scalar> struct ei_scalar_identity_op;
struct IOFormat;
diff --git a/Eigen/src/Core/util/StaticAssert.h b/Eigen/src/Core/util/StaticAssert.h
index cf5e7239a..ad46bde46 100644
--- a/Eigen/src/Core/util/StaticAssert.h
+++ b/Eigen/src/Core/util/StaticAssert.h
@@ -121,5 +121,4 @@
|| int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))),\
you_mixed_matrices_of_different_sizes)
-
#endif // EIGEN_STATIC_ASSERT_H
diff --git a/Eigen/src/Geometry/Rotation.h b/Eigen/src/Geometry/Rotation.h
index a0421b211..a7127d634 100644
--- a/Eigen/src/Geometry/Rotation.h
+++ b/Eigen/src/Geometry/Rotation.h
@@ -161,8 +161,7 @@ public:
{ return m_angle += other.m_angle; }
/** Applies the rotation to a 2D vector */
- template<typename Derived>
- Vector2 operator* (const MatrixBase<Derived>& vec) const
+ Vector2 operator* (const Vector2& vec) const
{ return toRotationMatrix() * vec; }
template<typename Derived>
diff --git a/doc/QuickStartGuide.dox b/doc/QuickStartGuide.dox
index a4f2db946..a2fe4f23d 100644
--- a/doc/QuickStartGuide.dox
+++ b/doc/QuickStartGuide.dox
@@ -187,8 +187,8 @@ MatrixXi mat2x2 = Map<MatrixXi>(data,2,2);
-\subsection TutorialCommaInit CommaInitializer
-Eigen also offer a comma initializer syntax which allows you to set all the coefficients of a matrix to specific values:
+\subsection TutorialCommaInit Comma initializer
+Eigen also offer a \link MatrixBase::operator<<(const Scalar &) comma initializer syntax \endlink which allows you to set all the coefficients of a matrix to specific values:
<table class="tutorial_code"><tr><td>
\include Tutorial_commainit_01.cpp
</td>
@@ -206,7 +206,8 @@ output:
\verbinclude Tutorial_commainit_02.out
</td></tr></table>
-<span class="note">\b Side \b note: here .finished() is used to get the actual matrix object once the comma initialization
+<span class="note">\b Side \b note: here \link CommaInitializer::finished() .finished() \endlink
+is used to get the actual matrix object once the comma initialization
of our temporary submatrix is done. Note that despite the appearant complexity of such an expression
Eigen's comma initializer usually yields to very optimized code without any overhead.</span>
@@ -263,7 +264,7 @@ most common coefficient wise operators:
<table class="noborder">
<tr><td>
<table class="tutorial_code" style="margin-right:10pt">
-<tr><td>Coefficient wise product</td>
+<tr><td>Coefficient wise \link Cwise::operator*() product \endlink</td>
<td>\code mat3 = mat1.cwise() * mat2; \endcode
</td></tr>
<tr><td>
@@ -274,11 +275,11 @@ mat3.cwise() -= scalar;
\endcode
</td></tr>
<tr><td>
-Coefficient wise division</td><td>\code
+Coefficient wise \link Cwise::operator/() division \endlink</td><td>\code
mat3 = mat1.cwise() / mat2; \endcode
</td></tr>
<tr><td>
-Coefficient wise reciprocal</td><td>\code
+Coefficient wise \link Cwise::inverse() reciprocal \endlink</td><td>\code
mat3 = mat1.cwise().inverse(); \endcode
</td></tr>
<tr><td>
@@ -293,13 +294,17 @@ etc.
</td>
<td><table class="tutorial_code">
<tr><td>
-Trigo:\n sin, cos, tan</td><td>\code
+\b Trigo: \n
+\link Cwise::sin sin \endlink, \link Cwise::cos cos \endlink,
+\link Cwise::tan tan \endlink</td><td>\code
mat3 = mat1.cwise().sin();
etc.
\endcode
</td></tr>
<tr><td>
-Power:\n pow, square, cube,\n sqrt, exp, log</td><td>\code
+\b Power: \n \link Cwise::pow() pow \endlink, \link Cwise::square square \endlink,
+\link Cwise::cube cube \endlink, \n \link Cwise::sqrt sqrt \endlink,
+\link Cwise::exp exp \endlink, \link Cwise::log log \endlink </td><td>\code
mat3 = mat1.cwise().square();
mat3 = mat1.cwise().pow(5);
mat3 = mat1.cwise().log();
@@ -307,7 +312,9 @@ etc.
\endcode
</td></tr>
<tr><td>
-min, max, absolute value</td><td>\code
+\link Cwise::min min \endlink, \link Cwise::max max \endlink, \n
+absolute value (\link Cwise::abs() abs \endlink, \link Cwise::abs2() abs2 \endlink
+</td><td>\code
mat3 = mat1.cwise().min(mat2);
mat3 = mat1.cwise().max(mat2);
mat3 = mat1.cwise().abs(mat2);
@@ -428,6 +435,13 @@ mat3 = mat1.conjugate().transpose() * mat2;
\endcode
</td></tr>
<tr><td>
+returns a \link MatrixBase::normalized() normalized \endlink vector \n
+\link MatrixBase::normalize() normalize \endlink a vector
+</td><td>\code
+vec3 = vec1.normalized();
+vec1.normalize();\endcode
+</td></tr>
+<tr><td>
\link MatrixBase::asDiagonal() make a diagonal matrix \endlink from a vector \n
\b Note: this product is automatically optimized !</td><td>\code
mat3 = mat1 * vec2.asDiagonal();\endcode
diff --git a/doc/eigendoxy.css b/doc/eigendoxy.css
index b64c49ae9..949a1368a 100644
--- a/doc/eigendoxy.css
+++ b/doc/eigendoxy.css
@@ -452,12 +452,11 @@ A.top:hover, A.logo:hover {
background-color: transparent;font-weight : bolder;
}
SPAN.note {
- font-size: 7pt;
+ font-size: 8.5pt;
}
DIV.navigation {
min-height : 64px;
-/* background : url("Eigen_Silly_Professor_64x64.png") no-repeat left; */
padding-left : 80px;
padding-top : 5px;
}