20 template<
typename T,
typename U,
22 bool NeedToTranspose = T::IsVectorAtCompileTime
23 && U::IsVectorAtCompileTime
24 && ((int(T::RowsAtCompileTime) == 1 && int(U::ColsAtCompileTime) == 1)
27 (
int(T::ColsAtCompileTime) == 1 && int(U::RowsAtCompileTime) == 1))
38 template<
typename T,
typename U>
60 template<
typename Derived>
61 template<
typename OtherDerived>
65 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
66 EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
67 EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
71 eigen_assert(
size() == other.size());
86 template<
typename Derived>
87 template<
typename OtherDerived>
91 EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
92 EIGEN_STATIC_ASSERT_VECTOR_ONLY(OtherDerived)
93 EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(Derived,OtherDerived)
95 YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
97 eigen_assert(
size() == other.size());
112 template<
typename Derived>
115 return numext::real((*this).cwiseAbs2().sum());
124 template<
typename Derived>
128 return sqrt(squaredNorm());
137 template<
typename Derived>
143 _Nested n(derived());
153 template<
typename Derived>
163 template<
typename Derived,
int p>
170 return pow(m.
cwiseAbs().array().pow(p).sum(), RealScalar(1)/p);
174 template<
typename Derived>
183 template<
typename Derived>
192 template<
typename Derived>
209 template<
typename Derived>
225 template<
typename Derived>
226 template<
typename OtherDerived>
232 return numext::abs2(nested.dot(otherNested)) <= prec * prec * nested.squaredNorm() * otherNested.squaredNorm();
246 template<
typename Derived>
249 typename Derived::Nested nested(derived());
250 for(
Index i = 0; i < cols(); ++i)
252 if(!internal::isApprox(nested.col(i).squaredNorm(),
static_cast<RealScalar
>(1), prec))
254 for(
Index j = 0; j < i; ++j)
255 if(!internal::isMuchSmallerThan(nested.col(i).dot(nested.col(j)), static_cast<Scalar>(1), prec))
263 #endif // EIGEN_DOT_H internal::traits< Derived >::Index Index
The type of indices.
Definition: DenseBase.h:60
bool isUnitary(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: Dot.h:247
iterative scaling algorithm to equilibrate rows and column norms in matrices
Definition: TestIMU_Common.h:87
Holds information about the various numeric (i.e.
Definition: NumTraits.h:88
const PlainObject normalized() const
Definition: Dot.h:139
Eigen::Transpose< Derived > transpose()
Definition: Transpose.h:199
RealScalar squaredNorm() const
Definition: Dot.h:113
void normalize()
Normalizes the vector, i.e.
Definition: Dot.h:154
RealScalar norm() const
Definition: Dot.h:125
detail::size< coerce_list< Ts... >> size
Get the size of a list (number of elements.)
Definition: Size.h:56
EIGEN_STRONG_INLINE const CwiseUnaryOp< internal::scalar_abs_op< Scalar >, const Derived > cwiseAbs() const
Definition: MatrixBase.h:22
Definition: benchGeometry.cpp:23
A small structure to hold a non zero as a triplet (i,j,value).
Definition: SparseUtil.h:148
Definition: BandTriangularSolver.h:13
bool isOrthogonal(const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: Dot.h:228
internal::scalar_product_traits< typename internal::traits< Derived >::Scalar, typename internal::traits< OtherDerived >::Scalar >::ReturnType dot(const MatrixBase< OtherDerived > &other) const
Definition: Dot.h:63
The matrix class, also used for vectors and row-vectors.
Definition: Matrix.h:127
Definition: Functors.h:75
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:48
Definition: ForwardDeclarations.h:17
double Scalar
Common scalar type.
Definition: FlexibleKalmanBase.h:48
const int Infinity
This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>()...
Definition: Constants.h:31