11 #ifndef EIGEN_SKEWSYMMETRICMATRIX3_H
12 #define EIGEN_SKEWSYMMETRICMATRIX3_H
34 template <
typename Derived>
81 const Scalar norm2 =
v.squaredNorm();
99 template <
typename MatrixDerived>
106 template <
typename MatrixDerived>
112 template <
typename OtherDerived>
118 template <
typename OtherDerived>
121 return vector().cross(other.
vector()).asSkewSymmetric();
129 return (
vector() * scalar).asSkewSymmetric();
138 return (scalar * other.
vector()).asSkewSymmetric();
141 template <
typename OtherDerived>
146 template <
typename OtherDerived>
152 template <
typename OtherDerived>
157 template <
typename OtherDerived>
175 template <
typename Scalar_>
182 template <
typename Scalar_>
185 #ifndef EIGEN_PARSED_BY_DOXYGEN
213 template <
typename OtherDerived>
217 template <
typename OtherDerived>
221 #ifndef EIGEN_PARSED_BY_DOXYGEN
227 template <
typename OtherDerived>
233 #ifndef EIGEN_PARSED_BY_DOXYGEN
268 template <
typename SkewSymmetricVectorType_>
270 typedef SkewSymmetricVectorType_ SkewSymmetricVectorType;
276 RowsAtCompileTime = SkewSymmetricVectorType::SizeAtCompileTime,
277 ColsAtCompileTime = SkewSymmetricVectorType::SizeAtCompileTime,
278 MaxRowsAtCompileTime = SkewSymmetricVectorType::MaxSizeAtCompileTime,
279 MaxColsAtCompileTime = SkewSymmetricVectorType::MaxSizeAtCompileTime,
285 template <
typename SkewSymmetricVectorType_>
289 #ifndef EIGEN_PARSED_BY_DOXYGEN
310 template <
typename Derived>
318 template <
typename Derived>
321 return (this->
transpose() + *
this).isZero(prec);
326 template <
typename Derived>
327 template <
typename SkewDerived>
348 template <
typename DstXprType,
typename SrcXprType,
typename Functor>
351 DstXprType& dst,
const SrcXprType& src,
353 if ((dst.rows() != 3) || (dst.cols() != 3)) {
356 dst.diagonal().setZero();
357 const typename SrcXprType::SkewSymmetricVectorType
v = src.vector();
366 DstXprType& dst,
const SrcXprType& src,
368 dst.vector() += src.vector();
372 DstXprType& dst,
const SrcXprType& src,
374 dst.vector() -= src.vector();
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
#define EIGEN_CONSTEXPR
Definition: Macros.h:758
#define EIGEN_CWISE_BINARY_RETURN_TYPE(LHS, RHS, OPNAME)
Definition: Macros.h:1184
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:892
#define EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(EXPR, SCALAR, OPNAME)
Definition: Macros.h:1200
int rows
Definition: Tutorial_commainit_02.cpp:1
int cols
Definition: Tutorial_commainit_02.cpp:1
SCALAR Scalar
Definition: bench_gemm.cpp:45
NumTraits< Scalar >::Real RealScalar
Definition: bench_gemm.cpp:46
NumTraits< Scalar >::Real RealScalar
Definition: DenseBase.h:69
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:52
bool isSkewSymmetric(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: SkewSymmetricMatrix3.h:319
EIGEN_DEVICE_FUNC const Product< Derived, OtherDerived > operator*(const MatrixBase< OtherDerived > &other) const
EIGEN_DEVICE_FUNC const SkewSymmetricWrapper< const Derived > asSkewSymmetric() const
Definition: SkewSymmetricMatrix3.h:311
The matrix class, also used for vectors and row-vectors.
Definition: Eigen/Eigen/src/Core/Matrix.h:186
Expression of the product of two arbitrary matrices or vectors.
Definition: Product.h:202
Base class for skew symmetric matrices and expressions.
Definition: SkewSymmetricMatrix3.h:35
SkewSymmetricVectorType::RealScalar RealScalar
Definition: SkewSymmetricMatrix3.h:39
EIGEN_DEVICE_FUNC DenseMatrixType toDenseMatrix() const
Definition: SkewSymmetricMatrix3.h:66
EIGEN_DEVICE_FUNC SkewSymmetricScaleReturnType operator*(const Scalar &scalar) const
Definition: SkewSymmetricMatrix3.h:128
EIGEN_DEVICE_FUNC PlainObject transpose() const
Definition: SkewSymmetricMatrix3.h:72
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index cols() const
Definition: SkewSymmetricMatrix3.h:96
EIGEN_DEVICE_FUNC SkewSymmetricSumReturnType< OtherDerived > operator+(const SkewSymmetricBase< OtherDerived > &other) const
Definition: SkewSymmetricMatrix3.h:147
EIGEN_DEVICE_FUNC const Derived & derived() const
Definition: SkewSymmetricMatrix3.h:58
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Index rows() const
Definition: SkewSymmetricMatrix3.h:94
EIGEN_DEVICE_FUNC SkewSymmetricDifferenceReturnType< OtherDerived > operator-(const SkewSymmetricBase< OtherDerived > &other) const
Definition: SkewSymmetricMatrix3.h:158
EIGEN_DEVICE_FUNC Derived & derived()
Definition: SkewSymmetricMatrix3.h:60
DenseMatrixType DenseType
Definition: SkewSymmetricMatrix3.h:54
EIGEN_DEVICE_FUNC friend ScaleSkewSymmetricReturnType operator*(const Scalar &scalar, const SkewSymmetricBase &other)
Definition: SkewSymmetricMatrix3.h:136
internal::traits< Derived >::StorageIndex StorageIndex
Definition: SkewSymmetricMatrix3.h:41
internal::traits< Derived >::SkewSymmetricVectorType SkewSymmetricVectorType
Definition: SkewSymmetricMatrix3.h:37
EIGEN_DEVICE_FUNC Product< Derived, MatrixDerived, LazyProduct > operator*(const MatrixBase< MatrixDerived > &matrix) const
Definition: SkewSymmetricMatrix3.h:100
EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR Scalar determinant() const
Definition: SkewSymmetricMatrix3.h:69
EIGEN_DEVICE_FUNC DenseMatrixType exponential() const
Definition: SkewSymmetricMatrix3.h:75
EIGEN_DEVICE_FUNC const SkewSymmetricVectorType & vector() const
Definition: SkewSymmetricMatrix3.h:89
SkewSymmetricVectorType::Scalar Scalar
Definition: SkewSymmetricMatrix3.h:38
EIGEN_DEVICE_FUNC SkewSymmetricVectorType & vector()
Definition: SkewSymmetricMatrix3.h:91
@ ColsAtCompileTime
Definition: SkewSymmetricMatrix3.h:45
@ MaxColsAtCompileTime
Definition: SkewSymmetricMatrix3.h:47
@ MaxRowsAtCompileTime
Definition: SkewSymmetricMatrix3.h:46
@ RowsAtCompileTime
Definition: SkewSymmetricMatrix3.h:44
@ IsVectorAtCompileTime
Definition: SkewSymmetricMatrix3.h:48
internal::traits< Derived >::StorageKind StorageKind
Definition: SkewSymmetricMatrix3.h:40
SkewSymmetricMatrix3< Scalar > PlainObject
Definition: SkewSymmetricMatrix3.h:55
EIGEN_DEVICE_FUNC SkewSymmetricProductReturnType< OtherDerived > wedge(const SkewSymmetricBase< OtherDerived > &other) const
Definition: SkewSymmetricMatrix3.h:119
EIGEN_DEVICE_FUNC Product< Derived, MatrixDerived, LazyProduct > operator*(const SkewSymmetricBase< MatrixDerived > &matrix) const
Definition: SkewSymmetricMatrix3.h:107
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime, 0, MaxRowsAtCompileTime, MaxColsAtCompileTime > DenseMatrixType
Definition: SkewSymmetricMatrix3.h:53
Represents a 3x3 skew symmetric matrix with its storage.
Definition: SkewSymmetricMatrix3.h:183
internal::traits< SkewSymmetricMatrix3 >::SkewSymmetricVectorType SkewSymmetricVectorType
Definition: SkewSymmetricMatrix3.h:186
SkewSymmetricWrapper< const CwiseNullaryOp< internal::scalar_constant_op< Scalar >, SkewSymmetricVectorType > > InitializeReturnType
Definition: SkewSymmetricMatrix3.h:244
static EIGEN_DEVICE_FUNC InitializeReturnType Zero()
Definition: SkewSymmetricMatrix3.h:247
EIGEN_DEVICE_FUNC SkewSymmetricMatrix3 & operator=(const SkewSymmetricMatrix3 &other)
Definition: SkewSymmetricMatrix3.h:237
EIGEN_DEVICE_FUNC SkewSymmetricMatrix3 & operator=(const SkewSymmetricBase< OtherDerived > &other)
Definition: SkewSymmetricMatrix3.h:228
const SkewSymmetricMatrix3 & Nested
Definition: SkewSymmetricMatrix3.h:187
EIGEN_DEVICE_FUNC SkewSymmetricMatrix3(SkewSymmetricVectorType &&vec)
Constructs a SkewSymmetricMatrix3 from an r-value vector type.
Definition: SkewSymmetricMatrix3.h:210
SkewSymmetricVectorType m_vector
Definition: SkewSymmetricMatrix3.h:194
EIGEN_DEVICE_FUNC SkewSymmetricMatrix3(const SkewSymmetricBase< OtherDerived > &other)
Definition: SkewSymmetricMatrix3.h:218
EIGEN_DEVICE_FUNC SkewSymmetricMatrix3()
Definition: SkewSymmetricMatrix3.h:203
EIGEN_DEVICE_FUNC const SkewSymmetricVectorType & vector() const
Definition: SkewSymmetricMatrix3.h:198
Scalar_ Scalar
Definition: SkewSymmetricMatrix3.h:188
internal::traits< SkewSymmetricMatrix3 >::StorageIndex StorageIndex
Definition: SkewSymmetricMatrix3.h:190
EIGEN_DEVICE_FUNC void setZero()
Definition: SkewSymmetricMatrix3.h:250
internal::traits< SkewSymmetricMatrix3 >::StorageKind StorageKind
Definition: SkewSymmetricMatrix3.h:189
SkewSymmetricMatrix3(const SkewSymmetricMatrix3 &other)
Definition: SkewSymmetricMatrix3.h:223
EIGEN_DEVICE_FUNC SkewSymmetricVectorType & vector()
Definition: SkewSymmetricMatrix3.h:200
EIGEN_DEVICE_FUNC SkewSymmetricMatrix3(const Scalar &x, const Scalar &y, const Scalar &z)
Definition: SkewSymmetricMatrix3.h:206
EIGEN_DEVICE_FUNC SkewSymmetricMatrix3(const MatrixBase< OtherDerived > &other)
Definition: SkewSymmetricMatrix3.h:214
Expression of a skew symmetric matrix.
Definition: SkewSymmetricMatrix3.h:287
SkewSymmetricVectorType::Nested m_vector
Definition: SkewSymmetricMatrix3.h:301
EIGEN_DEVICE_FUNC const SkewSymmetricVectorType & vector() const
Definition: SkewSymmetricMatrix3.h:298
SkewSymmetricVectorType_ SkewSymmetricVectorType
Definition: SkewSymmetricMatrix3.h:290
EIGEN_DEVICE_FUNC SkewSymmetricWrapper(SkewSymmetricVectorType &a_vector)
Definition: SkewSymmetricMatrix3.h:295
SkewSymmetricWrapper Nested
Definition: SkewSymmetricMatrix3.h:291
Definition: XprHelper.h:134
Eigen::Map< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Eigen::ColMajor >, 0, Eigen::OuterStride<> > matrix(T *data, int rows, int cols, int stride)
Definition: common.h:85
const unsigned int NoPreferredStorageOrderBit
Definition: Constants.h:182
const unsigned int LvalueBit
Definition: Constants.h:148
Scalar * y
Definition: level1_cplx_impl.h:128
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T cos(const T &x)
Definition: MathFunctions.h:1559
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE T sin(const T &x)
Definition: MathFunctions.h:1581
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float sqrt(const float &x)
Definition: arch/SSE/MathFunctions.h:69
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:70
const unsigned int NestByRefBit
Definition: Constants.h:173
Extend namespace for flags.
Definition: fsi_chan_precond_driver.cc:56
void transpose()
Definition: skew_symmetric_matrix3.cpp:135
Definition: Eigen_Colamd.h:49
double Zero
Definition: pseudosolid_node_update_elements.cc:35
list x
Definition: plotDoE.py:28
void product(const MatrixType &m)
Definition: product.h:42
Definition: Constants.h:540
Definition: EigenBase.h:33
Eigen::Index Index
The interface type of indices.
Definition: EigenBase.h:43
Definition: Constants.h:552
SkewSymmetric2Dense Kind
Definition: SkewSymmetricMatrix3.h:344
Definition: AssignEvaluator.h:760
static EIGEN_DEVICE_FUNC void run(DstXprType &dst, const SrcXprType &src, const internal::sub_assign_op< typename DstXprType::Scalar, typename SrcXprType::Scalar > &)
Definition: SkewSymmetricMatrix3.h:371
static EIGEN_DEVICE_FUNC void run(DstXprType &dst, const SrcXprType &src, const internal::add_assign_op< typename DstXprType::Scalar, typename SrcXprType::Scalar > &)
Definition: SkewSymmetricMatrix3.h:365
static EIGEN_DEVICE_FUNC void run(DstXprType &dst, const SrcXprType &src, const internal::assign_op< typename DstXprType::Scalar, typename SrcXprType::Scalar > &)
Definition: SkewSymmetricMatrix3.h:350
Definition: AssignEvaluator.h:773
Definition: SkewSymmetricMatrix3.h:340
Template functor for scalar/packet assignment with addition.
Definition: AssignmentFunctors.h:52
Template functor for scalar/packet assignment.
Definition: AssignmentFunctors.h:25
SkewSymmetricShape Shape
Definition: SkewSymmetricMatrix3.h:337
Definition: CoreEvaluators.h:32
Template functor for scalar/packet assignment with subtraction.
Definition: AssignmentFunctors.h:73
Matrix< Scalar_, 3, 1, 0, 3, 1 > SkewSymmetricVectorType
Definition: SkewSymmetricMatrix3.h:177
SkewSymmetricShape StorageKind
Definition: SkewSymmetricMatrix3.h:178
SkewSymmetricShape StorageKind
Definition: SkewSymmetricMatrix3.h:273
SkewSymmetricVectorType::StorageIndex StorageIndex
Definition: SkewSymmetricMatrix3.h:272
SkewSymmetricVectorType::Scalar Scalar
Definition: SkewSymmetricMatrix3.h:271
traits< SkewSymmetricVectorType >::XprKind XprKind
Definition: SkewSymmetricMatrix3.h:274
Definition: ForwardDeclarations.h:21
Definition: NonLinearOptimization.cpp:97