10 #ifndef EIGEN_SPARSE_DOT_H    11 #define EIGEN_SPARSE_DOT_H    15 template<
typename Derived>
    16 template<
typename OtherDerived>
    17 typename internal::traits<Derived>::Scalar
    24     YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
    27   eigen_assert(other.size()>0 && 
"you are using a non initialized vector");
    34     res += numext::conj(i.value()) * other.coeff(i.index());
    40 template<
typename Derived>
    41 template<
typename OtherDerived>
    49     YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
    62     if (i.index()==j.index())
    64       res += numext::conj(i.value()) * j.value();
    67     else if (i.index()<j.index())
    75 template<
typename Derived>
    82 template<
typename Derived>
    87   return sqrt(squaredNorm());
    90 template<
typename Derived>
    98 #endif // EIGEN_SPARSE_DOT_H EIGEN_DEVICE_FUNC RealReturnType real() const
RealScalar squaredNorm() const
#define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0, TYPE1)
EIGEN_DEVICE_FUNC const SqrtReturnType sqrt() const
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
#define EIGEN_STATIC_ASSERT(CONDITION, MSG)
NumTraits< typename traits< Derived >::Scalar >::Real blueNorm_impl(const EigenBase< Derived > &_vec)
Base class of any sparse matrices or sparse expressions. 
internal::traits< CwiseBinaryOp< BinaryOp, Lhs, Rhs > >::Scalar Scalar
RealScalar blueNorm() const
Scalar dot(const MatrixBase< OtherDerived > &other) const
const Derived & derived() const
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE)
Base class for all dense matrices, vectors, and expressions.