10 #ifndef EIGEN_SPARSEMATRIXBASE_H    11 #define EIGEN_SPARSEMATRIXBASE_H    26 template<
typename Derived> 
class SparseMatrixBase
    50     template<
typename OtherDerived>
    96       #ifndef EIGEN_PARSED_BY_DOXYGEN
   112 #ifndef EIGEN_PARSED_BY_DOXYGEN   134     inline const Derived& 
derived()
 const { 
return *
static_cast<const Derived*
>(
this); }
   135     inline Derived& 
derived() { 
return *
static_cast<Derived*
>(
this); }
   141 #endif // not EIGEN_PARSED_BY_DOXYGEN   143 #define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::SparseMatrixBase   144 #ifdef EIGEN_PARSED_BY_DOXYGEN   145 #define EIGEN_DOC_UNARY_ADDONS(METHOD,OP)              146 #define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL         147 #define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)    149 #define EIGEN_DOC_UNARY_ADDONS(X,Y)   150 #define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL   151 #define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)   153 #   include "../plugins/CommonCwiseUnaryOps.h"   154 #   include "../plugins/CommonCwiseBinaryOps.h"   155 #   include "../plugins/MatrixCwiseUnaryOps.h"   156 #   include "../plugins/MatrixCwiseBinaryOps.h"   157 #   include "../plugins/BlockMethods.h"   158 #   ifdef EIGEN_SPARSEMATRIXBASE_PLUGIN   159 #     include EIGEN_SPARSEMATRIXBASE_PLUGIN   161 #undef EIGEN_CURRENT_STORAGE_BASE_CLASS   162 #undef EIGEN_DOC_UNARY_ADDONS   163 #undef EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL   164 #undef EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF   191     template<
typename OtherDerived>
   194     template<
typename OtherDerived>
   197     inline Derived& 
operator=(
const Derived& other);
   201     template<
typename OtherDerived>
   202     inline Derived& 
assign(
const OtherDerived& other);
   204     template<
typename OtherDerived>
   211       typedef typename Derived::Nested Nested;
   223             for ( ; col<it.index(); ++
col)
   225             s << it.value() << 
" ";
   241             for ( ; row<it.index(); ++
row)
   242               s << 
"0" << std::endl;
   243             s << it.value() << std::endl;
   247             s << 
"0" << std::endl;
   252           s << static_cast<const SparseMatrixBase<SparseMatrix<Scalar, RowMajorBit, StorageIndex> >&>(trans);
   258     template<
typename OtherDerived>
   260     template<
typename OtherDerived>
   263     template<
typename OtherDerived>
   265     template<
typename OtherDerived>
   271     template<
