Home | History | Annotate | Download | only in SparseCore

Lines Matching defs:derived

21   * \tparam Derived
26 template<typename Derived> class SparseMatrixBase : public EigenBase<Derived>
30 typedef typename internal::traits<Derived>::Scalar Scalar;
32 typedef typename internal::traits<Derived>::StorageKind StorageKind;
33 typedef typename internal::traits<Derived>::Index Index;
39 typedef EigenBase<Derived> Base;
42 Derived& operator=(const EigenBase<OtherDerived> &other)
44 other.derived().evalTo(derived());
45 return derived();
50 RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
52 * by the \a Derived type. If a value is not known at compile-time,
56 ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
58 * by the \a Derived type. If a value is not known at compile-time,
63 SizeAtCompileTime = (internal::size_at_compile_time<internal::traits<Derived>::RowsAtCompileTime,
64 internal::traits<Derived>::ColsAtCompileTime>::ret),
81 Flags = internal::traits<Derived>::Flags,
86 CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
103 CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, Eigen::Transpose<const Derived> >,
104 Transpose<const Derived>
131 inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
132 inline Derived& derived() { return *static_cast<Derived*>(this); }
133 inline Derived& const_cast_derived() const
134 { return *static_cast<Derived*>(const_cast<SparseMatrixBase*>(this)); }
150 inline Index rows() const { return derived().rows(); }
152 inline Index cols() const { return derived().cols(); }
158 inline Index nonZeros() const { return derived().nonZeros(); }
172 Derived& markAsRValue() { m_isRValue = true; return derived(); }
178 Derived& operator=(const ReturnByValue<OtherDerived>& other)
180 other.evalTo(derived());
181 return derived();
186 inline Derived& operator=(const SparseMatrixBase<OtherDerived>& other)
188 return assign(other.derived());
191 inline Derived& operator=(const Derived& other)
194 // derived().swap(other.const_cast_derived());
196 return assign(other.derived());
202 inline Derived& assign(const OtherDerived& other)
209 derived().resize(other.rows(), other.cols());
210 derived().setZero();
211 derived().reserve((std::max)(this->rows(),this->cols())*2);
214 derived().startVec(j);
218 derived().insertBackByOuterInner(j,it.index()) = v;
221 derived().finalize();
227 return derived();
234 eigen_assert(( ((internal::traits<Derived>::SupportedAccessPatterns&OuterRandomAccessPattern)==OuterRandomAccessPattern) ||
241 //typedef typename internal::conditional<transpose, LinkedVectorMatrix<Scalar,Flags&RowMajorBit>, Derived>::type TempType;
243 Derived temp(other.rows(), other.cols());
249 for (typename OtherDerived::InnerIterator it(other.derived(), j); it; ++it)
257 derived() = temp.markAsRValue();
263 inline Derived& operator=(const SparseSparseProduct<Lhs,Rhs>& product);
267 typedef typename Derived::Nested Nested;
272 const Nested nm(m.derived());
276 for (typename NestedCleaned::InnerIterator it(nm.derived(), row); it; ++it)
290 const Nested nm(m.derived());
293 for (typename NestedCleaned::InnerIterator it(nm.derived(), 0); it; ++it)
313 Derived& operator+=(const SparseMatrixBase<OtherDerived>& other);
315 Derived& operator-=(const SparseMatrixBase<OtherDerived>& other);
317 Derived& operator*=(const Scalar& other);
318 Derived& operator/=(const Scalar& other);
324 typename internal::traits<Derived>::Scalar, \
328 const Derived, \
338 const typename SparseSparseProductReturnType<Derived,OtherDerived>::Type
343 const SparseDiagonalProduct<Derived,OtherDerived>
348 const SparseDiagonalProduct<OtherDerived,Derived>
350 { return SparseDiagonalProduct<OtherDerived,Derived>(lhs.derived(), rhs.derived()); }
354 const typename DenseSparseProductReturnType<OtherDerived,Derived>::Type
355 operator*(const MatrixBase<OtherDerived>& lhs, const Derived& rhs)
356 { return typename DenseSparseProductReturnType<OtherDerived,Derived>::Type(lhs.derived(),rhs); }
360 const typename SparseDenseProductReturnType<Derived,OtherDerived>::Type
362 { return typename SparseDenseProductReturnType<Derived,OtherDerived>::Type(derived(), other.derived()); }
365 SparseSymmetricPermutationProduct<Derived,Upper|Lower> twistedBy(const PermutationMatrix<Dynamic,Dynamic,Index>& perm) const
367 return SparseSymmetricPermutationProduct<Derived,Upper|Lower>(derived(), perm);
371 Derived& operator*=(const SparseMatrixBase<OtherDerived>& other);
385 inline const SparseTriangularView<Derived, Mode> triangularView() const;
387 template<unsigned int UpLo> inline const SparseSelfAdjointView<Derived, UpLo> selfadjointView() const;
388 template<unsigned int UpLo> inline SparseSelfAdjointView<Derived, UpLo> selfadjointView();
396 Transpose<Derived> transpose() { return derived(); }
397 const Transpose<const Derived> transpose() const { return derived(); }
401 typedef Block<Derived
402 typedef Block<const Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> ConstInnerVectorReturnType;
407 typedef Block<Derived,Dynamic,Dynamic,true> InnerVectorsReturnType;
408 typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
418 for (typename Derived::InnerIterator i(derived(),j); i; ++i)
424 return derived();
442 inline const typename internal::eval<Derived>::type eval() const
443 { return typename internal::eval<Derived>::type(derived()); }