Medial Code Documentation
Loading...
Searching...
No Matches
MatrixBase.h
1// This file is part of Eigen, a lightweight C++ template library
2// for linear algebra.
3//
4// Copyright (C) 2006-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
5// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
6//
7// This Source Code Form is subject to the terms of the Mozilla
8// Public License v. 2.0. If a copy of the MPL was not distributed
9// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
11#ifndef EIGEN_MATRIXBASE_H
12#define EIGEN_MATRIXBASE_H
13
14namespace Eigen {
15
48template<typename Derived> class MatrixBase
49 : public DenseBase<Derived>
50{
51 public:
52#ifndef EIGEN_PARSED_BY_DOXYGEN
54 typedef typename internal::traits<Derived>::StorageKind StorageKind;
55 typedef typename internal::traits<Derived>::StorageIndex StorageIndex;
56 typedef typename internal::traits<Derived>::Scalar Scalar;
57 typedef typename internal::packet_traits<Scalar>::type PacketScalar;
58 typedef typename NumTraits<Scalar>::Real RealScalar;
59
68 using Base::Flags;
69
70 using Base::derived;
71 using Base::const_cast_derived;
72 using Base::rows;
73 using Base::cols;
74 using Base::size;
75 using Base::coeff;
76 using Base::coeffRef;
77 using Base::lazyAssign;
78 using Base::eval;
79 using Base::operator+=;
80 using Base::operator-=;
81 using Base::operator*=;
82 using Base::operator/=;
83 using Base::operator*;
84 using Base::operator/;
85
86 typedef typename Base::CoeffReturnType CoeffReturnType;
88 typedef typename Base::RowXpr RowXpr;
89 typedef typename Base::ColXpr ColXpr;
90#endif // not EIGEN_PARSED_BY_DOXYGEN
91
92
93
94#ifndef EIGEN_PARSED_BY_DOXYGEN
96 typedef Matrix<Scalar,EIGEN_SIZE_MAX(RowsAtCompileTime,ColsAtCompileTime),
98#endif // not EIGEN_PARSED_BY_DOXYGEN
99
103 inline Index diagonalSize() const { return (std::min)(rows(),cols()); }
104
105 typedef typename Base::PlainObject PlainObject;
106
107#ifndef EIGEN_PARSED_BY_DOXYGEN
109 typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject> ConstantReturnType;
113 ConstTransposeReturnType
114 >::type AdjointReturnType;
118 typedef CwiseNullaryOp<internal::scalar_identity_op<Scalar>,PlainObject> IdentityReturnType;
123#endif // not EIGEN_PARSED_BY_DOXYGEN
124
125#define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::MatrixBase
126# include "../plugins/CommonCwiseUnaryOps.h"
127# include "../plugins/CommonCwiseBinaryOps.h"
128# include "../plugins/MatrixCwiseUnaryOps.h"
129# include "../plugins/MatrixCwiseBinaryOps.h"
130# ifdef EIGEN_MATRIXBASE_PLUGIN
131# include EIGEN_MATRIXBASE_PLUGIN
132# endif
133#undef EIGEN_CURRENT_STORAGE_BASE_CLASS
134
139 Derived& operator=(const MatrixBase& other);
140
141 // We cannot inherit here via Base::operator= since it is causing
142 // trouble with MSVC.
143
144 template <typename OtherDerived>
146 Derived& operator=(const DenseBase<OtherDerived>& other);
147
148 template <typename OtherDerived>
150 Derived& operator=(const EigenBase<OtherDerived>& other);
151
152 template<typename OtherDerived>
154 Derived& operator=(const ReturnByValue<OtherDerived>& other);
155
156 template<typename OtherDerived>
158 Derived& operator+=(const MatrixBase<OtherDerived>& other);
159 template<typename OtherDerived>
161 Derived& operator-=(const MatrixBase<OtherDerived>& other);
162
163#ifdef __CUDACC__
164 template<typename OtherDerived>
167 operator*(const MatrixBase<OtherDerived> &other) const
168 { return this->lazyProduct(other); }
169#else
170
171 template<typename OtherDerived>
172 const Product<Derived,OtherDerived>
173 operator*(const MatrixBase<OtherDerived> &other) const;
174
175#endif
176
177 template<typename OtherDerived>
178 EIGEN_DEVICE_FUNC
179 const Product<Derived,OtherDerived,LazyProduct>
180 lazyProduct(const MatrixBase<OtherDerived> &other) const;
181
182 template<typename OtherDerived>
183 Derived& operator*=(const EigenBase<OtherDerived>& other);
184
185 template<typename OtherDerived>
187
188 template<typename OtherDerived>
190
191 template<typename DiagonalDerived>
195
196 template<typename OtherDerived>
199 dot(const MatrixBase<OtherDerived>& other) const;
200
203 RealScalar stableNorm() const;
204 RealScalar blueNorm() const;
205 RealScalar hypotNorm() const;
208
211
215
219
220 template<int Index> struct DiagonalIndexReturnType { typedef Diagonal<Derived,Index> Type; };
221 template<int Index> struct ConstDiagonalIndexReturnType { typedef const Diagonal<const Derived,Index> Type; };
222
223 template<int Index>
226
227 template<int Index>
230
233
238
239 template<unsigned int Mode> struct TriangularViewReturnType { typedef TriangularView<Derived, Mode> Type; };
240 template<unsigned int Mode> struct ConstTriangularViewReturnType { typedef const TriangularView<const Derived, Mode> Type; };
241
242 template<unsigned int Mode>
244 typename TriangularViewReturnType<Mode>::Type triangularView();
245 template<unsigned int Mode>
247 typename ConstTriangularViewReturnType<Mode>::Type triangularView() const;
248
249 template<unsigned int UpLo> struct SelfAdjointViewReturnType { typedef SelfAdjointView<Derived, UpLo> Type; };
250 template<unsigned int UpLo> struct ConstSelfAdjointViewReturnType { typedef const SelfAdjointView<const Derived, UpLo> Type; };
251
252 template<unsigned int UpLo>
254 typename SelfAdjointViewReturnType<UpLo>::Type selfadjointView();
255 template<unsigned int UpLo>
257 typename ConstSelfAdjointViewReturnType<UpLo>::Type selfadjointView() const;
258
259 const SparseView<Derived> sparseView(const Scalar& m_reference = Scalar(0),
260 const typename NumTraits<Scalar>::Real& m_epsilon = NumTraits<Scalar>::dummy_precision()) const;
262 EIGEN_DEVICE_FUNC static const IdentityReturnType Identity(Index rows, Index cols);
263 EIGEN_DEVICE_FUNC static const BasisReturnType Unit(Index size, Index i);
264 EIGEN_DEVICE_FUNC static const BasisReturnType Unit(Index i);
269
272 const PermutationWrapper<const Derived> asPermutation() const;
273
275 Derived& setIdentity();
277 Derived& setIdentity(Index rows, Index cols);
278
279 bool isIdentity(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
280 bool isDiagonal(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
281
282 bool isUpperTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
283 bool isLowerTriangular(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
284
285 template<typename OtherDerived>
286 bool isOrthogonal(const MatrixBase<OtherDerived>& other,
287 const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
288 bool isUnitary(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
289
294 template<typename OtherDerived>
295 inline bool operator==(const MatrixBase<OtherDerived>& other) const
296 { return cwiseEqual(other).all(); }
297
302 template<typename OtherDerived>
303 inline bool operator!=(const MatrixBase<OtherDerived>& other) const
304 { return cwiseNotEqual(other).any(); }
305
307
308 // TODO forceAlignedAccess is temporarily disabled
309 // Need to find a nicer workaround.
310 inline const Derived& forceAlignedAccess() const { return derived(); }
311 inline Derived& forceAlignedAccess() { return derived(); }
312 template<bool Enable> inline const Derived& forceAlignedAccessIf() const { return derived(); }
313 template<bool Enable> inline Derived& forceAlignedAccessIf() { return derived(); }
314
315 EIGEN_DEVICE_FUNC Scalar trace() const;
316
317 template<int p> EIGEN_DEVICE_FUNC RealScalar lpNorm() const;
318
319 EIGEN_DEVICE_FUNC MatrixBase<Derived>& matrix() { return *this; }
320 EIGEN_DEVICE_FUNC const MatrixBase<Derived>& matrix() const { return *this; }
321
324 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ArrayWrapper<Derived> array() { return ArrayWrapper<Derived>(derived()); }
327 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArrayWrapper<const Derived> array() const { return ArrayWrapper<const Derived>(derived()); }
328
330
332 inline const FullPivLU<PlainObject> fullPivLu() const;
334 inline const PartialPivLU<PlainObject> partialPivLu() const;
335
337 inline const PartialPivLU<PlainObject> lu() const;
338
340 inline const Inverse<Derived> inverse() const;
341
342 template<typename ResultType>
344 ResultType& inverse,
345 typename ResultType::Scalar& determinant,
346 bool& invertible,
348 ) const;
349 template<typename ResultType>
350 inline void computeInverseWithCheck(
351 ResultType& inverse,
352 bool& invertible,
354 ) const;
355 Scalar determinant() const;
356
358
359 inline const LLT<PlainObject> llt() const;
360 inline const LDLT<PlainObject> ldlt() const;
361
363
364 inline const HouseholderQR<PlainObject> householderQr() const;
367
369
370 inline EigenvaluesReturnType eigenvalues() const;
371 inline RealScalar operatorNorm() const;
372
374
375 inline JacobiSVD<PlainObject> jacobiSvd(unsigned int computationOptions = 0) const;
376 inline BDCSVD<PlainObject> bdcSvd(unsigned int computationOptions = 0) const;
377
379
380 #ifndef EIGEN_PARSED_BY_DOXYGEN
386 #endif // EIGEN_PARSED_BY_DOXYGEN
387 template<typename OtherDerived>
390 cross(const MatrixBase<OtherDerived>& other) const;
391
392 template<typename OtherDerived>
394 inline PlainObject cross3(const MatrixBase<OtherDerived>& other) const;
395
397 inline PlainObject unitOrthogonal(void) const;
398
399 inline Matrix<Scalar,3,1> eulerAngles(Index a0, Index a1, Index a2) const;
400
401 inline ScalarMultipleReturnType operator*(const UniformScaling<Scalar>& s) const;
402 // put this as separate enum value to work around possible GCC 4.3 bug (?)
406 inline HomogeneousReturnType homogeneous() const;
407
408 enum {
409 SizeMinusOne = SizeAtCompileTime==Dynamic ? Dynamic : SizeAtCompileTime-1
410 };
411 typedef Block<const Derived,
413 internal::traits<Derived>::ColsAtCompileTime==1 ? 1 : SizeMinusOne> ConstStartMinusOne;
415 const ConstStartMinusOne > HNormalizedReturnType;
416
417 inline const HNormalizedReturnType hnormalized() const;
418
420
421 void makeHouseholderInPlace(Scalar& tau, RealScalar& beta);
422 template<typename EssentialPart>
424 Scalar& tau, RealScalar& beta) const;
425 template<typename EssentialPart>
427 const Scalar& tau,
428 Scalar* workspace);
429 template<typename EssentialPart>
431 const Scalar& tau,
432 Scalar* workspace);
433
435
436 template<typename OtherScalar>
437 void applyOnTheLeft(Index p, Index q, const JacobiRotation<OtherScalar>& j);
438 template<typename OtherScalar>
439 void applyOnTheRight(Index p, Index q, const JacobiRotation<OtherScalar>& j);
440
442
443 template<typename OtherDerived>
444 EIGEN_STRONG_INLINE const typename SparseMatrixBase<OtherDerived>::template CwiseProductDenseReturnType<Derived>::Type
445 cwiseProduct(const SparseMatrixBase<OtherDerived> &other) const
446 {
447 return other.cwiseProduct(derived());
448 }
449
451
452 typedef typename internal::stem_function<Scalar>::type StemFunction;
453 const MatrixExponentialReturnValue<Derived> exp() const;
454 const MatrixFunctionReturnValue<Derived> matrixFunction(StemFunction f) const;
455 const MatrixFunctionReturnValue<Derived> cosh() const;
456 const MatrixFunctionReturnValue<Derived> sinh() const;
457 const MatrixFunctionReturnValue<Derived> cos() const;
458 const MatrixFunctionReturnValue<Derived> sin() const;
459 const MatrixSquareRootReturnValue<Derived> sqrt() const;
460 const MatrixLogarithmReturnValue<Derived> log() const;
461 const MatrixPowerReturnValue<Derived> pow(const RealScalar& p) const;
462 const MatrixComplexPowerReturnValue<Derived> pow(const std::complex<RealScalar>& p) const;
463
464 protected:
465 EIGEN_DEVICE_FUNC MatrixBase() : Base() {}
466
467 private:
468 EIGEN_DEVICE_FUNC explicit MatrixBase(int);
469 EIGEN_DEVICE_FUNC MatrixBase(int,int);
470 template<typename OtherDerived> EIGEN_DEVICE_FUNC explicit MatrixBase(const MatrixBase<OtherDerived>&);
471 protected:
472 // mixing arrays and matrices is not legal
473 template<typename OtherDerived> Derived& operator+=(const ArrayBase<OtherDerived>& )
474 {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
475 // mixing arrays and matrices is not legal
476 template<typename OtherDerived> Derived& operator-=(const ArrayBase<OtherDerived>& )
477 {EIGEN_STATIC_ASSERT(std::ptrdiff_t(sizeof(typename OtherDerived::Scalar))==-1,YOU_CANNOT_MIX_ARRAYS_AND_MATRICES); return *this;}
478};
479
480
481/***************************************************************************
482* Implementation of matrix base methods
483***************************************************************************/
484
492template<typename Derived>
493template<typename OtherDerived>
494inline Derived&
496{
497 other.derived().applyThisOnTheRight(derived());
498 return derived();
499}
500
506template<typename Derived>
507template<typename OtherDerived>
509{
510 other.derived().applyThisOnTheRight(derived());
511}
512
518template<typename Derived>
519template<typename OtherDerived>
521{
522 other.derived().applyThisOnTheLeft(derived());
523}
524
525} // end namespace Eigen
526
527#endif // EIGEN_MATRIXBASE_H
Expression of a fixed-size or dynamic-size block.
Definition Block.h:106
Base class for all dense matrices, vectors, and arrays.
Definition DenseBase.h:49
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EvalReturnType eval() const
Definition DenseBase.h:405
@ IsVectorAtCompileTime
This is set to true if either the number of rows or the number of columns is known at compile-time to...
Definition DenseBase.h:157
@ SizeAtCompileTime
This is equal to the number of coefficients, i.e.
Definition DenseBase.h:117
@ MaxSizeAtCompileTime
This value is equal to the maximum possible number of coefficients that this expression might have.
Definition DenseBase.h:145
@ Flags
This stores expression Flags flags which may or may not be inherited by new expressions constructed f...
Definition DenseBase.h:164
@ ColsAtCompileTime
The number of columns at compile-time.
Definition DenseBase.h:110
@ MaxColsAtCompileTime
This value is equal to the maximum possible number of columns that this expression might have.
Definition DenseBase.h:134
@ MaxRowsAtCompileTime
This value is equal to the maximum possible number of rows that this expression might have.
Definition DenseBase.h:123
@ RowsAtCompileTime
The number of rows at compile-time.
Definition DenseBase.h:104
internal::conditional< internal::is_same< typenameinternal::traits< Derived >::XprKind, MatrixXpr >::value, PlainMatrix, PlainArray >::type PlainObject
The plain matrix or array type corresponding to this expression.
Definition DenseBase.h:209
EIGEN_DEVICE_FUNC Derived & lazyAssign(const DenseBase< OtherDerived > &other)
\ínternal Copies other into *this without evaluating other.
Base class for all dense matrices, vectors, and expressions.
Definition MatrixBase.h:50
bool operator!=(const MatrixBase< OtherDerived > &other) const
Definition MatrixBase.h:303
static EIGEN_DEVICE_FUNC const IdentityReturnType Identity()
Definition CwiseNullaryOp.h:705
const LDLT< PlainObject > ldlt() const
\cholesky_module
Definition LDLT.h:593
RealScalar operatorNorm() const
Computes the L2 operator norm.
Definition MatrixBaseEigenvalues.h:122
void computeInverseWithCheck(ResultType &inverse, bool &invertible, const RealScalar &absDeterminantThreshold=NumTraits< Scalar >::dummy_precision()) const
\lu_module
Definition InverseImpl.h:397
void makeHouseholder(EssentialPart &essential, Scalar &tau, RealScalar &beta) const
Computes the elementary reflector H such that: where the transformation H is: and the vector v is: ...
Definition Householder.h:65
EIGEN_DEVICE_FUNC const DiagonalWrapper< const Derived > asDiagonal() const
Definition DiagonalMatrix.h:278
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArrayWrapper< const Derived > array() const
Definition MatrixBase.h:327
bool isLowerTriangular(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition TriangularMatrix.h:676
@ SizeAtCompileTime
This is equal to the number of coefficients, i.e.
Definition DenseBase.h:117
EIGEN_DEVICE_FUNC const FullPivLU< PlainObject > fullPivLu() const
\lu_module
Definition FullPivLU.h:853
NoAlias< Derived, Eigen::MatrixBase > noalias()
Definition NoAlias.h:101
EIGEN_DEVICE_FUNC Scalar trace() const
Definition Redux.h:487
static EIGEN_DEVICE_FUNC const BasisReturnType UnitW()
Definition CwiseNullaryOp.h:866
EigenvaluesReturnType eigenvalues() const
Computes the eigenvalues of a matrix.
Definition MatrixBaseEigenvalues.h:67
EIGEN_DEVICE_FUNC Derived & setIdentity()
Writes the identity expression (not necessarily square) into *this.
Definition CwiseNullaryOp.h:779
static EIGEN_DEVICE_FUNC const BasisReturnType UnitX()
Definition CwiseNullaryOp.h:836
Derived & operator*=(const EigenBase< OtherDerived > &other)
replaces *this by *this * other.
Definition MatrixBase.h:495
void applyOnTheLeft(const EigenBase< OtherDerived > &other)
replaces *this by other * *this.
Definition MatrixBase.h:520
EIGEN_DEVICE_FUNC Index diagonalSize() const
Definition MatrixBase.h:103
Matrix< Scalar, EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime), EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime)> SquareMatrixType
type of the equivalent square matrix
Definition MatrixBase.h:97
void applyOnTheRight(const EigenBase< OtherDerived > &other)
replaces *this by *this * other.
Definition MatrixBase.h:508
RealScalar blueNorm() const
Definition StableNorm.h:200
bool isIdentity(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition CwiseNullaryOp.h:722
EIGEN_DEVICE_FUNC void adjointInPlace()
This is the "in place" version of adjoint(): it replaces *this by its own transpose.
Definition Transpose.h:309
RealScalar hypotNorm() const
Definition StableNorm.h:212
JacobiSVD< PlainObject > jacobiSvd(unsigned int computationOptions=0) const
\svd_module
Definition JacobiSVD.h:795
EIGEN_DEVICE_FUNC const PlainObject normalized() const
Definition Dot.h:114
EIGEN_DEVICE_FUNC const PartialPivLU< PlainObject > partialPivLu() const
\lu_module
Definition PartialPivLU.h:538
RealScalar stableNorm() const
Definition StableNorm.h:157
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ArrayWrapper< Derived > array()
Definition MatrixBase.h:324
EIGEN_DEVICE_FUNC Derived & operator=(const MatrixBase &other)
Special case of the template operator=, in order to prevent the compiler from generating a default op...
Definition Assign.h:55
EIGEN_DEVICE_FUNC internal::scalar_product_traits< typenameinternal::traits< Derived >::Scalar, typenameinternal::traits< OtherDerived >::Scalar >::ReturnType dot(const MatrixBase< OtherDerived > &other) const
Definition Dot.h:66
EIGEN_DEVICE_FUNC const Inverse< Derived > inverse() const
\lu_module
Definition InverseImpl.h:331
@ ColsAtCompileTime
The number of columns at compile-time.
Definition DenseBase.h:110
Scalar determinant() const
\lu_module
Definition Determinant.h:92
void computeInverseAndDetWithCheck(ResultType &inverse, typename ResultType::Scalar &determinant, bool &invertible, const RealScalar &absDeterminantThreshold=NumTraits< Scalar >::dummy_precision()) const
\lu_module
Definition InverseImpl.h:358
bool operator==(const MatrixBase< OtherDerived > &other) const
Definition MatrixBase.h:295
const FullPivHouseholderQR< PlainObject > fullPivHouseholderQr() const
Definition FullPivHouseholderQR.h:654
bool isUnitary(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition Dot.h:227
static EIGEN_DEVICE_FUNC const BasisReturnType UnitZ()
Definition CwiseNullaryOp.h:856
void applyHouseholderOnTheLeft(const EssentialPart &essential, const Scalar &tau, Scalar *workspace)
Apply the elementary reflector H given by with from the left to a vector or matrix.
Definition Householder.h:113
const LLT< PlainObject > llt() const
\cholesky_module
Definition LLT.h:473
bool isDiagonal(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition DiagonalMatrix.h:292
const HouseholderQR< PlainObject > householderQr() const
Definition HouseholderQR.h:384
EIGEN_DEVICE_FUNC PlainObject unitOrthogonal(void) const
Definition OrthoMethods.h:219
EIGEN_DEVICE_FUNC RealScalar squaredNorm() const
Definition Dot.h:88
bool isUpperTriangular(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition TriangularMatrix.h:650
void applyHouseholderOnTheRight(const EssentialPart &essential, const Scalar &tau, Scalar *workspace)
Apply the elementary reflector H given by with from the right to a vector or matrix.
Definition Householder.h:150
EIGEN_DEVICE_FUNC void normalize()
Normalizes the vector, i.e.
Definition Dot.h:128
static EIGEN_DEVICE_FUNC const BasisReturnType Unit(Index size, Index i)
Definition CwiseNullaryOp.h:808
const Derived & forceAlignedAccess() const
Definition MatrixBase.h:310
EIGEN_DEVICE_FUNC RealScalar norm() const
Definition Dot.h:100
@ RowsAtCompileTime
The number of rows at compile-time.
Definition DenseBase.h:104
const HNormalizedReturnType hnormalized() const
\geometry_module
Definition Homogeneous.h:159
const ColPivHouseholderQR< PlainObject > colPivHouseholderQr() const
Definition ColPivHouseholderQR.h:606
BDCSVD< PlainObject > bdcSvd(unsigned int computationOptions=0) const
\svd_module
Definition BDCSVD.h:1200
const Product< Derived, OtherDerived > operator*(const MatrixBase< OtherDerived > &other) const
Definition GeneralProduct.h:390
static EIGEN_DEVICE_FUNC const BasisReturnType UnitY()
Definition CwiseNullaryOp.h:846
void makeHouseholderInPlace(Scalar &tau, RealScalar &beta)
Computes the elementary reflector H such that: where the transformation H is: and the vector v is: ...
Definition Householder.h:42
bool isOrthogonal(const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition Dot.h:208
HomogeneousReturnType homogeneous() const
\geometry_module
Definition Homogeneous.h:128
EIGEN_DEVICE_FUNC const AdjointReturnType adjoint() const
Definition Transpose.h:204
EIGEN_DEVICE_FUNC const PartialPivLU< PlainObject > lu() const
\lu_module
Definition PartialPivLU.h:555
Derived & forceAlignedAccess()
Definition MatrixBase.h:311
EIGEN_DEVICE_FUNC DiagonalReturnType diagonal()
Definition Diagonal.h:188
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
Pseudo expression representing a solving operation.
Definition Solve.h:63
Base class of any sparse matrices or sparse expressions.
Definition SparseMatrixBase.h:34
Matrix< Scalar, 3, 1 > eulerAngles(Index a0, Index a1, Index a2) const
\geometry_module
Definition EulerAngles.h:37
@ ColMajor
Storage order is column major (see TopicStorageOrders).
Definition Constants.h:320
@ Horizontal
For Reverse, all rows are reversed; for PartialReduxExpr and VectorwiseOp, act on rows.
Definition Constants.h:268
@ Vertical
For Reverse, all columns are reversed; for PartialReduxExpr and VectorwiseOp, act on columns.
Definition Constants.h:265
const unsigned int RowMajorBit
for a matrix, this means that the storage order is row-major.
Definition Constants.h:61
Holds information about the various numeric (i.e.
Definition NumTraits.h:108
Definition Meta.h:88
Definition Meta.h:34
Definition ForwardDeclarations.h:17
Definition Meta.h:30