typename OtherDerived> 
struct CwiseProductDenseReturnType {
   281     template<
typename OtherDerived>
   286     template<
typename OtherDerived>
   292     template<
typename OtherDerived> 
friend   298     template<
typename OtherDerived>
   303     template<
typename OtherDerived>
   309     template<
typename OtherDerived> 
friend   320     template<
typename OtherDerived>
   329     template<
unsigned int UpLo> 
inline    331     template<
unsigned int UpLo> 
inline   337     RealScalar 
norm()  
const;
   361     template<
typename OtherDerived>
   365     template<
typename OtherDerived>
   368     { 
return toDense().isApprox(other,prec); }
   388       return internal::convert_index<StorageIndex>(idx);
   391     template<
typename Dest> 
void evalTo(Dest &) 
const;
   396 #endif // EIGEN_SPARSEMATRIXBASE_H 
Generic expression of a matrix where all coefficients are defined by a functor. 
#define EIGEN_STRONG_INLINE
const ConstTransposeReturnType transpose() const
Block< const Derived, IsRowMajor?1:Dynamic, IsRowMajor?Dynamic:1, true > ConstInnerVectorReturnType
friend std::ostream & operator<<(std::ostream &s, const SparseMatrixBase &m)
Block< const Derived, Dynamic, Dynamic, true > ConstInnerVectorsReturnType
internal::traits< Derived >::StorageKind StorageKind
SparseMatrixBase StorageBaseType
Expression of the product of two arbitrary matrices or vectors. 
A versatible sparse matrix representation. 
RealScalar squaredNorm() const
internal::packet_traits< Scalar >::type PacketScalar
CwiseBinaryOp< internal::scalar_product_op< typename ScalarBinaryOpTraits< typename internal::traits< Derived >::Scalar, typename internal::traits< OtherDerived >::Scalar >::ReturnType >, const Derived, const OtherDerived > Type
Expression of the transpose of a matrix. 
const unsigned int DirectAccessBit
CwiseNullaryOp< internal::scalar_constant_op< Scalar >, Matrix< Scalar, Dynamic, Dynamic > > ConstantReturnType
Derived & operator+=(const SparseMatrixBase< OtherDerived > &other)
Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix. 
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
Derived & operator=(const EigenBase< OtherDerived > &other)
void evalTo(Dest &) const
EIGEN_DEVICE_FUNC RowXpr row(Index i)
Eigen::Index Index
The interface type of indices. 
Block< Derived, IsRowMajor?1:Dynamic, IsRowMajor?Dynamic:1, true > InnerVectorReturnType
const unsigned int RowMajorBit
Transpose< Derived > TransposeReturnType
internal::conditional< NumTraits< Scalar >::IsComplex, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, Eigen::Transpose< const Derived > >, Transpose< const Derived > >::type AdjointReturnType
static StorageIndex convert_index(const Index idx)
const SparseView< Derived > pruned(const Scalar &reference=Scalar(0), const RealScalar &epsilon=NumTraits< Scalar >::dummy_precision()) const
internal::traits< Derived >::StorageIndex StorageIndex
Generic expression where a coefficient-wise binary operator is applied to two expressions. 
Base class of any sparse matrices or sparse expressions. 
EIGEN_STRONG_INLINE const CwiseProductDenseReturnType< OtherDerived >::Type cwiseProduct(const MatrixBase< OtherDerived > &other) const
TransposeReturnType transpose()
internal::traits< Derived >::Scalar Scalar
SparseSelfAdjointView< Derived, UpLo > Type
RealScalar blueNorm() const
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > DenseMatrixType
Scalar dot(const MatrixBase< OtherDerived > &other) const
InnerVectorReturnType innerVector(Index outer)
const TriangularView< const Derived, Mode > triangularView() const
Derived & assign(const OtherDerived &other)
EIGEN_DEVICE_FUNC ColXpr col(Index i)
const AdjointReturnType adjoint() const
bool isApprox(const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
internal::add_const< Transpose< const Derived > >::type ConstTransposeReturnType
const Product< Derived, OtherDerived > operator*(const DiagonalBase< OtherDerived > &other) const
ConstSelfAdjointViewReturnType< UpLo >::Type selfadjointView() const
InnerVectorsReturnType innerVectors(Index outerStart, Index outerSize)
Expression of a fixed-size or dynamic-size block. 
EigenBase< Derived > Base
Derived & operator*=(const Scalar &other)
Derived & const_cast_derived() const
Derived & operator/=(const Scalar &other)
Expression of a triangular part in a matrix. 
Derived & operator-=(const SparseMatrixBase< OtherDerived > &other)
internal::conditional< _HasDirectAccess, const Scalar &, Scalar >::type CoeffReturnType
void assignGeneric(const OtherDerived &other)
SparseSymmetricPermutationProduct< Derived, Upper|Lower > twistedBy(const PermutationMatrix< Dynamic, Dynamic, StorageIndex > &perm) const
Matrix< Scalar, EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime), EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime)> SquareMatrixType
const Derived & derived() const
Matrix< StorageIndex, Dynamic, 1 > IndexVector
friend const Product< OtherDerived, Derived > operator*(const MatrixBase< OtherDerived > &lhs, const SparseMatrixBase &rhs)
Determines whether the given binary operation of two numeric types is allowed and what the scalar ret...
const internal::eval< Derived >::type eval() const
DenseMatrixType toDense() const
Block< Derived, Dynamic, Dynamic, true > InnerVectorsReturnType
const SparseSelfAdjointView< const Derived, UpLo > Type
Generic expression where a coefficient-wise unary operator is applied to an expression. 
NumTraits< Scalar >::Real RealScalar
Matrix< Scalar, Dynamic, 1 > ScalarVector
internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits< Scalar >::type >::type PacketReturnType
#define EIGEN_SIZE_MAX(a, b)
SparseMatrix< Scalar, Flags &RowMajorBit ? RowMajor :ColMajor, StorageIndex > PlainObject
Base class for all dense matrices, vectors, and expressions. 
const Product< Derived, OtherDerived > operator*(const MatrixBase< OtherDerived > &other) const
friend const Product< OtherDerived, Derived > operator*(const DiagonalBase< OtherDerived > &lhs, const SparseMatrixBase &rhs)
EIGEN_DEVICE_FUNC const Derived & derived() const
bool isApprox(const SparseMatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const