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))
36 return a.template binaryExpr<conj_prod>(
b).
sum();
40 template<
typename T,
typename U>
65 template<
typename Derived>
66 template<
typename OtherDerived>
74 #if !(defined(EIGEN_NO_STATIC_ASSERT) && defined(EIGEN_NO_DEBUG)) 92 template<
typename Derived>
104 template<
typename Derived>
119 template<
typename Derived>
124 _Nested n(derived());
141 template<
typename Derived>
162 template<
typename Derived>
167 _Nested n(derived());
187 template<
typename Derived>
200 template<
typename Derived,
int p>
207 EIGEN_USING_STD_MATH(
pow)
208 return pow(m.
cwiseAbs().array().pow(p).sum(), RealScalar(1)/p);
212 template<
typename Derived>
222 template<
typename Derived>
232 template<
typename Derived>
239 if(Derived::SizeAtCompileTime==0 || (Derived::SizeAtCompileTime==
Dynamic && m.size()==0))
240 return RealScalar(0);
257 template<
typename Derived>
259 #ifndef EIGEN_PARSED_BY_DOXYGEN 277 template<
typename Derived>
278 template<
typename OtherDerived>
284 return numext::abs2(nested.dot(otherNested)) <= prec * prec * nested.squaredNorm() * otherNested.squaredNorm();
298 template<
typename Derived>
302 for(
Index i = 0; i < cols(); ++i)
304 if(!internal::isApprox(
self.
col(i).squaredNorm(), static_cast<RealScalar>(1), prec))
306 for(
Index j = 0; j < i; ++j)
307 if(!internal::isMuchSmallerThan(
self.
col(i).
dot(
self.
col(j)), static_cast<Scalar>(1), prec))
315 #endif // EIGEN_DOT_H EIGEN_DEVICE_FUNC ScalarBinaryOpTraits< typename internal::traits< Derived >::Scalar, typename internal::traits< OtherDerived >::Scalar >::ReturnType dot(const MatrixBase< OtherDerived > &other) const
conj_prod::result_type ResScalar
static EIGEN_DEVICE_FUNC NumTraits< typename traits< Derived >::Scalar >::Real run(const MatrixBase< Derived > &m)
EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC half pow(const half &a, const half &b)
#define EIGEN_STRONG_INLINE
internal::traits< Derived >::Scalar Scalar
EIGEN_DEVICE_FUNC RealReturnType real() const
#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0, TYPE1)
static EIGEN_DEVICE_FUNC ResScalar run(const MatrixBase< T > &a, const MatrixBase< U > &b)
static EIGEN_DEVICE_FUNC NumTraits< typename traits< Derived >::Scalar >::Real run(const MatrixBase< Derived > &m)
static EIGEN_DEVICE_FUNC RealScalar run(const MatrixBase< Derived > &m)
static constexpr size_t size(Tuple< Args... > &)
Provides access to the number of elements in a tuple as a compile-time constant expression.
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
EIGEN_DEVICE_FUNC const PlainObject stableNormalized() const
EIGEN_DEVICE_FUNC TransposeReturnType transpose()
NumTraits< typename traits< Derived >::Scalar >::Real RealScalar
EIGEN_DEVICE_FUNC void normalize()
conj_prod::result_type ResScalar
EIGEN_DEVICE_FUNC void stableNormalize()
EIGEN_DEVICE_FUNC ColXpr col(Index i)
This is the const version of col().
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseAbsReturnType cwiseAbs() const
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
NumTraits< Scalar >::Real RealScalar
EIGEN_DEVICE_FUNC const PlainObject normalized() const
Base::PlainObject PlainObject
NumTraits< typename traits< Derived >::Scalar >::Real RealScalar
const mpreal sum(const mpreal tab[], const unsigned long int n, int &status, mp_rnd_t mode=mpreal::get_default_rnd())
scalar_conj_product_op< typename traits< T >::Scalar, typename traits< U >::Scalar > conj_prod
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Abs2ReturnType abs2() const
EIGEN_DEVICE_FUNC RealScalar squaredNorm() const
TFSIMD_FORCE_INLINE tfScalar dot(const Quaternion &q1, const Quaternion &q2)
TFSIMD_FORCE_INLINE const tfScalar & z() const
TFSIMD_FORCE_INLINE const tfScalar & w() const
NumTraits< Scalar >::Real RealScalar
bool isUnitary(const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
EIGEN_DEVICE_FUNC RealScalar lpNorm() const
ScalarBinaryOpTraits< LhsScalar, RhsScalar, scalar_conj_product_op >::ReturnType result_type
static EIGEN_DEVICE_FUNC ResScalar run(const MatrixBase< T > &a, const MatrixBase< U > &b)
#define EIGEN_CHECK_BINARY_COMPATIBILIY(BINOP, LHS, RHS)
static EIGEN_DEVICE_FUNC RealScalar run(const MatrixBase< Derived > &m)
Determines whether the given binary operation of two numeric types is allowed and what the scalar ret...
bool isOrthogonal(const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE float sqrt(const float &x)
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE)
EIGEN_DEVICE_FUNC const Scalar & b
Base class for all dense matrices, vectors, and expressions.
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseAbsReturnType cwiseAbs() const
EIGEN_DEVICE_FUNC RealScalar norm() const
scalar_conj_product_op< typename traits< T >::Scalar, typename traits< U >::Scalar > conj_prod