diff options
author | Gael Guennebaud <g.gael@free.fr> | 2008-08-28 00:33:58 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2008-08-28 00:33:58 +0000 |
commit | 70266b4d05d2565326d014f678d6c812edd3e27e (patch) | |
tree | 5f4deff0c9bb22ec364b877e2bba200b3b3e0463 | |
parent | f7de12de690f1b3a7444c503d1a97ca7efc2fa16 (diff) |
doc + quick bug fix in Matrix ctor
-rw-r--r-- | Eigen/Core | 1 | ||||
-rw-r--r-- | Eigen/src/Core/Matrix.h | 3 | ||||
-rw-r--r-- | Eigen/src/Core/util/ForwardDeclarations.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/util/StaticAssert.h | 1 | ||||
-rw-r--r-- | Eigen/src/Geometry/Rotation.h | 3 | ||||
-rw-r--r-- | doc/QuickStartGuide.dox | 32 | ||||
-rw-r--r-- | doc/eigendoxy.css | 3 |
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; } |