10 #ifndef EIGEN_SPARSEMATRIXBASE_H
11 #define EIGEN_SPARSEMATRIXBASE_H
54 template<
typename OtherDerived>
105 #ifndef EIGEN_PARSED_BY_DOXYGEN
121 #ifndef EIGEN_PARSED_BY_DOXYGEN
143 inline const Derived&
derived()
const {
return *
static_cast<const Derived*
>(
this); }
144 inline Derived&
derived() {
return *
static_cast<Derived*
>(
this); }
152 #define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::SparseMatrixBase
153 #ifdef EIGEN_PARSED_BY_DOXYGEN
154 #define EIGEN_DOC_UNARY_ADDONS(METHOD,OP)
155 #define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
156 #define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)
158 #define EIGEN_DOC_UNARY_ADDONS(X,Y)
159 #define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
160 #define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)
162 # include "../plugins/CommonCwiseUnaryOps.h"
163 # include "../plugins/CommonCwiseBinaryOps.h"
164 # include "../plugins/MatrixCwiseUnaryOps.h"
165 # include "../plugins/MatrixCwiseBinaryOps.h"
166 # include "../plugins/BlockMethods.h"
167 # ifdef EIGEN_SPARSEMATRIXBASE_PLUGIN
168 # include EIGEN_SPARSEMATRIXBASE_PLUGIN
170 #undef EIGEN_CURRENT_STORAGE_BASE_CLASS
171 #undef EIGEN_DOC_UNARY_ADDONS
172 #undef EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
173 #undef EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF
200 template<
typename OtherDerived>
203 template<
typename OtherDerived>
206 inline Derived&
operator=(
const Derived& other);
210 template<
typename OtherDerived>
211 inline Derived&
assign(
const OtherDerived& other);
213 template<
typename OtherDerived>
220 typedef typename Derived::Nested Nested;
232 for ( ;
col<it.index(); ++
col)
234 s << it.value() <<
" ";
250 for ( ;
row<it.index(); ++
row)
251 s <<
"0" << std::endl;
252 s << it.value() << std::endl;
256 s <<
"0" << std::endl;
261 s << static_cast<const SparseMatrixBase<SparseMatrix<Scalar, RowMajorBit, StorageIndex> >&>(trans);
267 template<
typename OtherDerived>
269 template<
typename OtherDerived>
272 template<
typename OtherDerived>
274 template<
typename OtherDerived>
277 template<
typename OtherDerived>
279 template<
typename OtherDerived>
295 template<
typename OtherDerived>
300 template<
typename OtherDerived>
306 template<
typename OtherDerived>
friend
312 template<
typename OtherDerived>
317 template<
typename OtherDerived>
323 template<
typename OtherDerived>
friend
334 template<
typename OtherDerived>
343 template<
unsigned int UpLo>
inline
345 template<
unsigned int UpLo>
inline
363 template<
typename OtherDerived>
367 template<
typename OtherDerived>
370 {
return toDense().isApprox(other,prec); }
390 return internal::convert_index<StorageIndex>(idx);
393 template<
typename Dest>
void evalTo(Dest &)
const;
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ColXpr col(Index i)
This is the const version of col().
Definition: BlockMethods.h:1097
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE RowXpr row(Index i)
This is the const version of row(). */.
Definition: BlockMethods.h:1118
#define EIGEN_SIZE_MAX(a, b)
Definition: Macros.h:1310
#define EIGEN_STRONG_INLINE
Definition: Macros.h:917
Generic expression where a coefficient-wise binary operator is applied to two expressions.
Definition: CwiseBinaryOp.h:84
Generic expression of a matrix where all coefficients are defined by a functor.
Definition: CwiseNullaryOp.h:61
Generic expression where a coefficient-wise unary operator is applied to an expression.
Definition: CwiseUnaryOp.h:56
Definition: DiagonalMatrix.h:19
EIGEN_DEVICE_FUNC const Derived & derived() const
Definition: DiagonalMatrix.h:41
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:50
Expression of the product of two arbitrary matrices or vectors.
Definition: Product.h:75
Definition: ReturnByValue.h:52
Base class of any sparse matrices or sparse expressions.
Definition: SparseMatrixBase.h:28
internal::traits< Derived >::StorageIndex StorageIndex
Definition: SparseMatrixBase.h:43
Index size() const
Definition: SparseMatrixBase.h:181
Index innerSize() const
Definition: SparseMatrixBase.h:192
Index rows() const
Definition: SparseMatrixBase.h:176
bool isRValue() const
Definition: SparseMatrixBase.h:194
RealScalar blueNorm() const
Definition: SparseDot.h:92
Scalar dot(const SparseMatrixBase< OtherDerived > &other) const
void evalTo(Dest &) const
const ConstTransposeReturnType transpose() const
Definition: SparseMatrixBase.h:355
friend std::ostream & operator<<(std::ostream &s, const SparseMatrixBase &m)
Definition: SparseMatrixBase.h:218
Derived & const_cast_derived() const
Definition: SparseMatrixBase.h:145
Derived & operator=(const EigenBase< OtherDerived > &other)
Definition: SparseAssign.h:17
SparseMatrixBase()
Definition: SparseMatrixBase.h:197
bool m_isRValue
Definition: SparseMatrixBase.h:387
internal::traits< Derived >::Scalar Scalar
Definition: SparseMatrixBase.h:31
Derived & operator-=(const SparseMatrixBase< OtherDerived > &other)
Derived & operator+=(const SparseMatrixBase< OtherDerived > &other)
Scalar dot(const MatrixBase< OtherDerived > &other) const
const Product< Derived, OtherDerived > operator*(const MatrixBase< OtherDerived > &other) const
Definition: SparseMatrixBase.h:319
EigenBase< Derived > Base
Definition: SparseMatrixBase.h:148
void assignGeneric(const OtherDerived &other)
Derived & operator*=(const Scalar &other)
Definition: SparseCwiseUnaryOp.h:126
Transpose< Derived > TransposeReturnType
Definition: SparseMatrixBase.h:115
SparseSymmetricPermutationProduct< Derived, Upper|Lower > twistedBy(const PermutationMatrix< Dynamic, Dynamic, StorageIndex > &perm) const
Definition: SparseMatrixBase.h:329
SparseMatrix< Scalar, Flags &RowMajorBit ? RowMajor :ColMajor, StorageIndex > PlainObject
Definition: SparseMatrixBase.h:119
RealScalar squaredNorm() const
Definition: SparseDot.h:77
internal::packet_traits< Scalar >::type PacketScalar
Definition: SparseMatrixBase.h:38
const TriangularView< const Derived, Mode > triangularView() const
Definition: SparseTriangularView.h:182
DenseMatrixType toDense() const
Definition: SparseMatrixBase.h:358
internal::conditional< _HasDirectAccess, const Scalar &, Scalar >::type CoeffReturnType
Definition: SparseMatrixBase.h:132
bool isApprox(const SparseMatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: SparseFuzzy.h:17
const internal::eval< Derived >::type eval() const
Definition: SparseMatrixBase.h:377
bool isVector() const
Definition: SparseMatrixBase.h:186
Matrix< StorageIndex, Dynamic, 1 > IndexVector
Definition: SparseMatrixBase.h:51
CwiseNullaryOp< internal::scalar_constant_op< Scalar >, Matrix< Scalar, Dynamic, Dynamic > > ConstantReturnType
Definition: SparseMatrixBase.h:135
internal::traits< Derived >::StorageKind StorageKind
Definition: SparseMatrixBase.h:39
Derived & markAsRValue()
Definition: SparseMatrixBase.h:195
EIGEN_STRONG_INLINE const CwiseProductDenseReturnType< OtherDerived >::Type cwiseProduct(const MatrixBase< OtherDerived > &other) const
friend const Product< OtherDerived, Derived > operator*(const DiagonalBase< OtherDerived > &lhs, const SparseMatrixBase &rhs)
Definition: SparseMatrixBase.h:308
SelfAdjointViewReturnType< UpLo >::Type selfadjointView()
Matrix< Scalar, EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime), EIGEN_SIZE_MAX(RowsAtCompileTime, ColsAtCompileTime)> SquareMatrixType
Definition: SparseMatrixBase.h:141
const Derived & derived() const
Definition: SparseMatrixBase.h:143
bool isApprox(const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: SparseMatrixBase.h:368
Derived & assign(const OtherDerived &other)
SparseMatrixBase StorageBaseType
Definition: SparseMatrixBase.h:49
RealScalar norm() const
Definition: SparseDot.h:84
NumTraits< Scalar >::Real RealScalar
Definition: SparseMatrixBase.h:128
Derived & operator*=(const SparseMatrixBase< OtherDerived > &other)
internal::conditional< NumTraits< Scalar >::IsComplex, CwiseUnaryOp< internal::scalar_conjugate_op< Scalar >, Eigen::Transpose< const Derived > >, Transpose< const Derived > >::type AdjointReturnType
Definition: SparseMatrixBase.h:114
friend const Product< OtherDerived, Derived > operator*(const MatrixBase< OtherDerived > &lhs, const SparseMatrixBase &rhs)
Definition: SparseMatrixBase.h:325
const Product< Derived, OtherDerived > operator*(const DiagonalBase< OtherDerived > &other) const
Definition: SparseMatrixBase.h:302
TransposeReturnType transpose()
Definition: SparseMatrixBase.h:354
ConstSelfAdjointViewReturnType< UpLo >::Type selfadjointView() const
Scalar value_type
Definition: SparseMatrixBase.h:36
Index outerSize() const
Definition: SparseMatrixBase.h:189
const SparseView< Derived > pruned(const Scalar &reference=Scalar(0), const RealScalar &epsilon=NumTraits< Scalar >::dummy_precision()) const
Definition: SparseView.h:246
Index cols() const
Definition: SparseMatrixBase.h:178
internal::add_const< Transpose< const Derived > >::type ConstTransposeReturnType
Definition: SparseMatrixBase.h:116
Matrix< Scalar, RowsAtCompileTime, ColsAtCompileTime > DenseMatrixType
Definition: SparseMatrixBase.h:138
@ _HasDirectAccess
Definition: SparseMatrixBase.h:106
@ InnerSizeAtCompileTime
Definition: SparseMatrixBase.h:102
@ IsVectorAtCompileTime
Definition: SparseMatrixBase.h:84
@ NumDimensions
Definition: SparseMatrixBase.h:90
@ ColsAtCompileTime
Definition: SparseMatrixBase.h:65
@ Flags
Definition: SparseMatrixBase.h:95
@ RowsAtCompileTime
Definition: SparseMatrixBase.h:59
@ MaxColsAtCompileTime
Definition: SparseMatrixBase.h:79
@ MaxRowsAtCompileTime
Definition: SparseMatrixBase.h:78
@ MaxSizeAtCompileTime
Definition: SparseMatrixBase.h:81
@ SizeAtCompileTime
Definition: SparseMatrixBase.h:72
@ IsRowMajor
Definition: SparseMatrixBase.h:100
const AdjointReturnType adjoint() const
Definition: SparseMatrixBase.h:356
Derived & operator/=(const Scalar &other)
Definition: SparseCwiseUnaryOp.h:138
Derived & derived()
Definition: SparseMatrixBase.h:144
internal::add_const_on_value_type_if_arithmetic< typename internal::packet_traits< Scalar >::type >::type PacketReturnType
Definition: SparseMatrixBase.h:47
Scalar sum() const
Definition: SparseRedux.h:17
Matrix< Scalar, Dynamic, 1 > ScalarVector
Definition: SparseMatrixBase.h:52
static StorageIndex convert_index(const Index idx)
Definition: SparseMatrixBase.h:389
A versatible sparse matrix representation.
Definition: SparseMatrix.h:98
Pseudo expression to manipulate a triangular sparse matrix as a selfadjoint matrix.
Definition: SparseSelfAdjointView.h:45
Definition: SparseSelfAdjointView.h:601
Expression of a dense or sparse matrix with zero or too small values removed.
Definition: SparseView.h:46
Expression of the transpose of a matrix.
Definition: Transpose.h:54
Expression of a triangular part in a matrix.
Definition: TriangularMatrix.h:189
const unsigned int DirectAccessBit
Definition: Constants.h:155
const unsigned int RowMajorBit
Definition: Constants.h:66
Namespace containing all symbols from the Eigen library.
Definition: LDLT.h:16
type
The type the bitset is encoded with.
Definition: bitset.hpp:44
Definition: EigenBase.h:30
Eigen::Index Index
The interface type of indices.
Definition: EigenBase.h:39
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:233
Determines whether the given binary operation of two numeric types is allowed and what the scalar ret...
Definition: XprHelper.h:806
Definition: SparseMatrixBase.h:341
const SparseSelfAdjointView< const Derived, UpLo > Type
Definition: SparseMatrixBase.h:341
Definition: SparseMatrixBase.h:285
CwiseBinaryOp< internal::scalar_product_op< typename ScalarBinaryOpTraits< typename internal::traits< Derived >::Scalar, typename internal::traits< OtherDerived >::Scalar >::ReturnType >, const Derived, const OtherDerived > Type
Definition: SparseMatrixBase.h:292
Definition: SparseMatrixBase.h:340
SparseSelfAdjointView< Derived, UpLo > Type
Definition: SparseMatrixBase.h:340
Definition: DenseCoeffsBase.h:17
Definition: XprHelper.h:332
Definition: CoreEvaluators.h:91
T type
Definition: GenericPacketMath.h:108
T type
Definition: Meta.h:126
Definition: BinaryFunctors.h:71
Definition: XprHelper.h:282
Definition: ForwardDeclarations.h:17